【論文筆記】Neural machine translation by jointly learning to align and translate

weixin_34320159發表於2018-12-02

本文主要用於記錄發表於2014年的一篇神作(引用量破5k)。該論文第一次將注意力機制引入了NLP領域,而本筆記意在方便初學者快速入門,以及自我回顧。

論文連結:https://arxiv.org/pdf/1409.0473.pdf

基本目錄如下:

  1. 摘要
  2. 核心思想
  3. 總結

------------------第一菇 - 摘要------------------

1.1 論文摘要

近年來,基於神經網路的機器翻譯模型經常被用來處理機器翻譯任務。與傳統基於統計的翻譯方法相比,神經機器翻譯模型意在構建單個神經網路模型來提升整體翻譯準確率,主要的模型架構基本都是seq2seq家族的(不熟的同學可以參考我上一篇對seq2seq模型的論文筆記)。在本論文中,作者認為該模型的瓶頸主要在於中間轉換的固定緯度大小的向量。因此,作者提出了一種新的解碼方式,其解碼的源頭並不僅僅包括該向量,他們希望構建一種為當前預測詞從輸入序列中自動搜尋相關部分的機制(soft-search,也就是注意力機制)。作者運用這種新的機制來搭建升級版的神經機器翻譯模型,取得了卓越的效果,並且也通過定量分析來證明這種注意力機制的合理性。

------------------第二菇 - 核心思想------------------

2.1 注意力機制解決的問題

在深入模型細節之前,我先來聊一下為什麼會需要引入注意力機制,該機制到底在解決什麼問題,以此來加深大家的理解。

熟悉seq2seq基本框架的朋友應該都知道,當前輸出詞僅取決於當前隱狀態以及上一個輸出詞,即

潛在的問題就是,在編碼輸入序列時,該模型框架需要壓縮(compress)所有的資訊在一個固定長度的向量中(雖然這個向量的長度其實也是可以變化的),這就會讓該模型在面對長句的時候顯得十分無力(seq2seq論文中的圖也表明當大於35個字的時候,模型的表現直線下降),而且隨著序列的增長,句子越前面的詞的資訊就會丟失的越厲害,雖然有幾個小trick來解決這些問題,比如倒序輸入句子一遍,或者重複輸入兩遍,或者使用LSTM模型。但這些都治標不治本,對模型的提升微乎其微,因為在解碼時,當前預測詞對應的輸入詞的上下文資訊,位置資訊等基本都已丟失。

為了解決這個問題,才引入了注意力機制,該機制的本質其實就是引入了當前預測詞對應輸入詞的上下文資訊以及位置資訊。或者用論文中比較易懂的說法就是,我們現在這個模型不再是傻乎乎的把輸入序列編碼為一個固定向量,再去解碼這個固定向量;我們現在的解碼本質上是自動從這個固定向量中抽取有用的資訊來解碼我的當前詞。

2.2 論文模型結構

該模型的編碼部分並沒有什麼特別的創新點,無非就是把傳統的一些小技巧運用上去,用了雙向的Bi-RNN作為編碼器,而其隱狀態自然也就包括了正向與逆向輸入的兩部分,使得模型對輸入序列由更好的表達

在新的模型架構裡,當前的輸出詞仍然取決於當前隱狀態及上一個輸出詞,但是文字向量不再是那個固定緯度大小的向量,而是新的文字向量,如下:

而這個新的文字向量的引入和計算就是整個注意力機制的核心,改名一下叫它為語境向量好了。而其本質也很簡單,就是一個全部隱狀態h_1, h_2...h_T的一個加權和,

其中的注意力權重引數也是由另一個神經網路訓練得到的,

其中a就是一個對齊模型,用來評估當前預測詞,與輸入詞每一個詞的相關度(我們肯定更希望要翻譯的那個詞,能完整獲取到那個詞的上下文及位置資訊,而對其他詞並不是特別關心)。而這個網路的輸入就是上一個輸出序列隱狀態和輸入序列隱狀態,然後最後再走一個softmax作歸一化,這樣就能計算出權重了。直觀的理解就是在解碼的時候,我們希望解碼的資訊是直接與預測詞相關的,或者說我們更集中注意於那部分與我們預測詞相關的部分。而這種思想反饋到對齊模型上就是,在生成一個輸出詞的時候,會考慮每一個輸入詞與當前詞的對齊關係,對齊越好的詞,應該享有更大的權重,自然對預測當前詞會產生更大的影響。這裡我盜用一張網上的圖【1】,來讓大家更加直觀的理解對齊模型的計算方式,

11525720-15378fee9fe62013.jpeg
new model architecture.jpeg

大家關注一下紅線的部分,就是對齊模型的輸入與輸出。以及整張圖能詮釋整個對齊模型的輸出,是如何影響最後輸出。

至此,整個新的模型架構就介紹完了,對論文作者的模型細節感興趣的讀者可以詳細看一下論文的附錄部分(Model Architecture)。值得一提的是,論文中也說明了該對齊模型並非傳統統計翻譯模型中的隱變數,而是可以直接從反向傳播回來的誤差中直接更新梯度,因此這個對齊模型,可以在訓練整個模型框架的時候一起被訓練。

2.3 論文實驗結果分析

具體的實驗結果這裡就不展現了,原文中也表述的十分清晰,該框架模
型的結果還是槓槓的,這裡具體談2個比較有趣且有價值的點。

1)對齊模型的表現
該論文在定量分析中特地視覺化了由對齊模型產生的權重值,這裡也貼一張論文的原圖,


11525720-8d0bf66402f78e8a.jpeg
aliment.jpeg

不難想象,不考慮什麼語法情況的話,理論上應該是這個矩陣的對角線享有最大的權重,而作者貼出的圖也論證了我們的猜想,以及證明了對齊模型的學習有效性。當然,並非每一個詞都是很理想化的一一對應,尤其是有些形容詞和名詞,作者還特地強調了一些Zone和Area的對齊情況(這中間可是隔了2個詞)。此外,該對齊模型也不會要求輸入句子與輸出句子的長度的一致,這對我們的訓練和應用都能帶來極大的益處。

2)長句翻譯的表現
顯然本文模型的提出就是為了來提升長句的翻譯表現的,而事實也證明了模型的可行性。原文有更多更細緻的例子來對照(然而我看不懂法文,所以並不是特別有感?),不過還是強行貼一張實驗的結果圖(對長句對錶現還是很穩定對)在這裡,對細節感興趣的讀者還得多看一眼原文。

11525720-b5f6ffc9d1414820.jpeg
result.jpeg

------------------第三菇 - 總結------------------

3.1 總結

到這裡,整篇論文的核心思想及其創新點已經說清楚了。這套注意力機制模型,也為後續更多注意力機制的變體奠定了基礎。論文作者也是對對齊模型的效能大為讚賞(major positive impact),並且用實驗論證了該模型對長句翻譯能力的提升。

簡單總結一下本文就是先羅列了一下該論文的摘要,再具體介紹了一下模型細節,尤其是注意力機制那一塊的理論,最後再列舉了幾個實驗結果來結束該論文筆記。希望大家讀完本文後能進一步加深對該論文的理解。有說的不對的地方也請大家指出,多多交流,大家一起進步~?

參考文獻:
【1】https://blog.csdn.net/u011414416/article/details/51057789

相關文章