Neural Machine translation中的Attention機制

隨着深度學習的發展,NMT(Neural machine translation)已經逐漸取代了SMT(statistic MT)。其最大的有點就是系統的整體和簡單,少去了統計機器翻譯中的分詞,對齊。抽短語等繁瑣的步驟。

而NMT的大致流程和思想可以去參考下面的鏈接,講的很詳細。
https://devblogs.nvidia.com/parallelforall/introduction-neural-machine-translation-with-gpus/

說到NMT不得不提到RNN,GRU,LSTM這些網絡結構。這些東西在這裏就不做介紹。另外一個已經被大家公認的很有價值的發現就是Attention機制。首先通俗的介紹一下它的思想。

例如我們在翻譯(我 昨天 有事,所以 他 替我 去 北京 了)的時候翻譯“去”這個詞的時候,人們的注意力是集中於幾個詞上面,而不是整句話上面的。這裏 這裏(昨天,他)都對去的翻譯起很大的影響,Attention的思想就是將所有詞分配一個權重來表示對現在的翻譯的上下文的重要性。
1,首先介紹Attention機制解決的問題。
這裏寫圖片描述
上圖說明一個問題,當用傳統encoder-decoder框架的時候,encoder的表達能力有限,任意長度的句子都會把encoder壓縮到一個有限制維度的向量中,難免會有信息丟失,所以,當句子長度達到一定的時候翻譯效果驟降。

2,改變保存句子的方式,採用biRNN
以前encoder會將句子壓縮到一個vector中,現在使用下面的結構,用兩個向量表示一個詞。
這裏寫圖片描述
一個代表從前往後的RNN迭代過程輸出的向量,一個表示從後往前。兩個向量分別保存了單詞前面和後面的信息。

3,上面的表達方式可以叫做一個句子的可變長表示(variable-length representation),但是如何讓decoder選擇性的採取和捨棄其中的信息。
Dzmitry Bahdanau and Yoshua Bengio還有前面博客的作者Kyunghyun Cho三位大牛提出了Attention(2014年)
用一個簡單的單層神經網絡,輸入爲前一個隱層節點Zi和每一個biRNN得到的單詞表示{h1,h2……},每個都通過網絡傳播傳播得到一個值{a1,a2,a3…..},
這裏寫圖片描述

4最後將所有值做一個softmax正則化,得到所謂的權重,而現在翻譯所要用到的上下文則根據這一組權重和biRNN得到的單詞表示得到,這裏寫圖片描述

這裏寫圖片描述

5 Soft Attention的副產品

作者將其中對齊的權重採用不同顏色的線連接到雙語的詞之間,在詞對齊和無監督,弱監督學習方面也有一定的貢獻。
這裏寫圖片描述

博文中大部分內容是來自開頭提到的博文中的講解,大部分地方只是通俗簡略的翻譯過來,其中夾雜了一些自己學習過程中的理解,有不對的地方請大家指出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章