Attentive Sequence to Sequence Networks
轉載自??Attentive Sequence to Sequence Networks
Attentive Sequence to Sequence Networks
1、Encoder-Decoder 框架
首先我們模型的整體框圖如下:
Encoder-Decoder 框架可以這么直觀地去理解:可以把它看作適合處理由一個句子(或篇章)生成另外一個句子(或篇章)的通用處理模型。
對于句子對<X,Y>,我們的目標是給定輸入句子 X,期待通過Encoder-Decoder 框架來生成目標句子 Y。
X 和 Y 可以是同一種語眼,也可以是兩種不同的語言。
而 X 和 Y 分別由各?的單詞序列構成:
Encoder 為對輸入句子X 進行編碼,將輸入句子通過非線性變換轉化為中間語義表示 C:
?
2、機器翻譯例子
在本次講解內容中,采用機器翻譯作為講解例子。
我們的目標是將法語翻譯成中文,如下圖所示:
首先可以看一個翻譯例子對應的 Encoder-Decoder network:
其中編碼和解碼的模型,可以是 MLP、RNN、CNN 或者其它模型,?不限定模型的種類,也體現了 Encoder-Decoder 的靈活性。?
繼續來細看模型圖:
在上圖中,我們能看出源語言通過模型 encoder 為一個句子表示 c,然后再解碼的過程中 c 和 yi 生成下一時刻的 y(i+1)單詞。?
如下圖所示:
?
3、Attention 機制
3.1 引出 Attention 機制
注意力模型(Attention Model)的作用在于重新分配“注意力”。?
人類在接收信息時,總是會有選擇性的注意某些特定內容,比如 過馬路時總是會注意來往的車輛而不是天空,上課時總是會注意老師 說的話而不是教室外面的噪音等等。
注意力集中對于人類有著重要的意義,使得人類能夠把有限的精力放到重要的事情上去;如果注意力不集中,那么無論是學習還是生活,效率都會大大降低。
對于深度學習模型,同樣存在“注意力”不集中的問題。
以自然語言處理中的 Encoder-Decoder 結構為例,在逐詞解碼的過程中,每一項都使用了相同的語義特征 C 來幫助解碼。
換言之,Encoder 整個輸入句子中的所有詞語對于 Decoder 解碼 出的每一個詞語都有相同的貢獻。
顯然,這種方法是不合理的:輸一句子中的不同字符對于輸出中不同位置的字符的影響應該是不相同的。
以機器翻譯的任務舉例,法語中“le chat est noir EOS”會被翻譯成英語“the cat is black EOS”,對于 翻譯出“is”這個詞語,其信息應該是由單詞“est”提供的,而與“le chat” ?關。
然而在 Encoder-Decoder 結構解碼過程中,整個句子的特征 C 會一直作用于每個詞語的解碼過程,也就是說,“le chat”對于解碼出詞語 “is”也起到了和單詞“est”相同的作用。
為了解決上述的不合理情況,注意力機制被引入 Seq2Seq 模型中。 顧名思義,“注意力”機制使得在解碼過程中,關注的重點從整個輸入句子轉移到某些特定的、可能對當前解碼詞語更加重要的輸入詞語上 去。
轉移關注的重點是通過加權值的方法來完成的。
Attention 模型有著相應權重調整機制,簡單來說,就是對在組成 特征向量時對每一項進行動態賦權。?
有了相應的權重,得到的新的特征 C 就具備了表示不同輸入詞語重要性的能力;因為引入了 Attention 這樣?種新的信息,在較長句子上的實際效果要明顯優于未加入 Attention 機制的模型。
下圖顯示了翻譯成目標語言的時候,源語言的每個詞對目標語言的每個詞的權重分布,其中顏色越深代表相應的權重越大。
那么我們如何在原來的結構中加入 attention 機制,根據上面分析,也就是將原來不變的 c 改為能夠動態改變的ci"?,其中 i 代表的是此時已經解碼到了第 i 個單詞了,結構圖如下:
3.2 訓練方式以及如何求解 ci
如何求解? 總共有三種方式。
1、dot 方式:?直接做點積?
2、general 方式:兩個向量之間加入一個參數矩陣,可以訓練得到。?
3、concat 方式:兩個向量做拼接?如下圖所示:
訓練方式有如下倆種:?
1、Teacher Forcing Use standard sequence as input for decoding?
2、Scheduled Sampling Use (sampled) automatically predicted output as input for decoding 形式化表示如下圖所示:
總結
以上是生活随笔為你收集整理的Attentive Sequence to Sequence Networks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NLP Coursera By Mich
- 下一篇: 因“运行效率不及预期”,消息称 Open