高 巍,李耀松+,李大舟,陳子祥,孟智慧
(1.沈陽化工大學 計算機科學與技術學院,遼寧 沈陽 110142;2.中國移動通信集團設計院有限公司 河北分公司,山西 太原 030000)
近年來,機器翻譯作為自然語言處理的重要組成部分取得了飛速的發展。翻譯方法由最初的基于統計、基于短語和基于實例的方法,逐漸演變為基于神經網絡和編解碼器模型的神經機器翻譯方法,在翻譯質量上甚至媲美人工翻譯。同時,翻譯模式也由最初的一種語言到另一種語言的翻譯模式,逐漸發展為能同時進行一種語言到多種語言的翻譯,逐漸呈現出多元化的趨勢。然而烏爾都語與英語在語法規則、書寫形式等方面存在差異,且平行語料資源稀缺,導致傳統機器翻譯模型無法發揮出較好的效果。因此設計一個高質量的翻譯模型,成為提高烏爾都語到英語翻譯質量的重要手段[1-3]。
本文提出一個基于雙向編解碼器的烏爾都語到英語的機器翻譯模型。編碼器和解碼器都采用雙向LSTM搭建,并在編碼器與解碼器之間引入注意力機制。首先,經詞嵌入編碼后的源語句作為編碼器的輸入,輸出結果會包含源語句信息的語義向量。注意力機制在不同時刻將對應的語義向量傳入解碼器。經解碼器的輸出向量再經過Softmax函數進行處理,輸出目標單詞的概率向量,再根據詞匯表選出預測目標詞。采用BLEU評分來對最終的翻譯文本進行評估。
國內外針對烏爾都語與英語的機器翻譯的研究相對較少。最早由Bushra Jawaid提出了一個基于統計短語的烏英機器翻譯模型[4],通過調查英語和烏爾都語的語法結構,發現這兩種語言在語法和書寫上存在顯著差異。在此基礎上提出了對短語和單詞的重新排序。最終基于Moses SMT模型進行實驗,實驗結果表明,基于重新排序短語的統計機器翻譯方法有效提高了烏爾都語到英語的翻譯質量。Kyunghyun Cho等提出了一種由兩個遞歸神經網絡組成的新型神經網絡模型LSTM編碼器-解碼器[5],通過使用現有的對數線性模型中的LSTM編碼器解碼器計算的短語對的條件概率作為統計特征,改善統計機器翻譯系統的性能。考慮到英語和烏爾都語屬于不同的語系,他們的語言特征不同,Shahnawaz等將語言特征和詞匯結合起來,提出了一個使用GIZA++、SRILM和Moses的英語-烏爾都語機器翻譯模型[6]。采用最小翻譯錯誤率訓練模型,對因子翻譯模型進行譯碼和訓練,最終提高了烏爾都語到英語的翻譯模型的評分。
神經網絡機器翻譯自興起以后,在性能上遠超傳統的統計機器翻譯和基于規則、短語的機器翻譯[7,8]。最早由Shahnawaz等將人工神經網絡(ANN)應用于烏英機器翻譯[9],并加入機器翻譯實例推理(CBR)和翻譯規則庫,最后采用CBR方法對輸入的英語句子進行烏爾都語翻譯規則的選擇。但翻譯規則需要人工制定,并且時常需要更新和維護,導致工作量大且冗雜。神經機器翻譯模型在大語種之間的翻譯和研究備受關注,然而針對小語種的翻譯效果欠佳[10]。
針對烏英平行語料庫資源稀缺的問題,本文采用ELMo[11]神經網絡來預訓練英語和烏爾都語的單語料庫。預訓練詞向量表征的定義參見文獻[12]。本文通過ELMo方法對烏英語料庫進行預訓練,兼顧詞語用法在語義和語法上的復雜特點和伴隨語言環境的改變而改變的問題,能夠產生豐富的詞語表征。與其它詞嵌入向量的表征方法相比,ELMo方法可以更好地學習到詞語的上下文語境信息。
在上述基礎上,本文采用雙向編解碼器的烏英機器翻譯模型。編碼器的雙向結構可以使模型充分挖掘源語言句子的信息。在編碼器與解碼器之間引入注意力機制,可以使解碼器在解碼每個單詞時關注不同的信息點從而提高準確率。解碼器也采用雙向LSTM結構,一層自左向右進行解碼,另一層自右向左進行解碼,使模型在預測目標詞時既關注已有歷史信息,又可以建模未來信息。實驗結果表明,該模型優于傳統的烏英機器翻譯模型。
神經網絡模型主要是將輸入數據通過復雜的向量化計算,從中獲得存在的規律,最終返回其結果[13]。在神經機器翻譯的編碼器-解碼器結構中,首先將源語言句子中的詞編碼成詞向量,然后傳入到編碼器的神經單元中編碼成對應的隱藏狀態的向量,直到遇到句子結束符。最后將整個句子編碼成一個背景向量。注意力機制會根據解碼器的當前預測去動態地關注源語言端的不同部分,從而構成不同的背景向量。將此背景向量傳入解碼器,解碼器根據當前輸入和背景向量逐字解碼從而生成目標語言。圖1為神經機器翻譯的編碼器-解碼器結構。

