高 巍,李耀松+,李大舟,陳子祥,孟智慧
(1.沈陽化工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 沈陽 110142;2.中國移動(dòng)通信集團(tuán)設(shè)計(jì)院有限公司 河北分公司,山西 太原 030000)
近年來,機(jī)器翻譯作為自然語言處理的重要組成部分取得了飛速的發(fā)展。翻譯方法由最初的基于統(tǒng)計(jì)、基于短語和基于實(shí)例的方法,逐漸演變?yōu)榛谏窠?jīng)網(wǎng)絡(luò)和編解碼器模型的神經(jīng)機(jī)器翻譯方法,在翻譯質(zhì)量上甚至媲美人工翻譯。同時(shí),翻譯模式也由最初的一種語言到另一種語言的翻譯模式,逐漸發(fā)展為能同時(shí)進(jìn)行一種語言到多種語言的翻譯,逐漸呈現(xiàn)出多元化的趨勢。然而烏爾都語與英語在語法規(guī)則、書寫形式等方面存在差異,且平行語料資源稀缺,導(dǎo)致傳統(tǒng)機(jī)器翻譯模型無法發(fā)揮出較好的效果。因此設(shè)計(jì)一個(gè)高質(zhì)量的翻譯模型,成為提高烏爾都語到英語翻譯質(zhì)量的重要手段[1-3]。
本文提出一個(gè)基于雙向編解碼器的烏爾都語到英語的機(jī)器翻譯模型。編碼器和解碼器都采用雙向LSTM搭建,并在編碼器與解碼器之間引入注意力機(jī)制。首先,經(jīng)詞嵌入編碼后的源語句作為編碼器的輸入,輸出結(jié)果會(huì)包含源語句信息的語義向量。注意力機(jī)制在不同時(shí)刻將對應(yīng)的語義向量傳入解碼器。經(jīng)解碼器的輸出向量再經(jīng)過Softmax函數(shù)進(jìn)行處理,輸出目標(biāo)單詞的概率向量,再根據(jù)詞匯表選出預(yù)測目標(biāo)詞。采用BLEU評分來對最終的翻譯文本進(jìn)行評估。
國內(nèi)外針對烏爾都語與英語的機(jī)器翻譯的研究相對較少。最早由Bushra Jawaid提出了一個(gè)基于統(tǒng)計(jì)短語的烏英機(jī)器翻譯模型[4],通過調(diào)查英語和烏爾都語的語法結(jié)構(gòu),發(fā)現(xiàn)這兩種語言在語法和書寫上存在顯著差異。在此基礎(chǔ)上提出了對短語和單詞的重新排序。最終基于Moses SMT模型進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,基于重新排序短語的統(tǒng)計(jì)機(jī)器翻譯方法有效提高了烏爾都語到英語的翻譯質(zhì)量。Kyunghyun Cho等提出了一種由兩個(gè)遞歸神經(jīng)網(wǎng)絡(luò)組成的新型神經(jīng)網(wǎng)絡(luò)模型LSTM編碼器-解碼器[5],通過使用現(xiàn)有的對數(shù)線性模型中的LSTM編碼器解碼器計(jì)算的短語對的條件概率作為統(tǒng)計(jì)特征,改善統(tǒng)計(jì)機(jī)器翻譯系統(tǒng)的性能??紤]到英語和烏爾都語屬于不同的語系,他們的語言特征不同,Shahnawaz等將語言特征和詞匯結(jié)合起來,提出了一個(gè)使用GIZA++、SRILM和Moses的英語-烏爾都語機(jī)器翻譯模型[6]。采用最小翻譯錯(cuò)誤率訓(xùn)練模型,對因子翻譯模型進(jìn)行譯碼和訓(xùn)練,最終提高了烏爾都語到英語的翻譯模型的評分。
神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯自興起以后,在性能上遠(yuǎn)超傳統(tǒng)的統(tǒng)計(jì)機(jī)器翻譯和基于規(guī)則、短語的機(jī)器翻譯[7,8]。最早由Shahnawaz等將人工神經(jīng)網(wǎng)絡(luò)(ANN)應(yīng)用于烏英機(jī)器翻譯[9],并加入機(jī)器翻譯實(shí)例推理(CBR)和翻譯規(guī)則庫,最后采用CBR方法對輸入的英語句子進(jìn)行烏爾都語翻譯規(guī)則的選擇。但翻譯規(guī)則需要人工制定,并且時(shí)常需要更新和維護(hù),導(dǎo)致工作量大且冗雜。神經(jīng)機(jī)器翻譯模型在大語種之間的翻譯和研究備受關(guān)注,然而針對小語種的翻譯效果欠佳[10]。
針對烏英平行語料庫資源稀缺的問題,本文采用ELMo[11]神經(jīng)網(wǎng)絡(luò)來預(yù)訓(xùn)練英語和烏爾都語的單語料庫。預(yù)訓(xùn)練詞向量表征的定義參見文獻(xiàn)[12]。本文通過ELMo方法對烏英語料庫進(jìn)行預(yù)訓(xùn)練,兼顧詞語用法在語義和語法上的復(fù)雜特點(diǎn)和伴隨語言環(huán)境的改變而改變的問題,能夠產(chǎn)生豐富的詞語表征。與其它詞嵌入向量的表征方法相比,ELMo方法可以更好地學(xué)習(xí)到詞語的上下文語境信息。
在上述基礎(chǔ)上,本文采用雙向編解碼器的烏英機(jī)器翻譯模型。編碼器的雙向結(jié)構(gòu)可以使模型充分挖掘源語言句子的信息。在編碼器與解碼器之間引入注意力機(jī)制,可以使解碼器在解碼每個(gè)單詞時(shí)關(guān)注不同的信息點(diǎn)從而提高準(zhǔn)確率。解碼器也采用雙向LSTM結(jié)構(gòu),一層自左向右進(jìn)行解碼,另一層自右向左進(jìn)行解碼,使模型在預(yù)測目標(biāo)詞時(shí)既關(guān)注已有歷史信息,又可以建模未來信息。實(shí)驗(yàn)結(jié)果表明,該模型優(yōu)于傳統(tǒng)的烏英機(jī)器翻譯模型。
神經(jīng)網(wǎng)絡(luò)模型主要是將輸入數(shù)據(jù)通過復(fù)雜的向量化計(jì)算,從中獲得存在的規(guī)律,最終返回其結(jié)果[13]。在神經(jīng)機(jī)器翻譯的編碼器-解碼器結(jié)構(gòu)中,首先將源語言句子中的詞編碼成詞向量,然后傳入到編碼器的神經(jīng)單元中編碼成對應(yīng)的隱藏狀態(tài)的向量,直到遇到句子結(jié)束符。最后將整個(gè)句子編碼成一個(gè)背景向量。注意力機(jī)制會(huì)根據(jù)解碼器的當(dāng)前預(yù)測去動(dòng)態(tài)地關(guān)注源語言端的不同部分,從而構(gòu)成不同的背景向量。將此背景向量傳入解碼器,解碼器根據(jù)當(dāng)前輸入和背景向量逐字解碼從而生成目標(biāo)語言。圖1為神經(jīng)機(jī)器翻譯的編碼器-解碼器結(jié)構(gòu)。
圖1 神經(jīng)機(jī)器翻譯編碼器-解碼器框架
2.2.1 編碼
編碼器輸入向量為X={x1,x2,…,xn}, 在時(shí)間步t, 將輸入的t時(shí)刻特征向量xt和上個(gè)時(shí)間步的隱藏狀態(tài)ht-1經(jīng)循環(huán)神經(jīng)網(wǎng)絡(luò)變換為當(dāng)前時(shí)間步的隱藏狀態(tài)ht, 將f定義為編碼器隱藏層變換函數(shù)。計(jì)算公式如式(1)所示
ht=f(xt,ht-1)
(1)
編碼器再通過自定義函數(shù)q將各個(gè)時(shí)間步的隱藏狀態(tài)轉(zhuǎn)化為背景向量C計(jì)算公式如式(2)所示
C=q(h1,h2,…,hn)
(2)
編碼器輸出的變量C包含了整個(gè)輸入序列x1,x2,…,xn的語義信息。對于訓(xùn)練樣本中的輸出序列y1,y2,…,yT′, 在每個(gè)時(shí)間步t′ (t′∈[1,T′]), 解碼器基于上一時(shí)間步的輸出yt′-1和背景變量C, 結(jié)合上一時(shí)間步的隱藏狀態(tài)st′-1變換為當(dāng)前時(shí)間步的隱藏狀態(tài)st′。 將g定義為解碼器隱藏層的變換函數(shù)。計(jì)算過程如式(3)所示
st′=g(yt′-1,st′-1,C)
(3)
2.2.2 解碼
解碼器當(dāng)前時(shí)間步輸出yt′的概率分布基于當(dāng)前時(shí)間步的解碼器隱藏狀態(tài)st′、 上一時(shí)間步的輸出yt′-1以及背景變量C來計(jì)算。L為自定義函數(shù)。如式(4)所示
P(yt′)=L(yt′-1,st′,C)
(4)
2.2.3 注意力機(jī)制
注意力機(jī)制使解碼器在不同時(shí)刻都有獨(dú)特的背景向量。假設(shè)t′的背景向量為Ct′, 則t′時(shí)刻隱藏層的變量st′的計(jì)算如式(5)所示
st′=g(yt′-1,st′-1,Ct′)
(5)
假設(shè)編碼器t時(shí)刻的隱藏輸出變量為ht, 則解碼器在t′時(shí)刻的背景向量Ct′的計(jì)算如式(6)所示
(6)
其中,αt′t的計(jì)算即對解碼器不同時(shí)刻的隱藏層變量進(jìn)行加權(quán)平均,如式(7)所示
(7)
對于et′t的計(jì)算如式(8)所示,其中V,Ws,Wh均為需要學(xué)習(xí)的模型參數(shù)
et′t=VTtanh(Wsst′-1+Whht)
(8)
本文在編碼器的構(gòu)建上選用雙向循環(huán)網(wǎng)絡(luò)架構(gòu),將LSTM作為神經(jīng)單元。編碼器底層采用正向編碼層和逆向編碼層相結(jié)合,以獲得更完整的語義信息。編碼器的模型結(jié)構(gòu)如圖2所示。
圖2 雙向LSTM編碼器
LSTM依靠細(xì)胞元記憶和存儲(chǔ)信息,但是細(xì)胞元本身不會(huì)更新和刪除信息。信息的更新和刪除主要由輸入門單元it、 遺忘門單元ft和輸出門單元ot這3個(gè)部分協(xié)同完成。LSTM節(jié)點(diǎn)結(jié)構(gòu)圖如圖2右框線內(nèi)所示。輸入門單元負(fù)責(zé)處理當(dāng)前位置的輸入信息;遺忘門單元負(fù)責(zé)控制上個(gè)節(jié)點(diǎn)被遺忘的信息量;輸出門單元負(fù)責(zé)輸出當(dāng)前節(jié)點(diǎn)的輸出信息。計(jì)算公式如式(9)所示
(9)
式中:ht-1代表t-1時(shí)刻的隱藏輸出信息。bi,bf,bo為隨機(jī)偏置向量。Wi,Wf,Wo分別代表需要學(xué)習(xí)的權(quán)重矩陣。
細(xì)胞元信息Ct基于式(9)進(jìn)行更新。計(jì)算過程如式(10) 所示
(10)
式中:Ct-1代表t-1時(shí)刻的細(xì)胞元信息,Zt代表添加的候補(bǔ)信息。
ht表示t時(shí)刻節(jié)點(diǎn)的隱藏輸出變量,計(jì)算公式如式(11)
ht=ot·tanh(Ct)
(11)
本文在解碼器的搭建上采用雙層LSTM架構(gòu),在單向解碼層的基礎(chǔ)上,同時(shí)采用從左向右解碼和從右向左解碼,然后通過Attention[14]來進(jìn)一步對齊生成。圖3、圖4分別為雙向解碼器在句尾時(shí)刻的正向解碼和逆向解碼過程。
圖3 雙向解碼器正向解碼過程
圖4 雙向解碼器逆向解碼過程
如圖3、圖4所示,L2R為正向解碼層,R2L為逆向解碼層。假設(shè)目標(biāo)序列為 {y1,y2,y3}, 初始時(shí)刻,L2R和R2L都輸入一個(gè)起始標(biāo)記(上圖中的),分別預(yù)測第一個(gè)字y1和最后一個(gè)字y3。 接著,將第一個(gè)字y1以及歷史信息作為輸入傳到L2R模塊的下一節(jié)點(diǎn)中,來預(yù)測第二個(gè)字y2。 預(yù)測y2時(shí),不僅用到L2R模塊本身的編碼,還用到R2L模塊已有的編碼結(jié)果;反之,將最后一個(gè)字以及歷史信息傳入到R2L模塊,再加上L2R模塊已有的編碼信息,來預(yù)測倒數(shù)第二個(gè)字。依此類推,直到出現(xiàn)了結(jié)束標(biāo)記(上圖中的
(12)
束搜索(beam search)算法在機(jī)器翻譯中的預(yù)測階段被廣泛使用。單向的編解碼器模型在解碼階段采用束搜索算法來生成候選序列。在每個(gè)時(shí)間步,束搜索算法會(huì)生成一個(gè)長度為k的候選序列,最終從候選序列中挑選出最優(yōu)的結(jié)果作為最終預(yù)測結(jié)果。束搜索算法雖不能保證全局最優(yōu),但其在預(yù)測過程中有更大的搜索空間,效果要優(yōu)于貪心搜索算法。
在本文雙向解碼算法中,采用雙向束搜索算法來生成預(yù)測目標(biāo)序列。雙向束搜索算法分別緩存自左向右的Topk最優(yōu)結(jié)果和自右向左的Topk最優(yōu)結(jié)果。在當(dāng)前時(shí)刻進(jìn)行預(yù)測時(shí),首先枚舉當(dāng)前預(yù)測字的Topk個(gè)候選字,然后結(jié)合自右向左和自左向右兩個(gè)方向的Topk候選路徑進(jìn)行預(yù)測,一共生成Topk3個(gè)候選組合。在組合完成后,對每種“候選字+自左向右候選路徑”的得分在“自右向左候選路徑”維度上取平均,重新變成Topk2個(gè)候選組合。再從這Topk2個(gè)組合中,選出分?jǐn)?shù)最高的Topk個(gè)候選值。對“候選字+自右向左候選路徑”的組合做相反的、同樣的處理。最終得出兩個(gè)方向的翻譯結(jié)果,選擇概率最高的作為最終結(jié)果輸出。
實(shí)驗(yàn)所采用數(shù)據(jù)集均為公開數(shù)據(jù)集,其中一部分來源于由古蘭經(jīng)和圣經(jīng)平行語料,約15 000行,由Jawaid和Zeman翻譯制作,另一部分來源于IPC(indic parallel corpus),是由亞馬遜平臺將6種印度次大陸語言翻譯為英語的文檔集合,其中英語與烏爾都語的平行語料約35 000行,總計(jì)50 000行數(shù)據(jù)集,其中訓(xùn)練集、驗(yàn)證集、測試集的劃分見表1。
表1 數(shù)據(jù)集劃分
本文使用ELMo 預(yù)訓(xùn)練英語、烏爾都語單語語料得到詞語的語境上下文向量。ELMo語言模型可以對深層次的信息產(chǎn)生更加豐富的詞語表征。具體來說,對于每個(gè)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練任務(wù),高層的LSTM的狀態(tài)捕捉詞語意義中和語境相關(guān)特征,而低層的LSTM捕捉語法方面的特征。采用這種雙向數(shù)據(jù)表征的方法可以多方位獲取語句的信息,顯著提升表征性能,效果優(yōu)于僅使用單層LSTM的表征。
對于烏爾都語-英語平行語料庫采用SentencePiece算法切分,它是一種無監(jiān)督文本詞條化工具。表2和表3分別為原始語料和經(jīng)SentencePiece切分后的語料。
表2 SentencePiece算法處理后語料
表3 SentencePiece算法處理后語料
本文中采用的評價(jià)標(biāo)準(zhǔn)為雙語評估替換(bilingual evaluation understudy,BLEU)。該方法是2002年IBM提出的用于評估機(jī)器翻譯效果的一種方法,特點(diǎn)簡單樸素、短平快、易于理解。它是用來衡量機(jī)器翻譯文本與參考文本之間的相似程度的通用指標(biāo)。
基于雙向LSTM的烏英機(jī)器翻譯模型訓(xùn)練過程中學(xué)習(xí)率初始值設(shè)定為0.001,dropout設(shè)置為0.3。迭代50輪的結(jié)果如圖5所示。虛線代表BLEU值變化情況,實(shí)線代表損失值變化情況。
圖5 雙向LSTM模型訓(xùn)練損失值與BLEU變化
由圖5可以看出,伴隨著Epoch的增加,損失值逐漸下降,利用測試集測試后所得的BLEU值則持續(xù)增大。從第40輪開始,模型逐漸收斂,損失值曲線和BLEU值曲線趨于平滑。最終Loss值下降到3.8左右,模型的最優(yōu)BLEU值達(dá)到8.31。
本文又進(jìn)行了系列對比實(shí)驗(yàn),首先將本文的雙向LSTM模型與單向LSTM模型進(jìn)行實(shí)驗(yàn)對比,圖6為雙向LSTM模型與單向LSTM模型訓(xùn)練過程中的BLEU值變化情況。
圖6 雙向LSTM與單向LSTM模型BLEU值對比
由圖6可以看出,在前20次迭代過程中,雙向LSTM模型與單向LSTM模型的BLEU值相似。隨著迭代次數(shù)的增加,雙向LSTM模型的BLEU值提升變快,明顯高于單向LSTM模型。因?yàn)殡p向LSTM模型在解碼時(shí)可以關(guān)注到更多的詞信息,在一些長句子的解碼上也比單向LSTM模型更好。最終,雙向LSTM模型相比單向LSTM模型BLEU值提升了1.46。
然后又將進(jìn)行ELMo預(yù)訓(xùn)練后的詞向量放進(jìn)雙向LSTM模型進(jìn)行訓(xùn)練,與原來未使用ELMo預(yù)訓(xùn)練詞向量的雙向LSTM模型進(jìn)行對比,訓(xùn)練所得BLEU評分如圖7所示。
圖7 雙向LSTM與ELMo+雙向LSTM模型BLEU值對比
從圖7中可以看出,基于ELMo的雙向LSTM模型在訓(xùn)練初期得出的翻譯得分略低于雙向LSTM模型,但隨著訓(xùn)練次數(shù)的增加基于ELMo的雙向LSTM模型翻譯效果逐漸提高,最終BLEU值達(dá)到了9.27,比雙向LSTM模型高了0.96分。結(jié)果表明經(jīng)ELMo預(yù)訓(xùn)練后的詞向量更具有代表性和泛化性,可以幫助神經(jīng)網(wǎng)絡(luò)模型更好地提取特征。并且雙向LSTM模型在編碼過程中可以更加充分的掌握源語言句子信息,解碼時(shí)也可以避免單向傾斜性的問題,相比傳統(tǒng)的單向模型在BLEU值上提升了2.42。
為進(jìn)一步驗(yàn)證本文提出的基于雙向編解碼器的神經(jīng)機(jī)器翻譯模型的有效性,本文分別在WMT-2014英-德和英-法數(shù)據(jù)集上進(jìn)行了對比實(shí)驗(yàn),其中英-德雙語平行語料約200 k行,英-法雙語平行語料約150 k行,實(shí)驗(yàn)所得BLEU評分見表4。
表4 泛化性實(shí)驗(yàn)對比
由表4可以看出,本文基于ELMo和雙向LSTM的機(jī)器翻譯模型相比于單向LSTM模型在英德和英法翻譯效果上都有一定的提升,驗(yàn)證了本文模型的泛化性和有效性。
本文提出了一種基于雙向編解碼器的烏英機(jī)器翻譯模型。針對烏爾都語的語料庫稀缺的問題,充分考慮烏爾都語文本語料中復(fù)雜多變的形態(tài)以及書寫特點(diǎn),采用ELMo語言模型進(jìn)行語料的預(yù)訓(xùn)練,ELMo算法采用雙向LSTM結(jié)構(gòu)對詞進(jìn)行編碼,多方位獲取上下文語義信息。同時(shí)模型采用雙向編解碼結(jié)構(gòu),既在編碼過程中保證源語言信息的編碼的完整性,又在解碼過程中有效地建模歷史和未來信息,提高了信息的利用率,最終在預(yù)測目標(biāo)序列時(shí)采用雙向束搜索算法,避免模型陷入局部最優(yōu),從而取得全局最優(yōu)的預(yù)測序列?;陔p向編解碼器的烏英神經(jīng)機(jī)器翻譯模型相比傳統(tǒng)烏英機(jī)器翻譯模型,降低了模型損失值,同時(shí)又提高了譯文BLEU 值。本文雖在模型評分上取得一定的提高,但限于語料庫的匱乏,并沒有充分發(fā)揮模型的性能,特別是在長句上的表現(xiàn)。下一步會(huì)構(gòu)建并擴(kuò)充語料資源,并對模型進(jìn)行進(jìn)一步分析完善,從而提高烏英機(jī)器翻譯的質(zhì)量。