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