云南民族大學(xué) 黃鈺凝
針對傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)RNN在機(jī)器翻譯中效率不高以及計算量過大的問題,提出一種基于GRU神經(jīng)網(wǎng)絡(luò)和Attention機(jī)制的機(jī)器翻譯模型。首先,使用注意力模塊保證堆疊多層結(jié)構(gòu)的可復(fù)用性,提高運行效率。其次,模型融合了注意力機(jī)制的編碼-解碼器和循環(huán)神經(jīng)網(wǎng)絡(luò)模塊提取被翻譯的句子語義信息,并采用Adam優(yōu)化器進(jìn)行梯度下降,對模型優(yōu)化,實現(xiàn)中英文間的互譯。最后使用BLEU值對結(jié)果進(jìn)行檢驗和評價。
機(jī)器翻譯由于不同語言之間的差異和翻譯中對“信、達(dá)、雅”的要求,成為了最困難的自然語言處理任務(wù)之一。神經(jīng)機(jī)器翻譯將復(fù)雜的翻譯任務(wù)看作是序列到序列的轉(zhuǎn)化任務(wù):摒棄了大量的人工干涉和對語言學(xué)專家的需要,Attention機(jī)制相比于傳統(tǒng)的編碼-解碼器模型,最大的區(qū)別是不要求所有輸入信息都用編碼器編碼進(jìn)一個固定長度的向量中,而是編碼器將輸入編碼成一個向量的序列。在解碼時,每一步都會選擇性的從向量序列中挑選一個子集進(jìn)行進(jìn)一步處理。這樣可以做到在產(chǎn)生每一個輸出的時候都能夠做到充分利用輸入序列攜帶的信息。
傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)會出現(xiàn)梯度消失現(xiàn)象。長期段記憶網(wǎng)絡(luò)(LSTM)通過選通機(jī)制緩解了梯度消失問題,但模型復(fù)雜且難以收斂。GRU改善了LSTM,優(yōu)化了選通機(jī)制,參數(shù)比LSTM少,也可以產(chǎn)生與LSTM相同的效果,使運營成本降低,速度大大提高。
注意力機(jī)制通過借鑒人腦的注意力,增強(qiáng)對關(guān)鍵信息的注意程度以提高關(guān)鍵信息對結(jié)果的貢獻(xiàn),在神經(jīng)網(wǎng)絡(luò)中引入注意力機(jī)制可以提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率。原理圖如圖1所示。
圖1 Attention機(jī)制
Attention機(jī)制函數(shù)可以描述為一個Query到一個Key-Value的映射。通過在輸入序列上保留LSTM編碼器的中間輸出結(jié)果,然后訓(xùn)練模型有選擇地學(xué)習(xí)這些輸入,并在模型輸出時將輸出序列與其關(guān)聯(lián)。雖然此機(jī)制將增加計算量,但性能水平可以提高。此外,Attention機(jī)制用于了解輸入序列中的信息如何影響模型輸出過程中最終生成的序列。這有助于我們更好地理解模型的內(nèi)部運行機(jī)制,并對一些具體的投入產(chǎn)出進(jìn)行分析。當(dāng)它用于輸出輸出序列中的每個單詞時,它將關(guān)注輸入序列中被認(rèn)為更重要的一些單詞。
在自然語言任務(wù)中,Key和Value通常是相同的。需要注意的是,計算出的Attention value是表示序列元素xj的編碼向量的向量,包括元素xj的上下文,即全局聯(lián)系和局部聯(lián)系。全局連接很容易理解,因為計算中考慮了該元素與所有其他元素之間的相似性計算,而局部連接是因為在對xj進(jìn)行編碼時主要考慮了具有高相似性的局部元素。
大量實驗表明,與傳統(tǒng)的RNN模型相比,GRU的訓(xùn)練效果相似,但參數(shù)少,收斂速度快,訓(xùn)練相對容易,在過擬合方面體現(xiàn)較優(yōu)良的優(yōu)越性,只存在較少的過擬合現(xiàn)象。
GRU模型改進(jìn)了RNN和LSTM兩個神經(jīng)網(wǎng)絡(luò)模型。輸入輸出結(jié)構(gòu)與RNN相似,其內(nèi)部思想與LSTM相似,內(nèi)部設(shè)置兩個門:一個更新門z,一個重置門r。更新門用于控制上一次的狀態(tài)信息進(jìn)入當(dāng)前狀態(tài)的程度,值越大,引入的上一次的狀態(tài)信息就越多;重置門用于控制忽略上一次狀態(tài)信息的程度,值越小,被忽略的就越多。
原理圖如圖2所示。
圖2 GRU結(jié)構(gòu)圖
其中,xt為當(dāng)前輸入,ht-1為上一個節(jié)點傳輸下來包括目前為止節(jié)點的隱藏信息,yt為當(dāng)前隱藏信息的輸出值。門控信號z的取值范圍在0~1之間,信號值越趨近于1,意味著被記憶下來的數(shù)據(jù)信息越多;而越趨近于0則意味著被遺忘的越多。
此模型由四層構(gòu)成,分別為:輸入層、Attention層、GRU層以及輸出層。
輸入層:以預(yù)處理后的中英文語數(shù)據(jù)為輸入,輸出結(jié)果為一組向量,將這組向量封裝為一個矩陣并將其轉(zhuǎn)置作為最終的結(jié)果輸出。
Attention層:將輸入層的輸出作為輸入,通過迭代計算權(quán)重,輸出結(jié)果為一組權(quán)重向量,計算公式如下所示:
GRU層:將Attention層的輸出作為輸入,通過正向輸入和反向輸出以及激活函數(shù)的作用輸出結(jié)果,輸出結(jié)果的計算公式如下所示:
其中,W為權(quán)重矩陣,b為偏置向量矩陣,因為ReLU函數(shù)在學(xué)習(xí)效果中較為突出,所以選取ReLU函數(shù)為激活函數(shù)。
輸出層:將GRU層的輸出作為輸入,經(jīng)過深度神經(jīng)網(wǎng)絡(luò)的運算得出結(jié)果。最終輸出結(jié)果為翻譯好的中文或英文句子。
當(dāng)利用機(jī)器學(xué)習(xí)進(jìn)行文本分類時為了提取文本特征,需要創(chuàng)建復(fù)雜的特征工程,而通過深度學(xué)習(xí),獲得了自動特征表達(dá),解決了人工特征工問題。由于工藝簡單、操作簡單、對人工的依賴性低,因此得到了廣泛的應(yīng)用。
Adam 優(yōu)化器可以根據(jù)歷史梯度的震蕩情況和過濾震蕩后的真實歷史梯度對變量進(jìn)行更新。Adam優(yōu)化器在自適應(yīng)學(xué)習(xí)上體現(xiàn)了優(yōu)越性,速度快,準(zhǔn)確率高,并有以下顯著優(yōu)點:
(1)更新步長在可控范圍內(nèi);(2)占用內(nèi)存??;(3)梯度的伸縮不影響參數(shù)更新;(4)超參數(shù)只需要進(jìn)行微調(diào);(5)對于不穩(wěn)定的目標(biāo)函數(shù)同樣適合;(6)對大量數(shù)據(jù)和參數(shù)體現(xiàn)優(yōu)越性;(7)可以在噪聲很大的數(shù)據(jù)下使用;(8)能自動調(diào)整學(xué)習(xí)率。
使用Adam優(yōu)化器對模型進(jìn)行優(yōu)化后,損失值由0此迭代的4.0降到1000此迭代的趨近于0。
BLEU是將候選翻譯與一個或多個其他參考翻譯進(jìn)行比較的評估分?jǐn)?shù)。它經(jīng)常被用來衡量一組機(jī)器生成的翻譯句子和一組人工翻譯句子之間的相似性,采用N-gram的匹配規(guī)則。值是一個處于0~1之間的數(shù)值,數(shù)值越接近1,結(jié)果越好。
BLEU 編程實現(xiàn)的主要任務(wù)是對候選翻譯和參考翻譯的 n 元組進(jìn)行比較, 并計算相匹配的個數(shù)匹配個數(shù)與單詞的位置無關(guān)匹配個數(shù)越多, 表明候選翻譯的質(zhì)量就越好。
雖然此指標(biāo)的完美性有所欠缺,但它的優(yōu)點更吸引在機(jī)器翻譯任務(wù)研究中的學(xué)者。例如:計算量小、不限于語種、與人工翻譯的評價結(jié)果相關(guān)性強(qiáng)。缺點如:語法性較弱、短句的測評精度較高、未考慮到近義翻譯等。
在此次實驗中,將采用的雙語料數(shù)據(jù)導(dǎo)入到所建立的模型中進(jìn)行訓(xùn)練并優(yōu)化,對參數(shù)學(xué)習(xí)并修改,得到參數(shù)結(jié)果如表1所示:
表1 模型參數(shù)表
翻譯示例句如下:
輸入中文:我想見你的姐姐。
實際英文: I’d like to see your sister.
預(yù)測英文:I want to see your old sister.
預(yù)測結(jié)果與實際結(jié)果很相似,模型效果得到一定的體現(xiàn)。
結(jié)語:通過此次實驗的結(jié)果可以看出翻譯效果不錯,但并非優(yōu)秀。BLEU值未達(dá)到預(yù)期,部分翻譯結(jié)果也未如愿,但總體上來看由于模型搭建合理,呈現(xiàn)一個較良好的翻譯效果。
本文提出一種基于Attention機(jī)制和GRU神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯模型,實現(xiàn)了無監(jiān)督的機(jī)器翻譯,在提高準(zhǔn)確性的同時降低了運算成本,提高了運算速度。理論上此模型在本數(shù)據(jù)上效果由于普通循環(huán)神經(jīng)網(wǎng)絡(luò)所得出的結(jié)果。在未來將繼續(xù)探索優(yōu)化模型,探索更多其他的優(yōu)秀模型。
可以考慮在以下方面進(jìn)行改進(jìn):
(1)進(jìn)行預(yù)訓(xùn)練和微調(diào);(2)多任務(wù)學(xué)習(xí);(3)使用不同的編碼解碼器;(4)引入足夠強(qiáng)大的語料庫。