高 巍,陳子祥,李大舟,李耀松
(沈陽化工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,沈陽110000)
2013年習(xí)主席提出的“一帶一路”極大地促進(jìn)了沿線各國的深度合作.在此基礎(chǔ)上,各國之間的交流愈加頻繁,國家語言之間的轉(zhuǎn)換需求也與日俱增,機器翻譯愈發(fā)受到重視.目前,機器翻譯方法呈現(xiàn)出多語言、高質(zhì)量的發(fā)展趨勢,能夠?qū)⒁环N語言翻譯成多種語言,并且在一定程度上保證了翻譯質(zhì)量[1].然而不同語言之間在語法規(guī)則、書寫形式等方面存在差異,且小語種的語料資源稀缺,因此尋求一個高質(zhì)量的翻譯模型成為了提高翻譯的效果重要手段.
印度和巴基斯坦作為“一帶一路”戰(zhàn)略中南亞地區(qū)代表國,具有獨特的地理位置和政治因素.“一帶一路”戰(zhàn)略涉及的官方語言有 50 余種[2].烏爾都語作為巴基斯坦的母語,也是印度的官方語言.它屬于印歐語系印度語族,書寫形式為自右至左書寫,詞與詞之間沒有空隔隔開.英語作為全球通用的官方語言,也是印度的官方語言之一.因此,實現(xiàn)烏爾都語與英語之間的翻譯對于“一帶一路”的發(fā)展具有重大意義.
本文提出了一個基于預(yù)標(biāo)準(zhǔn)化Transformer的烏英機器翻譯模型.首先將源語言向量加上位置編碼,然后傳入預(yù)標(biāo)準(zhǔn)化層.將預(yù)標(biāo)準(zhǔn)化后的詞向量作為輸入傳入編碼器,編碼器中采用多頭注意力機制以充分獲取源語言句子的語義信息,然后將輸出結(jié)果傳入解碼器進(jìn)行解碼.經(jīng)解碼后的輸出向量經(jīng)過線性變換后再經(jīng)函數(shù)處理得到反映每個目標(biāo)單詞概率的輸出向量.將BLEU值[3]作為評價譯文質(zhì)量標(biāo)準(zhǔn),輸出最優(yōu)譯文.
近年來,關(guān)于烏爾都語與英語之間的機器翻譯的研究,仍以統(tǒng)計機器翻譯[4]為主.統(tǒng)計機器翻譯過程為以下幾個階段:處理分詞、標(biāo)記詞性、詞語對齊、語言模型的訓(xùn)練、翻譯模型的訓(xùn)練、調(diào)節(jié)模型、最小錯誤率評分等[5,6].不僅過程繁鎖,且以統(tǒng)計分析的方法很難獲取高質(zhì)量譯文,因此通過改進(jìn)翻譯模型來提高翻譯質(zhì)量成為研究熱點.王志洋通過對詞語進(jìn)行形態(tài)分析并將詞干與詞綴分離,再進(jìn)行對齊的方法來改進(jìn)翻譯模型[7],提高了翻譯質(zhì)量.Shahnawaz等提出基于GIZA++、SRILM和MOSES解碼器的英語-烏爾都語機器翻譯系統(tǒng)模型[8],采用最小錯誤率訓(xùn)練方法,對因子翻譯模型進(jìn)行譯碼和訓(xùn)練.為了取得更好的翻譯效果,Shahnawaz等人又提出了一種基于機器翻譯實例推理(CBR)、翻譯規(guī)則庫模型和人工神經(jīng)網(wǎng)絡(luò)(ANN)模型的烏英機器翻譯模型[9],采用CBR方法對輸入的英語句子進(jìn)行烏爾都語翻譯規(guī)則的選擇.
由于人工神經(jīng)網(wǎng)絡(luò)不能很好地利用已有的先驗知識,再加上人工干預(yù)多,推理速度慢等缺點,不能很大程度地優(yōu)化翻譯質(zhì)量[10].因此,神經(jīng)機器翻譯的(Neural Machine Translation,NMT)出現(xiàn),對于傳統(tǒng)機器翻譯模型存在的問題有了很大的改善[11].神經(jīng)機器翻譯通過學(xué)習(xí)源語言表達(dá)方式分析預(yù)測出目標(biāo)語言,實現(xiàn)雙語映射[12].例如Bahdanau和Cho利用神經(jīng)網(wǎng)絡(luò)模型對詞匯進(jìn)行聯(lián)合對齊概率計算[13,14],生成翻譯候選集,進(jìn)而對候選集進(jìn)行評分并輸出最優(yōu)譯文.Barret Zoph[15]等人基于長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)搭建了神經(jīng)機器翻譯系統(tǒng),實現(xiàn)烏爾都語到英語的翻譯.但是這種模型訓(xùn)練過程是串行進(jìn)行,耗時較大,且模型對上下文的理解欠佳.因此,對烏英機器翻譯模型的進(jìn)一步改進(jìn)成為研究熱點.
針對上述問題,本文提出一種基于預(yù)標(biāo)準(zhǔn)化Transformer的翻譯模型,作為烏英翻譯模型中源語言編碼和目標(biāo)語言解碼的載體.在基準(zhǔn)Transformer模型中加入預(yù)標(biāo)準(zhǔn)化,保證數(shù)據(jù)分布一致的同時避免發(fā)生梯度消失,有效的提升了烏英機器翻譯的效果.
宏觀來看,Transformer是一個黑盒,輸入一種語言,經(jīng)過這個黑盒能輸出另一種語言.宏觀結(jié)構(gòu)圖如圖1所示.它是由編碼器和解碼器以及它們之間的連接組成.輸入烏爾都語,通過堆疊的編碼器輸出對應(yīng)特征向量,再將編碼器的輸出向量作為解碼器的輸入,最終輸出英語.
圖1 Transformer宏觀結(jié)構(gòu)圖Fig.1 Macro structure of transformer
本文提出的預(yù)標(biāo)準(zhǔn)化Transformer模型的主體結(jié)構(gòu)圖如圖2所示.首先對源語言進(jìn)行詞嵌入,生成對應(yīng)詞向量,加上對應(yīng)位置編碼.將計算結(jié)果進(jìn)行預(yù)標(biāo)準(zhǔn)化處理,處理后的結(jié)果經(jīng)線性變換獲得密鑰K,值V和查詢Q矩陣作為編碼器的輸入.編碼器內(nèi)部采用多頭自注意力機制,聚合輸入的源語言單詞的信息,生成每個單詞的新表示.再經(jīng)前饋層得到編碼器的輸出.為了避免梯度爆炸,在每層網(wǎng)絡(luò)后引入殘差連接和歸一化層.解碼器將上一時刻的輸出經(jīng)掩碼多頭注意力層后再經(jīng)線性變換得到查詢Q矩陣,將編碼器的輸出經(jīng)線性變換后得到密鑰K和值V矩陣.再將K,V和Q矩陣作為多頭注意力的輸入,解碼后的輸出再通過線性變換和softmax得到每個單詞概率的輸出向量.
圖2 預(yù)標(biāo)準(zhǔn)化Transformer模型結(jié)構(gòu)Fig.2 Pre-normalized Transformer model structure
Transformer模型是并行接收輸入序列的,所以不能捕捉順序序列.位置編碼特征的嵌入可以很好地解決這個問題[16].通過在詞嵌入向量中加入單詞的位置信息來使Transformer能夠區(qū)分不同位置上的單詞.
本文模型中采用的位置編碼是正余弦位置編碼,位置編碼的計算公式如式(1)所示.
(1)
其中PE是Positional Encoding的縮寫,指的是位置編碼.pos是指當(dāng)前的詞在句子中對應(yīng)的位置,i是指向量中每個值的下標(biāo).在偶數(shù)位置,使用正弦編碼;在奇數(shù)位置,使用余弦編碼.
假設(shè)詞嵌入的維度為4,即dmodel=4,則可以根據(jù)公式(1)寫出對應(yīng)的位置編碼.如表1所示.
表1 位置編碼表Table 1 Positional encoding table
預(yù)標(biāo)準(zhǔn)化層如圖2所示.詞向量加入位置向量后會產(chǎn)生分布不一致,一定程度上折損了模型的翻譯效果.預(yù)標(biāo)準(zhǔn)化層的加入,保證輸入數(shù)據(jù)分布均勻的同時,避免了梯度消失.
預(yù)標(biāo)準(zhǔn)化的公式如式(2)所示:
(2)
Layer Normalization計算公式如式(3)所示.
(3)
式(3)中,μ、σ分別代表均值和方差,a和b是可學(xué)習(xí)的參數(shù),ε為隨機取的極小數(shù).
編碼器的內(nèi)部結(jié)構(gòu)如圖2左側(cè)虛線框內(nèi)所示,編碼器由多頭自注意力機制和前饋神經(jīng)網(wǎng)絡(luò)兩個部分組成.預(yù)標(biāo)準(zhǔn)化處理后的輸入向量經(jīng)過多頭注意力機制得到一個上下文向量,將該向量與輸入向量求和后經(jīng)歸一化處理傳入前饋神經(jīng)網(wǎng)絡(luò)層(Feed Forward Neural Network,F(xiàn)FN)[16].經(jīng)前饋層處理后的輸出向量再與該前饋層的輸入求和,對求和結(jié)果進(jìn)行歸一化處理之后作為編碼器的輸出.
3.3.1 多頭自注意力機制
多頭自注意力機制是Transformer的核心內(nèi)容,能讓模型考慮到不同位置的信息.多頭注意力機制的計算相當(dāng)于多個不同的單自注意力機制的集成.單頭注意力機制的計算過程如圖3所示,圖中僅為第一個輸入向量a1的計算過程.
圖3中單頭注意力機制的輸入是經(jīng)預(yù)標(biāo)準(zhǔn)化后的特征向量a1,a2,…,ai,a1,a2,…,ai分別乘以不同的權(quán)值矩陣Wq,Wk,Wv,得到Q(q1,…,qi),K(k1,k2,…,ki),V(v1,v2,…,vi).計算公式如式(4)所示.
Q=Wq·[a1a2…ai]K=Wk·[a1a2…ai]V=Wv·[a1a2…ai]
(4)
式(4)中Wq,Wk,Wv是隨機初始化權(quán)重方陣.a1,a2,…,ai是輸入數(shù)據(jù)經(jīng)過詞嵌入和位置編碼相加之后的特征向量.
(5)
對關(guān)聯(lián)度矩陣A進(jìn)行softmax得到標(biāo)準(zhǔn)化矩陣B,將矩陣V與矩陣B點乘得到輸出矩陣O,通過式(6)獲得計算結(jié)果O.
(6)
由此可以得到特征向量Z,計算公式如(7)所示.
(7)
多頭注意力機制的計算相當(dāng)于多個不同的單自注意力機制的集成.多頭注意力機制的計算公式如(8)、(9)所示.
(8)
MultiHead(Q,K,V)=Concat(head1,head2,…,headh)WO
(9)
3.3.2 前饋神經(jīng)網(wǎng)絡(luò)層
前饋神經(jīng)網(wǎng)絡(luò)層(Feed Forward Neural Network,F(xiàn)FN)分為兩個子層,第一個子層的激活函數(shù)為RELU,第二個子層的激活函數(shù)是一個線性函數(shù),計算公式如(10)所示.
FFN(Z)=max(0,ZW1+b1)W2+b2
(10)
式(10)中,W1和W2是可學(xué)習(xí)的權(quán)重方陣,b1和b2是隨機偏置向量.
解碼器的內(nèi)部結(jié)構(gòu)如圖2右側(cè)虛線框內(nèi)所示.解碼器中分別包含掩碼多頭自注意力層、編碼器-解碼器注意力層和前饋神經(jīng)網(wǎng)絡(luò)層三個子層.將目標(biāo)語言的詞向量作為輸入向量,經(jīng)掩碼多頭注意力層后,將輸出結(jié)果進(jìn)行求和與歸一化[17];將歸一化后的結(jié)果和編碼器的輸出一起傳入編碼器-解碼器注意力層;最后經(jīng)前饋神經(jīng)網(wǎng)絡(luò)層得到解碼器的輸出.具體每層的計算過程如下.
第一層為掩碼多頭自注意力層,輸入是目標(biāo)語句的詞向量.假設(shè)輸入序列為Y=(y1,y2,…,yn),對yi進(jìn)行預(yù)測時,掩碼多頭注意力層只對(y1,y2,…,yi-1)序列進(jìn)行Attention計算(計算過程如3.3.1所示),防止訓(xùn)練時使用未來信息.
第二層為編碼器-解碼器注意力層,它的輸入分為兩部分,分別是掩碼多頭注意力層的輸出和編碼器的輸出.將掩碼多頭注意力層的輸出作為Q,編碼器的輸出作為K,V鍵值對,進(jìn)行Attention,使解碼器在解碼當(dāng)前詞時充分考慮源語言的信息.
第三層為前饋神經(jīng)網(wǎng)絡(luò)層,它的輸入為編碼器-解碼器注意力層的輸出.它和編碼器中的前饋神經(jīng)網(wǎng)絡(luò)層一樣(計算過程如3.3.2所示).經(jīng)此層輸出的特征向量經(jīng)線性變化和softmax函數(shù)之后得到每個單詞概率的輸出向量.
實驗的數(shù)據(jù)集共有兩個來源,一是來源于由Jawaid和Zeman平行翻譯的古蘭經(jīng)和圣經(jīng)部分語句約15000行;二是來源于IPC(Indic Parallel Corpus),是亞馬遜Mechanical Turk(MTURK)平臺眾包將六種印度次大陸語言翻譯成英語的維基百科文檔的集合[18].其中烏爾都語到英語平行語料庫約35000行.共計有50000行數(shù)據(jù)集.其中43000行用來構(gòu)建訓(xùn)練集,5000行構(gòu)建驗證集,2000行構(gòu)建測試集.
首先對數(shù)據(jù)集進(jìn)行Sentencepiece[19]處理.Sentencepiece算法分為兩步,第一步固定詞表,求一個句子困惑度最低的切分序列;第二步根據(jù)這個切分序列求固定詞表,剔除一個詞,計算困惑度,最后對困惑度設(shè)定一個閾值,篩選一些對語料集影響較大的詞,組成詞匯表.Sentencepiece處理后的部分源語句和目標(biāo)語句如表2所示.
表2 SentencePiece算法處理后語料Table 2 Corpus processed by Sentencepiece algorithm
本文中采用的評價標(biāo)準(zhǔn)為BLEU.BLEU 是用來衡量機器翻譯文本與參考文本之間的相似程度的指標(biāo),取值范圍在[0,1].本文中最終的BLEU值截取了百分?jǐn)?shù)的數(shù)值部分來進(jìn)行衡量比較.
本次實驗在顯卡配置為RTX2070,內(nèi)存8GB的筆記本上進(jìn)行,系統(tǒng)環(huán)境為ubuntu18.04桌面版,實驗時內(nèi)存占用率為94%,參數(shù)量為64M.在深度學(xué)習(xí)框架TensorFlow上搭建神經(jīng)機器翻譯系統(tǒng).模型相關(guān)參數(shù)設(shè)置如表3所示.
本文利用烏爾都語-英語雙語料中預(yù)設(shè)的2000句對平行雙語語料做測試集,采用BLEU值作為實驗的評價指標(biāo).
實驗每迭代一輪輸出一次BLEU值.圖4所示為預(yù)標(biāo)準(zhǔn)化Transformer模型迭代50輪的損失值變化情況和每輪BLEU值.由于在迭代次數(shù)到40輪之后,損失值和BLEU值的變化趨勢都趨于平滑,因此,在圖4中只給了迭代次數(shù)為前50輪時的變化情況.
從圖4中可以看出,迭代次數(shù)在前40輪時,損失值和BLEU值的變化情況明顯.隨著迭代次數(shù)的增加,模型訓(xùn)練接近飽和,損失值變化趨于平緩.BLEU也趨于穩(wěn)定,模型最優(yōu)BLEU值為16.13.
圖4 預(yù)標(biāo)準(zhǔn)化模型訓(xùn)練Loss和BLEU變化Fig.4 Changes of Loss and BLEU in pre-normalizedmodel training
本文進(jìn)行了模型調(diào)參試驗,對預(yù)標(biāo)準(zhǔn)化Transfromer采用控制變量法進(jìn)行調(diào)參.實驗設(shè)置如表4,實驗結(jié)果如圖5、圖6所示.
表4 調(diào)參實驗設(shè)置表Table 4 Settings of parameter adjustment experiment
從圖5中可以看出,batchsize為32時,模型的損失相對于其他兩個更低,其BLEU值也優(yōu)先收斂.但隨著迭代次數(shù)增加,batchsize為64的BLEU達(dá)到最優(yōu)且優(yōu)于其他兩個模型.因此batchsize的大小要根據(jù)具體實驗情況設(shè)定.盲目增大batchsize會導(dǎo)致模型收斂速度變慢,而且模型易陷入局部最小值,導(dǎo)致模型精度較低;而batch過小則會導(dǎo)致模型泛化能力弱.
圖5 不同batchsize下Loss和BLEU變化Fig.5 Changes of Loss and BLEU under different batchsize
從圖6中可以看出,詞匯量大小設(shè)定對于模型損失影響較小,但是,詞匯量為16000時的BLEU值要略高于其他兩個.因此,適當(dāng)?shù)脑O(shè)定詞匯量大小,會使模型BLEU值有所提升.
圖6 不同詞匯量下?lián)p失和BLEU變化Fig.6 Changes of Loss and BLEU under different vocabulary
本文又對模型網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了對比實驗.實驗設(shè)置如表5所示,實驗結(jié)果如圖7所示.
表5 結(jié)構(gòu)對比實驗設(shè)置表Table 5 Settings of structure comparison experiment
從圖7可以看出,相同迭代次數(shù)內(nèi),拓寬網(wǎng)絡(luò)層的損失下降速度和BLEU值遠(yuǎn)遠(yuǎn)優(yōu)于加深網(wǎng)絡(luò)層.因此,在基于Transformer的翻譯模型中,增加單層網(wǎng)絡(luò)隱藏節(jié)點數(shù)相較于堆疊網(wǎng)絡(luò)層數(shù)翻譯效果更好.
圖7 拓寬網(wǎng)絡(luò)與加深網(wǎng)絡(luò)的Loss與BLEU變化Fig.7 Changes of Loss and BLEU between wideningnetwork and deepening network
本文預(yù)標(biāo)準(zhǔn)化模型與基準(zhǔn)Transformer模型對比設(shè)置如表6所示,實驗結(jié)果如圖8所示.
表6 模型對比實驗設(shè)置表Table 6 Settings of model comparison experiment
圖8 預(yù)標(biāo)準(zhǔn)化模型與基準(zhǔn)模型對比Fig.8 Comparison of pre-normalized model andbenchmark model
從圖8中可以看出,本文提出的預(yù)標(biāo)準(zhǔn)化Transformer模型相較于基準(zhǔn)Transformer模型在BLEU值上有一定的提高.且模型的翻譯效果更加穩(wěn)定,初始損失降低,模型收斂速度加快.這是由于預(yù)標(biāo)準(zhǔn)化的加入可以加快網(wǎng)絡(luò)學(xué)習(xí)速度,提高模型的精度.最終本文模型的BLEU值比基準(zhǔn)Transformer模型提高了0.71個BLEU值.
由于烏英平行語料屬于低資源語料,為驗證本文模型的有效性,分別在英-越、英-德大規(guī)模語料庫上與基準(zhǔn)模型進(jìn)行了對比實驗.實驗所采用的英越平行語料為150K行,英德平行語料為200K行.實驗時參數(shù)量為88M,實驗所得BLEU值如表7所示.
表7 大規(guī)模數(shù)據(jù)集實驗對比Table 7 Experimental comparison of large-scale data sets
由表7可得,在英-越、英-德語料庫上,本文模型相較于基準(zhǔn)模型在BLEU值上分別提升了0.48、0.45,驗證了本文模型的泛化能力.
烏英機器翻譯屬于低資源語言的翻譯,面臨著平行語料資源稀缺的困難.為了緩解語料資源數(shù)據(jù)稀缺和詞匯表受限帶來的翻譯質(zhì)量不佳的問題,本文提出了基于預(yù)標(biāo)準(zhǔn)化Transformer的翻譯模型進(jìn)行烏英翻譯.實驗結(jié)果表明,基于預(yù)標(biāo)準(zhǔn)化Transformer的烏英機器翻譯模型與基準(zhǔn)Transformer相比,有效提升了翻譯質(zhì)量.預(yù)標(biāo)準(zhǔn)化的加入使得模型的收斂速度加快,模型的精度提高,且模型更加穩(wěn)定.然而,Transformer每一層的結(jié)點需要和上一層的所有結(jié)點進(jìn)行相關(guān)性的計算,因此,對計算成本和顯存需求非常高.對于大規(guī)模數(shù)據(jù)進(jìn)行高質(zhì)量的特征提取和建模時,數(shù)據(jù)的預(yù)處理部分還需做進(jìn)一步改進(jìn).