Abstract
從Bert到Transformer到Attention,想要了解這一套體系的內部機制,便從將Attention機制運用到NLP問題中的第一篇論文開始閱讀。
Neural Machine Translation(NMT) 旨在建一個單個神經網絡,這個網絡可以共同調整以最大化模型的表現。
在傳統的Encoder-Decoder模型中,源文本被Encoder轉化為一個固定長度的向量,而Decoder運用該向量生成翻譯文本。在這篇文章,作者猜想,這個固定長度的向量可能是提升表現的一個關鍵所在,並提出,通過以下方法來擴展該模型:允許該模型自動尋找原文本中的哪一部分和預測目標單詞相關,而無需將這一功能實現為一個獨立的較為困難的部分。
Introduction
在過去提出來的Encoder-Decoder模型中,兩部分是共同調整以在給定的訓練樣本中,使得到正確翻譯的概率最大。
文章提出的模型和以往模型的最大不同是,不再嘗試編碼乘一個固定長度的向量,而是編碼成一個向量序列並在Decoder的過程中自動選擇向量的子集。
以往的模型由於所使用的Encoder-Decoder都是由RNN構成,其局限性在於無法記憶長距離的語義信息,因此模型對於長句子翻譯效果很差,但是這篇文章提出的模型對以往的模型進行了改進,尤其是在對於長序列文本的提升更為明顯。
Background
從概率學的角度來思考,即把翻譯這一任務用數學模型來表示,如下:
其中,x是輸入,y是輸出。
對於訓練過程來說,如果把NMT作為一個黑盒,則輸入x、y,不斷訓練調整參數使條件概率最大。而在測試過程中,則是輸入x,經過已經訓練好的黑盒,輸出y,即我們想得到的目標文本。
RNN ENCODER–DECODER
在RNN Encoder-Decoder Framework中,
被Encoder讀取並轉化為向量c。用公式表達為:
其中,ht是在時間t時刻的隱藏狀態(hidden state),c是由一系列隱藏狀態產生的向量。
Decoder經常被訓練在給定上下文向量c和之前的所有預測單詞的前提下,來預測下一個單詞。即:
運用RNN網絡,每一個條件概率被建模為:
其中,g是一個非線性、可能含有多層次、輸出yt的概率分布的函數,st是RNN的隱藏狀態。
LEARNING TO ALIGN AND TRANSLAT
Align是對齊的意思。
文章提出了一個用於神經網絡機器翻譯的新的結構。這個新的結構包括由雙向RNN構成的Encoder和一個仿真在輸入端搜索的Decoder。
DECODER
在新的模型中,我們定義每個條件概率如下:
其中:
與之前的公式對比,可以看到概率分布是基於對應每一個單詞的單獨的上下文向量ci。
這個ci是由一系列的注釋annotation決定的,這個是注釋是Encoder將輸入序列映射到的。
對於每一個注釋hi,包含整個輸入序列的信息,這個信息是強烈關注輸入序列的第i個單詞。
上下文向量ci,是帶圈中的所有注釋的和:
權重 alpha是通過以下方式計算出來:
其中:
e是一個校准模型,用來衡量輸入中j位置附近的單詞和輸入位置i的匹配度。我們把a函數建模成一個前饋神經網絡模型並同其他組成部分一起進行訓練的。值得注意的是,不像傳統的機器翻譯那樣,對齊部分不被考慮為一個隱藏變量。相反,對其模型直接計算軟對齊(Soft Alignment),這樣可以允許損失函數的梯度通過后饋網絡訓練。
ENCODER: BIDIRECTIONAL RNN FOR ANNOTATING SEQUENCES
在過去的RNN模型中,是從頭到尾地讀進去一個序列x的。但是在這個提出的方案中,我們想要注釋(Annotation)總結不僅僅是前面的信息還有后面文字攜帶的信息。因此,我們使用了雙向RNN結構,這種結構最近在語音識別上實現了重要效果。
BiRNN包括一個前向RNN和一個反向RNN,前向讀取得到前向隱藏狀態hForward(i),反向得到hBackward(i)。我們通過鏈接兩個隱藏狀態得到最終隱藏狀態(也是注釋)。這個注釋序列會在后期被Decoder和對齊模型使用計算上下文向量。