尤叢叢,高盛祥,余正濤,毛存禮,潘潤(rùn)海
(1.昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院,云南 昆明 650500;2.昆明理工大學(xué)云南省人工智能重點(diǎn)實(shí)驗(yàn)室,云南 昆明 650500)
由于缺乏大型平行語(yǔ)料庫(kù)訓(xùn)練神經(jīng)機(jī)器翻譯系統(tǒng),導(dǎo)致低資源語(yǔ)言的機(jī)器翻譯非常困難[1,2]。在計(jì)算機(jī)視覺(jué)領(lǐng)域,數(shù)據(jù)增強(qiáng)被廣泛應(yīng)用于增強(qiáng)模型的魯棒性[3,4]。盡管數(shù)據(jù)增強(qiáng)已成為圖像處理訓(xùn)練深層網(wǎng)絡(luò)的標(biāo)準(zhǔn)技術(shù),但它在機(jī)器翻譯領(lǐng)域并不常見(jiàn)[5,6]。目前在機(jī)器翻譯領(lǐng)域,主要的數(shù)據(jù)增強(qiáng)方法有2類(lèi),一類(lèi)是詞匯替換,一類(lèi)是回譯[7]。
詞匯替換方法主要利用一定規(guī)模的雙語(yǔ)平行語(yǔ)料,通過(guò)源語(yǔ)言和目標(biāo)語(yǔ)言中的詞進(jìn)行替換獲得擴(kuò)展平行語(yǔ)料,是當(dāng)前較為流行的增強(qiáng)方法。Fadaee等人[8]利用語(yǔ)言模型在目標(biāo)語(yǔ)言端的句子中找到可以被低頻詞替換的高頻詞的位置并進(jìn)行詞匯替換,然后利用雙語(yǔ)詞典完成源語(yǔ)言端對(duì)應(yīng)的詞匯替換。通過(guò)這種簡(jiǎn)單的詞匯替換,提高了訓(xùn)練語(yǔ)料中低頻詞的出現(xiàn)頻次,從而增強(qiáng)神經(jīng)機(jī)器翻譯模型對(duì)低頻詞的翻譯能力。作者在英法數(shù)據(jù)集上獲得的實(shí)驗(yàn)結(jié)果的BLEU值比基準(zhǔn)線(xiàn)高2.9,比回譯高3.2。蔡子龍等人[9]提出了一個(gè)簡(jiǎn)單有效的增強(qiáng)方法。該方法首先利用源語(yǔ)言端句子中最相似的2個(gè)詞進(jìn)行相互替換形成新的句子,然后通過(guò)詞對(duì)齊信息找到目標(biāo)端對(duì)應(yīng)的詞匯并進(jìn)行相互替換,進(jìn)而形成新的平行句對(duì)。作者在藏漢語(yǔ)種上進(jìn)行了實(shí)驗(yàn),獲得的BLEU值比基準(zhǔn)線(xiàn)高4。
回譯方法利用翻譯引擎翻譯句子并進(jìn)行篩選獲得新的平行語(yǔ)料,其廣泛應(yīng)用于提升神經(jīng)機(jī)器翻譯的性能。Yang等人[10]提出門(mén)增強(qiáng)型神經(jīng)機(jī)器翻譯模型。該模型通過(guò)將回譯合成的平行語(yǔ)料數(shù)據(jù)和真正的平行語(yǔ)料數(shù)據(jù)分發(fā)到不同的通道,使模型能夠根據(jù)輸入序列的類(lèi)型執(zhí)行不同的轉(zhuǎn)換。實(shí)驗(yàn)結(jié)果表明,該模型在漢英和英法數(shù)據(jù)集上的BLEU值比基準(zhǔn)線(xiàn)分別提高了1.47和2.5。Zhang等人[11]提出基于自動(dòng)編碼器和回譯的對(duì)抗學(xué)習(xí)方法。該方法通過(guò)對(duì)目標(biāo)端詞嵌入與原始的跨語(yǔ)言詞映射進(jìn)行回譯,以學(xué)習(xí)最終的跨語(yǔ)言詞映射。作者在3種語(yǔ)言對(duì)上的實(shí)驗(yàn)結(jié)果驗(yàn)證了該方法的有效性。
由于漢語(yǔ)-越南語(yǔ)屬于低資源語(yǔ)言對(duì),雙語(yǔ)詞典難以獲得,但跨語(yǔ)言詞替換方法需要一定規(guī)模的詞典資源,因此難以實(shí)現(xiàn),而漢語(yǔ)和越南語(yǔ)有大量的單語(yǔ)語(yǔ)料,通過(guò)單語(yǔ)語(yǔ)言訓(xùn)練獲得單語(yǔ)環(huán)境下的詞向量及相關(guān)詞匯非常容易。因此,本文提出一種基于低頻詞的同義詞替換的雙語(yǔ)平行語(yǔ)料數(shù)據(jù)增強(qiáng)方法。該方法通過(guò)探索單語(yǔ)環(huán)境構(gòu)建詞向量,進(jìn)而尋找低頻詞的同義詞,再通過(guò)同義詞替換獲得擴(kuò)展的平行語(yǔ)料。
本文方法利用小規(guī)模的平行語(yǔ)料,通過(guò)單語(yǔ)詞向量尋找一端語(yǔ)言低頻詞的同義詞;然后對(duì)低頻詞進(jìn)行同義詞替換,再利用語(yǔ)言模型對(duì)替換后的句子進(jìn)行篩選[12];最后將篩選后的句子與另一端語(yǔ)言中的句子進(jìn)行匹配,從而獲得擴(kuò)展的平行語(yǔ)料。本文方法的實(shí)現(xiàn)主要分為以下幾個(gè)方面:
(1)構(gòu)建低頻詞詞表VR(R表示低頻詞匯)。本文在訓(xùn)練語(yǔ)料源語(yǔ)言端范圍內(nèi)構(gòu)建詞匯表V,再將V中出現(xiàn)頻率為N(1≤N<5)的詞匯作為低頻詞加入到低頻詞列表中,從而構(gòu)建低頻詞詞表VR。單詞vi為低頻詞的確定方法,如式(1)所示:
(1)
其中,1表示vi為低頻詞,0表示vi不是低頻詞,N表示vi(vi∈V)的詞頻,vi∈V為V中第i個(gè)詞匯,0≤i≤30000。
(2)尋找同義詞。由于在單語(yǔ)語(yǔ)義空間內(nèi),可以通過(guò)計(jì)算詞匯間的距離來(lái)判斷2個(gè)詞匯的相似度。因此,本文利用Wikipedia 中文文本訓(xùn)練BERT(Birdirectional Encoder Representations for Transformers)模型[13]獲得漢語(yǔ)端詞向量,然后通過(guò)計(jì)算表征詞匯的向量之間的余弦值判斷2個(gè)詞匯之間的相似度,進(jìn)而尋找漢語(yǔ)端的低頻詞的同義詞,以構(gòu)建低頻詞的同義詞列表。假設(shè)詞匯A與詞匯B的向量分別表征為a={wa1,wa2…,wan}與b={wb1,wb2…,wbn},詞匯間語(yǔ)義相似度計(jì)算如式(2)所示:
(2)
Figure 1 Example of synonym replacement 圖1 同義詞替換示例
P(A1A2…An)=P(A1)P(A2|A1)…
P(An|A1A2…An-1)
(3)
其中,P(A1A2…An-1)>0,P(A1)表示第1個(gè)詞A1出現(xiàn)的概率,P(A2|A1)是已知第1個(gè)詞Ai的前提下,第2個(gè)詞A2出現(xiàn)的概率,以此類(lèi)推,詞An出現(xiàn)的概率取決于它前面所有的詞。
(5)目標(biāo)句選擇。對(duì)于平行句對(duì)(S,T),由于本文對(duì)源語(yǔ)言端S進(jìn)行的是同義詞替換操作,所以源句S與增強(qiáng)句S′為同義句。很大概率上,(S′,T)也是平行句對(duì)。因此,本文對(duì)目標(biāo)語(yǔ)言端不進(jìn)行變動(dòng)。將(S′,T)句對(duì)直接加入到訓(xùn)練集中參與模型訓(xùn)練。如圖2所示為目標(biāo)句匹配示意圖。
Figure 2 Target sentence matching diagram
圖2 目標(biāo)句匹配示意圖
(6)采樣。本文對(duì)增強(qiáng)后的語(yǔ)料庫(kù)進(jìn)行多次循環(huán),以確保每個(gè)低頻詞的詞頻最多被增強(qiáng)至5。
本文收集20萬(wàn)個(gè)漢越平行句對(duì)作為數(shù)據(jù)增強(qiáng)前的訓(xùn)練數(shù)據(jù)。驗(yàn)證集與測(cè)試集分別由2 000個(gè)漢越平行句對(duì)組成。實(shí)驗(yàn)數(shù)據(jù)如表1所示。
本文設(shè)置機(jī)器翻譯實(shí)驗(yàn)來(lái)比較同義詞數(shù)據(jù)增強(qiáng)前后的結(jié)果,以檢驗(yàn)數(shù)據(jù)增強(qiáng)的效果。本文使用
Table 1 Experimental data表1 實(shí)驗(yàn)數(shù)據(jù)
transformer[15]作為神經(jīng)機(jī)器翻譯模型。模型的隱藏層大小為512維,批次大小為64,訓(xùn)練輪次為20。在所有實(shí)驗(yàn)中,神經(jīng)機(jī)器翻譯模型詞匯量被限制在漢越2種語(yǔ)言中最常見(jiàn)的30 000個(gè)單詞中。注意,數(shù)據(jù)增強(qiáng)不會(huì)將新詞匯引入詞匯表。本文使用5 GB大小的來(lái)自Wikipedia的中文文本訓(xùn)練kenLM語(yǔ)言模型。KenLM語(yǔ)言模型屬于n-gram語(yǔ)言模型,本文將n設(shè)置為3。
為了驗(yàn)證所提方法的有效性,本文設(shè)計(jì)了3組實(shí)驗(yàn),通過(guò)BLEU值進(jìn)行評(píng)價(jià)。
實(shí)驗(yàn)1為使得本文增強(qiáng)方法效果達(dá)到最佳,以對(duì)源語(yǔ)言端進(jìn)行同義詞替換,匹配目標(biāo)語(yǔ)言端為例進(jìn)行實(shí)驗(yàn)參數(shù)選擇的對(duì)比,以評(píng)估采用不同方法構(gòu)建低頻詞的同義詞列表,以及低頻詞的同義詞個(gè)數(shù)K對(duì)神經(jīng)機(jī)器翻譯模型的影響。采用方法分別為:(1)使用Synonyms工具包[16]構(gòu)建源語(yǔ)言端低頻詞的同義詞列表。(2)使用中文BERT模型生成源語(yǔ)言端詞匯的詞向量,通過(guò)計(jì)算和比較詞表V與低頻詞詞表VR中詞匯間的余弦相似度,由高到低構(gòu)建源語(yǔ)言端低頻詞的同義詞列表[17]。實(shí)驗(yàn)將低頻詞的同義詞個(gè)數(shù)K設(shè)置為1~5,將每個(gè)低頻詞詞頻通過(guò)本文方法增加至5。注意,低頻詞的同義詞個(gè)數(shù)的不同并不會(huì)對(duì)語(yǔ)料庫(kù)的大小產(chǎn)生不同的影響,增強(qiáng)后的漢越平行句對(duì)均為310 000。實(shí)驗(yàn)結(jié)果如圖3所示。
Figure 3 Comparison of Chinese-Vietnamese translation performance with different parameters圖3 不同參數(shù)漢語(yǔ)-越南語(yǔ)的翻譯性能比較
圖3中,實(shí)線(xiàn)為采用Synonyms構(gòu)建源語(yǔ)言端低頻詞的同義詞列表;虛線(xiàn)為采用BERT構(gòu)建源語(yǔ)言端低頻詞的同義詞列表;橫坐標(biāo)為源語(yǔ)言端低頻詞的同義詞個(gè)數(shù);縱坐標(biāo)為翻譯模型對(duì)應(yīng)的BLEU值。
圖3顯示,采用BERT構(gòu)建源語(yǔ)言端低頻詞的同義詞列表的模型比采用Synonyms構(gòu)建獲得了較高的BLEU值。這是因?yàn)镾ynonyms采用的基本技術(shù)是word2vect[18]。BERT相比于word2vect考慮了上下文信息。所以,采用BERT構(gòu)建源語(yǔ)言端低頻詞的同義詞列表,在進(jìn)行低頻詞替換后更容易產(chǎn)生平行度較高的漢越句對(duì)。因此,本文方法采用BERT構(gòu)建源語(yǔ)言端低頻詞的同義詞列表。
圖3中虛線(xiàn)顯示,當(dāng)源語(yǔ)言端低頻詞的同義詞個(gè)數(shù)K=1時(shí),翻譯模型性能達(dá)到最高值,取得的BLEU值為11.4。隨著低頻詞的同義詞個(gè)數(shù)的增加,翻譯模型的BLEU值隨之下降,當(dāng)?shù)皖l詞的同義詞個(gè)數(shù)K=5時(shí),取得了最低BLEU值8.6。這是因?yàn)楸疚姆椒ㄔ跇?gòu)建源語(yǔ)言端低頻詞的同義詞列表時(shí)是按照詞匯間的余弦相似度由高到低進(jìn)行構(gòu)建,所以位置越偏后的同義詞與其低頻詞的相似度越低,在進(jìn)行同義詞替換后生成的增強(qiáng)句S′與源句S的句子相似度越低,經(jīng)過(guò)語(yǔ)言模型篩選,目標(biāo)句匹配后生成句對(duì)(S′,T)的平行度越低。由于翻譯模型訓(xùn)練語(yǔ)料噪聲增加,BLEU值隨之降低。因此,本文方法取低頻詞的同義詞個(gè)數(shù)K=1。
實(shí)驗(yàn)2為使本文模型效果達(dá)到最佳,本文在漢語(yǔ)到越南語(yǔ)以及越南語(yǔ)到漢語(yǔ)的不同翻譯方向上,分別對(duì)源語(yǔ)言端進(jìn)行詞替換,對(duì)目標(biāo)語(yǔ)言端進(jìn)行詞替換,以及對(duì)2個(gè)語(yǔ)言端一起進(jìn)行詞替換進(jìn)行相關(guān)實(shí)驗(yàn),結(jié)果如表2所示。在進(jìn)行越南語(yǔ)端詞匯替換時(shí),使用Grave等人[19]在Common Crawl和Wikipedia上訓(xùn)練的fasttext 模型獲得越南語(yǔ)端的詞向量,以進(jìn)行低頻詞的同義詞列表構(gòu)建,取低頻詞的同義詞個(gè)數(shù)K=1,將越南語(yǔ)低頻詞詞頻在原語(yǔ)料基礎(chǔ)上增加至5,詞匯替換細(xì)節(jié)請(qǐng)參照第2節(jié)。
Table 2 Effect of word substitution in different languages on translation performance表2 不同語(yǔ)言端進(jìn)行詞替換對(duì)翻譯性能的影響
表2中,Model(c→v)表示漢語(yǔ)為源語(yǔ)言端,越南語(yǔ)為目標(biāo)語(yǔ)言端;Model(v→c)表示越南語(yǔ)為源語(yǔ)言端,漢語(yǔ)為目標(biāo)語(yǔ)言端;TDA(c)表示對(duì)漢語(yǔ)端進(jìn)行詞匯替換;TDA(v)表示對(duì)越南語(yǔ)端進(jìn)行詞匯替換;TDA(c-v)表示同時(shí)使用TDA(c)和TDA(v)2種方法。
表2數(shù)據(jù)顯示,在將低頻詞詞頻增加至5的前提下,TDA(c)和TDA(v)在原語(yǔ)料基礎(chǔ)上分別增加了110 000和50 000。這是因?yàn)樵谠Z(yǔ)料庫(kù)中漢語(yǔ)端詞表規(guī)模是越南語(yǔ)端詞表規(guī)模的2倍。因此TDA(c-v)在原語(yǔ)料基礎(chǔ)上增加了160 000。分析表2數(shù)據(jù)可得:Model(c→v)下的TDA(c)比Model(v→c)下的TDA(c)的BLEU值高0.8;Model(c→v)下的TDA(v)比Model(v→c)下的TDA(v)BLEU值低0.9。這是因?yàn)榉g的質(zhì)量取決于譯出語(yǔ)言的水平而不是源語(yǔ)言的水平。目標(biāo)語(yǔ)言必須是真句子,才能使翻譯結(jié)果更加流暢和準(zhǔn)確。因此,Model(c→v)下的TDA(c-v)中通過(guò)TDA(v)所得到的50 000語(yǔ)料在一定程度上可以理解為噪聲語(yǔ)料,所以盡管Model(c→v)下的TDA(c-v)語(yǔ)料規(guī)模大于Model(c→v)下的TDA(c)的,前者卻比后者的BLEU值低0.5。因此,本文方法采用Model(c→v)下的TDA(c)作為增強(qiáng)方法。
實(shí)驗(yàn)3為證明本文方法的最優(yōu)性,將本文方法與基準(zhǔn)線(xiàn)和回譯進(jìn)行比較,基準(zhǔn)線(xiàn)模型采用的數(shù)據(jù)為表1的實(shí)驗(yàn)數(shù)據(jù)?;刈g方法和本文方法均在表1數(shù)據(jù)的基礎(chǔ)上將數(shù)據(jù)增加到310 000,然后使用這3組數(shù)據(jù)對(duì)同一transformer模型進(jìn)行訓(xùn)練,并比較翻譯的性能(BLEU值)。眾所周知,訓(xùn)練語(yǔ)料的大小直接影響翻譯模型的質(zhì)量,為了在同一水平線(xiàn)上將本文方法與回譯方法進(jìn)行比較,本文將回譯增強(qiáng)后的語(yǔ)料大小設(shè)置為310 000。由于漢語(yǔ)-越南語(yǔ)屬于低資源語(yǔ)言對(duì),若使用個(gè)人訓(xùn)練的翻譯模型進(jìn)行回譯,顯然會(huì)降低增強(qiáng)后語(yǔ)料的質(zhì)量?;诖嗽?,本文借助谷歌翻譯進(jìn)行回譯。為了不在數(shù)據(jù)增強(qiáng)后引入新的詞匯,本文基于訓(xùn)練語(yǔ)料進(jìn)行回譯。首先借助谷歌翻譯將訓(xùn)練語(yǔ)料從目標(biāo)端譯為源語(yǔ)言端,構(gòu)建漢越平行語(yǔ)料庫(kù),然后從中隨機(jī)抽取110 000的漢越平行句對(duì)加入訓(xùn)練語(yǔ)料參與模型訓(xùn)練。實(shí)驗(yàn)結(jié)果如表3所示。
Table 3 Comparison of Chinese-Vietnamese translation performance with different methods表3 不同方法漢語(yǔ)-越南語(yǔ)的翻譯性能比較
表3數(shù)據(jù)顯示,本文提出的方法和回譯方法有效地改善了翻譯質(zhì)量,相比基準(zhǔn)線(xiàn)的BLEU值分別提高了1.8和0.7。本文方法獲得最佳BLEU值的原因在于:TDA(c)方法可以幫助漢越神經(jīng)機(jī)器翻譯模型對(duì)源語(yǔ)言端低頻詞進(jìn)行更好的識(shí)別,從而提高翻譯質(zhì)量。
上述3組對(duì)比實(shí)驗(yàn)表明,本文方法采用BERT構(gòu)建源語(yǔ)言端低頻詞的同義詞列表,取低頻詞的同義詞個(gè)數(shù)K=1時(shí),本文方法效果達(dá)到最優(yōu),說(shuō)明該方法在提高漢越神經(jīng)機(jī)器翻譯性能上是可行的。
本文提出了一種有效的用于改善漢越神經(jīng)機(jī)器翻譯性能的數(shù)據(jù)增強(qiáng)方法。該方法利用單語(yǔ)詞向量尋找低頻詞的同義詞,然后通過(guò)同義詞替換獲得擴(kuò)展的漢越平行語(yǔ)料。漢越神經(jīng)機(jī)器翻譯的對(duì)比實(shí)驗(yàn)驗(yàn)證了本文方法的有效性。進(jìn)一步研究將著眼于對(duì)詞匯替換后的語(yǔ)料進(jìn)行質(zhì)量評(píng)估。