將RNN嵌入到ENCODER–DECODER

閱讀論文筆記:Neural Machine Translation by Jointly Learning to Align and Translate

一绿鸣、進食前提

這里要弄明白RNN,LSTM淀弹,BiRNN她混,Seq2Seq

二爵嗅、RNN With Encoder-Decoder

在Encoder-Decoder框架中吃媒,編碼器讀取輸入語句烙如,即向量序列\mathbf{x}=\left(x_{1}, \cdots, x_{T_{x}}\right)涂籽,生成中間語義向量c_{i}

我們先看一個大概的流程

c當作 Decoder 的每一時刻輸入苹祟,則是 Seq2Seq 模型的第一種模型:

如果直接將c 輸入到 Decoder 中,則是 Seq2Seq 模型的第二種模型:

即我們要在Encoder內(nèi)計算隱狀態(tài)h_{i} 评雌,最后得到中間語義向量c树枫,將其送入Decoder,再由Decode進行解析景东,輸出每次對應的y_{i}在其先驗條件下的輸出概率最大的詞砂轻。

從目前來看,我們僅需知道三個參數(shù)h_{t}斤吐,c搔涝,s_{t}就可以進行翻譯了

該論文最后給出了兩種實現(xiàn)模型,通用框架A1和 A2

我們可以將翻譯步驟略縮為①和②

①Encoder部分

當前的隱層輸出h_{t}由上一層的隱層輸出h_{t-1}和當前層輸入x_{t}計算得出

h_{t}=f\left(x_{t}, h_{t-1}\right) \tag{1}
這里對于RNN的激活函數(shù)f和措,作者使用Choet 等人(2014a)Learning phrase representations using RNN encoder-decoder for statistical machine translation.提出的門控隱藏單元庄呈。

再通過計算得到中間語義向量c
c=q\left(\left\{h_{1}, \cdots, h_{T_{x}}\right\}\right)\tag{2}
接下來將中間語義向量c送入Decoder

②Decoder部分

給出了定義的條件概率,用以計算y_{i}在當前時刻輸出概率最高的詞語

p\left(y_{i} | y_{1}, \ldots, y_{i-1}, \mathbf{x}\right)=g\left(y_{i-1}, s_{i}, c_{i}\right) \tag{3}

論文中的模型圖

大概結構和流程搞清楚后派阱,進入Encoder部分诬留,h_{t}計算方法已經(jīng)給出,來看看剩下的個參數(shù)是如何計算得出的

一贫母、論文提出的第一種通用框架A1

A1 Encoder

c_{i} 由權重 \alpha_{i j} 和 隱層輸出h_{i} 計算加權和得到

c_{i}=\sum_{j=1}^{T_{x}} \alpha_{i j} h_{j}\tag{4}

每個注釋h_{i}的權重\alpha_{i j}通過下式計算

\alpha_{i j}=\frac{\exp \left(e_{i j}\right)}{\sum_{k=1}^{T_{x}} \exp \left(e_{i k}\right)} \tag{5.1}

e\left(y_{i-1}\right) \in \mathbb{R}^{m} 是單詞y_{i-1}的K維(1-K)的詞向量嵌入文兑,e\left(y_{i}\right)m * K 的嵌入矩陣 E \in \mathbb{R}^{m \times K}r_{i}是復位門的輸出腺劣。論文里忽略了偏差項绿贞,使方程變得更簡潔。

e_{i j}=a\left(s_{i-1}, h_{j}\right) \tag{5.2}

對于長度為T_{x}T_{y}的每個句子誓酒,設計對齊模型時應考慮需要評估模型T_{x}×T_{y}次樟蠕,為了減少計算,使用單層多層感知器

a\left(s_{i-1}, h_{j}\right)=v_{a}^{\top} \tanh \left(W_{a} s_{i-1}+U_{a} h_{j}\right)\tag{5.3}

