程永坤,蘇依拉,王 涵,仁慶道爾吉
(內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院,內(nèi)蒙古 呼和浩特 010080)
機(jī)器翻譯的研究由來已久,從基于規(guī)則翻譯到基于統(tǒng)計(jì)機(jī)器翻譯再到神經(jīng)機(jī)器翻譯[1],其思想是借助計(jì)算機(jī)使一種語(yǔ)言轉(zhuǎn)換成另一種語(yǔ)言且保持含義不變,翻譯的理想目標(biāo)是能達(dá)到高速度高質(zhì)量的效果。機(jī)器翻譯的快速發(fā)展可對(duì)不同民族文化交流產(chǎn)生重大意義,促進(jìn)民與民,國(guó)與國(guó)的共同體發(fā)展理念。
由于對(duì)漢蒙翻譯研究起步較晚,所以在如今的漢蒙機(jī)器翻譯研究中存在著很多問題亟待解決,一方面,漢蒙雙語(yǔ)屬于低資源語(yǔ)言,故存在漢蒙平行語(yǔ)料庫(kù)資源不足,且現(xiàn)有的語(yǔ)料庫(kù)多有低頻詞和稀有詞存在造成語(yǔ)料質(zhì)量差出現(xiàn)翻譯質(zhì)量低的現(xiàn)象; 另一方面,對(duì)于漢蒙翻譯的研究模型現(xiàn)在多是自回歸神經(jīng)翻譯(AT)模型,該模型不能很好的利用GPU的計(jì)算能力,同時(shí)在翻譯中出現(xiàn)解碼信息錯(cuò)誤前后傳遞性問題。針對(duì)以上問題的存在,對(duì)于像漢蒙這樣的低資源語(yǔ)言研究,在翻譯速度和翻譯質(zhì)量上都沒有取得令人十分滿意的效果。
直接使用AT模型進(jìn)行本文研究并不能得到理想化的實(shí)驗(yàn)結(jié)果,故提出使用非自回歸機(jī)器翻譯(NAT)模型,該模型能直接進(jìn)行并行解碼推理,充分的利用到GPU的計(jì)算能力。同時(shí)為使翻譯質(zhì)量得到提升,將生成對(duì)抗網(wǎng)絡(luò)[2,3]應(yīng)用到語(yǔ)料訓(xùn)練中,利用生成器生成難以分辨的假樣本序列,并將生成樣本和真實(shí)樣本輸入判別器中進(jìn)行判斷,提出用判別二分類結(jié)果加上雙語(yǔ)BLEU值反饋給生成器模型進(jìn)行優(yōu)化;然后,利用教師模型知識(shí)蒸餾漢蒙語(yǔ)料,將提取出的目標(biāo)句子蒙古語(yǔ)與源句子漢語(yǔ)重新組合成新語(yǔ)料供NAT模型;最后,借助句法解析器斯坦福CoreNLP得到詞匯間的句法關(guān)系,構(gòu)建成圖,用圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)[4]學(xué)習(xí)句法圖中句子里單詞上下文信息,并首次提出將學(xué)習(xí)到的句法信息融入到非自回歸機(jī)器翻譯模型中的嵌入層,從底層開始改善非自回歸翻譯模型的翻譯效果。
目前機(jī)器翻譯使用模型大體可分為兩類,一類以循環(huán)神經(jīng)網(wǎng)絡(luò)和基于Transformer改進(jìn)的一系列自回歸機(jī)器翻譯模型;另一類是本文使用的非自回歸機(jī)器翻譯模型。但研究最多的還是自回歸機(jī)器翻譯模型,尤其是在語(yǔ)料豐富的語(yǔ)言中如中英雙語(yǔ)。在自回歸機(jī)器翻譯模型中以Transformer模型最為優(yōu)秀,2017年末經(jīng)Google提出就在NLP領(lǐng)域造成巨大影響,完全的借助注意力機(jī)制對(duì)源端的輸入和目標(biāo)端的輸出關(guān)系進(jìn)行建模,并打破了RNN模型編碼器在訓(xùn)練時(shí)不能并行計(jì)算的問題。
NMT模型的研究是從Simple RNN開始,到后來注意力機(jī)制的發(fā)現(xiàn),隨后在一篇《Attention is All You Need》論文中提出Transformer模型,該模型對(duì)注意力機(jī)制進(jìn)行了充分的利用,使其編碼端能一次對(duì)源語(yǔ)言并行編碼處理,很多實(shí)驗(yàn)中Transformer模型都被作為優(yōu)先選擇來使用。
本文考慮到Transformer模型優(yōu)秀的性能存在,故選其作為實(shí)驗(yàn)中的基線模型[5],下圖1為模型中編碼端的一個(gè)子Encoder模型結(jié)構(gòu)。
圖1 Encoder結(jié)構(gòu)
每個(gè)能夠并行編碼的Encoder模塊都是由Multi-Head Attention和Feed forward network決定,其中Multi-Head Attention類似多個(gè)Attention同時(shí)進(jìn)行,Attention之間的Q、K和V均不同,最后將多個(gè)Attention的輸出進(jìn)行拼接,經(jīng)過多頭注意機(jī)制的處理可以獲得詞與詞之間更多聯(lián)系信息。相關(guān)計(jì)算如下
Attention_output=Attention(Q,K,V)
(1)
MultiHead(Q,K,V)=
Concat(head1,head2,…,headn)W0
(2)
(3)
在上述并行編碼計(jì)算過程中,可看出該模型相比RNN模型在現(xiàn)今的機(jī)器翻譯研究中具有一定的優(yōu)勢(shì),因此,Transformer模型不僅被選作本文研究中的基線模型,同時(shí)還作為接下來的教師模型來進(jìn)行知識(shí)蒸餾處理。下圖2 為Transformer整體結(jié)構(gòu)。
圖2 Transformer結(jié)構(gòu)
NAT模型的研究目前是以Transformer為基礎(chǔ)進(jìn)行改進(jìn),與自回歸模型相比,區(qū)別體現(xiàn)在解碼端,刪除了Masked Multi-Head Attention[6],添加了位置注意力機(jī)制,產(chǎn)生的效果即解碼端可并行解碼,但解碼過程中的目標(biāo)語(yǔ)言詞匯不存在聯(lián)系,造成翻譯速度提高翻譯質(zhì)量明顯下降現(xiàn)象?;谝陨蠁栴},出現(xiàn)了一系列的解決方案,2018年Gu等人[7]提出NAT模型理念時(shí),即提出增加一個(gè)Fertility Predictors塊預(yù)測(cè)目標(biāo)長(zhǎng)度和提供解碼器的輸入;Yiren Wang,Fei Tian等人添加輔助正則化項(xiàng),即通過解碼器隱藏狀態(tài)相似遠(yuǎn)離的原則提高翻譯質(zhì)量;Xiaoya Li,Yuxian Meng提出基于“環(huán)顧”解碼和字典關(guān)注的方式,即解碼時(shí)讓當(dāng)前信息能提前預(yù)知周圍的信息,從而抑制重復(fù)性翻譯和漏譯現(xiàn)象;Chunqi wang等[8]提出半自回歸機(jī)器翻譯,將自回歸和非自回歸結(jié)合起來抑制非自回歸機(jī)器翻譯不足現(xiàn)象。針對(duì)NAT模型現(xiàn)存問題的解決方案可從三個(gè)方向進(jìn)行思考:基于latent variable方向[17]、基于Iterative Refinement方向、基于knowledge distillation方向。
NAT模型最大的問題是目標(biāo)語(yǔ)言詞匯間的聯(lián)系缺失造成翻譯的多峰問題。在增強(qiáng)詞匯信息聯(lián)系方面AT模型做的比較好,葛東來等人[9]提出利用AMR解析語(yǔ)義角色信息;王振晗,何健雅琳等人[10]利用句法解析器融合源語(yǔ)言句法信息。本文在綜合以上AT模型所用方法后提出在NAT詞嵌入層中融入句法信息。
NAT模型結(jié)構(gòu)隸屬于序列到序列。編碼器端在頂層上增加Fertility Predictors模塊,解碼器端移除Mask操作同時(shí)添加位置注意力機(jī)制,嵌入層中融入句法圖卷積神經(jīng)網(wǎng)絡(luò)(SynGCN)。下圖3為研究模型NAT結(jié)構(gòu)所示。
研究中在解碼端可根據(jù)式(4)將NAT模型的解碼問題進(jìn)行建模處理,利用式(5)可表示出解碼端的概率輸出。
(4)
(5)
其中,T表示目標(biāo)序列的長(zhǎng)度,X=(x1,…xT′)表示源語(yǔ)言,T′表示源序列長(zhǎng)度,Z表示隱變量,yt表示要一次解碼的目標(biāo)信息。
相關(guān)研究試圖學(xué)習(xí)詞匯上下文信息進(jìn)行單詞嵌入,卻出現(xiàn)詞匯量明顯增加。本文為抑制上述情況出現(xiàn),對(duì)語(yǔ)料句子中的句法信息首先進(jìn)行構(gòu)圖處理,然后借助圖卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行編碼,在不增加詞匯量的前提下將句法信息融合到詞嵌入層中,下圖4為SynGCN詞嵌入結(jié)構(gòu)[11]。
圖4 SynGCN詞嵌入結(jié)構(gòu)
生成對(duì)抗網(wǎng)絡(luò)主要由生成器和判別器兩部分組成[12]。文中生成器是基于雙向LSTM模型,負(fù)責(zé)生成假樣本,而判別器選擇卷積神經(jīng)網(wǎng)絡(luò),利用其二分類器判別輸入的真假樣本,在訓(xùn)練過程中通過二分類器的取值和譯文質(zhì)量BLEU值反向指導(dǎo)生成器模型中的參數(shù)優(yōu)化。
在生成器生成句子長(zhǎng)度不相等情況下,用CNN對(duì)句子進(jìn)行增刪處理,使其長(zhǎng)度統(tǒng)一固定在T。基于雙向LSTM模型的生成器遵循著由源語(yǔ)言序列生成目標(biāo)語(yǔ)言序列輸出假樣本,在判別器中,首先根據(jù)源語(yǔ)言和目標(biāo)語(yǔ)言生成對(duì)應(yīng)源矩陣X1:T和目標(biāo)矩陣Y1:T,然后對(duì)源矩陣通過卷積計(jì)算得到相應(yīng)的一系列特征向量cij,對(duì)不同卷積核得到的特征向量進(jìn)行最大值池化,再將特征向量池化結(jié)果進(jìn)行拼接得到源序列向量表示cx,同理可以獲取目標(biāo)序列向量表示cy,最后利用取得結(jié)果來計(jì)算樣本的真實(shí)概率P,相應(yīng)計(jì)算過程如下。
X1:T=x1;x2;…;xT
(6)
Y1:T=y1;y2;…;yT
(7)
(8)
cx=[c1,c2,…,cT-l+1]
(9)
p=?(V[cx;cy])
(10)
其中xt,yt∈Rk,屬于k維詞向量,卷積窗口WI∈RlXk,R表示Relu函數(shù),?表示Softmax函數(shù), V表示轉(zhuǎn)變矩陣。
研究中,利用譯文質(zhì)量BLEU值和判別器對(duì)樣本評(píng)測(cè)結(jié)果來反向指導(dǎo)生成器生成更真樣本,具體訓(xùn)練過程可借助文獻(xiàn)[2]中GAN算法訓(xùn)練策略思想進(jìn)行,在此不做敘述。
目前機(jī)器翻譯還在“數(shù)據(jù)驅(qū)動(dòng)”階段,在模型訓(xùn)練中,多是利用大規(guī)模數(shù)據(jù)進(jìn)行特征提取改善翻譯模型的質(zhì)量,使的研究成本大大提高。因此對(duì)于NAT模型翻譯的語(yǔ)料,利用教師模型借助知識(shí)蒸餾技術(shù)來提高語(yǔ)料的精確度而不是利用大規(guī)模數(shù)據(jù)[13]。本文利用知識(shí)蒸餾將一個(gè)大規(guī)模、高精度的教師模型Transformer能力傳遞到小規(guī)模,低精度的學(xué)生模NAT。具體是利用Transformer模型輸出Softmax層的temperature參數(shù)調(diào)整來獲得一個(gè)合適的軟目標(biāo)集,然后對(duì)本文用的學(xué)生模型NAT利用得到的軟目標(biāo)集配合對(duì)應(yīng)temperature參數(shù)作為總目標(biāo)函數(shù)的一部分進(jìn)行學(xué)生模型的訓(xùn)練,提高學(xué)生模型的泛化能力。對(duì)應(yīng)流程如下圖5所示。
圖5 知識(shí)蒸餾流程
根據(jù)圖5知識(shí)蒸餾流程過程可歸納如下:
1)選擇一個(gè)泛化能力強(qiáng)翻譯質(zhì)量高的模型作為教師模型,本文以Transformer模型;
2)對(duì)現(xiàn)有蒙漢語(yǔ)料庫(kù)先進(jìn)行數(shù)據(jù)處理,然后借助Transformer模型進(jìn)行預(yù)測(cè)得到數(shù)據(jù)集;
3)用步驟2)中獲得的知識(shí)來訓(xùn)練新的模型即學(xué)生模型,本文使用的是帶有隱變量的NAT模型。
圖卷積神經(jīng)網(wǎng)絡(luò)是在卷積神經(jīng)網(wǎng)絡(luò)(CNN)的基礎(chǔ)上進(jìn)一步提出來的概念,它們都被用來進(jìn)行特征提取,不同之處在于CNN無法對(duì)不規(guī)則的結(jié)構(gòu)進(jìn)行操作[14],如圖結(jié)構(gòu),而GCN則不存在這樣的問題。利用提取出來的特征信息有助于節(jié)點(diǎn)分類、邊預(yù)測(cè)、圖分類和圖嵌入表示等相關(guān)方面。
(11)
(12)
(13)
(14)
所選語(yǔ)料庫(kù)為內(nèi)蒙古大學(xué)現(xiàn)有67288句蒙漢平行語(yǔ)料庫(kù)、購(gòu)買的“基于深度學(xué)習(xí)的蒙漢統(tǒng)計(jì)機(jī)器翻譯的研究與實(shí)現(xiàn)”平行語(yǔ)料庫(kù)120萬句。蒙古語(yǔ)詞是由詞干和詞綴組成[15],且詞綴有限,而詞干無限,故組成復(fù)雜多變的蒙古語(yǔ)詞。預(yù)處理時(shí),首先篩除句長(zhǎng)單詞大于25的句子,其次,蒙古語(yǔ)句具有天然的分割符,故直接使用BPE[16]切分,而漢語(yǔ)不像蒙古語(yǔ)那樣詞匯間有空格,則先利用Jieba進(jìn)行分詞,然后再利用BPE進(jìn)行切分。最終實(shí)驗(yàn)使用的語(yǔ)料庫(kù)為1072776句。表1是數(shù)據(jù)集劃分。
表1 數(shù)據(jù)集劃分
表2 數(shù)據(jù)集結(jié)果
開發(fā)系統(tǒng)為Ubuntu 16.04,Python版本為3.6.0,TensorFlow版本1.6.0。模型參數(shù)配置方面,模型層數(shù)N=6,多頭注意力設(shè)置為8頭,隱藏層大小為512,Adam負(fù)責(zé)優(yōu)化參數(shù),dropout設(shè)為0.3,學(xué)習(xí)率設(shè)為0.01,train_steps為200000, batch-size設(shè)置為4096,epoch為30,最后使用BLEU和TIME進(jìn)行評(píng)估。
本文進(jìn)行了基線模型Transformer,文獻(xiàn)[7]模型NAT,知識(shí)蒸餾后非自回歸模型,嵌入句法信息的非自回歸模型在train_steps上的實(shí)驗(yàn),圖6、7為4個(gè)模型在實(shí)驗(yàn)時(shí)得到的BLEU值和TIME值。
圖6 模型BLEU值
通過圖6,圖7 可以看到本文在引入句法信息后,無論是在翻譯速度還是在翻譯質(zhì)量都得到了保證。以下用表格的形式來表示4個(gè)模型的具體結(jié)果。
圖7 模型TIME值
通過表格2可以得出,以文獻(xiàn)[7]模型進(jìn)行的相關(guān)實(shí)驗(yàn)在翻譯時(shí)間上相比基線模型都明顯縮短,最高達(dá)到20.97個(gè)小時(shí),本文的研究方法NAT+KD+SynGCN也提高19.96 個(gè)小時(shí)。但從表格中看到文獻(xiàn)[7]模型相比基線模型BLEU值降低很多,在進(jìn)行知識(shí)蒸餾后實(shí)驗(yàn),翻譯質(zhì)量同樣無法改善,但本文研究方法NAT+KD+SynGCN,在保證翻譯速度提高的前提下相比基線模型的BLEU值提高1.1,比文獻(xiàn)[7]模型提高3.2。以上仿真數(shù)據(jù)證明,本文的研究方法在非自回歸機(jī)器翻譯的嵌入層中融入句法信息是有效的。
本文提出使用NAT模型對(duì)漢蒙進(jìn)行翻譯,研究中對(duì)生成對(duì)抗網(wǎng)絡(luò)進(jìn)行優(yōu)化,在訓(xùn)練中不僅使用判別器的結(jié)果指導(dǎo)生成器優(yōu)化,還增加雙語(yǔ)BLEU值作為生成器的目標(biāo)函數(shù)來評(píng)估生成樣本,其次,利用Transformer模型對(duì)得到的語(yǔ)料進(jìn)行訓(xùn)練,降低生成目標(biāo)語(yǔ)言句子的多模態(tài),使本文研究模型更適用;最后,更是在NAT模型編碼端的嵌入層融入圖卷積神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)更多句法信息。未來方面將考慮如何把更多的語(yǔ)義[18]、語(yǔ)法信息融入到NAT模型中。