圖1 神經機器翻譯編碼器-解碼器框架
2.2.1 編碼
編碼器輸入向量為X={x1,x2,…,xn}, 在時間步t, 將輸入的t時刻特征向量xt和上個時間步的隱藏狀態ht-1經循環神經網絡變換為當前時間步的隱藏狀態ht, 將f定義為編碼器隱藏層變換函數。計算公式如式(1)所示
ht=f(xt,ht-1)
(1)
編碼器再通過自定義函數q將各個時間步的隱藏狀態轉化為背景向量C計算公式如式(2)所示
C=q(h1,h2,…,hn)
(2)
編碼器輸出的變量C包含了整個輸入序列x1,x2,…,xn的語義信息。對于訓練樣本中的輸出序列y1,y2,…,yT′, 在每個時間步t′ (t′∈[1,T′]), 解碼器基于上一時間步的輸出yt′-1和背景變量C, 結合上一時間步的隱藏狀態st′-1變換為當前時間步的隱藏狀態st′。 將g定義為解碼器隱藏層的變換函數。計算過程如式(3)所示
st′=g(yt′-1,st′-1,C)
(3)
2.2.2 解碼
解碼器當前時間步輸出yt′的概率分布基于當前時間步的解碼器隱藏狀態st′、 上一時間步的輸出yt′-1以及背景變量C來計算。L為自定義函數。如式(4)所示
P(yt′)=L(yt′-1,st′,C)
(4)
2.2.3 注意力機制
注意力機制使解碼器在不同時刻都有獨特的背景向量。假設t′的背景向量為Ct′, 則t′時刻隱藏層的變量st′的計算如式(5)所示
st′=g(yt′-1,st′-1,Ct′)
(5)
假設編碼器t時刻的隱藏輸出變量為ht, 則解碼器在t′時刻的背景向量Ct′的計算如式(6)所示
(6)
其中,αt′t的計算即對解碼器不同時刻的隱藏層變量進行加權平均,如式(7)所示
(7)
對于et′t的計算如式(8)所示,其中V,Ws,Wh均為需要學習的模型參數
et′t=VTtanh(Wsst′-1+Whht)
(8)
本文在編碼器的構建上選用雙向循環網絡架構,將LSTM作為神經單元。編碼器底層采用正向編碼層和逆向編碼層相結合,以獲得更完整的語義信息。編碼器的模型結構如圖2所示。

圖2 雙向LSTM編碼器

