close

這篇文章被認為是Attention Based Model在神經翻譯中的開山之作,今天來解讀一下。

Introduction
這篇論文認為,傳統的Encoder-Decoder模式的能力完全取決與從Encoder傳出而傳入Decoder的固定長度的上下文向量V。隨著句子長度的增加,向量V因為長度限制不能存儲足夠多的信息,從而成為傳統Encoder-Decoder的bottleneck。

針對這個問題,作者提出了Encoder-Decoder的擴展,同時進行 “align” 和 ”translate”。

它將輸入句子encode為一系列向量,並在解碼翻譯時自適應地選擇這些向量的子集。這就避免了像以前模型那樣,不用再將源句子的所有信息(無論其長度多少)壓縮成固定長度的矢量。

Background
在傳統Encoder-Decoder中,Encoder把輸入的句子向量

x = (x1,...,xTx)

encode到一個上下文向量 c。最普遍的方法是用一個RNN:

ht = f(xt,ht−1)
c = q({h1,...,hTx})

這裏ht 是t 時間的隱層,c 是是由之前所有隱層生成的上下文向量,f 和 q 是非線性的激活函數。

解碼器通常被訓練以在 給定上下文向量c 和 所有先前預測的單詞 的情況下預測下一個單詞。 換句話說,解碼器通過將聯合概率分解為有序條件 來定義翻譯y的概率。
Learning to Align and Translate
Decoder: General Description
在新的模型結構裏,我們定義條件概率為:

p(yi⎪{y1,...,yi−1}, x) = g(yi−1,si,ci)

在這裏si 是RNN在i時刻的隱層:

si = f(si−1,yi−1,ci)

這裏每個詞yi都有各自的上下文ci。

上下文ci取決於解碼器產生的註釋序列(h1,…,hTx)。每個註釋hi都包含了整個原句的信息,尤其註重對輸入句子第i個單詞周圍的部分。上下文向量ci是這些註釋的加權和:
ci = αijhj 其中 j = 1..Tx

ci = αijhj 其中 j = 1..Tx

每個註釋的權重這樣計算:Graph

Formula

這裏eij 就是“Align”部分。其中aij越大,翻譯第i個詞時,原來句子的第j個詞影響力越高。

而函數a()采用的是基本的前饋神經網絡,可以使得模型的cost function在訓練中進行backpropagation。這就是文章所謂的“軟align”。

Encoder:Bi-Directional RNN for Annotation Sequences
對於傳統RNN, 我們通常使用過去的信息推測未來的信息,但是神經翻譯問題,語音學等等通常也包含了從後向前的推測。
雙向循環神經網絡(BRNN)的基本思想是提出每一個訓練序列向前和向後分別是兩個循環神經網絡(RNN),分別記錄著兩個方向上的信息(從前面推測後面、從後面推測前面)。


arrow
arrow

    低階ㄇㄋ 發表在 痞客邦 留言(0) 人氣()