當前位置:
首頁 > 最新 > 神經機器翻譯漏譯問題的改進方法

神經機器翻譯漏譯問題的改進方法

在過去的幾年中,神經機器翻譯(Neural Machine Translation, NMT)在許多翻譯任務中取得了非常好的翻譯性能。NMT使用神經網路對翻譯問題進行建模,不假設兩種語言之間的隱藏結構,以端到端的方式從雙語文本中學習模型參數。

NMT系統的工作包含兩個階段:訓練以及解碼。在訓練階段,我們首先隨機初始化NMT系統中的參數,然後給系統提供大量雙語平行句對,利用隨機梯度下降的方法來進行端到端的學習,最後得到一組有效的模型參數。訓練完成後,輸入新的源語句子,NMT模型能夠通過學習到的模型參數來進行解碼,生成相應的目標語句子,也就是NMT系統的解碼階段。在解碼過程中,模型會產生許多不同譯文並給出它們相應的分數,然後從中挑選出得分最高的一個作為最終的結果。

那麼,模型生成的每個譯文所對應的分數是如何計算出來的呢?實際上,這個分數通常是模型認為句子中每個詞在給定原文及前面譯文下出現的概率的連乘(在實際實現中,我們通常把它等價為對數概率的加和)。然而,這個定義將導致解碼器更傾向於選擇較短譯文,從而造成句子中某些詞語漏譯的問題。究其原因,是因為每個詞的概率始終是小於1,隨著譯文長度的增加,連乘得到的模型分數會越來越小,這使得長譯文在眾多翻譯候選中被選中的可能性就越來越小。

之前的方法

為了克服這個問題,一種常見的方法是谷歌神經機器翻譯(GNMT)採用的長度正規化(length normalization)方法,即通過除以譯文長度來計算譯文平均每個詞的出現概率,使不同長度的譯文能夠盡量公平的競爭。通過length normalization方法可以在一定程度上消除NMT模型對短句子的偏好。

上圖的例子可以表明通過使用length normalization的方法確實可以避免翻譯系統對於短句子的過分青睞。首先,在上圖中兩個譯文里,當不使用length normalization的方法時,根據翻譯系統的打分,如下式所示(其中表示Target-1譯文的分數,表示Target-2譯文的分數,其中的數字代表譯文每個詞的對數概率),系統將會選擇Target-1中的譯文,很明顯該譯文中丟失了原文中大部分的內容(「去 北京站 的」)未進行翻譯,並不是一個最佳選擇。

相反,如果系統使用length normalization方法,這兩個句子中的最終得分在原來打分的基礎上根據句長進行調整,即分別在和的基礎上除以它們的句長6和10,得到最終的打分,分別為

由此,系統會選擇Target-2的譯文。

但是,這種解決方案也並不是完美無缺的,因為該方法本身實際上並無法感知譯文內容的覆蓋度(coverage-unaware)。所謂覆蓋度,就是譯文對原文的翻譯程度。覆蓋度越高,則譯文越忠實於原文。仔細看這個結果,我們會發現源語句子中的「北京站」一詞依然被漏翻譯了。實際上,如下圖所示,翻譯系統是有能力輸出一個更準確的譯文的(Target-3),但是在選擇的過程中,由於Target-2和Target-3的句長剛好相同, length normalization的方法僅關註譯文的長度,並沒有面向譯文內容對源語的覆蓋度進行建模,因此很難根據相關信息對長度相等的候選譯文進行更準確的篩選,這就導致在使用length normalization對分數進行調整後,Target-2的分數略高一些,所以模型選擇了不完美的譯文(Target-2)進行輸出。

我們的方法

針對以上問題,我們提出了一種新的覆蓋度感知的解碼特徵,稱之為 Coverage Score(CS),該特徵的核心思想是讓NMT擁有一個覆蓋度特徵,讓NMT在解碼的每一步中比較不同譯文好壞時,藉助這個特徵來把不同譯文各自的覆蓋度考慮進去。