LSTM依靠細胞元記憶和存儲信息,但是細胞元本身不會更新和刪除信息。信息的更新和刪除主要由輸入門單元it、 遺忘門單元ft和輸出門單元ot這3個部分協同完成。LSTM節點結構圖如圖2右框線內所示。輸入門單元負責處理當前位置的輸入信息;遺忘門單元負責控制上個節點被遺忘的信息量;輸出門單元負責輸出當前節點的輸出信息。計算公式如式(9)所示
(9)
式中:ht-1代表t-1時刻的隱藏輸出信息。bi,bf,bo為隨機偏置向量。Wi,Wf,Wo分別代表需要學習的權重矩陣。
細胞元信息Ct基于式(9)進行更新。計算過程如式(10) 所示
(10)
式中:Ct-1代表t-1時刻的細胞元信息,Zt代表添加的候補信息。
ht表示t時刻節點的隱藏輸出變量,計算公式如式(11)
ht=ot·tanh(Ct)
(11)
本文在解碼器的搭建上采用雙層LSTM架構,在單向解碼層的基礎上,同時采用從左向右解碼和從右向左解碼,然后通過Attention[14]來進一步對齊生成。圖3、圖4分別為雙向解碼器在句尾時刻的正向解碼和逆向解碼過程。

圖3 雙向解碼器正向解碼過程

