劉 歡,劉俊鵬,黃鍇宇,黃德根
(大連理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 大連 116024)
近年來,隨著神經(jīng)機(jī)器翻譯(NMT)模型結(jié)構(gòu)的改進(jìn)[1-3]以及模型容量和數(shù)據(jù)規(guī)模的增加,通用領(lǐng)域高資源語言對(duì)之間的翻譯效果已經(jīng)接近人工水平.然而,NMT模型對(duì)于雙語平行訓(xùn)練數(shù)據(jù)需求量大,翻譯質(zhì)量很大程度上取決于訓(xùn)練數(shù)據(jù)與輸入文本的相關(guān)性.通用領(lǐng)域數(shù)據(jù)上訓(xùn)練的翻譯模型,面對(duì)差異性較大的特定領(lǐng)域輸入文本時(shí)表現(xiàn)不盡人意,而特定領(lǐng)域上往往難以獲取足夠規(guī)模的高質(zhì)量平行語料來支撐NMT模型訓(xùn)練.
利用豐富的域外語料來提升特定領(lǐng)域的模型性能的方法被稱為領(lǐng)域適應(yīng)[4].從數(shù)據(jù)角度,有數(shù)據(jù)增強(qiáng)[5]和領(lǐng)域微調(diào)[6]等領(lǐng)域適應(yīng)方法.從模型角度,Bapna等[7]和Zhu等[8]在預(yù)訓(xùn)練好的模型上,凍結(jié)模型參數(shù),插入多領(lǐng)域的適應(yīng)性模塊,只對(duì)適應(yīng)模塊進(jìn)行微調(diào),使得模型能適應(yīng)多個(gè)領(lǐng)域的輸入.同時(shí),隨著預(yù)訓(xùn)練模式的發(fā)展,mBART[9]、mRASP[10]等大規(guī)模預(yù)訓(xùn)練翻譯模型憑借其龐大的訓(xùn)練數(shù)據(jù)優(yōu)勢(shì),使得模型魯棒性更好,能較好地遷移到特定翻譯任務(wù),改善翻譯效果.
本文針對(duì)旅游口語領(lǐng)域的俄漢低資源機(jī)器翻譯,主要利用通用領(lǐng)域的大規(guī)模俄漢平行語料(http:∥statmt.org/wmt21/triangular-mt-task.html)進(jìn)行數(shù)據(jù)增強(qiáng),并使用多種微調(diào)方法進(jìn)行領(lǐng)域適應(yīng),以改善旅游口語領(lǐng)域俄漢機(jī)器翻譯性能.在數(shù)據(jù)預(yù)處理方面:針對(duì)小規(guī)模的俄漢口語領(lǐng)域數(shù)據(jù),采用長(zhǎng)度比過濾;針對(duì)大規(guī)模的俄漢通用領(lǐng)域數(shù)據(jù),采用長(zhǎng)度比和對(duì)齊模型過濾出質(zhì)量較高的平行句對(duì);然后使用詞占比和語言模型進(jìn)一步來篩選出接近領(lǐng)域內(nèi)的數(shù)據(jù).在模型參數(shù)方面,對(duì)小規(guī)模的旅游口語訓(xùn)練集和大規(guī)模通用領(lǐng)域語料篩選出來的訓(xùn)練集,用不同參數(shù)配置的Transformer模型訓(xùn)練NMT模型.然后對(duì)雙語NMT模型、加入適應(yīng)性模塊的雙語NMT模型和mRASP多語言預(yù)訓(xùn)練模型分別進(jìn)行微調(diào),根據(jù)驗(yàn)證集上的表現(xiàn)選擇最優(yōu)模型.在譯文輸出過程中,對(duì)長(zhǎng)度懲罰因子等參數(shù)進(jìn)行調(diào)優(yōu),最后進(jìn)行了模型平均和后處理.
本文使用第十七屆全國機(jī)器翻譯大會(huì)(CCMT2021)提供的旅游口語領(lǐng)域俄漢平行語料作為領(lǐng)域內(nèi)訓(xùn)練集和驗(yàn)證集,同時(shí)使用WMT2021提供的通用領(lǐng)域俄漢數(shù)據(jù)作為額外數(shù)據(jù).
由于任務(wù)提供的旅游口語領(lǐng)域數(shù)據(jù)匱乏(約4.5萬句對(duì)),直接訓(xùn)練NMT模型的翻譯效果十分有限,因此首先用數(shù)據(jù)增強(qiáng)方法對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充.回譯是一種常見的數(shù)據(jù)增強(qiáng)技術(shù),它通過訓(xùn)練一個(gè)目標(biāo)語言到源語言的反向翻譯模型,然后利用目標(biāo)端單語數(shù)據(jù)生成偽平行語料.但由于沒有足夠規(guī)模的旅游口語單語數(shù)據(jù),因此無法使用回譯方法進(jìn)行數(shù)據(jù)增強(qiáng).從通用平行語料中篩選出與目標(biāo)領(lǐng)域高度相似的數(shù)據(jù)是數(shù)據(jù)擴(kuò)充的另一種方法.本文以WMT2021提供的俄漢翻譯數(shù)據(jù)集作為通用領(lǐng)域數(shù)據(jù),從中選擇靠近旅游口語領(lǐng)域的平行語料.
為此,對(duì)通用平行語料采用以下數(shù)據(jù)篩選方法:(a) Fast-align[11](https:∥github.com/clab/fast_align),對(duì)齊分?jǐn)?shù)能一定程度上反映平行句對(duì)之間的對(duì)齊質(zhì)量,按照對(duì)齊分?jǐn)?shù)的大小排序,去掉得分最低的20%句對(duì);(b) 詞占比[12],過濾出與目標(biāo)領(lǐng)域詞級(jí)重合度較高的平行句對(duì),具體地,對(duì)目標(biāo)領(lǐng)域的漢語句子進(jìn)行分詞,取字長(zhǎng)大于1、詞頻大于2的詞構(gòu)建目標(biāo)詞典,對(duì)通用領(lǐng)域的漢語句子進(jìn)行分詞,選取所有詞均在目標(biāo)詞典中,即目標(biāo)詞占比為100%的句子;(c) 使用KenLM[13](https:∥github.com/kpu/kenlm)語言模型過濾出接近目標(biāo)領(lǐng)域的平行句對(duì),去掉語言模型分?jǐn)?shù)最低的20%句對(duì).
對(duì)旅游領(lǐng)域口語俄漢語料和通用領(lǐng)域俄漢語料進(jìn)行統(tǒng)一預(yù)處理,處理過程如下:1) 過濾平行語料中重復(fù)的句對(duì);2) 去除多余空格及非打印字符;3) 漢語全角字符轉(zhuǎn)換為半角字符;4) 對(duì)俄語使用Moses腳本(https:∥github.com/moses-smt/mosesdecoder)分詞,對(duì)漢語使用Jieba(https:∥github.com/fxsjy/jieba)分詞;5) 對(duì)所有數(shù)據(jù)進(jìn)行子詞長(zhǎng)度及長(zhǎng)度比過濾:最大子詞長(zhǎng)度設(shè)置為250,最大子詞長(zhǎng)度比設(shè)置為2.6) 合并口語語料和通用語料,采用BPE算法[14]分別生成3.2×104大小的俄語和漢語詞表.過濾及預(yù)處理后的語料數(shù)量和平均句子長(zhǎng)度如表1所示.
表1 過濾及預(yù)處理后的訓(xùn)練集語料數(shù)量統(tǒng)計(jì)
由于大規(guī)模高質(zhì)量的訓(xùn)練數(shù)據(jù)往往難以獲取,而應(yīng)用領(lǐng)域又廣泛,因此通用模型不能很好地覆蓋和適應(yīng)所有領(lǐng)域.從領(lǐng)域外的訓(xùn)練數(shù)據(jù)遷移知識(shí),通過微調(diào)來改進(jìn)特定領(lǐng)域內(nèi)的翻譯,是一種高效的做法,并且在許多自然語言處理任務(wù)上都取得了良好的效果.
根據(jù)預(yù)訓(xùn)練模型所含語言翻譯方向的數(shù)量,可以分為傳統(tǒng)的雙語預(yù)訓(xùn)練模型微調(diào)和近期獲得廣泛關(guān)注的多語言預(yù)訓(xùn)練模型微調(diào).對(duì)于NMT而言,由于雙語模型中不存在模型容量競(jìng)爭(zhēng)和語言學(xué)知識(shí)沖突,雙語模型的性能通常會(huì)優(yōu)于同等數(shù)據(jù)規(guī)模下的多語言模型.因此,本文通過引入通用俄漢數(shù)據(jù),訓(xùn)練通用俄漢雙語模型,然后利用旅游口語俄漢數(shù)據(jù)對(duì)預(yù)訓(xùn)練雙語模型微調(diào),以緩解域內(nèi)數(shù)據(jù)稀缺問題.此外,隨著數(shù)據(jù)規(guī)模和模型容量的增加,一些多語言預(yù)訓(xùn)練模型也取得了較好的性能,因此,本文也使用mRASP多語言預(yù)訓(xùn)練翻譯模型進(jìn)行微調(diào).
首先,在通用訓(xùn)練集上訓(xùn)練通用領(lǐng)域的雙語基線模型,在通用模型上使用口語訓(xùn)練集進(jìn)行微調(diào).然后,將通用訓(xùn)練集與旅游口語訓(xùn)練集混合,訓(xùn)練混合模型,在混合模型上再使用口語訓(xùn)練集進(jìn)一步微調(diào).
除了數(shù)據(jù)使用角度,在模型結(jié)構(gòu)上探索領(lǐng)域之間的共性與差異性也是領(lǐng)域適應(yīng)的一種方法.本文使用Bapna等[7]提出的adapter模塊來擴(kuò)展預(yù)訓(xùn)練的NMT模型.如圖1所示,適應(yīng)模塊是添加在編碼器和解碼器的每一層最后的微小前饋組件,這些模塊化的適應(yīng)層可以視為專門針對(duì)特定領(lǐng)域(或特定語言對(duì))的專家,并可以逐步添加多個(gè)模塊.這種解決方案避免了對(duì)整個(gè)NMT系統(tǒng)進(jìn)行微調(diào),而是使用適合目標(biāo)任務(wù)的具有相對(duì)較少參數(shù)的適應(yīng)模塊,更具靈活性.本文對(duì)通用俄漢NMT模型,凍結(jié)模型參數(shù)后在每層前饋網(wǎng)絡(luò)后插入適應(yīng)模塊,再使用口語訓(xùn)練集進(jìn)行微調(diào).圖1中適應(yīng)模塊的輸入矩陣和輸出矩陣,其外部維度與Transformer隱層維度一致,對(duì)于內(nèi)部維度,嘗試了128,256,512三個(gè)具體維度,實(shí)驗(yàn)表明在本任務(wù)上內(nèi)部維度設(shè)置為256較為合理,考慮到篇幅有限,后續(xù)實(shí)驗(yàn)只報(bào)告基于256內(nèi)部維度的結(jié)果.
圖1 加入adapter模塊的模型結(jié)構(gòu)Fig.1 Model structure of adding the adapter modules
近年來,各大企業(yè)發(fā)布的大規(guī)模預(yù)訓(xùn)練模型,因其龐大訓(xùn)練數(shù)據(jù)和自身結(jié)構(gòu)優(yōu)勢(shì),模型魯棒性較好,在各項(xiàng)自然語言處理的下游任務(wù)上微調(diào)取得了較好的效果.在NMT模型中,多語言模型因其容納翻譯方向眾多、部署高效而備受關(guān)注,多語言預(yù)訓(xùn)練翻譯模型的效果也不斷提升,甚至在部分語言對(duì)上超越了雙語翻譯模型.由于mRASP是面向機(jī)器翻譯任務(wù)的多語言預(yù)訓(xùn)練模型,其翻譯效果已經(jīng)超過mBART,因此選擇mRASP作為預(yù)訓(xùn)練模型進(jìn)行微調(diào).本文在mRASP多語言預(yù)訓(xùn)練模型上,使用俄漢口語訓(xùn)練集進(jìn)行微調(diào).
模型平均[15-16]可以提升模型魯棒性,有助于提高翻譯質(zhì)量.模型平均是將同一個(gè)模型在訓(xùn)練的不同時(shí)刻保存的模型進(jìn)行參數(shù)平均,通常選擇模型基本收斂時(shí)對(duì)應(yīng)的最后N個(gè)時(shí)刻或是訓(xùn)練過程中得分最高的N個(gè)時(shí)刻的參數(shù),以同等權(quán)重對(duì)參數(shù)進(jìn)行平均,得到魯棒性更強(qiáng)的模型.
由于BLEU 指標(biāo)偏向于較短的翻譯結(jié)果,因此通常在解碼搜索時(shí)使用長(zhǎng)度懲罰因子進(jìn)行約束.長(zhǎng)度懲罰因子越大,解碼生成的譯文越長(zhǎng).對(duì)于不同語言和領(lǐng)域的翻譯任務(wù),默認(rèn)的長(zhǎng)度懲罰因子不一定是最佳選擇.如表1所示,旅游口語語料的平均句長(zhǎng)小于通用語料的平均句長(zhǎng),在預(yù)訓(xùn)練階段,通用領(lǐng)域數(shù)據(jù)訓(xùn)練出來的模型更傾向生成長(zhǎng)句子,為了更好地適應(yīng)口語領(lǐng)域的短句風(fēng)格,在譯碼時(shí)對(duì)長(zhǎng)度懲罰因子進(jìn)行了分析和調(diào)優(yōu).
由于數(shù)據(jù)預(yù)處理階段,驗(yàn)證集和訓(xùn)練集經(jīng)過了相同的全半角轉(zhuǎn)換處理后,除了常見的中文標(biāo)點(diǎn)符號(hào),如“(”“:”“?”等,其余標(biāo)點(diǎn)被轉(zhuǎn)換成了半角.因此,后處理主要對(duì)生成譯文的半角標(biāo)點(diǎn)符號(hào)進(jìn)行了還原,與驗(yàn)證集參考譯文保持一致.
所有實(shí)驗(yàn)基于開源框架Fairseq,并使用單張48 GB的Nvidia RTX A6000顯卡進(jìn)行訓(xùn)練和測(cè)試.對(duì)于Transformer模型,在訓(xùn)練數(shù)據(jù)充足的情況下,增加模型容量能有效地提高翻譯性能,而訓(xùn)練數(shù)據(jù)稀缺時(shí),適當(dāng)減少隱層表示維度、編碼器解碼器堆疊層數(shù)反而更有益[17].基線1采用2層編碼器2層解碼器的淺層Transformer結(jié)構(gòu),注意力頭數(shù)為2,詞向量和隱層維度均為512,前饋神經(jīng)網(wǎng)絡(luò)的隱層維度為2 048;基線2和基線3使用Transformer-big參數(shù)設(shè)置.在不同的模型架構(gòu)上測(cè)試dropout以獲得合適的參數(shù)值,對(duì)于淺層模型,dropout設(shè)置為0.3,activation-dropout和attention-dropout設(shè)置為0.2;對(duì)于big模型,dropout設(shè)置為0.3,activation-dropout和attention-dropout均設(shè)置為0.
使用Adam優(yōu)化器,β1=0.9,β2=0.98,warm-up步數(shù)為4 000,每個(gè)批次的最大子詞數(shù)量為16 384(訓(xùn)練和微調(diào)數(shù)據(jù)在5萬以下時(shí)調(diào)整為8 192).預(yù)訓(xùn)練階段,設(shè)置學(xué)習(xí)率為5×10-4,每2 000步保存一次模型,patience設(shè)置為10.微調(diào)階段,由于不同微調(diào)方法的收斂速度不同,訓(xùn)練步數(shù)也有所不同,整體微調(diào)和adapter微調(diào)的最大步數(shù)分別設(shè)置為1×104和2×104步.每個(gè)微調(diào)模型都嘗試5×10-4和4×10-5兩種學(xué)習(xí)率,每200步設(shè)置檢查點(diǎn)并計(jì)算BLEU分?jǐn)?shù).所有微調(diào)方法使用的數(shù)據(jù)均為口語訓(xùn)練集.
1) 主要實(shí)驗(yàn)結(jié)果
表2展示了不同系統(tǒng)在驗(yàn)證集上的BLEU分?jǐn)?shù),及使用微調(diào)技術(shù)后相對(duì)各基線模型的提升,所有分?jǐn)?shù)均使用sacrebleu(https:∥github.com/mjpost/sacrebleu)計(jì)算基于字的BLEU4[18]值.由于mRASP生成譯文的標(biāo)點(diǎn)符號(hào)為全角,與驗(yàn)證集參考答案一致,而基線1~3及其微調(diào)模型生成譯文的標(biāo)點(diǎn)符號(hào)為全角,因標(biāo)點(diǎn)符號(hào)的全半角不統(tǒng)一會(huì)造成BLEU略低,為了公平比較,將各模型譯文與參考答案全半角統(tǒng)一后計(jì)算BLEU.表2報(bào)告的數(shù)值均為各模型在合適的學(xué)習(xí)率下,經(jīng)過全半角處理的單個(gè)模型最高結(jié)果.
表2展示了不同規(guī)模和領(lǐng)域的訓(xùn)練數(shù)據(jù)下,各基
表2 不同系統(tǒng)在驗(yàn)證集的測(cè)試結(jié)果
線模型及其微調(diào)的結(jié)果.#1、#2、#3為雙語模型,訓(xùn)練數(shù)據(jù)分別為旅游口語訓(xùn)練集、通用領(lǐng)域訓(xùn)練集、旅游口語和通用領(lǐng)域訓(xùn)練集,數(shù)據(jù)規(guī)模逐漸增大.可以看到,隨著訓(xùn)練數(shù)據(jù)和模型容量的增加,#1、#2、#3雙語基線模型的BLEU分?jǐn)?shù)明顯提升,尤其是#3混合模型,混合了目標(biāo)領(lǐng)域數(shù)據(jù)從頭訓(xùn)練,相較#2通用模型的BLEU值提升了1.30個(gè)百分點(diǎn).#4為mRASP語言預(yù)訓(xùn)練模型,訓(xùn)練數(shù)據(jù)為32個(gè)語言對(duì)上的1.97億平行句對(duì),對(duì)于未見的俄漢驗(yàn)證集BLEU值只有0.32%,mRASP 預(yù)訓(xùn)練模型通常需要在特定下游任務(wù)上微調(diào).
在各個(gè)雙語和多語言預(yù)訓(xùn)練模型上分別使用傳統(tǒng)的整體微調(diào)、插入Adapter適應(yīng)模塊兩種微調(diào)方法.兩種微調(diào)過程的BLEU變化曲線如圖2所示.整體微調(diào)會(huì)改變模型整體參數(shù)狀態(tài),收斂速度快、無需增加額外模型容量,但是對(duì)學(xué)習(xí)率十分敏感,容易過擬合.Adapter微調(diào)方法會(huì)額外增加模型容量,并且只對(duì)增加部分的參數(shù)進(jìn)行更新,但是微調(diào)過程更具魯棒性,不易過擬合.另外,Adapter微調(diào)在通用雙語模型和mRASP模型的表現(xiàn)有較大差異,這是由于雙語模型的訓(xùn)練數(shù)據(jù)和微調(diào)數(shù)據(jù)較相似,而多語言模型需要較長(zhǎng)訓(xùn)練時(shí)間去擬合單個(gè)語言方向的微調(diào)數(shù)據(jù).
圖2 雙語模型和多語言模型的微調(diào)變化趨勢(shì)Fig.2 Fine-tuning trends of bilingual model and multilingual model
如表2所示,在通用雙語模型和混合雙語模型上,整體微調(diào)方法的BLEU值分別提升了2.45和1.57個(gè)百分點(diǎn),Adapter微調(diào)方法的BLEU值分別提升了2.76和1.99個(gè)百分點(diǎn);而在mRASP多語言模型上,由于額外加入的模塊收斂較慢,擬合難度較大,Adapter微調(diào)不如整體微調(diào)方法.mRASP模型直接微調(diào)獲得了最好的效果,相比其它模型結(jié)果,微調(diào)效果提升明顯.
2) 模型平均和后處理
以#3混合雙語模型為例,選擇微調(diào)階段BLEU值最高的4個(gè)模型進(jìn)行參數(shù)平均,實(shí)驗(yàn)結(jié)果如表3所示.由于微調(diào)階段模型檢查點(diǎn)設(shè)置得較為緊密(200步),因此單個(gè)模型的BLEU分?jǐn)?shù)較為突出,模型平均在BLEU分?jǐn)?shù)上的影響并不明顯.對(duì)譯文進(jìn)行標(biāo)點(diǎn)符號(hào)的后處理能進(jìn)一步提高BLEU分?jǐn)?shù).
表3 模型平均和后處理的BLEU分?jǐn)?shù)
3) 長(zhǎng)度懲罰因子
以#2通用雙語模型為例,當(dāng)模型基本收斂時(shí),將束搜索大小固定為5,用驗(yàn)證集BLEU值進(jìn)行評(píng)估,選擇最合適的長(zhǎng)度懲罰因子.實(shí)驗(yàn)結(jié)果如表4所示.將長(zhǎng)度懲罰因子α調(diào)整到合適范圍會(huì)對(duì)BLEU值產(chǎn)生正面影響,對(duì)于句子長(zhǎng)度偏短的口語領(lǐng)域驗(yàn)證集,過大的長(zhǎng)度懲罰因子可能會(huì)導(dǎo)致束搜索無法選擇正確的翻譯結(jié)果.
表4 長(zhǎng)度懲罰因子對(duì)BLEU分?jǐn)?shù)的影響
表5展示了測(cè)試集源句及本系統(tǒng)生成譯文的例子,其中參考譯文來自谷歌翻譯.相比于僅使用域內(nèi)數(shù)據(jù)訓(xùn)練的#1口語雙語模型的譯文,#3+adapter微調(diào)模型和mRASP+直接微調(diào)模型在BLEU值提高的同時(shí),譯文質(zhì)量均有所改善.
低資源神經(jīng)機(jī)器翻譯往往具有集外詞影響翻譯性能的問題,使用BPE算法進(jìn)行較小粒度的翻譯在一定程度上能緩解集外詞影響.然而對(duì)于俄漢機(jī)器翻譯,僅使用子詞切分并不能有效解決具有組合詞義的集外詞現(xiàn)象,如表5源句中的“урок”單獨(dú)出現(xiàn)時(shí)翻譯為“教訓(xùn)”,是訓(xùn)練集中的高頻詞,“на урок”組合出現(xiàn)時(shí)翻譯為“上課”,該組合在訓(xùn)練集中并未出現(xiàn)過,#3+adapter微調(diào)模型模型產(chǎn)生了錯(cuò)譯.mRASP直接微調(diào)模型也未能很好地翻譯這個(gè)組合,但由于mRASP多語言預(yù)訓(xùn)練模型所使用的訓(xùn)練數(shù)據(jù)規(guī)模龐大,包含豐富的語義知識(shí),經(jīng)過人工檢查,相比雙語微調(diào)模型,mRASP微調(diào)模型在測(cè)試集上的譯文更流暢,此類詞組錯(cuò)譯情況更少.
表5 源句及系統(tǒng)生成譯文示例
本文面向CCMT2021低資源語言評(píng)測(cè)項(xiàng)目俄漢語言對(duì),介紹了通用語言模型對(duì)特定領(lǐng)域數(shù)據(jù)的領(lǐng)域適應(yīng)方法.主要借助通用領(lǐng)域的大規(guī)模俄漢平行語料來提升旅游口語領(lǐng)域俄漢機(jī)器翻譯性能.融合了詞占比、Fast-align、語言模型等數(shù)據(jù)篩選方法,篩選出與域內(nèi)數(shù)據(jù)相似的域外數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,采用直接微調(diào)、加入領(lǐng)域適應(yīng)模塊微調(diào)以及在mRASP預(yù)訓(xùn)練模型微調(diào),譯碼階段使用合適的長(zhǎng)度懲罰因子,模型平均和后處理,實(shí)驗(yàn)結(jié)果顯示,這些方法能夠明顯提高低資源情況下旅游口語俄漢翻譯的質(zhì)量.