我們的方法主要利用了NMT中的注意力機制。在每一步解碼中,注意力機制都能給出生成當前詞時使用原文中各個詞的多少信息。對於原文一個詞來說,通過累計生成譯文中每個詞各自使用了它的多少信息,我們就可以知道原文中這個詞被翻譯的程度。出於消除偏見和平衡數值大小的考慮,我們採取了先截斷後取對數的方式來計算原文每個詞的覆蓋度,然後把原文每個詞各自的覆蓋度相加作為整個譯文的覆蓋度。這個覆蓋度分數和原打分通過線性插值的方式結合起來,作為解碼每一步中比較不同譯文好壞的標準。

下圖是針對一個中到英實例(「你 什麼 都 沒 學 到 ? EOS」翻譯為「Have you learned nothing ? EOS」)計算該特徵的過程:

當我們計算原文第一個詞(「你」)的覆蓋度分數的時候,我們先從注意力機制中取得譯文中每個詞對原文這個詞的attention概率,比如「Have」的attention概率為0.2,「you」的為0.4,「learned」的為0.1,其餘譯文詞則為0。把這些概率累加起來,我們得到了譯文對原文第一個詞的覆蓋度,即。為了消除直接使用覆蓋度而導致的偏見,我們引入了一個超參數,並通過在覆蓋度和之間取最大來消除這個偏見。因為這個例子中我們設置,所以第一個詞的覆蓋度為。進一步地,為了讓覆蓋度和NMT系統原來的分數在數值大小上相容,我們在取最大後對覆蓋度取對數作為第一個詞最終的覆蓋度,即。如此類推,我們可以計算出原文中所有詞各自的覆蓋度,然後把它們的覆蓋度相加,就得到了譯文對原文的句子級的覆蓋度分數,比如這個例子中最終的覆蓋度分數為。這個分數將和NMT原來的分數做線性插值,共同地在解碼中作為選擇譯文的標準。

實驗結果

加入覆蓋度感知特徵前後的方法在不同測試集上的實驗結果

在實驗中,我們的方法分別在NIST12中-英任務(測試集MT08)和WMT16英-德任務(測試集newstest14)上分別增長了1.5和0.4點BLEU。同時CS在不同大小的搜索空間中均表現穩定,甚至隨著搜索空間增大(在我們實驗中束搜索大小最大達到500),系統的翻譯性能得到進一步提升,分別可再增加0.5和0.2個BLEU。上圖表示在兩個任務上我們分別在重排序(CS?)和束搜索(CS)上加入我們方法後的BLEU值。除此之外,我們還發現,將我們的方法同其他方法如length normalization結合後,BLEU還能進一步提高0.5。此外,我們的方法對較長的句子進行翻譯的時候表現比基線更魯棒,特別是對於長度超過60個詞的句子。我們還觀察到,我們方法產生的譯文的平均長度更接近參考答案的長度,並且與原文長度的比例也保持在合理的範圍,這意味著我們的方法能夠幫助緩解漏譯問題。

詳文參見:

Yanyang Li, Tong Xiao, YinQiao Li, Qiang Wang, Changming Xu, Xueqiang Lv. 2018.A Simple and Effective Approach to Coverage-Aware Neural Machine Translation. ACL2018.

小牛翻譯

基於東北大學自然語言處理實驗室38年的機器翻譯研究積累,小牛翻譯NiuTrans團隊致力於打造專業級的外文到中文雙向機器翻譯系統,目前支持近百種語言,全面支持「維蒙藏哈朝彝壯」七大少數民族語言。2016年獲得國內自然語言處理領域最高科學技術獎——錢偉長中文信息處理科學技術獎一等獎,成為首次榮獲該獎的機器翻譯研發團隊;2017年被科大訊飛評為「AI鑽石團隊」,成為科大訊飛外部及其合作夥伴唯一機器翻譯服務提供商。

小牛翻譯開放平台(http://NiuTrans.vip)為合作夥伴提供最好品質的多語種機器翻譯引擎,支持公有雲、專有雲、私有雲和離線版機器翻譯解決方案,目標成為業內最專業的機器翻譯開發平台。

小牛翻譯∣專註機器翻譯38年


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小牛翻譯 的精彩文章:

TAG:小牛翻譯 |