圖4 雙向解碼器逆向解碼過程
如圖3、圖4所示,L2R為正向解碼層,R2L為逆向解碼層。假設目標序列為 {y1,y2,y3}, 初始時刻,L2R和R2L都輸入一個起始標記(上圖中的),分別預測第一個字y1和最后一個字y3。 接著,將第一個字y1以及歷史信息作為輸入傳到L2R模塊的下一節點中,來預測第二個字y2。 預測y2時,不僅用到L2R模塊本身的編碼,還用到R2L模塊已有的編碼結果;反之,將最后一個字以及歷史信息傳入到R2L模塊,再加上L2R模塊已有的編碼信息,來預測倒數第二個字。依此類推,直到出現了結束標記(上圖中的

(12)
束搜索(beam search)算法在機器翻譯中的預測階段被廣泛使用。單向的編解碼器模型在解碼階段采用束搜索算法來生成候選序列。在每個時間步,束搜索算法會生成一個長度為k的候選序列,最終從候選序列中挑選出最優的結果作為最終預測結果。束搜索算法雖不能保證全局最優,但其在預測過程中有更大的搜索空間,效果要優于貪心搜索算法。
在本文雙向解碼算法中,采用雙向束搜索算法來生成預測目標序列。雙向束搜索算法分別緩存自左向右的Topk最優結果和自右向左的Topk最優結果。在當前時刻進行預測時,首先枚舉當前預測字的Topk個候選字,然后結合自右向左和自左向右兩個方向的Topk候選路徑進行預測,一共生成Topk3個候選組合。在組合完成后,對每種“候選字+自左向右候選路徑”的得分在“自右向左候選路徑”維度上取平均,重新變成Topk2個候選組合。再從這Topk2個組合中,選出分數最高的Topk個候選值。對“候選字+自右向左候選路徑”的組合做相反的、同樣的處理。最終得出兩個方向的翻譯結果,選擇概率最高的作為最終結果輸出。
實驗所采用數據集均為公開數據集,其中一部分來源于由古蘭經和圣經平行語料,約15 000行,由Jawaid和Zeman翻譯制作,另一部分來源于IPC(indic parallel corpus),是由亞馬遜平臺將6種印度次大陸語言翻譯為英語的文檔集合,其中英語與烏爾都語的平行語料約35 000行,總計50 000行數據集,其中訓練集、驗證集、測試集的劃分見表1。

表1 數據集劃分
本文使用ELMo 預訓練英語、烏爾都語單語語料得到詞語的語境上下文向量。ELMo語言模型可以對深層次的信息產生更加豐富的詞語表征。具體來說,對于每個神經網絡的訓練任務,高層的LSTM的狀態捕捉詞語意義中和語境相關特征,而低層的LSTM捕捉語法方面的特征。采用這種雙向數據表征的方法可以多方位獲取語句的信息,顯著提升表征性能,效果優于僅使用單層LSTM的表征。
對于烏爾都語-英語平行語料庫采用SentencePiece算法切分,它是一種無監督文本詞條化工具。表2和表3分別為原始語料和經SentencePiece切分后的語料。

表2 SentencePiece算法處理后語料

表3 SentencePiece算法處理后語料
本文中采用的評價標準為雙語評估替換(bilingual evaluation understudy,BLEU)。該方法是2002年IBM提出的用于評估機器翻譯效果的一種方法,特點簡單樸素、短平快、易于理解。它是用來衡量機器翻譯文本與參考文本之間的相似程度的通用指標。
基于雙向LSTM的烏英機器翻譯模型訓練過程中學習率初始值設定為0.001,dropout設置為0.3。迭代50輪的結果如圖5所示。虛線代表BLEU值變化情況,實線代表損失值變化情況。

圖5 雙向LSTM模型訓練損失值與BLEU變化
由圖5可以看出,伴隨著Epoch的增加,損失值逐漸下降,利用測試集測試后所得的BLEU值則持續增大。從第40輪開始,模型逐漸收斂,損失值曲線和BLEU值曲線趨于平滑。最終Loss值下降到3.8左右,模型的最優BLEU值達到8.31。
本文又進行了系列對比實驗,首先將本文的雙向LSTM模型與單向LSTM模型進行實驗對比,圖6為雙向LSTM模型與單向LSTM模型訓練過程中的BLEU值變化情況。

圖6 雙向LSTM與單向LSTM模型BLEU值對比
由圖6可以看出,在前20次迭代過程中,雙向LSTM模型與單向LSTM模型的BLEU值相似。隨著迭代次數的增加,雙向LSTM模型的BLEU值提升變快,明顯高于單向LSTM模型。因為雙向LSTM模型在解碼時可以關注到更多的詞信息,在一些長句子的解碼上也比單向LSTM模型更好。最終,雙向LSTM模型相比單向LSTM模型BLEU值提升了1.46。
然后又將進行ELMo預訓練后的詞向量放進雙向LSTM模型進行訓練,與原來未使用ELMo預訓練詞向量的雙向LSTM模型進行對比,訓練所得BLEU評分如圖7所示。

圖7 雙向LSTM與ELMo+雙向LSTM模型BLEU值對比
從圖7中可以看出,基于ELMo的雙向LSTM模型在訓練初期得出的翻譯得分略低于雙向LSTM模型,但隨著訓練次數的增加基于ELMo的雙向LSTM模型翻譯效果逐漸提高,最終BLEU值達到了9.27,比雙向LSTM模型高了0.96分。結果表明經ELMo預訓練后的詞向量更具有代表性和泛化性,可以幫助神經網絡模型更好地提取特征。并且雙向LSTM模型在編碼過程中可以更加充分的掌握源語言句子信息,解碼時也可以避免單向傾斜性的問題,相比傳統的單向模型在BLEU值上提升了2.42。
為進一步驗證本文提出的基于雙向編解碼器的神經機器翻譯模型的有效性,本文分別在WMT-2014英-德和英-法數據集上進行了對比實驗,其中英-德雙語平行語料約200 k行,英-法雙語平行語料約150 k行,實驗所得BLEU評分見表4。

表4 泛化性實驗對比
由表4可以看出,本文基于ELMo和雙向LSTM的機器翻譯模型相比于單向LSTM模型在英德和英法翻譯效果上都有一定的提升,驗證了本文模型的泛化性和有效性。
本文提出了一種基于雙向編解碼器的烏英機器翻譯模型。針對烏爾都語的語料庫稀缺的問題,充分考慮烏爾都語文本語料中復雜多變的形態以及書寫特點,采用ELMo語言模型進行語料的預訓練,ELMo算法采用雙向LSTM結構對詞進行編碼,多方位獲取上下文語義信息。同時模型采用雙向編解碼結構,既在編碼過程中保證源語言信息的編碼的完整性,又在解碼過程中有效地建模歷史和未來信息,提高了信息的利用率,最終在預測目標序列時采用雙向束搜索算法,避免模型陷入局部最優,從而取得全局最優的預測序列。基于雙向編解碼器的烏英神經機器翻譯模型相比傳統烏英機器翻譯模型,降低了模型損失值,同時又提高了譯文BLEU 值。本文雖在模型評分上取得一定的提高,但限于語料庫的匱乏,并沒有充分發揮模型的性能,特別是在長句上的表現。下一步會構建并擴充語料資源,并對模型進行進一步分析完善,從而提高烏英機器翻譯的質量。