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來計算,然後做歸一化:PaperWeekly,每周會分享1-2篇人工智慧領域的熱門paper,內容包括摘譯和評價,歡迎大家掃碼關注。
http://weixin.qq.com/r/OUW0rA3ExVC6rUnP9xAr (二維碼自動識別)
推薦閱讀:
※《Recent Advances on Neural Headline Generation》閱讀筆記
※記憶網路之End-To-End Memory Networks
※邏輯回歸和SVM的區別是什麼?各適用於解決什麼問題?
※隱馬爾可夫模型--更加接近真相。
※《NLP》第二章The Language Modeling Problem
TAG:自然语言处理 | 深度学习DeepLearning |