Seq2Seq Attention模型

首先強調一下圖文來源,真正的完全圖解Seq2Seq Attention模型。本人目前用到此模型,發現該知乎作者的文章寫得通俗易懂,於是整理作爲自己的筆記。如果小夥伴對模型中各種隱層狀態感到不解,請看我之前的一篇博文,RNN、LSTM神經網絡輸入輸出究竟是怎樣的?

Start

seq2seq 是一個Encoder–Decoder 結構的網絡,它的輸入是一個序列,輸出也是一個序列, Encoder 中將一個可變長度的信號序列變爲固定長度的向量表達,Decoder 將這個固定長度的向量變成可變長度的目標的信號序列。–簡書

大框架如下:
在這裏插入圖片描述

詳細圖解及公式
(1)
在這裏插入圖片描述
注意:此處encoder中的LSTM默認只有一層隱藏層。
在這裏插入圖片描述
紅框中的就是output,即每個時刻最後一層隱藏層的狀態。黃框中的是最後一個時刻的全部(當前爲一層)隱藏層的狀態,可以傳入到其他LSTM中。不理解的去看here裏的最後一張圖。

(2)
在這裏插入圖片描述
在這裏插入圖片描述
得到當前時刻的hidden state,然後開始attention了。
(3)
在這裏插入圖片描述
在這裏插入圖片描述
(4)
在這裏插入圖片描述
接下來將context vector 與decoder 的最後一個隱藏層的狀態串起來作爲下一時刻的輸入。在這裏插入圖片描述

(5)最後一系列非線性轉換以及softmax計算得到概率分佈。

最後,以一張圖高度概括(這張圖來自模型SGM):
在這裏插入圖片描述
X可以理解爲每個token在字典裏的index,h爲經過雙向LSTM得到的融合了上下文的word embedding。c爲context vector,是h與decoder裏不同token的word embedding經過attention得到的,此時c與當前時刻的最後一層的hidden state拼接,與當前時刻的最後一層hidden state一起作爲下一時刻的輸入。

----- end --------

其實經過一番圖解後發現並不難,之前一直不理解是沒有搞懂output與hidden state 的區別,區分開後,理解起來還是很容易的。

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