Neural Machine Translation by Jointly Learning to Align and Translate

前面的兩篇文章簡單介紹了seq2seq在機器翻譯領域的嘗試,效果令人滿意。上一篇也介紹到這一類問題可以歸納為求解P(output|context)的問題,不同的地方在於context的構建思路不同,上兩篇中的seq2seq將context定義為encoder的last hidden state,即認為rnn將整個input部分的信息都保存在了last hidden state中。而事實上,rnn是一個有偏的模型,越靠後的單詞在last state中佔據的「比例」越高,所以這樣的context並不是一個非常好的辦法,本文將分享的文章來解決這個問題。題目是Neural Machine Translation by Jointly Learning to Align and Translate,作者是來自德國雅各布大學的Dzmitry Bahdanau,現在是Yoshua Bengio組的一個博士生,文章於2015年4月放在arxiv上。

本篇不再討論seq2seq,如果您想了解seq2seq,可以去看Sequence to Sequence Learning with Neural Networks和Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation兩篇博客。本篇只討論不同的地方。

本文用encoder所有hidden state的加權平均來表示context,權重表示decoder中各state與encoder各state的相關性,簡單的seq2seq認為decoder中每一個state都與input的全部信息(用last state表示)有關,而本文則認為只與相關的state有關係,即在decoder部分中,模型只將注意力放在了相關的部分,對其他部分注意很少,這一點與人類的行為很像,當人看到一段話或者一幅圖的時候,往往會將注意力放在一個很小的局部,而不是全部。具體看下圖:

decoder中預測每個輸出的條件概率變為:

這裡每個time step的state變為:

這裡,context vector由下式計算:

權重用了一個最簡單的mlp來計算,

然後做歸一化:

這裡的權重反應了decoder中的state s(i-1)和encoder中的state h(j)之間的相關性。本文在為了得到相對來說無偏的state,在encoder部分採用了BiRNN。

在機器翻譯領域中,attention model可以理解為source和target words的soft alignment,像下圖一樣:

上圖是英語翻譯成法語的一個結果。越亮的地方表示source和target中的words相關性越強(或者說對齊地越准),圖中的每一個點的亮度就是前面計算出的權重。

本文最大的貢獻在於提出了attention model,為今後研究對話生成,問答系統,自動文摘等任務打下了堅實的基礎。context的定義也成為了一個非常有意思的研究點,rnn是一種思路,cnn同樣也是一種思路,簡單的word embedding也可以算是一種思路,交叉起來rnn+cnn也可以作為一種思路,將word替換成char可以作為一種思路,思路其實非常多,不同的組合有不同的模型,都可以去探索。

另外,不知道是不是Yoshua Bengio組的習慣,本文也在附錄附上了詳細的模型推導過程。

PaperWeekly,每周會分享1-2篇人工智慧領域的熱門paper,內容包括摘譯和評價,歡迎大家掃碼關注。

weixin.qq.com/r/OUW0rA3 (二維碼自動識別)


推薦閱讀:

《Recent Advances on Neural Headline Generation》閱讀筆記
記憶網路之End-To-End Memory Networks
邏輯回歸和SVM的區別是什麼?各適用於解決什麼問題?
隱馬爾可夫模型--更加接近真相。
《NLP》第二章The Language Modeling Problem

TAG:自然语言处理 | 深度学习DeepLearning |