王匆匆 張仰森 黃改娟
(北京信息科技大學(xué)智能信息處理研究所 北京 100101) (網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室 北京 100101)
中文語(yǔ)句的自動(dòng)糾錯(cuò)任務(wù)目前主要圍繞著字詞錯(cuò)誤、搭配錯(cuò)誤、語(yǔ)法及語(yǔ)義錯(cuò)誤方面展開(kāi)研究[1]。雖然語(yǔ)義錯(cuò)誤的糾錯(cuò)普遍需要語(yǔ)義搭配知識(shí)庫(kù),但是語(yǔ)義搭配知識(shí)的提取方法普遍從語(yǔ)法搭配的角度或語(yǔ)句的表面層次提取搭配知識(shí),進(jìn)而不能從表述形式較為復(fù)雜的中文句子中提取出準(zhǔn)確的語(yǔ)義搭配知識(shí),這種現(xiàn)象造成了知識(shí)庫(kù)在全面性、準(zhǔn)確性和靈活性沒(méi)有達(dá)到文本糾錯(cuò)的目的[2]。如果從語(yǔ)義搭配知識(shí)庫(kù)角度解決中文文本語(yǔ)義糾錯(cuò)問(wèn)題,那么文本錯(cuò)誤檢測(cè)就相當(dāng)于基于知識(shí)庫(kù)對(duì)文本內(nèi)容的合理性進(jìn)行打分,文本糾錯(cuò)相當(dāng)于基于知識(shí)庫(kù)和待檢測(cè)語(yǔ)句的上下文對(duì)錯(cuò)誤的文本內(nèi)容進(jìn)行推理所產(chǎn)生可接受糾錯(cuò)結(jié)果?;谥R(shí)庫(kù)和推理的方法看似完美,可是這種方法對(duì)于機(jī)器處理文本糾錯(cuò)問(wèn)題而言可行性較低。原因在于如果將具有語(yǔ)義推理能力的知識(shí)圖譜所存儲(chǔ)的語(yǔ)義知識(shí)庫(kù)應(yīng)用到中文語(yǔ)句的推理中,正確的文本會(huì)滿(mǎn)足推理過(guò)程,而對(duì)錯(cuò)誤文本的糾錯(cuò)建議生成會(huì)受到知識(shí)容量和質(zhì)量的限制,尤其是面對(duì)中文文本的數(shù)據(jù)量大的現(xiàn)象,這將會(huì)存在糾錯(cuò)模型缺乏大量訓(xùn)練數(shù)據(jù)的問(wèn)題。鑒于上述分析,本文認(rèn)為文本糾錯(cuò)任務(wù)需要從大規(guī)模的中文語(yǔ)料中學(xué)習(xí)出一套糾錯(cuò)機(jī)制,于是提出了一種基于注意力機(jī)制與端到端的中文文本糾錯(cuò)方法。
在文本糾錯(cuò)模型的選取層面,基于深度學(xué)習(xí)的自然語(yǔ)言處理模型目前主要從循環(huán)神經(jīng)網(wǎng)絡(luò)向詞語(yǔ)位置編碼加語(yǔ)句內(nèi)容的方向轉(zhuǎn)變[4],端到端學(xué)習(xí)的思想已經(jīng)被廣泛利用到機(jī)器翻譯、智能問(wèn)答等領(lǐng)域[5]。本文將端到端的思想和方法應(yīng)用到中文文本的自動(dòng)糾錯(cuò)工作中,使用基于詞語(yǔ)位置編碼向量加語(yǔ)句內(nèi)容向量的模型生成中間語(yǔ)句的語(yǔ)義向量,然后對(duì)語(yǔ)義向量進(jìn)行解碼生成糾錯(cuò)后的句子。在語(yǔ)義向量的編碼與解碼過(guò)程中,本文使用了注意力機(jī)制發(fā)現(xiàn)文本詞語(yǔ)的潛在依賴(lài)關(guān)系及語(yǔ)義特征,避免了循環(huán)神經(jīng)網(wǎng)絡(luò)及其變體只將兩個(gè)單向的隱藏節(jié)點(diǎn)合并輸出所引起的語(yǔ)義關(guān)系弱及單項(xiàng)語(yǔ)義編碼的問(wèn)題。如表1所示,文本糾錯(cuò)任務(wù)的特點(diǎn)是訓(xùn)練語(yǔ)料中原語(yǔ)句與目標(biāo)語(yǔ)句之間的詞語(yǔ)重復(fù)率達(dá)到80%之上,即糾錯(cuò)后的句子復(fù)制了許多原句子中正確的部分。鑒于此,本文通過(guò)增加一個(gè)句子成分不改變的機(jī)制使端到端的糾錯(cuò)模型更加貼近糾錯(cuò)任務(wù)的場(chǎng)景。另外,本文基于大規(guī)模無(wú)標(biāo)注的中文語(yǔ)料提出一種平行糾錯(cuò)語(yǔ)料的構(gòu)建方法,為解決缺乏糾錯(cuò)語(yǔ)料的問(wèn)題提供了一種思路。
表1 訓(xùn)練語(yǔ)料中原語(yǔ)句與目標(biāo)語(yǔ)句包含字的重復(fù)率
本文的主要貢獻(xiàn)有以下三方面:① 提出了一個(gè)用于文本糾錯(cuò)神經(jīng)網(wǎng)絡(luò)架構(gòu),該架構(gòu)能夠直接從待校對(duì)語(yǔ)句中復(fù)制原本正確的詞語(yǔ)和超出詞典范圍的詞語(yǔ);② 使用大規(guī)模非標(biāo)注數(shù)據(jù)預(yù)訓(xùn)練了基于復(fù)制機(jī)制的糾錯(cuò)模型,緩解了文本糾錯(cuò)工作缺乏語(yǔ)料的問(wèn)題;③ 在NLPCC2018的中文糾錯(cuò)測(cè)試集上取得最好的結(jié)果。
文獻(xiàn)[6]結(jié)合HowNet義原知識(shí)庫(kù)與中文語(yǔ)料庫(kù),使用雙層LSTM網(wǎng)絡(luò)構(gòu)建語(yǔ)義搭配關(guān)系錯(cuò)誤預(yù)測(cè)模型,然后基于詞語(yǔ)之間的互信息、詞語(yǔ)義原之間的聚合度提供糾錯(cuò)建議?;贚STM網(wǎng)絡(luò)的語(yǔ)義糾錯(cuò)模型會(huì)將錯(cuò)誤信息與前面信息參與語(yǔ)義計(jì)算,這影響語(yǔ)義錯(cuò)誤檢測(cè)模型學(xué)習(xí)待檢測(cè)句子全局信息的能力。文獻(xiàn)[6]的糾錯(cuò)模型僅僅從詞語(yǔ)義原和語(yǔ)句層面上獲取的糾錯(cuò)建議,沒(méi)有完全符合待檢測(cè)句子的語(yǔ)境。文獻(xiàn)[7]提出了基于易混淆詞語(yǔ)集與序列標(biāo)注任務(wù)的中文文本糾錯(cuò)算法,通過(guò)引入待校對(duì)詞語(yǔ)上下文和基于易混淆詞集的糾錯(cuò)詞集的方法對(duì)語(yǔ)義錯(cuò)誤進(jìn)行自動(dòng)糾錯(cuò)。由于該方法受限于訓(xùn)練語(yǔ)料數(shù)量較少,不能對(duì)語(yǔ)句進(jìn)行語(yǔ)義表征層面上的糾錯(cuò)。文獻(xiàn)[8]使用基于RNN和端到端模型的機(jī)器翻譯模型對(duì)中文語(yǔ)句中的錯(cuò)別字進(jìn)行糾錯(cuò),實(shí)驗(yàn)表明基于單純基于RNN的神經(jīng)機(jī)器翻譯模型處理文本糾錯(cuò)的效果較差,仍需要結(jié)合N-gram模型,主要原因在于基于RNN的自然語(yǔ)言處理模型的梯度消失和詞語(yǔ)依賴(lài)強(qiáng)度弱的問(wèn)題,本質(zhì)上該模型仍是一個(gè)馬爾可夫決策模型。目前的注意力機(jī)制能夠發(fā)現(xiàn)中文詞語(yǔ)之間的依存關(guān)系,改善自動(dòng)糾錯(cuò)效果。
文獻(xiàn)[9]主要通過(guò)5-gram評(píng)分選取五個(gè)小模型所產(chǎn)生文本糾錯(cuò)的最優(yōu)結(jié)果作為糾錯(cuò)建議。文獻(xiàn)[10]使用了基于規(guī)則的統(tǒng)計(jì)模型、基于統(tǒng)計(jì)機(jī)器翻譯糾錯(cuò)模型和基于LSTM的翻譯模型,將兩個(gè)基于字與詞的統(tǒng)計(jì)機(jī)器翻譯糾錯(cuò)結(jié)果和四個(gè)神經(jīng)機(jī)器翻譯的結(jié)果分別進(jìn)行低級(jí)合并,最后將基于規(guī)則、統(tǒng)計(jì)和神經(jīng)網(wǎng)絡(luò)的結(jié)果通過(guò)沖突算法對(duì)多個(gè)糾錯(cuò)結(jié)果進(jìn)行高級(jí)結(jié)合得到糾錯(cuò)結(jié)果。文獻(xiàn)[11]使用的是基于卷積神經(jīng)網(wǎng)絡(luò)的端到端糾錯(cuò)模型,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)計(jì)算循環(huán)神經(jīng)網(wǎng)絡(luò)產(chǎn)生的語(yǔ)義編碼向量的注意力然后解碼出糾錯(cuò)結(jié)果。這三種糾錯(cuò)模型都通過(guò)使用一個(gè)更大的中文語(yǔ)言模型取得了較好的結(jié)果
早期的英文文本糾錯(cuò)建立了具體的錯(cuò)誤類(lèi)型分類(lèi),然后將錯(cuò)誤類(lèi)型的分類(lèi)進(jìn)行融合,并建立了相應(yīng)的語(yǔ)法糾正方法,之后文本的語(yǔ)法錯(cuò)誤糾正利用了統(tǒng)計(jì)機(jī)器翻譯模型與大規(guī)模的糾錯(cuò)語(yǔ)料取得良好效果。文獻(xiàn)[12-13]指出了錯(cuò)誤分類(lèi)與機(jī)器翻譯方法的弊端,統(tǒng)計(jì)機(jī)器翻譯(SMT)模型雖然能夠記住一些短語(yǔ)所在的糾錯(cuò)語(yǔ)句,但是不能生成一些從未被訓(xùn)練的文本內(nèi)容。目前基于神經(jīng)機(jī)器翻譯的校對(duì)方法在英文語(yǔ)法錯(cuò)誤校對(duì)任務(wù)中展現(xiàn)出強(qiáng)大的語(yǔ)法錯(cuò)誤校對(duì)能力。文獻(xiàn)[14]針對(duì)語(yǔ)法錯(cuò)誤檢測(cè)建立了一個(gè)基于神經(jīng)網(wǎng)絡(luò)的序列標(biāo)注模型,該模型對(duì)詞語(yǔ)的正誤進(jìn)行標(biāo)注,然后使用標(biāo)注結(jié)果的特征,重新排列Nbest假設(shè)。文獻(xiàn)[15]提出了一個(gè)協(xié)調(diào)詞語(yǔ)與字母級(jí)別信息的混合神經(jīng)網(wǎng)絡(luò)模型。文獻(xiàn)[16]使用了一個(gè)多層卷積的端到端模型,該糾錯(cuò)模型超越了所有之前基于神經(jīng)網(wǎng)絡(luò)與統(tǒng)計(jì)方法的糾錯(cuò)系統(tǒng)。而文獻(xiàn)[17]則是基于序列到序列的架構(gòu)和推理機(jī)制糾錯(cuò)語(yǔ)法錯(cuò)誤。文獻(xiàn)[18]嘗試使用RNN與Transformer端到端模型并取得了更好的糾錯(cuò)結(jié)果。
基于神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯模型在文本糾錯(cuò)任務(wù)上已經(jīng)取得了實(shí)質(zhì)上的提升[18]。翻譯模型通過(guò)將待檢測(cè)句子作為源句子并將文本糾錯(cuò)后的語(yǔ)句作為目標(biāo)句子,學(xué)習(xí)了源句子到目標(biāo)句子之間的對(duì)應(yīng)關(guān)系。本文將中文文本糾錯(cuò)任務(wù)當(dāng)作是一個(gè)翻譯工作。具體而言,本文研究的目標(biāo)是讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)平行糾錯(cuò)語(yǔ)料的正誤語(yǔ)義對(duì)應(yīng)關(guān)系,并將錯(cuò)誤語(yǔ)句翻譯成正確語(yǔ)句。但是不同于傳統(tǒng)的機(jī)器翻譯任務(wù),中文糾錯(cuò)任務(wù)不但包含了多種錯(cuò)誤類(lèi)型,而且使用的糾錯(cuò)平行語(yǔ)料中會(huì)存在語(yǔ)料稀疏的問(wèn)題。傳統(tǒng)的中文糾錯(cuò)任務(wù)主要處理冗余、缺字、用字不當(dāng)和位置錯(cuò)誤四種錯(cuò)誤類(lèi)型,本文沒(méi)有具體區(qū)分各種錯(cuò)誤類(lèi)型,而是使用了兩種注意力機(jī)制,即編碼解碼注意力機(jī)制和復(fù)制注意力機(jī)制學(xué)習(xí)糾錯(cuò)任務(wù)。糾錯(cuò)模型的基礎(chǔ)架構(gòu)使用了基于注意力機(jī)制的Transformer[4]架構(gòu),它包含了多個(gè)對(duì)輸入的源句子進(jìn)行編碼的模塊。其中每個(gè)模塊都是用了多頭自注意力機(jī)制從原句子中獲取帶有詞語(yǔ)位置信息的語(yǔ)義向量,然后通過(guò)前向傳播層輸出語(yǔ)義向量的隱藏狀態(tài)?;A(chǔ)模型的解碼器也是使用了多模塊、多頭注意力機(jī)制,使用前向傳播網(wǎng)絡(luò)對(duì)隱藏狀態(tài)進(jìn)行解碼。
基礎(chǔ)架構(gòu)的目標(biāo)是預(yù)測(cè)在一個(gè)序列y1,y2,…,yT在t位置的字,在給定源句子x1,x2,…,xN的前提下:
(1)
(2)
pt(w)=softmax(Ltrght)
(3)
(4)
文獻(xiàn)[19]在文本摘要任務(wù)上和文獻(xiàn)[20]在語(yǔ)義解析任務(wù)上證明了復(fù)制機(jī)制是有效的,因此本文添加了在文本糾錯(cuò)上的復(fù)制機(jī)制,增強(qiáng)了糾錯(cuò)模型從源句子復(fù)制正確詞語(yǔ)的能力。
(5)
圖1 復(fù)制機(jī)制架構(gòu)
該架構(gòu)通過(guò)目標(biāo)隱藏狀態(tài)的概率分布作為一個(gè)基礎(chǔ)模型。在源句子上的復(fù)制因子是通過(guò)計(jì)算一個(gè)新的注意力分布,該注意力分布是基于編碼的隱藏狀態(tài)與當(dāng)前解碼的隱藏狀態(tài)計(jì)算得出的,復(fù)制的注意力也是用相應(yīng)的編碼與解碼機(jī)制。
(6)
(7)
(8)
(9)
當(dāng)缺乏大量訓(xùn)練數(shù)據(jù)時(shí),預(yù)訓(xùn)練在很多任務(wù)中被證明是非常有用的。因此,本文使用了部分預(yù)訓(xùn)練的方法在參數(shù)初始化的時(shí)候從輸入中抽取特征[21]??紤]到BERT模型使用了一個(gè)預(yù)訓(xùn)練雙向Transformer模型在當(dāng)前許多NLP任務(wù)中取得了最優(yōu)表現(xiàn),它預(yù)測(cè)了15%被遮住的單字,而不是重建整個(gè)輸入句子,并降噪了隨機(jī)抽取的15%的字符,在隨機(jī)抽取的15%詞語(yǔ)中,其中80%被替換為MASK,10%被替換為隨機(jī)的詞,10%沒(méi)有被改變。受BERT的和自動(dòng)降噪編碼方法的啟發(fā),本文在降噪非標(biāo)注的大規(guī)模中文語(yǔ)料的基礎(chǔ)上預(yù)訓(xùn)練基于復(fù)制機(jī)制的糾錯(cuò)模型。實(shí)驗(yàn)對(duì)含有錯(cuò)誤的句子的數(shù)據(jù)生成步驟如下:(1) 刪除一個(gè)字符的概率為10%;(2) 增加一個(gè)字符的概率為10%;(3) 使用字典中任意一個(gè)字符替換字概率為10%;(4) 重新排列字的順序,通過(guò)對(duì)每個(gè)原始字的位置編碼增加一個(gè)標(biāo)準(zhǔn)差為0.5的正態(tài)分布權(quán)重,然后將新的位置編碼從小到大排序,提取出原始位置編碼列表的索引位置作亂序后的字排列。
使用上述的文本錯(cuò)誤生成方法所產(chǎn)生的錯(cuò)誤句子與原句子配對(duì),這在某種程度上可以算作一條糾錯(cuò)語(yǔ)料,因?yàn)樵撳e(cuò)誤語(yǔ)句與人為錯(cuò)誤語(yǔ)句都是由字的增、刪、替換和重新排列操作所造成的。
在NLP任務(wù)中,預(yù)訓(xùn)練模型能夠提升下游任務(wù)的表現(xiàn),如Word2Vec[22]、GloVe[23]和ELMo[24]等。借鑒文獻(xiàn)[25]的方法,本文預(yù)訓(xùn)練了基于復(fù)制機(jī)制的端到端糾錯(cuò)模型的解碼器。首先,使用預(yù)訓(xùn)練參數(shù)初始化糾錯(cuò)模型的解碼器,然后隨機(jī)初始化其他參數(shù)。因?yàn)樵诰幋a器與解碼器之間使用了連續(xù)的字嵌入,除了編碼器、編碼與解碼間的注意力和復(fù)制注意力之間的參數(shù),其余的參數(shù)都能被預(yù)訓(xùn)練。
本文使用了2016年—2018年的CGED中文語(yǔ)法錯(cuò)誤診斷數(shù)據(jù)集、SIGHAN2014、SIGHAN2015、NLPCC2018語(yǔ)法糾錯(cuò)數(shù)據(jù)集、LANG-8和中文維基百科作為并行訓(xùn)練語(yǔ)料,將NLPCC2018的中文語(yǔ)法錯(cuò)誤糾錯(cuò)任務(wù)測(cè)試集作為測(cè)試語(yǔ)料。表2和表3列出了本文使用的數(shù)據(jù)集信息。
表2 訓(xùn)練語(yǔ)料
表3 測(cè)試語(yǔ)料
本文在公共的端到端工具Fairseq上使用了已經(jīng)實(shí)現(xiàn)的Transformer模型,并將字嵌入和隱藏層維度設(shè)為512,編碼器與解碼器層數(shù)為6,注意力模塊為8。在內(nèi)部的層次前向傳播網(wǎng)絡(luò)使用了4 096維度。設(shè)置Dropout為0.2,這個(gè)模型總共有97 MB的參數(shù)。
在優(yōu)化神經(jīng)網(wǎng)絡(luò)方面,使用Nesterovs[26]加速梯度下降法,學(xué)習(xí)率為0.002,衰減率為0.5,動(dòng)量為0.99,最小學(xué)習(xí)率為0.000 4。
本文也使用了加權(quán)極大似然估計(jì)方法縮放平衡因子Λ以改變?cè)~的損失[18]。訓(xùn)練文本糾錯(cuò)模型和預(yù)訓(xùn)練模型的區(qū)別在于,當(dāng)預(yù)訓(xùn)練降噪自編碼模型時(shí)設(shè)置Λ=3,糾錯(cuò)時(shí)Λ∈[1,1.8],在解碼時(shí),設(shè)置beamsize為12。
文本糾錯(cuò)任務(wù)的目標(biāo)是改正句子中的錯(cuò)誤字,模型將錯(cuò)誤語(yǔ)句的編輯與標(biāo)準(zhǔn)編輯集合的匹配程度作為評(píng)價(jià)依據(jù)。評(píng)價(jià)指標(biāo)包括準(zhǔn)確率(Precision)、召回率(Recall)及F0.5。假設(shè)e是模型對(duì)錯(cuò)誤文本糾錯(cuò)建議的集合,ge是該錯(cuò)誤文本的標(biāo)準(zhǔn)的糾錯(cuò)建議集合,具體的計(jì)算方式如下:
(10)
(11)
(12)
式中:|ei∩gei|表示模型針對(duì)句子糾錯(cuò)建議集合與標(biāo)準(zhǔn)糾錯(cuò)建議集合的匹配數(shù)量。gi表示句子i中的全部錯(cuò)誤組成的集合,具體計(jì)算式為:
|ei∩gei|={e∈ei|?g∈gi,match(e,g)}
(13)
語(yǔ)法糾錯(cuò)任務(wù)選擇F0.5作為評(píng)價(jià)指標(biāo)而非F1值的原因在于,對(duì)于模型糾正的錯(cuò)誤中,糾錯(cuò)的準(zhǔn)確性大于糾錯(cuò)建議數(shù)量,所以將準(zhǔn)確率的權(quán)重定為召回率的兩倍大小,以期得到一個(gè)更加優(yōu)質(zhì)的糾錯(cuò)模型。
多任務(wù)學(xué)習(xí)主要通過(guò)聯(lián)合訓(xùn)練多種相關(guān)的任務(wù)解決問(wèn)題,實(shí)驗(yàn)證明多任務(wù)學(xué)習(xí)在許多任務(wù)中都有優(yōu)勢(shì),如計(jì)算機(jī)視覺(jué)[27-28]與NLP[29-30]任務(wù)。本文探索了兩種不同的任務(wù)對(duì)于語(yǔ)法糾錯(cuò)模型以提高其表現(xiàn)。
3.4.1字級(jí)別的標(biāo)注任務(wù)
(14)
通過(guò)字級(jí)別的標(biāo)注任務(wù)明顯地增強(qiáng)了編碼器關(guān)于輸入字的正確性,也有助于解碼器的識(shí)別。
3.4.2句子級(jí)別復(fù)制工作
句子級(jí)別的復(fù)制工作的動(dòng)機(jī)是使模型在輸入句子是正確的情況下加強(qiáng)糾錯(cuò)建議從輸入句子復(fù)制字詞的比例。訓(xùn)練時(shí)將同樣數(shù)量的正確句子對(duì)與修改過(guò)的句子對(duì)送入模型。當(dāng)輸入正確句子時(shí),移除了解碼器對(duì)編碼器的注意力向量。沒(méi)有了編碼解碼之間的注意力,原本正確句子生成工作會(huì)變得很困難,但是經(jīng)過(guò)模型的復(fù)制部分將會(huì)被正確的句子加強(qiáng)。
表4對(duì)比了基于神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯的糾錯(cuò)模型、基于統(tǒng)計(jì)和神經(jīng)機(jī)器翻譯的糾錯(cuò)模型、序列到序列糾錯(cuò)模型及本文的模型用于中文語(yǔ)義糾錯(cuò)得到準(zhǔn)確率、召回率與F0.5值。
表4 糾錯(cuò)模型對(duì)比實(shí)驗(yàn)結(jié)果(%)
本文的復(fù)制增強(qiáng)型架構(gòu)在使用與訓(xùn)練參數(shù)的情況下相較神經(jīng)機(jī)器翻譯模型[9]準(zhǔn)確率提升了7.24百分點(diǎn),并超過(guò)了文獻(xiàn)[10]方法1.48百分點(diǎn),說(shuō)明了本文復(fù)制增強(qiáng)性架構(gòu)對(duì)比傳統(tǒng)的Transformer在糾錯(cuò)任務(wù)上使用的復(fù)制注意力機(jī)制學(xué)習(xí)了文本的正確部分與錯(cuò)誤部分的區(qū)分特征,并且本文模型在召回率比傳統(tǒng)的LSTM的糾錯(cuò)模型提高了11.35百分點(diǎn),表明了糾錯(cuò)模型中注意力機(jī)制的重要性,避免了LSTM的語(yǔ)義長(zhǎng)期依賴(lài)較弱的弊端。文獻(xiàn)[11]所提出的模型雖然架構(gòu)較為原始,但是它們集成了四個(gè)糾錯(cuò)模型的結(jié)果并使用了字節(jié)對(duì)編碼算法降低生詞的困擾,在準(zhǔn)確率上超過(guò)了本文復(fù)制增強(qiáng)型模型4.15百分點(diǎn),表明了未登錄詞和適量的增加模型參數(shù)量對(duì)糾錯(cuò)任務(wù)的提升較明顯。但是當(dāng)使用降噪自動(dòng)編碼的方法后,模型學(xué)習(xí)了更多中文語(yǔ)料中的錯(cuò)誤詞語(yǔ)特征和糾錯(cuò)建議生成特征,在NLPCC2018數(shù)據(jù)集上的F0.5為42.64%,在召回率和準(zhǔn)確率上都超過(guò)了文獻(xiàn)[9]所提供的方法。綜上,無(wú)論是傳統(tǒng)的Transformer還是本文模型,都能在召回率上超過(guò)RNN及一系列變體網(wǎng)絡(luò),可見(jiàn)注意力機(jī)制和基于詞語(yǔ)位置編碼的語(yǔ)義編碼模型是目前糾錯(cuò)任務(wù)不可缺少的一部分。
表5對(duì)比了基于復(fù)制機(jī)制和降噪自動(dòng)編碼Tansformer模型處理冗余、缺字、用字不當(dāng)和位置錯(cuò)誤四種錯(cuò)誤類(lèi)型的表現(xiàn)。實(shí)驗(yàn)數(shù)據(jù)集采用了具有錯(cuò)誤類(lèi)型標(biāo)注的2016年—2018年的CGED中文語(yǔ)法錯(cuò)誤診斷測(cè)試集。
表5 四種錯(cuò)誤類(lèi)型實(shí)驗(yàn)結(jié)果(%)
從表5可知,本文模型處理用字不當(dāng)和位置錯(cuò)誤的準(zhǔn)確率比另兩種錯(cuò)誤更高,但提升量均在2百分點(diǎn)以?xún)?nèi)。用字不當(dāng)錯(cuò)誤的準(zhǔn)確率較高,可能是因?yàn)橄噍^其他錯(cuò)誤類(lèi)型,該錯(cuò)誤提供了較多的可被模型利用的錯(cuò)誤信息。而冗余字的錯(cuò)誤準(zhǔn)確率最低,則可能是由于冗余字所提供的錯(cuò)誤信息相較其他錯(cuò)誤類(lèi)型更加繁雜,干擾了模型的糾錯(cuò)準(zhǔn)確率。此外,在召回率和F0.5值上,本文模型表現(xiàn)出較為平穩(wěn)的實(shí)驗(yàn)數(shù)據(jù)。
3.6.1復(fù)制機(jī)制消融實(shí)驗(yàn)結(jié)果
下面通過(guò)實(shí)驗(yàn)比較在文本糾錯(cuò)任務(wù)上本文的復(fù)制機(jī)制與自注意力機(jī)制對(duì)Transformer結(jié)構(gòu)糾錯(cuò)結(jié)果的影響。如表6所示,復(fù)制增強(qiáng)型的模型將F0.5分?jǐn)?shù)從29.91%提高到37.31%,增加了8.3百分點(diǎn)。提升的原因在于基礎(chǔ)模型把超出字典的字預(yù)測(cè)成一個(gè)未登錄標(biāo)記UNK,但是在復(fù)制增強(qiáng)型模型上將未識(shí)別的字直接復(fù)制到所生成的句子中。
表6 消融實(shí)驗(yàn)結(jié)果(%)
復(fù)制機(jī)制被廣泛用于處理未登錄字,實(shí)驗(yàn)通過(guò)忽略所有的未登錄字來(lái)驗(yàn)證復(fù)制是否真正地復(fù)制了那些不知道的字。從表6可知,即使忽略未登錄字帶來(lái)了提升,復(fù)制模型仍然相較于基礎(chǔ)模型在F0.5分?jǐn)?shù)上提升了7.54百分點(diǎn),并且大多數(shù)是通過(guò)增加精確率提升的。
3.6.2預(yù)訓(xùn)練消融實(shí)驗(yàn)結(jié)果
從表6可知,通過(guò)預(yù)訓(xùn)練部分解碼器,F(xiàn)0.5分?jǐn)?shù)從40.70%提升到41.84%,相較于未預(yù)訓(xùn)練的方式提高了1.14百分點(diǎn),當(dāng)降噪自動(dòng)編碼器全部預(yù)訓(xùn)練參數(shù)時(shí),模型F0.5分?jǐn)?shù)從40.70%提升到49.56%。
為了進(jìn)一步調(diào)查預(yù)訓(xùn)練參數(shù)的優(yōu)勢(shì),本文展示了早期是否含有降噪解碼預(yù)訓(xùn)練參數(shù)的性能改善情況在表7。結(jié)果顯示,如果使用標(biāo)注訓(xùn)練數(shù)據(jù)一輪后的參數(shù)微調(diào)模型,預(yù)訓(xùn)練模型F0.5分?jǐn)?shù)比未預(yù)訓(xùn)練模型從25.32%提升到35.06%。即使沒(méi)有微調(diào),預(yù)訓(xùn)練模型可以得到F0.5分?jǐn)?shù)為25.32%。這證明了預(yù)訓(xùn)練帶給模型比隨機(jī)參數(shù)更好的初始參數(shù)。
表7 NLPCC2018測(cè)試集預(yù)訓(xùn)練測(cè)試結(jié)果(%)
3.6.3句子級(jí)別的復(fù)制任務(wù)消融結(jié)果
為了證實(shí)增加句子級(jí)別的復(fù)制任務(wù)對(duì)正句子與錯(cuò)誤句子的識(shí)別情況,本文創(chuàng)建了一個(gè)正確句子集通過(guò)挑選維基百科中的500個(gè)句子,挑選NLPCC2018測(cè)試集中的數(shù)據(jù)生成一個(gè)錯(cuò)誤句子集。之后計(jì)算了兩個(gè)測(cè)試集的平衡因子的平均值。在增加句子級(jí)別的復(fù)制工作中,復(fù)制因子對(duì)于正確句子集和錯(cuò)誤句子集分別是0.44和0.45。通過(guò)增加句子級(jí)別的復(fù)制任務(wù),平衡因子的值分別為0.81和0.57。這意味著81%的最終分?jǐn)?shù)來(lái)自于正確的復(fù)制句子集,但在錯(cuò)誤句子集上僅有57%的分?jǐn)?shù)。因此,通過(guò)增加句子級(jí)別的復(fù)制工作,模型學(xué)習(xí)了如何區(qū)分正確句子與錯(cuò)誤句子。
為了分析復(fù)制注意力與編碼解碼注意力的差異,圖2和圖3可視化了復(fù)制注意力分布和編碼解碼注意力分布。復(fù)制注意力的權(quán)重更加偏向于下一個(gè)字,使語(yǔ)句順序變得準(zhǔn)確。而編碼解碼注意力更加偏向于其他字,例如,相近的字或者句子的尾部。正如文獻(xiàn)[30]所解釋的,這意味著生成部分試圖去發(fā)現(xiàn)更長(zhǎng)距離的依賴(lài)關(guān)系并且更加關(guān)注于全局信息。通過(guò)從自動(dòng)生成工作中分離復(fù)制工作,模型的生成部分能夠聚焦于創(chuàng)造性的工作。
圖2 復(fù)制注意力分布
圖3 編碼解碼注意力分布
本文對(duì)于中文文本糾錯(cuò)任務(wù)提出了一種基于復(fù)制機(jī)制的糾錯(cuò)架構(gòu),通過(guò)直接復(fù)制未改變的詞語(yǔ)和超出所輸入原句子的詞典的詞語(yǔ)提升了端到端模型的能力,并使用大規(guī)模非標(biāo)注的數(shù)據(jù)和降噪自動(dòng)編碼器完全預(yù)訓(xùn)練了復(fù)制機(jī)制的架構(gòu)。此外,在多任務(wù)學(xué)習(xí)方面引入了兩個(gè)額外的任務(wù)。實(shí)驗(yàn)結(jié)果表明,本文方法超過(guò)了其他中文文本糾錯(cuò)方法。