陳奧博, 章浩然, 吳 霖
(1.昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院, 云南 昆明 650500; 2.云南省人工智能重點(diǎn)實(shí)驗(yàn)室, 云南 昆明 650500)
隨著神經(jīng)機(jī)器翻譯的飛速發(fā)展,在高資源語言對(duì)上,其性能已經(jīng)優(yōu)于統(tǒng)計(jì)機(jī)器翻譯。但在低資源語言對(duì)上,神經(jīng)機(jī)器翻譯的性能仍然弱于統(tǒng)計(jì)機(jī)器翻譯[1]。而漢泰語言對(duì)屬于低資源語言對(duì),如何通過數(shù)據(jù)增強(qiáng)方法改善漢泰神經(jīng)機(jī)器翻譯的性能是值得研究的問題。
比較常見的是利用回譯模型獲取偽平行語料,這種方式需要額外訓(xùn)練一個(gè)將目標(biāo)語言翻譯為源語言的翻譯模型,該翻譯模型可以由少量平行語料或單語語料訓(xùn)練得到。但在漢泰語言對(duì)中,由于缺乏平行語料,故而不能訓(xùn)練出高質(zhì)量的回譯模型,因此得到的偽平行語料也較差。
文獻(xiàn)[2-3]中使用迭代回譯的方式改進(jìn)回譯模型,對(duì)兩個(gè)翻譯方向相反的翻譯模型進(jìn)行回譯,并將回譯得到的偽平行語料與干凈平行語料混合,共同輸入到另一個(gè)翻譯模型進(jìn)行訓(xùn)練,以這樣的方法來迭代提高兩個(gè)回譯模型的性能。其生成的偽平行語料質(zhì)量有所提升。而文獻(xiàn)[4-5]中提出將樞軸翻譯與回譯相結(jié)合,利用高資源平行語料來訓(xùn)練回譯模型,以此改善回譯模型的性能,從而提高偽平行語料的質(zhì)量。文獻(xiàn)[6-7]提出了利用生成式對(duì)抗網(wǎng)絡(luò)(GAN)的方法來提高回譯模型的性能。盡管生成式對(duì)抗網(wǎng)絡(luò)在提高翻譯模型性能上存在優(yōu)勢(shì),但文獻(xiàn)[6]提出的判別器只在句子級(jí)上進(jìn)行判斷,無法回傳詞級(jí)信息。Yang Zhen 等人使用蒙特卡羅搜索構(gòu)造的中間句子來反饋詞級(jí)信息[8],但其反饋的詞級(jí)信息受句子質(zhì)量影響較大,難以精準(zhǔn)回傳詞級(jí)信息。
針對(duì)上述問題,本文在生成對(duì)抗網(wǎng)絡(luò)的基礎(chǔ)上,提出一種基于雙判別器的漢泰偽平行句對(duì)生成方法。該方法主要從以下兩個(gè)方面進(jìn)行改進(jìn):
1) 在以回譯模型作為生成器,以樞軸語言的篩選模型作為判別器的基礎(chǔ)上,進(jìn)一步構(gòu)建漢語-泰語判別器,以此來提高判別器判斷譯文質(zhì)量的準(zhǔn)確性,提高生成器對(duì)漢泰數(shù)據(jù)集概率分布的擬合程度。
2) 提出基于詞性的中間句子構(gòu)造方法,并以原句子與中間句子的評(píng)估分?jǐn)?shù)之差作為最終反饋分?jǐn)?shù),更為準(zhǔn)確地將判別器的評(píng)估反饋到生成器中。
基于雙判別器的漢泰偽平行句對(duì)生成方法包含三個(gè)部分,分別為基于Transformer[9]的翻譯模型、雙判別器的構(gòu)建以及融入基于詞性中間句子構(gòu)造方法的對(duì)抗網(wǎng)絡(luò),其中,基于雙判別器的生成式對(duì)抗網(wǎng)絡(luò)框架圖如圖1 所示。
圖1 基于雙判別器的生成式對(duì)抗網(wǎng)絡(luò)框架圖(英語-漢語)
基于Transformer 的翻譯模型在對(duì)抗訓(xùn)練中作為生成器,用于生成額外的偽平行語料;然后采用基于CNN的篩選模型作為判別器,用于評(píng)估生成器生成的偽平行語料。
采用樞軸翻譯與回譯相結(jié)合的方式生成偽平行語料時(shí),單個(gè)針對(duì)樞軸語言的判別器并不能幫助生成器擬合最終漢泰平行語料的分布,從而導(dǎo)致生成偽平行語料的過程中存在翻譯誤差,這會(huì)降低偽平行語料的質(zhì)量。因此本文額外添加一個(gè)新判別器,幫助生成器擬合漢泰平行語料的分布。
由于傳統(tǒng)的蒙特卡羅搜索方法在構(gòu)建中間句子時(shí),受上下文影響較大,因此本文提出基于詞性的中間句子構(gòu)造方法(在后文中稱為詞性替換),基于目標(biāo)詞的詞性信息,分別利用詞性相同和詞性相異的詞替換目標(biāo)詞來構(gòu)造中間句子,公式如下:
式中:Rewardt代表目標(biāo)句子中第t個(gè)詞的對(duì)齊分?jǐn)?shù);N代表生成器(翻譯模型)生成的目標(biāo)句子;Sametk代表由詞性相似的詞構(gòu)造的中間句子,Sametk=N1,N2,…,St,…,NT;Difftk代表由詞性相異的詞構(gòu)造的中間句子,Difftk=N1,N2,…,Dt,…,NT;D(X,·)代表目標(biāo)句子或中間句子的對(duì)齊分?jǐn)?shù);K是一個(gè)固定值;St和Dt分別代表與Nt詞性相同的詞和詞性相異的詞。
然后對(duì)兩個(gè)判別器(篩選模型)的Rewardt進(jìn)行加權(quán)求和,得到最終并且只取大于0 的部分。如果小于0,則在生成式對(duì)抗網(wǎng)絡(luò)訓(xùn)練時(shí)容易造成訓(xùn)練不穩(wěn)定,從而導(dǎo)致梯度消失,如式(2)所示:
式中:λ是一個(gè)固定值,經(jīng)實(shí)驗(yàn)驗(yàn)證取0.5 時(shí)結(jié)果最好;是原有判別器的反饋;是本文額外構(gòu)建判別器的反饋。最后該將加權(quán)到生成器的損失值中。
為了提高生成式對(duì)抗網(wǎng)絡(luò)的穩(wěn)定性,本文將生成式對(duì)抗網(wǎng)絡(luò)的訓(xùn)練在原始數(shù)據(jù)和樞軸數(shù)據(jù)上交替進(jìn)行。最后,將得到的對(duì)齊分?jǐn)?shù)作為權(quán)重,加權(quán)到生成器的損失函數(shù)中,得到生成器最終的損失值。本文采用了與Li等人類似的Teacher forcing 方法[10]來進(jìn)一步提高生成式對(duì)抗網(wǎng)絡(luò)訓(xùn)練時(shí)的穩(wěn)定性,在進(jìn)行對(duì)抗訓(xùn)練前,先將生成器和判別器在原始數(shù)據(jù)集上訓(xùn)練至收斂,再進(jìn)行對(duì)抗訓(xùn)練。
生成偽平行語料時(shí),分別利用英泰翻譯模型(英泰生成器)和英漢翻譯模型(英漢生成器)在兩個(gè)翻譯方向分別生成泰語-漢語以及漢語-泰語的偽平行語料。本文以生成漢泰偽平行語料為例,首先,將英語作為漢語和泰語的樞軸語言,在生成器部分將英泰平行語料中的英語作為輸入,通過英漢翻譯模型(英漢生成器)將其翻譯為漢語;然后在判別器部分,通過英漢判別器和本文額外添加的漢泰判別器聯(lián)合對(duì)生成器進(jìn)行反饋,使生成器能夠生成不易被判別器察覺的偽平行語料,從而使判別器能夠更準(zhǔn)確地判別出偽平行語料,以此進(jìn)行對(duì)抗訓(xùn)練;最后,使用訓(xùn)練好的英漢翻譯模型(英漢生成器)生成所需要的更高質(zhì)量的英漢偽平行語料。生成漢泰偽平行語料的流程圖如圖2 所示。另一方面,生成泰漢偽平行語料時(shí),需將英漢平行語料中的英語語料作為輸入,通過英泰生成器將英語翻譯為泰語,以此得到質(zhì)量更高的泰漢偽平行語料。
圖2 漢泰偽平行語料生成流程
對(duì)本文采用的數(shù)據(jù)集、實(shí)驗(yàn)設(shè)置以及幾種實(shí)驗(yàn)方案進(jìn)行詳細(xì)介紹。
本文的漢泰、英泰和英漢平行語料均來自于Opus[11]語料庫,并且借鑒了OpusFilter 的方法[12]對(duì)漢泰、英泰和英漢平行語料進(jìn)行初步過濾。從Opus 中抽取20 萬句漢泰平行語料作為訓(xùn)練集,抽取2 000 句作為驗(yàn)證集,同時(shí)抽取2 000 句作為測(cè)試集;英泰和英漢平行語料則抽取出100 萬句作為訓(xùn)練集,同樣也分別抽取2 000 句作為驗(yàn)證集和測(cè)試集。并且從Opus 中分別抽取同領(lǐng)域1 000 萬句的漢語單語語料和泰語單語語料,用于訓(xùn)練語言模型和對(duì)比。其中漢語采用jieba 進(jìn)行分詞,泰語采用pythainlp[13]進(jìn)行分詞。
本文所有實(shí)驗(yàn)均在TensorFlow 2.2 框架上實(shí)現(xiàn),并采用一張NVIDIA GPU(GTX Titan X)來訓(xùn)練模型。實(shí)驗(yàn)中所有的翻譯模型均為Transformer,編碼器和解碼器均采用默認(rèn)的6 層,注意力頭數(shù)設(shè)置為8,詞嵌入維度設(shè)置為512,隱藏層維度設(shè)置為512,參數(shù)優(yōu)化器選擇Adam 優(yōu)化器,dropout 設(shè)置為0.1,學(xué)習(xí)率設(shè)置為5×10-5,對(duì)抗訓(xùn)練時(shí)學(xué)習(xí)率設(shè)置為1×10-5,批次大小設(shè)置為64,詞匯表大小設(shè)置為50 000。在偽平行語料生成階段,采用集束搜索算法進(jìn)行生成,集束寬度設(shè)置為4。
本文采用BLEU[14]作為評(píng)價(jià)指標(biāo),為了保證實(shí)驗(yàn)結(jié)果的可靠性,每組實(shí)驗(yàn)結(jié)果的BLEU 值都是通過相同的漢泰測(cè)試集進(jìn)行實(shí)驗(yàn)得到。在實(shí)驗(yàn)中,除了直接訓(xùn)練方法使用的語料為20 萬真實(shí)漢泰平行語料外,其他方法均采用20 萬真實(shí)漢泰平行語料和20 萬偽漢泰平行語料進(jìn)行混合訓(xùn)練。
2.3.1 不同數(shù)據(jù)增強(qiáng)方法的性能對(duì)比
為了驗(yàn)證本文生成偽平行語料的有效性,分別與回譯方法、文獻(xiàn)[4]方法、文獻(xiàn)[5]方法、生成器(GAN)方法進(jìn)行對(duì)比。
首先由各方法生成偽平行語料等比混合原始語料作為訓(xùn)練集,然后使用該語料訓(xùn)練漢泰翻譯模型,最后由BLEU 值作為評(píng)價(jià)標(biāo)準(zhǔn)。此外,在實(shí)驗(yàn)中需保證每種方法所使用的混合語料大小均相同,同時(shí)在泰漢翻譯方向做相同實(shí)驗(yàn)。
2.3.2 不同判別器對(duì)生成偽平行語料的過濾能力比較
過濾能力的比較是在同一數(shù)據(jù)集上用不同方法進(jìn)行過濾,然后獲取同等規(guī)模的訓(xùn)練語料,最后將過濾后的語料用于訓(xùn)練翻譯模型,將BLEU 值作為評(píng)估標(biāo)準(zhǔn)。本文分別采用LSTM 語言模型、GAN 訓(xùn)練前的判別器、GAN 訓(xùn)練后的判別器以及LSTM 和訓(xùn)練后的判別器雙重過濾等作為過濾方法。
2.3.3 消融實(shí)驗(yàn)
本文共提出兩個(gè)改進(jìn)方案:首先是在原始樞軸語言判別器的基礎(chǔ)上添加一個(gè)擬合,最終訓(xùn)練語料的額外判別器;其次是在進(jìn)行中間句子構(gòu)造時(shí),采用本文提出的基于詞性替換的方法代替蒙特卡羅搜索的方法,以更好地反饋詞級(jí)信息。實(shí)驗(yàn)分別采用單個(gè)原始判別器、單個(gè)額外判別器以及雙判別器三種方案,并利用蒙特卡羅搜索方法和本文提出的詞性替換方法構(gòu)造中間句子,進(jìn)行不同的實(shí)驗(yàn)。
本文從不同角度設(shè)計(jì)并分析了不同條件下得到的增強(qiáng)數(shù)據(jù)在訓(xùn)練翻譯模型時(shí)的表現(xiàn),且均在漢泰和泰漢兩個(gè)翻譯方向做了相同的實(shí)驗(yàn)。
表1 所示為不同的數(shù)據(jù)增強(qiáng)方法在相同數(shù)據(jù)量下訓(xùn)練相同翻譯模型的性能對(duì)比。
表1 不同生成方法訓(xùn)練翻譯模型的BLEU 值
表1 的實(shí)驗(yàn)結(jié)果表明:文獻(xiàn)[5]方法與回譯相比有所提高,這是因?yàn)槲墨I(xiàn)[5]方法存在二次翻譯誤差,它會(huì)導(dǎo)致初始翻譯模型性能上的優(yōu)勢(shì)被掩蓋;而文獻(xiàn)[4]方法與回譯相比有所提高,這是由于文獻(xiàn)[4]方法只存在一次翻譯誤差,同時(shí)初始翻譯模型是由更大規(guī)模的英泰和英漢平行語料上訓(xùn)練得到的,性能更好;生成器(GAN)生成的偽平行語料的質(zhì)量要高于文獻(xiàn)[4]方法生成的偽平行語料的質(zhì)量;本文提出的雙判別器+詞性替換方法由于緩解了蒙特卡羅搜索方法難以精準(zhǔn)回傳詞級(jí)信息所產(chǎn)生的誤差問題,而且額外判別器使生成語料更貼近原始訓(xùn)練語料,因此所生成的語料質(zhì)量最好,BLEU 值在泰漢和漢泰方向分別提高了2.09 和2.04。
過濾能力的比較是通過過濾后的同等規(guī)模語料上訓(xùn)練的翻譯模型的BLEU 值來進(jìn)行評(píng)估。從表2 的實(shí)驗(yàn)結(jié)果可以看出,經(jīng)過LSTM 語言模型過濾后的偽平行語料質(zhì)量要低于經(jīng)過判別器過濾后的偽平行語料。
表2 不同判別器的過濾能力比較
將經(jīng)過對(duì)抗訓(xùn)練的判別器和LSTM 語言模型進(jìn)行結(jié)合,共同過濾噪聲語料,并與沒有經(jīng)過對(duì)抗訓(xùn)練的判別器和LSTM 語言模型相結(jié)合的方法進(jìn)行對(duì)比,結(jié)果如表3 所示。由表3 得出,過濾后的偽平行語料質(zhì)量BLEU 分別提高了0.24 和0.07。這說明經(jīng)過對(duì)抗訓(xùn)練的判別器在過濾偽平行語料的性能上有了進(jìn)一步提升。此外,還將判別器作用在文獻(xiàn)[4]方法生成的偽平行語料上進(jìn)行了對(duì)比。從實(shí)驗(yàn)結(jié)果可以看出,生成的偽平行語料在經(jīng)過過濾之后效果是有一定提升的,而文獻(xiàn)[4]方法+判別器(GAN)比文獻(xiàn)[4]方法+判別器的過濾效果提升明顯,這是由于生成式對(duì)抗網(wǎng)絡(luò)的訓(xùn)練依然可以提高判別器的性能,但是提升幅度不大。從整體來看,本文方法訓(xùn)練得到的判別器在對(duì)其他方法生成的偽平行語料進(jìn)行過濾時(shí)也是有效果的。
表3 判別器過濾效果驗(yàn)證
針對(duì)文章所提出的改進(jìn)方案進(jìn)行消融實(shí)驗(yàn),結(jié)果如表4 所示。
表4 消融實(shí)驗(yàn)結(jié)果
從表4 中結(jié)果可以看出,采用詞性替換的方法替代蒙特卡羅搜索的方法性能有明顯提升,這表明為模型提供更精準(zhǔn)的詞級(jí)信息有助于提升生成模型的性能。其中單使用額外判別器所表現(xiàn)的性能比單使用原有判別器略有下降,這表明單使用額外判別器使模型過度偏向目標(biāo)訓(xùn)練集,會(huì)對(duì)最終生成模型的質(zhì)量有所影響。最后,使用雙判別器加詞性替換的方法比單使用原始判別器加詞性替換的方法效果也有所提升,表明本文提出的添加額外判別器的方法和詞性替換的方法對(duì)提升生成模型的質(zhì)量都有一定的效果。
本文在漢泰神經(jīng)機(jī)器翻譯任務(wù)上,針對(duì)漢泰平行語料規(guī)模不足和質(zhì)量不佳的問題,提出雙判別器的漢泰偽平行句對(duì)生成方法,并分別在漢泰翻譯方向和泰漢翻譯方向進(jìn)行了實(shí)驗(yàn)驗(yàn)證。在原有的基于樞軸語言的生成式對(duì)抗網(wǎng)絡(luò)的基礎(chǔ)上,在漢泰翻譯方向(泰漢翻譯方向)進(jìn)一步添加了漢泰判別器(泰漢判別器),幫助回譯模型擬合漢泰(泰漢)數(shù)據(jù)集分布。在對(duì)抗訓(xùn)練中,原有的基于蒙特卡羅搜索的方法構(gòu)造的中間句子在回傳詞級(jí)反饋信息時(shí),詞的質(zhì)量過于依賴句子的質(zhì)量,從而不能很好地反饋詞級(jí)信息。為了緩解這個(gè)問題以及提高對(duì)抗訓(xùn)練的穩(wěn)定性,本文提出了基于詞性的中間句子構(gòu)造方法替換蒙特卡洛搜索方法。實(shí)驗(yàn)結(jié)果表明,本文的方法在泰漢翻譯方向上的BLEU 值為20.24,在漢泰翻譯方向上的BLEU 值為26.32,相比文獻(xiàn)[4]方法,BLEU 值在泰漢方向上提高了2.09,在漢泰方向上提高了2.04,證明了本文方法的有效性。
本文在對(duì)抗訓(xùn)練結(jié)合回譯技術(shù)的基礎(chǔ)上,實(shí)現(xiàn)了基于雙判別器的漢泰偽平行句對(duì)生成方法,取得了不錯(cuò)的效果。在生成語料方面,偽平行語料的詞匯和句法多樣性可以幫助模型應(yīng)對(duì)復(fù)雜的翻譯情況,因此如何在提高模型性能的同時(shí)發(fā)揮生成式對(duì)抗網(wǎng)絡(luò)的優(yōu)勢(shì),提高偽平行語料在詞匯和句法上的多樣性,是本文未來的研究方向。在語料過濾方面,除了使用本文對(duì)抗訓(xùn)練中的判別器進(jìn)行過濾,如何使用更好的評(píng)判方法評(píng)估偽平行語料的質(zhì)量也是數(shù)據(jù)增強(qiáng)的一個(gè)研究方向?,F(xiàn)有針對(duì)帶有噪聲的平行語料過濾方法大多都是根據(jù)一定的規(guī)則進(jìn)行靜態(tài)過濾,如何將過濾之后的結(jié)果動(dòng)態(tài)地反饋給過濾模型也是提升低資源機(jī)器翻譯模型性能有效的方法。
注:本文通訊作者為吳霖。