孫曉東,王丕坤,楊東強(qiáng)
(山東建筑大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 濟(jì)南 250101)
語法糾錯(cuò)(Grammatical Error Correction,GEC)的主要目的是在不改變語句的基本語義前提下最大限度地糾正語法錯(cuò)誤。早期面向英語學(xué)習(xí)者的GEC研究方法主要以基于規(guī)則和統(tǒng)計(jì)的模型為主[1]?;谝?guī)則的方法人工設(shè)定語法規(guī)則數(shù)據(jù)庫,只對(duì)有限的錯(cuò)誤類型有效。而且對(duì)于相對(duì)復(fù)雜的語法錯(cuò)誤,需要設(shè)計(jì)大量的檢測(cè)和糾正規(guī)則,規(guī)則之間容易產(chǎn)生沖突?;诮y(tǒng)計(jì)的GEC方法主要構(gòu)建統(tǒng)計(jì)模型,一定程度上避免了基于規(guī)則的GEC方法其糾錯(cuò)類型有限的弊端。在隨后出現(xiàn)的基于分類的語法錯(cuò)誤糾正方法[2]中,不同錯(cuò)誤類型的糾正被看作分類任務(wù),通過結(jié)合上下文語境訓(xùn)練GEC分類器進(jìn)行錯(cuò)誤的預(yù)測(cè)糾正。而對(duì)于基于機(jī)器翻譯的GEC方法主要將語法糾正看做語言翻譯任務(wù),利用噪聲信道模型生成翻譯規(guī)則,把錯(cuò)誤的源語句“翻譯”成正確的目標(biāo)語句。
相比于上述早期的GEC方法,現(xiàn)階段基于數(shù)據(jù)驅(qū)動(dòng)和神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯方法已成為英語語法糾錯(cuò)的主流[3],其中應(yīng)用神經(jīng)網(wǎng)絡(luò)編碼器-解碼器結(jié)構(gòu)的模型已經(jīng)取得顯著成效。神經(jīng)機(jī)器翻譯(Neural Machine Translation,NMT)是基于神經(jīng)網(wǎng)絡(luò)以端到端的方式進(jìn)行翻譯的方法,與早期的機(jī)器翻譯系統(tǒng)相比,采用注意力機(jī)制的NMT模型,解決了上下文中長(zhǎng)距離語義依賴的問題,能夠更好地實(shí)現(xiàn)語法糾正。典型的端到端NMT模型將束搜索(beam-search)得到的解碼結(jié)果作為輸出,同時(shí)還引入外部語言模型、編輯距離、編輯操作數(shù)等多個(gè)特征評(píng)價(jià)模型的解碼輸出。
基于NMT的GEC模型性能主要取決于訓(xùn)練數(shù)據(jù)的數(shù)量和質(zhì)量。由于人工標(biāo)注數(shù)據(jù)成本較高,目前研究主要集中在如何自動(dòng)合成訓(xùn)練數(shù)據(jù)上。研究表明[4]人工數(shù)據(jù)合成可以彌補(bǔ)學(xué)習(xí)者語料庫不足的問題,提高GEC性能。對(duì)于GEC中數(shù)據(jù)增廣方法,相對(duì)于基于錯(cuò)誤規(guī)則或錯(cuò)誤模式的無監(jiān)督數(shù)據(jù)產(chǎn)生方法,監(jiān)督式數(shù)據(jù)合成方法生成的數(shù)據(jù)更接近語法錯(cuò)誤的實(shí)際分布狀態(tài),但是監(jiān)督式數(shù)據(jù)合成方法需要足夠數(shù)量的人工標(biāo)注數(shù)據(jù),并且有限的人工標(biāo)注數(shù)據(jù)以及其中的錯(cuò)誤類型分布和修改風(fēng)格等會(huì)對(duì)生成模型的效果產(chǎn)生較大影響。因而通過結(jié)合有限的規(guī)則和反向翻譯模型生成訓(xùn)練數(shù)據(jù),不僅可以兼顧質(zhì)量和數(shù)量的優(yōu)勢(shì),還能夠提高語法糾錯(cuò)模型的性能。
該文使用Transformer模型[5]分別作為語法錯(cuò)誤產(chǎn)生和糾正的基礎(chǔ)結(jié)構(gòu),主要探索結(jié)合規(guī)則的數(shù)據(jù)增廣方法和反向翻譯模型為GEC生成人工合成數(shù)據(jù),從而提高語法糾錯(cuò)系統(tǒng)的性能。主要?jiǎng)?chuàng)新在于:
(1)與將人工規(guī)則方法產(chǎn)生的數(shù)據(jù)直接訓(xùn)練GEC模型不同,該文提出將基于規(guī)則的數(shù)據(jù)增廣方法與NMT相結(jié)合,首先建立語法錯(cuò)誤生成(Grammatical Error Generation,GEG)模型,然后將GEG模型產(chǎn)生的合成數(shù)據(jù)用于GEC模型的預(yù)訓(xùn)練。
(2)為了提高GEC模型的錯(cuò)誤識(shí)別能力,該文提出一種由GEG到GEC再到GEG模型的交替訓(xùn)練結(jié)構(gòu)。使用GEC系統(tǒng)的輸出候選句對(duì)GEG模型再次訓(xùn)練,以提高其錯(cuò)誤生成能力。
對(duì)比實(shí)驗(yàn)表明,提出的數(shù)據(jù)增廣策略和交替訓(xùn)練方法能夠產(chǎn)生更加接近學(xué)習(xí)者語料庫質(zhì)量的合成數(shù)據(jù),并顯著提高GEC系統(tǒng)的性能。基于CoNLL-2014和JFLEG測(cè)試集的實(shí)驗(yàn)結(jié)果表明:該方法的GLEU和F0.5值分別達(dá)到61%和62%。
針對(duì)GEC的人工數(shù)據(jù)增廣方法主要有基于人工規(guī)則的方法、基于機(jī)器翻譯的方法以及基于維基百科等社交媒體的修訂歷史記錄方法等。
基于規(guī)則的數(shù)據(jù)增廣方法是使用限制性規(guī)則完成對(duì)數(shù)據(jù)的加噪處理,已成為提高訓(xùn)練數(shù)據(jù)質(zhì)量的一種重要手段。該方法簡(jiǎn)單有效,能夠涵蓋不同類型的語法錯(cuò)誤。例如,在CoNLL-2014測(cè)試集上,Xu等人[6]引入五種錯(cuò)誤規(guī)則合成訓(xùn)練數(shù)據(jù),用此合成的數(shù)據(jù)訓(xùn)練基于NMT的GEC模型,取得優(yōu)異的結(jié)果,F(xiàn)0.5值達(dá)到60.9%。在面向GEC的數(shù)據(jù)增廣任務(wù)中,人工規(guī)則主要利用單詞或字符級(jí)別上的增加、刪除、取代、交換等四種編輯距離及其衍生變種。
基于機(jī)器翻譯的數(shù)據(jù)增廣方法主要包括兩種:基于反向翻譯和基于往返翻譯的方法?;诜聪蚍g的數(shù)據(jù)增廣方法是訓(xùn)練一個(gè)反向NMT錯(cuò)誤生成模型,輸入為語法正確的源語句,輸出為含有語法錯(cuò)誤的目標(biāo)語句。該方法能夠覆蓋多種不同種類的錯(cuò)誤,但是反向翻譯模型往往需要大量帶有標(biāo)注的學(xué)習(xí)者語料庫作為支撐,因而也面臨著人工標(biāo)注數(shù)據(jù)短缺的問題?;谕捣g的數(shù)據(jù)增廣方法[7]是訓(xùn)練兩個(gè)機(jī)器翻譯模型,首先是由英語翻譯到中間語言,再由中間語言翻譯到英語。使用往返翻譯合成的訓(xùn)練數(shù)據(jù)可以借助多種中間語言,不需要大量的人工標(biāo)注數(shù)據(jù),翻譯模型性能的優(yōu)劣通常會(huì)影響合成數(shù)據(jù)的質(zhì)量。該方法存在需要協(xié)調(diào)不同翻譯模型的質(zhì)量搭配問題。高質(zhì)量往返翻譯模型的合成數(shù)據(jù)可能不存在語法錯(cuò)誤現(xiàn)象,而低質(zhì)量的翻譯模型產(chǎn)生的合成數(shù)據(jù)可能包含除語法錯(cuò)誤之外的其他錯(cuò)誤,如源語句的語義信息丟失等。
維基百科包含其百科知識(shí)修訂(wiki-edit)歷史頁面,可以從中提取相應(yīng)數(shù)據(jù)作為“源-目標(biāo)”語句對(duì),其中源語句由較舊的修訂歷史提供,目標(biāo)句是對(duì)應(yīng)較新的連續(xù)修訂歷史提供。除此之外,Lang8作為一個(gè)在線的語言學(xué)習(xí)網(wǎng)站,包含了80多種語言,主要利用社交媒介糾正語言學(xué)習(xí)中的錯(cuò)誤,可以從中挖掘出大量的“源-目標(biāo)”平行句對(duì)。
盡管GEC研究取得了一定的成功,但仍然面臨評(píng)價(jià)指標(biāo)合理性的挑戰(zhàn)。最大匹配分?jǐn)?shù) (Max Match score,M2)和ERRANT是評(píng)估GEC常用的評(píng)測(cè)方法,主要采用基于Levenshtein距離的對(duì)齊策略,計(jì)算將糾正語句轉(zhuǎn)換成人工標(biāo)注的參考語句所需要的編輯(插入、刪除、替換)數(shù)量。最大匹配分?jǐn)?shù)以精確度(P)、召回率(R)、F0.5值為主要評(píng)價(jià)指標(biāo)。計(jì)算公式為:
(1)
(2)
(3)
式中,ei∩gi={e∈ei|?g∈gi,e==g}。其中ei表示GEC系統(tǒng)預(yù)測(cè)的糾正編輯集合,gi表示人工標(biāo)注、標(biāo)準(zhǔn)的糾正編輯的集合。通過計(jì)算GEC系統(tǒng)輸出的糾正編輯集合和人工標(biāo)注的糾正編輯集合之間的匹配程度來衡量系統(tǒng)的性能。
除此之外,Napoles等人[8]提出GLEU評(píng)價(jià)句子的流利度,主要計(jì)算糾正語句相對(duì)于參考語句的n-gram重疊度。原始輸入的錯(cuò)誤句簡(jiǎn)稱源句S,人工標(biāo)注的標(biāo)準(zhǔn)句稱為參考句R。英語語法糾正系統(tǒng)輸出的糾正句子稱為假設(shè)句C,Wn表示均勻分布的權(quán)重。計(jì)算假設(shè)句相對(duì)于參考句的n-gram精度Pn,計(jì)算公式為:
(4)
(5)
在BP(brevity penalty) 的計(jì)算公式中,c為假設(shè)句的長(zhǎng)度,r為參考句的長(zhǎng)度。GLEU計(jì)算假設(shè)句與參考句之間的n-gram精度,只適用JFLEG數(shù)據(jù)集。
該文首先利用基于規(guī)則的數(shù)據(jù)增廣策略合成訓(xùn)練數(shù)據(jù),并與學(xué)習(xí)者語料共同訓(xùn)練GEG模型。之后利用GEG模型合成的訓(xùn)練數(shù)據(jù)與學(xué)習(xí)者語料訓(xùn)練GEC模型。受Popel等人[9]交替訓(xùn)練英語到捷克語的翻譯模型工作啟發(fā),使用GEC模型糾正學(xué)習(xí)者語料中的源句,將糾正的結(jié)果與學(xué)習(xí)者語料中的標(biāo)準(zhǔn)參考句重新構(gòu)成平行語料加入到GEG模型的訓(xùn)練數(shù)據(jù)中,再次訓(xùn)練GEG模型。模型重復(fù)多次訓(xùn)練直到滿足系統(tǒng)需要為止,其基本操作過程如圖1所示。
圖1 交替訓(xùn)練模型
人工標(biāo)注語料庫的規(guī)模與數(shù)量限制了基于數(shù)據(jù)驅(qū)動(dòng)的神經(jīng)機(jī)器翻譯模型的性能,因此,如何通過數(shù)據(jù)增廣擴(kuò)展語料庫規(guī)模是提高語法糾錯(cuò)性能的重要因素之一。對(duì)于基于規(guī)則的數(shù)據(jù)增廣方法,在單詞級(jí)別上執(zhí)行插入、替換、交換、刪除四種操作,該文四種規(guī)則的引入概率與Abhijeet等人[10]保持一致,分別為0.3、0.25、0.25、0.2。其次,通過對(duì)學(xué)習(xí)者語料庫中錯(cuò)誤類型的分布情況[11]分析,發(fā)現(xiàn)動(dòng)詞(約7%)、名詞(約4.5%)、冠詞(約10.86%)、拼寫(約9.59%)、介詞(約11.2%)和標(biāo)點(diǎn)錯(cuò)誤(約9.7%)占比較高。針對(duì)這些錯(cuò)誤類型,分別建立動(dòng)詞、名詞、冠詞、介詞、拼寫和標(biāo)點(diǎn)混淆集,混淆集示例如表1所示。
表1 不同詞性候選集示例
合成數(shù)據(jù)的過程中,對(duì)選中的待操作詞隨機(jī)執(zhí)行插入、刪除、替換、交換四種操作之一。對(duì)于替換規(guī)則,從創(chuàng)建的不同詞性候選集中隨機(jī)選擇一個(gè)單詞進(jìn)行替換。通過人工規(guī)則構(gòu)建種類豐富的多詞性錯(cuò)誤可以為GEG和GEC模型提供更多的訓(xùn)練數(shù)據(jù)。
GEG和GEC模型均使用基于注意力(attention)機(jī)制的Transformer結(jié)構(gòu),將GEC和GEG作為基于編碼器-解碼器的機(jī)器翻譯任務(wù),反向傳播最小化系統(tǒng)輸出與真實(shí)輸出之間的交叉熵?fù)p失函數(shù)。該模型采用開源的FAIR Sequence-to-Sequence工具包實(shí)現(xiàn),GEG系統(tǒng)解碼使用beam search(束搜索)解碼。詞向量的維度和目標(biāo)端的維度為512,編碼器和解碼器包含的網(wǎng)絡(luò)層為6層,設(shè)置前向神經(jīng)網(wǎng)絡(luò)子層的隱含層(FFN)維度為4 096,dropout率設(shè)置為0.2,優(yōu)化算法使用Adam,8個(gè)注意力頭,初始化學(xué)習(xí)速率為0.002,標(biāo)簽平滑率設(shè)置為0.2,warmup步長(zhǎng)為16 000。GEC系統(tǒng)使用C-Copy-Transformer結(jié)構(gòu),模型參數(shù)與Zhao等人[12]的設(shè)置保持一致。
2.2.1 Encoder
Transformer中attention機(jī)制讓模型關(guān)注到上下文中有價(jià)值的信息。當(dāng)對(duì)詞進(jìn)行編碼時(shí),不僅僅考慮當(dāng)前詞,還考慮當(dāng)前詞的上下文語境。把整個(gè)上下文語境融入到當(dāng)前的詞向量當(dāng)中。Transformer模型沒有循環(huán)神經(jīng)網(wǎng)絡(luò)的迭代操作,位置信息的融合使模型更容易識(shí)別出語言中的順序關(guān)系。編碼器由若干層組成,每層包括兩個(gè)子層,分別是自注意力層和前饋神經(jīng)網(wǎng)絡(luò)層。多注意力層拼接成多頭注意力層,如公式(6)~公式(9)所示。
attention_output=Attention(Q,K,V)
(6)
MultiHead(Q,K,V)=Concat(head1,head2,…,headn)W0
(7)
(8)
(9)
2.2.2 Decoder
解碼器與編碼器層數(shù)一致,包括自注意力層、編碼-解碼注意力層和前饋神經(jīng)網(wǎng)絡(luò)層,編碼-解碼注意力層將幫助解碼器將注意力集中在輸入句子的相關(guān)部分。編碼器和解碼器中的每一個(gè)子層采用殘差連接和歸一化,歸一化把神經(jīng)網(wǎng)絡(luò)中的隱藏層歸一到標(biāo)準(zhǔn)正態(tài)分布,加快訓(xùn)練速度和收斂速度。
不同于以往工作將基于規(guī)則的數(shù)據(jù)增廣方法合成的訓(xùn)練數(shù)據(jù)直接訓(xùn)練GEC模型,該文首先將其用于GEG模型的預(yù)訓(xùn)練,然后再使用學(xué)習(xí)者語料庫微調(diào)GEG模型,期望通過不同數(shù)據(jù)增廣方法的融合提高合成數(shù)據(jù)的質(zhì)量。與Sennrich等人[13]的反向翻譯模型近似,使用的目標(biāo)端句子均具有真實(shí)性。為了進(jìn)一步提高語法糾錯(cuò)的性能,使用GEC模型糾正學(xué)習(xí)者語料庫中的訓(xùn)練數(shù)據(jù),并將其糾正結(jié)果與訓(xùn)練集中的標(biāo)準(zhǔn)參考句構(gòu)成平行語料,作為重復(fù)訓(xùn)練GEG模型的擴(kuò)充數(shù)據(jù),因而GEG模型將產(chǎn)生更多接近學(xué)習(xí)者語料庫的訓(xùn)練數(shù)據(jù)。
在現(xiàn)有NUCLE、FCE、W&I+LOCNESS三種學(xué)習(xí)者語料庫[11]及單語語料庫One Billion Word[14]上進(jìn)行驗(yàn)證實(shí)驗(yàn)。除此之外,為了方便與現(xiàn)有工作做對(duì)比,在最后使用Lang-8語料微調(diào)GEC模型。表2給出了使用的訓(xùn)練語料及相應(yīng)的數(shù)據(jù)規(guī)模。通過統(tǒng)計(jì)學(xué)習(xí)者語料庫中的句長(zhǎng)分布,約束單語語料庫中句子的長(zhǎng)度。其中單語語料庫中訓(xùn)練數(shù)據(jù)長(zhǎng)度均被規(guī)約到5至100的標(biāo)記(token)長(zhǎng)度大小。
表2 訓(xùn)練語料規(guī)模
實(shí)驗(yàn)將使用常用的CoNLL-2014測(cè)試集和M2作為評(píng)測(cè)指標(biāo),除此之外,還使用JFLEG測(cè)試集和GLEU值對(duì)GEC的糾正結(jié)果進(jìn)行流利程度分析。
3.2.1 基于規(guī)則的數(shù)據(jù)增廣方法
步驟1:使用現(xiàn)有的三種學(xué)習(xí)者語料(NUCLE、FCE、W&I+LOCNESS)訓(xùn)練GEC模型,在CoNLL-2014測(cè)試集上驗(yàn)證結(jié)果。
步驟2:使用基于規(guī)則的數(shù)據(jù)增廣方法分別生成文件規(guī)模為20 M(句子數(shù)量約190 K)、80 M、140 M、200 M的訓(xùn)練數(shù)據(jù),用不同規(guī)模的合成數(shù)據(jù)分別訓(xùn)練GEC模型,對(duì)比使用不同規(guī)模數(shù)據(jù)對(duì)訓(xùn)練GEC的影響。
3.2.2 基于規(guī)則與反向翻譯的數(shù)據(jù)增廣融合使用過程
步驟1(GEG1→GEC):使用三種學(xué)習(xí)者語料訓(xùn)練基于反向翻譯的錯(cuò)誤生成模型(GEG1),再使用GEG2模型生成訓(xùn)練數(shù)據(jù),最后用生成的數(shù)據(jù)訓(xùn)練GEC模型。
步驟2(GEG2→GEC):為了進(jìn)一步優(yōu)化GEG1模型,嘗試將兩種數(shù)據(jù)增廣方法結(jié)合使用。首先使用基于規(guī)則的合成數(shù)據(jù)預(yù)訓(xùn)練GEG,再用學(xué)習(xí)者語料對(duì)其微調(diào),得到優(yōu)化后的錯(cuò)誤生成模型GEG2。使用GEG2模型處理單語語料,分別生成文件規(guī)模為20 M、80 M、140 M、200 M的合成數(shù)據(jù),并將合成的數(shù)據(jù)用于GEC模型的訓(xùn)練,以此來驗(yàn)證不同數(shù)據(jù)增廣方法的融合使用效果。
步驟1:選取3.2.2節(jié)中訓(xùn)練得到的性能最佳的GEC模型處理三種學(xué)習(xí)者語料庫中的源句,將模型輸出的候選句與學(xué)習(xí)者語料庫中的標(biāo)準(zhǔn)參考句合成訓(xùn)練集。與基于規(guī)則的數(shù)據(jù)增廣方法合成的訓(xùn)練數(shù)據(jù)混合后再次訓(xùn)練GEG,并使用三種學(xué)習(xí)者語料庫微調(diào)得到錯(cuò)誤生成模型GEG3。
步驟2(GEG3→GEC):使用GEG3模型處理單語語料庫,再次生成20 M、80 M、140 M、200 M不同規(guī)模的合成數(shù)據(jù),訓(xùn)練GEC模型。
步驟3:在現(xiàn)有合成數(shù)據(jù)的基礎(chǔ)上,為了進(jìn)一步提高GEC模型的性能,嘗試擴(kuò)大預(yù)訓(xùn)練數(shù)據(jù)規(guī)模。
在單語數(shù)據(jù)充足的情況下,將研究如何使用較少的標(biāo)注數(shù)據(jù)最大化模型性能。相對(duì)于有限的標(biāo)注數(shù)據(jù),嘗試使用較多的單語數(shù)據(jù)自動(dòng)生成學(xué)習(xí)者語料以便提高系統(tǒng)性能。共設(shè)置了三組實(shí)驗(yàn):
第一組實(shí)驗(yàn):驗(yàn)證基于規(guī)則的數(shù)據(jù)增廣方法效果。
第二組實(shí)驗(yàn):驗(yàn)證基于規(guī)則和反向翻譯的數(shù)據(jù)增廣方法融合使用的有效性。第三組實(shí)驗(yàn):驗(yàn)證交替訓(xùn)練對(duì)提升GEG模型合成數(shù)據(jù)的質(zhì)量和提高GEC糾錯(cuò)性能的有效性。
3.4.1 基于規(guī)則的數(shù)據(jù)增廣方法結(jié)果
分別使用基于規(guī)則的數(shù)據(jù)增廣方法生成的不同規(guī)模訓(xùn)練數(shù)據(jù),以及學(xué)習(xí)者語料訓(xùn)練GEC模型。其在CoNLL-2014測(cè)試集上的結(jié)果如圖2所示。隨著合成數(shù)據(jù)規(guī)模的不斷增加,GEC模型的F0.5值達(dá)到37.9%,超出僅使用學(xué)習(xí)者語料庫訓(xùn)練GEC模型得到的F0.5值11.4%左右。
圖2 不同規(guī)模數(shù)據(jù)訓(xùn)練的GEC模型性能
3.4.2 基于規(guī)則和反向翻譯的數(shù)據(jù)增廣方法融合使用結(jié)果
在不同數(shù)據(jù)增廣方法融合使用的效果驗(yàn)證過程中,GEG1表示僅使用學(xué)習(xí)者語料庫訓(xùn)練錯(cuò)誤生成模型,GEG2表示融合使用基于規(guī)則和反向翻譯的數(shù)據(jù)增廣方法訓(xùn)練的錯(cuò)誤生成模型。使用GEG模型生成不同規(guī)模合成數(shù)據(jù)訓(xùn)練GEC,其結(jié)果如表3所示。使用GEG1得到最佳GEC模型的F0.5值達(dá)到0.286,使用 GEG2合成的200 M訓(xùn)練數(shù)據(jù)得到的GEC模型性能比前者的P、R、F0.5值分別提高約5.2%、3.9%、4.9%。
表3 利用合成數(shù)據(jù)訓(xùn)練GEC性能對(duì)比
3.4.3 交替訓(xùn)練結(jié)果
如表3模型GEG3→GEC所示,通過交替訓(xùn)練得到的語法錯(cuò)誤生成模型GEG3,其合成的訓(xùn)練數(shù)據(jù)在GEC上的F0.5值達(dá)到0.384,高出利用GEG2模型訓(xùn)練GEC得到的F0.5值約4.1%。
如表4所示,如果在GEC訓(xùn)練過程中加入學(xué)習(xí)者語料進(jìn)行微調(diào),對(duì)于200 M數(shù)據(jù)預(yù)訓(xùn)練GEC而言,利用GEG3合成數(shù)據(jù)訓(xùn)練GEC模型(GEG3→GEC)的P、R、F0.5值分別達(dá)到0.659、0.32、0.543。進(jìn)一步擴(kuò)大預(yù)訓(xùn)練數(shù)據(jù)規(guī)模,將由GEG3合成的200 M訓(xùn)練數(shù)據(jù)與基于規(guī)則的數(shù)據(jù)增廣方法合成的200 M數(shù)據(jù)混合后預(yù)訓(xùn)練GEC模型,然后使用三種學(xué)習(xí)者語料微調(diào)。由表4的實(shí)驗(yàn)結(jié)果可知,數(shù)據(jù)規(guī)模擴(kuò)大后,P、R、F0.5值分別達(dá)到0.677、0.338、0.564,超出不使用學(xué)習(xí)者語料微調(diào)GEC模型20%、2%、13%左右。
表4 交替訓(xùn)練及GEC預(yù)訓(xùn)練模型數(shù)據(jù)擴(kuò)充實(shí)驗(yàn)結(jié)果對(duì)比
續(xù)表4
為了更好地與現(xiàn)有工作對(duì)比,在三種學(xué)習(xí)者語料的基礎(chǔ)上加入Lang-8語料,僅用于GEC模型的微調(diào),模型性能進(jìn)一步提高。在沒有使用多模型集成和重排序等情況下,GEG3的值F0.5達(dá)到0.62,如表5所示。其中,在JFLEG測(cè)試集上的GLEU值達(dá)到0.61,超出Xie等人[15]在JFLEG測(cè)試集結(jié)果約5%。該文GEC模型精確度達(dá)到0.73,在糾正英語錯(cuò)誤的準(zhǔn)確度上具有明顯優(yōu)勢(shì)。
表5 現(xiàn)有工作實(shí)驗(yàn)結(jié)果對(duì)比
該文使用GEG1、GEG2、GEG3模型合成的200 M訓(xùn)練數(shù)據(jù)與三種學(xué)習(xí)者語料共同訓(xùn)練三種語法錯(cuò)誤糾正模型,相應(yīng)語法錯(cuò)誤糾正模型的糾正句分別為糾正句1、糾正句2、糾正句3。源句是包含語法錯(cuò)誤句,參考句是標(biāo)準(zhǔn)的糾正句,CoNLL-2014測(cè)試集中的部分實(shí)例糾正結(jié)果如表6所示。結(jié)果表明,使用GEG3模型合成的數(shù)據(jù)訓(xùn)練英語語法糾錯(cuò)模型的性能優(yōu)于GEG1、GEG2模型。
由表6示例1所示,通過糾正句1,發(fā)現(xiàn)模型可以對(duì)冠詞錯(cuò)誤較好的初始糾正,這得益于構(gòu)建詞性候選集融入的冠詞錯(cuò)誤。糾正句2所有錯(cuò)誤均被糾正,源于規(guī)則與反向翻譯的數(shù)據(jù)增廣方法融合使用,使生成的訓(xùn)練數(shù)據(jù)覆蓋更加豐富的錯(cuò)誤類型,合成的數(shù)據(jù)不受固定規(guī)則、固定候選集的的限制,進(jìn)一步提高GEC模型糾正動(dòng)詞等錯(cuò)誤的性能。
表6 GEC模型在不同錯(cuò)誤語句中的表現(xiàn)
如示例2所示,糾正句1與源句相比,不存在標(biāo)點(diǎn)錯(cuò)誤,GEC模型對(duì)標(biāo)點(diǎn)錯(cuò)誤有一定識(shí)別糾正能力。但是糾正句2并沒有進(jìn)一步糾正,說明在某一上下文語境中,GEC模型對(duì)特定語法錯(cuò)誤的糾正仍存在缺陷。交替訓(xùn)練的使用,部分程度彌補(bǔ)了此缺陷,如糾正句3所示。GEC模型對(duì)錯(cuò)誤的檢測(cè)與糾正力度進(jìn)一步提高,但是仍然存在部分錯(cuò)誤未被糾正。
如示例3,通過該文建立的基于規(guī)則的數(shù)據(jù)增廣方法,合成的訓(xùn)練數(shù)據(jù)存在固定詞語搭配失誤、介詞搭配失誤、拼寫錯(cuò)誤等類型,因此訓(xùn)練得到的GEC模型一定程度強(qiáng)化了對(duì)此類型的識(shí)別與糾正。
使用基于規(guī)則的數(shù)據(jù)增廣方法,隨著數(shù)據(jù)規(guī)模的不斷增加,訓(xùn)練得到的語法糾錯(cuò)模型性能不斷提高。當(dāng)使用200 M合成數(shù)據(jù)訓(xùn)練GEC模型時(shí),其在召回率上的表現(xiàn)超過僅使用學(xué)習(xí)者語料訓(xùn)練GEC模型的表現(xiàn),這得益于該文使用的數(shù)據(jù)增廣策略,即在生成訓(xùn)練數(shù)據(jù)的過程中,融入不同單詞的詞性錯(cuò)誤。與簡(jiǎn)單的從詞表中隨機(jī)選詞替換相比,錯(cuò)誤類型更加豐富且具有針對(duì)性,召回率得到顯著提高。
該文將規(guī)則方法合成的數(shù)據(jù)與學(xué)習(xí)者語料共同訓(xùn)練錯(cuò)誤生成模型。與直接將規(guī)則數(shù)據(jù)訓(xùn)練GEC模型相比,使用前者錯(cuò)誤生成模型合成的數(shù)據(jù)訓(xùn)練GEC的效果更佳,表明不同數(shù)據(jù)增廣方法融合使用的有效性。如表3所示,與GEG1模型相比,使用GEG2模型產(chǎn)生的80 M合成數(shù)據(jù)訓(xùn)練GEC模型,提高了糾錯(cuò)模型的召回率和F0.5值。原因是相比于基于規(guī)則的數(shù)據(jù)增廣方法,基于反向翻譯的數(shù)據(jù)增廣方法為模型提供更加豐富的訓(xùn)練信息。同時(shí),規(guī)則合成數(shù)據(jù)的使用加強(qiáng)了模型對(duì)特定規(guī)則錯(cuò)誤的檢測(cè)與糾正,最終提高模型的召回率。
由表3可以看出,通過GEG模型和GEC模型的交替訓(xùn)練,再次提高了GEG3的性能。由于交替訓(xùn)練不斷強(qiáng)化模型識(shí)別不易檢測(cè)的錯(cuò)誤,明顯改進(jìn)錯(cuò)誤生成模型合成數(shù)據(jù)的質(zhì)量,進(jìn)而提高GEC模型性能。GEC模型的提高還得益于學(xué)習(xí)者語料的多次使用:GEG1僅使用規(guī)則數(shù)據(jù)訓(xùn)練,未使用學(xué)習(xí)者語料;GEG2模型在使用規(guī)則數(shù)據(jù)預(yù)訓(xùn)練的基礎(chǔ)上使用學(xué)習(xí)者語料微調(diào);GEG3與GEG2模型相比,訓(xùn)練數(shù)據(jù)再次增加GEC模型糾正學(xué)習(xí)者語料后的數(shù)據(jù)。
如表4所示,200 M GEG3模型合成數(shù)據(jù)與學(xué)習(xí)者語料對(duì)GEC模型預(yù)訓(xùn)練、微調(diào)的方法比使用同規(guī)模合成數(shù)據(jù)、訓(xùn)練方式的GEG1、GEG2模型取得更優(yōu)的結(jié)果,原因是學(xué)習(xí)者語料的重復(fù)利用,提高模型的性能。將GEC模型預(yù)訓(xùn)練數(shù)據(jù)擴(kuò)增:使用規(guī)模400 M的混合數(shù)據(jù)顯著高于僅使用200 M合成訓(xùn)練的GEC模型,這表明預(yù)訓(xùn)練數(shù)據(jù)的增加一定程度上提高了模型的性能。
如表5所示,文中模型在精確度上優(yōu)于Xie等人提出的模型。由于重復(fù)使用較多的學(xué)習(xí)者語料,模型對(duì)錯(cuò)誤的糾正精確度隨著交替訓(xùn)練不斷被強(qiáng)化。其次,模型在糾正過程中更好地利用語句上下文信息,模型對(duì)于語句流利程度的糾正控制表現(xiàn)較好,在GLEU值上表現(xiàn)超過Xie等人的8%左右。Grundkiewicz等人使用與文中相近規(guī)模的數(shù)據(jù)集,在精確度上低于文中模型。該文使用規(guī)則與反向翻譯融合的數(shù)據(jù)增廣方法,利用不同數(shù)據(jù)增廣方法之間的優(yōu)勢(shì)可以合成質(zhì)量較高的訓(xùn)練數(shù)據(jù),并且交替訓(xùn)練的加入,強(qiáng)化模型學(xué)習(xí)到更多原來未學(xué)習(xí)到的語法信息,為模型的訓(xùn)練帶來較大增益,加強(qiáng)了GEC模型對(duì)錯(cuò)誤類型的識(shí)別與糾正。
在訓(xùn)練數(shù)據(jù)短缺的情況下,如何充分利用豐富的單語數(shù)據(jù)以提高GEC模型的性能變得至關(guān)重要。在大量的單語數(shù)據(jù)下,優(yōu)異的數(shù)據(jù)增廣方法可以使預(yù)訓(xùn)練模型獲得好的初始化參數(shù)。提出利用不同數(shù)據(jù)增廣方法之間的優(yōu)勢(shì)來提高GEG、GEC模型的性能。同時(shí),模型交替訓(xùn)練的加入,明顯改進(jìn)了模型的性能。未來工作中,將繼續(xù)探索GEG、GEC模型的優(yōu)化方法以及探索通過單一錯(cuò)誤糾正、多模型集成、重排序等策略進(jìn)行錯(cuò)誤糾正工作。
計(jì)算機(jī)技術(shù)與發(fā)展2022年10期