陳 煒 汪 洋 鐘 敏,
(1.武漢郵電科學(xué)研究院 武漢 430070)(2.南京烽火天地通信科技有限公司 南京 210019)
隨著互聯(lián)網(wǎng)和人工智能技術(shù)的快速發(fā)展,利用單一神經(jīng)網(wǎng)絡(luò)將源句轉(zhuǎn)換為目標(biāo)句的神經(jīng)機(jī)器翻譯[1~2]模型在學(xué)術(shù)界和工業(yè)界引起了越來(lái)越多的關(guān)注[3],通常這種端對(duì)端的神經(jīng)機(jī)器翻譯模型由兩個(gè)子神經(jīng)網(wǎng)絡(luò)組成。編碼器網(wǎng)絡(luò)讀取源句子,并將其編碼為上下文向量表示。解碼器網(wǎng)絡(luò)通過(guò)編碼器生成的上下文向量,生成詞語(yǔ)并形成目標(biāo)句子。在編碼器-解碼器的網(wǎng)絡(luò)框架下,Gehring等[4]提出了卷積神經(jīng)網(wǎng)絡(luò)(CNN)的機(jī)器翻譯模型,Cho等[5]提出了循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的神經(jīng)機(jī)器翻譯模型。最近,谷歌 Vaswani[6]提出了 Transformer,是第一個(gè)完全基于注意力機(jī)制的序列轉(zhuǎn)換模型,該模型在英-德和英-法翻譯任務(wù)上,取得了目前最好的翻譯效果。盡管Transformer取得了成功,但是該模型仍然與傳統(tǒng)的神經(jīng)機(jī)器翻譯模型類(lèi)似,在每一個(gè)時(shí)間步內(nèi),最大化單詞的似然估計(jì)。這樣就會(huì)存在一定隱藏的風(fēng)險(xiǎn),也就是說(shuō),模型可以為當(dāng)前時(shí)間步驟生成最佳候選詞語(yǔ),但長(zhǎng)遠(yuǎn)來(lái)看,該詞可能不是整個(gè)句子中最好選擇。最低風(fēng)險(xiǎn)訓(xùn)練被提出用來(lái)緩解這種現(xiàn)象,但是仍然不能保證翻譯結(jié)果的自然性。自從Papineni等[7]提出通過(guò)計(jì)算n-gram精度的幾何平均值作為BLEU分?jǐn)?shù)后,幾乎現(xiàn)在所有的神經(jīng)機(jī)器翻譯模型都以生成盡可能高的n-gram精度句子作為目標(biāo)。雖然n-gram精度在很大程度上可以區(qū)分好壞句子,但是人們普遍認(rèn)為更高的n-gram精度并不能保證更好的句子[8~9]。
近年來(lái),隨著深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的興起,深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的方法逐漸成為自然語(yǔ)言處理領(lǐng)域的熱門(mén)。2014年Goodfellow[10]提出生成式對(duì)抗網(wǎng)絡(luò)(GAN),引起了重大反響。國(guó)內(nèi)對(duì)GAN也進(jìn)行了一定的研究[11]。生成式對(duì)抗網(wǎng)絡(luò)主要有兩部分組成:生成器和判別器。當(dāng)生成器和判別器達(dá)到納什均衡[12]時(shí),這種對(duì)抗性訓(xùn)練實(shí)現(xiàn)雙贏。生成式對(duì)抗網(wǎng)絡(luò)開(kāi)始是應(yīng)用在計(jì)算機(jī)視覺(jué)中,如:人臉識(shí)別[13]等,取得了重大成果。人們逐漸開(kāi)始將生成式對(duì)抗網(wǎng)絡(luò)與自然語(yǔ)言處理聯(lián)系起來(lái)。Jiwei LI等[14]將生成式對(duì)抗網(wǎng)絡(luò)用語(yǔ)對(duì)話系統(tǒng)的生成,并取得了不錯(cuò)的效果。
綜上所述,本文提出了將生成式對(duì)抗網(wǎng)絡(luò)應(yīng)用于神經(jīng)機(jī)器翻譯,建立一個(gè)條件序列生成對(duì)抗網(wǎng),聯(lián)合訓(xùn)練兩個(gè)子對(duì)抗模型:生成器,根據(jù)輸入的源語(yǔ)言句子生成目標(biāo)語(yǔ)言句子;判別器,以源語(yǔ)言句子為條件,預(yù)測(cè)目標(biāo)語(yǔ)言句子是人類(lèi)生成的句子的概率。在訓(xùn)練的過(guò)程中,我們使用動(dòng)態(tài)判別器和靜態(tài)BLEU值來(lái)評(píng)估生成的句子,并將評(píng)估結(jié)果反饋給生成器,指導(dǎo)生成器的學(xué)習(xí),來(lái)提升生成器的翻譯效果。
結(jié)合生成式對(duì)抗網(wǎng)絡(luò)的神經(jīng)機(jī)器翻譯模型分成兩部分,模型的總體架構(gòu)如圖1所示,左半部分是由生成器G和判別器D構(gòu)成,其中,G是我們的神經(jīng)機(jī)器翻譯模型,生成目標(biāo)句子,D對(duì)G生成的句子和人工翻譯句子進(jìn)行判別,產(chǎn)生反饋結(jié)果。右半部分是對(duì)G進(jìn)行策略梯度訓(xùn)練,最終的反饋由D和Q提供,其中Q是BLEU值。
圖1 總體網(wǎng)絡(luò)結(jié)構(gòu)圖
生成器G采用基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的傳統(tǒng)神經(jīng)機(jī)器翻譯模型RNNSearch。由編碼器和解碼器兩部分組成。編碼器采用雙向循環(huán)門(mén)控制單元,對(duì)輸入序列式x=(x1,…,xm)進(jìn)行編碼,并計(jì)算前向和后向傳播的隱藏狀態(tài),如式(1)和式(2)所示:
其中,最終的注釋向量hp由和共同計(jì)算得到。
編碼器采用循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)目標(biāo)序列y=(y1,…,yn),當(dāng)前每個(gè)詞語(yǔ)yi的預(yù)測(cè)是根據(jù)當(dāng)前的隱藏狀態(tài)si和上一時(shí)刻的預(yù)測(cè)yi-1,以及上下文向量ci共同計(jì)算而來(lái)。其中,ci是通過(guò)注釋向量hp加權(quán)求和而來(lái)。
判別器采用卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),對(duì)生成器生成的結(jié)果進(jìn)行判別。由于生成器生成的序列長(zhǎng)度是可變的,因此會(huì)對(duì)序列進(jìn)行填充處理,長(zhǎng)度固定設(shè)置為T(mén)。對(duì)源序列和目標(biāo)序列分別建立源矩陣X1:T和目標(biāo)矩陣Y1:T,如式(3)和式(4)所示:
xt,yt∈Rk,均為k維詞向量,卷積核W1∈Rl×k,卷積計(jì)算公式如式(5)所示:
其中,W1為卷積核的權(quán)值,Xi:i+l-1為從i到i+l-1窗口內(nèi)詞向量矩陣,b為偏置項(xiàng),f為激活函數(shù),本文采用ReLu函數(shù)。
我們使用不同的卷積核進(jìn)行卷積運(yùn)算之后,對(duì)每一個(gè)卷積核的特征向量cji進(jìn)行最大池化(Max)操作,即提出每個(gè)特征向量的最大值,對(duì)池化結(jié)果進(jìn)行拼接,得到源序列的特征向量,如式(6)所示:
同樣地,從目標(biāo)矩陣Y1:T中提取目標(biāo)序列特征向量cy,通過(guò)cx和cy來(lái)計(jì)算目標(biāo)序列是真實(shí)存在的概率,計(jì)算公式如式(7):
其中,V是參數(shù)矩陣,將cx和cy轉(zhuǎn)換成2維向量,φ是softmax函數(shù)。
雙語(yǔ)互譯質(zhì)量評(píng)估BLEU值Q作為強(qiáng)化目標(biāo),指導(dǎo)生成器能夠生成更高的BLEU值。Q是靜態(tài)函數(shù),在訓(xùn)練期間不會(huì)更新。
我們將BLEU值應(yīng)用為生成器的特定目標(biāo),給定生成器生成的句子yg和人工真實(shí)翻譯的句子yd,通過(guò)計(jì)算yg的n-gram精度,來(lái)得到目標(biāo)Q的反饋Q(yg,yd)。與判別器D的輸出相同,Q(yg,yd)的范圍也是從0到1,這樣可以讓Q和D能夠更容易的融合。
Lantao Yu等[15]提出,生成器G的目標(biāo)定義為從生成序列的開(kāi)始狀態(tài)起,最大化我們預(yù)期的反饋。在形式上,目標(biāo)函數(shù)如式(8):
其中,θ為生成器G中的參數(shù)。
判別器為采樣的N種句子提供N個(gè)反饋,最終形成的反饋為這些反饋的求和平均值。對(duì)于長(zhǎng)度為T(mén)的目標(biāo)句子,對(duì)yt的反饋計(jì)算如式(9):
目標(biāo)函數(shù)J(θ)對(duì)生成器G的參數(shù)θ的梯度計(jì)算如式(10):
本文試驗(yàn)是在Ubuntu 16.04系統(tǒng)下進(jìn)行的,CPU為Intel Core i7-7700K 4.20GHz×8,顯卡為Ge?Force GTX 1080,內(nèi)存大小為16G,試驗(yàn)使用的是GPU。使用Python3.5編程,開(kāi)發(fā)工具為T(mén)ensorFlow 1.4.0版本。本文試驗(yàn)采用的是斯坦福自然語(yǔ)言處理實(shí)驗(yàn)室公開(kāi)的英-德雙語(yǔ)翻譯數(shù)據(jù)集,我們從WMT'14 En-De中隨機(jī)選擇100萬(wàn)條句子對(duì)作為訓(xùn)練集,該數(shù)據(jù)集經(jīng)過(guò)字節(jié)對(duì)編碼處理[16],并提供了37000個(gè)源語(yǔ)言和目標(biāo)語(yǔ)言的詞匯表。選取newst?est2014,newstest2015 分 別 作 為 測(cè) 試 集 ,newst?est2013作為驗(yàn)證集。
3.2.1 數(shù)據(jù)預(yù)處理
本文從WMT'14 En-De數(shù)據(jù)集中隨機(jī)選取100萬(wàn)條句子對(duì)作為訓(xùn)練集,我們對(duì)訓(xùn)練集進(jìn)行標(biāo)記和字節(jié)對(duì)編碼的預(yù)處理,并通過(guò)預(yù)處理后構(gòu)建詞匯表。其中,對(duì)于標(biāo)記,我們使用相關(guān)腳本處理;字節(jié)對(duì)編碼采用的是subword-toolkit。
3.2.2 試驗(yàn)方法
本來(lái)是在傳統(tǒng)的神經(jīng)機(jī)器翻譯模型RNN?Search的基礎(chǔ)上,引入生成式對(duì)抗網(wǎng)絡(luò)GAN,為了考察生成式對(duì)抗網(wǎng)絡(luò)引入對(duì)神經(jīng)機(jī)器翻譯的影響,將本文引入生成式對(duì)抗網(wǎng)絡(luò)后的翻譯模型和原始的RNNSearch模型的翻譯結(jié)果通過(guò)雙語(yǔ)互譯質(zhì)量評(píng)估輔助工具BLEU[17]進(jìn)行評(píng)估。同時(shí)為了加快訓(xùn)練過(guò)程,根據(jù)別人處理效果[18],我們將長(zhǎng)度超過(guò)50個(gè)單詞的句子刪掉。深度學(xué)習(xí)網(wǎng)絡(luò)采用Adam[19]優(yōu)化方法對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,學(xué)習(xí)率設(shè)置為0.00005。
3.2.3 試驗(yàn)結(jié)果分析
表1所示的是傳統(tǒng)的RNNSearch模型和加入生成式對(duì)抗網(wǎng)絡(luò)模型的在不同測(cè)試集上得到的BLEU值。從表1中可以看出:引入生成式對(duì)抗網(wǎng)絡(luò)后,翻譯效果普遍要好于單一的RNNSearch模型,而對(duì)引入生成式對(duì)抗網(wǎng)絡(luò)的模型,參數(shù)λ的不同取值,也會(huì)對(duì)翻譯結(jié)果產(chǎn)生一定的影響,可以看到,本實(shí)驗(yàn)中,當(dāng)λ=0.7時(shí),翻譯效果最好。
表1 不同翻譯模型翻譯結(jié)果的BLEU值
本文提出了一種結(jié)合生成式對(duì)抗網(wǎng)絡(luò)的神經(jīng)機(jī)器翻譯的方法。利用BLEU值來(lái)強(qiáng)化生成對(duì)抗網(wǎng),通過(guò)判別器D的判別結(jié)果和我們構(gòu)建的BLEU值,作為反饋,來(lái)提升生成器G的訓(xùn)練,使生成器G能夠生成出更接近人工翻譯的真實(shí)句子,從而提高翻譯效果。在以后的工作中,我們可能會(huì)嘗試將更多的神經(jīng)機(jī)器翻譯模型與生成式對(duì)抗網(wǎng)絡(luò)結(jié)合,或嘗試多對(duì)抗網(wǎng)絡(luò)框架,采用不同的參數(shù),構(gòu)建不同的強(qiáng)化反饋,來(lái)進(jìn)行試驗(yàn),提升翻譯效果。