v_{a} \in \mathbb{R}^{n'} W_{a} \in \mathbb{R}^{n' \times n} U_{a} \in \mathbb{R}^{n' \times 2n} 為權重矩陣靠柑,由于U_{a}h_{j} 不依賴于i寨辩,我們可以對其進行預先計算以最大程度地減少計算成本

A1 Decoder

利用解碼器狀態(tài)s_{i-1},上下文c_{i}和最后生成的單詞y_{i-1}歼冰,我們將目標單詞yi的概率定義為

p\left(y_{i} | y_{1}, \ldots, y_{i-1}, \mathbf{x}\right)=g\left(y_{i-1}, s_{i}, c_{i}\right) \tag{6}

s_{i}為圖一上面部分RNN結構i時刻隱層的狀態(tài)
s_{i}=f\left(s_{i-1}, y_{i-1}, c_{i}\right)\tag{7.1}

公式的展開

f\left(s_{i-1}, y_{i-1}, c_{i}\right)=\left(1-z_{i}\right) \circ s_{i-1}+z_{i} \circ \tilde{s}_{i} \tag{7.2}
\tilde{s}_{i}=\tanh \left(W e\left(y_{i-1}\right)+U\left[r_{i} \circ s_{i-1}\right]+C c_{i}\right)\tag{7.3}
z_{i}=\sigma\left(W_{z} e\left(y_{i-1}\right)+U_{z} s_{i-1}+C_{z} c_{i}\right) \tag{7.4}
r_{i}=\sigma\left(W_{r} e\left(y_{i-1}\right)+U_{r} s_{i-1}+C_{r} c_{i}\right) \tag{7.5}

權重矩陣:W, W_{z}, W_{r} \in \mathbb{R}^{n \times m} U, U_{z}, U_{r} \in \mathbb{R}^{n \times n} C, C_{z}, C_{r} \in \mathbb{R}^{n \times 2 n}

where ? is an element-wise multiplication靡狞,即該符號代表點積
where σ (·) is a logistic sigmoid function,即該符號代表sigmoid函數(shù)

更新門z_{i}允許每個隱藏單元保持其先前的激活狀態(tài)

二隔嫡、論文提出的第二種模型 A2

A2 Encoder

輸入 1-of-K 詞向量 \mathbf{x}=\left(x_{1}, \ldots, x_{T_{x}}\right), x_{i} \in \mathbb{R}^{K_{x}}
輸出 1-of-K 詞向量 \mathbf{y}=\left(y_{1}, \ldots, y_{T_{y}}\right), y_{i} \in \mathbb{R}^{K_{y}}
其中K_{x}K_{y}分別是源語言和目標語言的詞匯量甸怕。

首先甘穿,計算雙向遞歸神經(jīng)網(wǎng)絡(BiRNN)的前向狀態(tài)

\overrightarrow{h}_{i}=\left\{\begin{array}{ll}{\left(1-\overrightarrow{z}_{i}\right) \circ \overrightarrow{h}_{i-1}+\overrightarrow{z}_{i} \circ \overrightarrow{\underline{h}}_{i}} & {, \text { if } i>0} \\ {0} & {, \text { if } i=0}\end{array}\right. \tag{8.1}

\overrightarrow{\underline{h}}_{i}=\tanh \left(\overrightarrow{W} \overline{E} x_{i}+\overrightarrow{U}\left[\overrightarrow{r}_{i} \circ \overrightarrow{h}_{i-1}\right]\right) \tag{8.2}
\overrightarrow{z}_{i}=\sigma\left(\overrightarrow{W}_{z} \overline{E} x_{i}+\overrightarrow{U}_{z} \overrightarrow{h}_{i-1}\right)\tag{8.3}

\overrightarrow{r}_{i}=\sigma\left(\overrightarrow{W}_{r} \overline{E} x_{i}+\overrightarrow{U}_{r} \overrightarrow{h}_{i-1}\right)\tag{8.4}

\overline{E} \in \mathbb{R}^{m \times K_{x}}是詞向量矩陣,\overrightarrow{W}, \overrightarrow{W}_{z}, \overrightarrow{W}_{r} \in \mathbb{R}^{n \times m} \overrightarrow{U},\overrightarrow{U}_{z}, \overrightarrow{U}_{r} \in \mathbb{R}^{n \times n}

反向傳播狀態(tài)\left(\overleftarrow{h}_{1}, \ldots, \overleftarrow{h}_{T_{x}}\right) 計算與上面相似梢杭,與權重矩陣不同温兼,我們在前向傳播和反向傳播RNN之間共享單詞嵌入矩陣\overline{E},將前向傳播和反向傳播狀態(tài)連接起來得到\left({h}_{1},{h}_{2}, \ldots, {h}_{T_{x}}\right)

\begin{bmatrix} \overrightarrow{h}_{i}\\ \overleftarrow{h}_{i} \end{bmatrix} \tag{9}

A2 Decoder

給出了定義的條件概率武契,用以計算y_{i}在當前時刻輸出概率最高的詞語

p\left(y_{i} | y_{1}, \ldots, y_{i-1}, \mathbf{x}\right)=\propto exp\left ( y_{i}^{\top }W_{o}t_{i} \right )\tag{3}

t_{i} = \left [ max\left \{ \tilde{t}_{i,2j-1},\tilde{t}_{i,2j} \right \} \right ]_{j=1,\dots,l}^{\top } \tag{4}

\tilde{t}_{i}= U_{o}s_{i-1}+V_{o}Ey_{i-1}+C_{o}c_{i}\tag{5}

解碼器的隱藏狀態(tài)s_{i}募判,是通過編碼器給出的注釋經(jīng)過計算得到的(應該是這個意思)

s_{i}=f\left(s_{i-1}, y_{i-1}, c_{i}\right)\tag{7.1}

注意,這里計算公式與上面的A1在細節(jié)有差異了
公式的展開
s_{i}=\left(1-z_{i}\right) \circ s_{i-1}+z_{i} \circ \tilde{s}_{i} \tag{7.2}
\tilde{s}_{i}=\tanh \left(W Ey_{i-1}+U\left[r_{i} \circ s_{i-1}\right]+C c_{i}\right)\tag{7.3}
z_{i}=\sigma\left(W_{z} Ey_{i-1}+U_{z} s_{i-1}+C_{z} c_{i}\right) \tag{7.4}
r_{i}=\sigma\left(W_{r} Ey_{i-1}+U_{r} s_{i-1}+C_{r} c_{i}\right) \tag{7.5}

E是目標語言的單詞嵌入矩陣咒唆,權重矩陣:W, W_{z}, W_{r} \in \mathbb{R}^{n \times m} U, U_{z}, U_{r} \in \mathbb{R}^{n \times m} C, C_{z}, C_{r} \in \mathbb{R}^{n \times 2n}届垫,m和n是詞的嵌入維數(shù)和隱藏單位數(shù)

where ? is an element-wise multiplication,即該符號代表點積
where σ (·) is a logistic sigmoid function全释,即該符號代表sigmoid函數(shù)

初始隱藏狀態(tài)s_{0} = tanh\left( W_{s}\overleftarrow h_{i}\right)装处,W_{s} \in \mathbb{R}^{n \times n}

參考
[1] Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation. arXiv:1406.1078v3 (2014).
[2] Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215v3 (2014)
[3] Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)
[4] 詳解從 Seq2Seq模型、RNN結構浸船、Encoder-Decoder模型 到 Attention模型

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妄迁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子糟袁,更是在濱河造成了極大的恐慌判族,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件项戴,死亡現(xiàn)場離奇詭異形帮,居然都是意外死亡,警方通過查閱死者的電腦和手機周叮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門辩撑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仿耽,你說我怎么就攤上這事合冀。” “怎么了项贺?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵君躺,是天一觀的道長。 經(jīng)常有香客問我开缎,道長棕叫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任奕删,我火速辦了婚禮俺泣,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己伏钠,他們只是感情好横漏,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著熟掂,像睡著了一般缎浇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上打掘,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天华畏,我揣著相機與錄音,去河邊找鬼尊蚁。 笑死,一個胖子當著我的面吹牛侣夷,可吹牛的內(nèi)容都是我干的横朋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼百拓,長吁一口氣:“原來是場噩夢啊……” “哼琴锭!你這毒婦竟也來了?” 一聲冷哼從身側響起衙传,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤决帖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蓖捶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體地回,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年俊鱼,在試婚紗的時候發(fā)現(xiàn)自己被綠了刻像。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡并闲,死狀恐怖细睡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帝火,我是刑警寧澤溜徙,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站犀填,受9級特大地震影響蠢壹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宏浩,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一知残、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦求妹、人聲如沸乏盐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽父能。三九已至,卻和暖如春净神,著一層夾襖步出監(jiān)牢的瞬間何吝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工鹃唯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爱榕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓坡慌,卻偏偏與公主長得像黔酥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子洪橘,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354