AM模型是2015年NLP領(lǐng)域重要的進(jìn)展之一。
一巾乳、引言
感受:從認(rèn)知心理學(xué)里面的人腦注意力模型引入的概念滤愕。
人腦注意力模型:在某個(gè)特定的時(shí)刻t,意識(shí)和注意力的焦點(diǎn)是集中在畫面的某一個(gè)部分上的。本質(zhì)是一個(gè)資源分配模型佳头。
深度學(xué)習(xí)中的注意力模型工作機(jī)制鹰贵,和看見心動(dòng)異性時(shí)荷爾蒙驅(qū)動(dòng)的注意力分配機(jī)制是一樣的。
二康嘉、Encoder-Decoder框架
在圖片處理或者圖文生成等任務(wù)中也有很多場(chǎng)景會(huì)用到AM模型碉输,本文只討論文本處理領(lǐng)域的AM模型。
AM模型是附著在Encoder-Decoder框架下的亭珍。Encoder-Decoder框架適合處理由一個(gè)句子(或篇章)生成另外一個(gè)句子(或篇章)的通用處理模型敷钾。Encoder-Decoder是一個(gè)通用的計(jì)算框架,Encoder和Decoder具體使用的模型可以自己選擇肄梨,常見的比如CNN阻荒、RNN、BIRNND众羡、GRU侨赡、LSTM、Deep LSTM等纱控,變化組合非常多辆毡,比如CNN作為Encoder,用RNN作為Decoder甜害。
應(yīng)用場(chǎng)景:機(jī)器翻譯舶掖、文本摘要、人機(jī)對(duì)話等等
三尔店、Attention Model
上面的通用框架眨攘,在Decoder過程中,生產(chǎn)目標(biāo)單詞Y時(shí)(Y1,Y2,…,Yn)的輸入嚣州,都是相同的Encoder的輸出鲫售,即原始輸入的語義編碼C,沒有任何區(qū)別该肴,如下:
Y1=F(C)
Y2=F(C,Y1)
Y3=F(C,Y1,Y2)
而語義編碼C是由全部原始輸入X中的單詞經(jīng)過Encoder編碼產(chǎn)生的情竹,也就是說,不論是生成哪個(gè)單子匀哄,Y1秦效,Y2或是Y3,輸入X中的任意單詞對(duì)生成摸個(gè)目標(biāo)單詞Yi來說影響力是相同的涎嚼,沒有任何區(qū)別(Tips:其實(shí)如果Encoder是RNN阱州,理論上越是后輸入的單詞影響越大,并非等權(quán)的法梯,也是為何Google提出的Sequence to Sequence模型時(shí)苔货,發(fā)現(xiàn)把輸入句子逆序輸入做翻譯效果會(huì)更好的trick原因)。
因此,Encoder-Decoder框架實(shí)際上是沒有體現(xiàn)注意力的夜惭。
沒有引入注意力的模型在輸入句子比較短的時(shí)候影響不大姻灶,但是輸入句子比較長(zhǎng)時(shí),所有語義完全通過一個(gè)中間語義向量來表示滥嘴,單詞自身的信息已經(jīng)消失木蹬,丟失很多細(xì)節(jié)信息至耻。
這意味著在生成每個(gè)單詞Yi的時(shí)候若皱,原先都是相同的中間語義表示C會(huì)替換成根據(jù)當(dāng)前生成單詞而不斷變化的Ci。理解AM模型的關(guān)鍵就是這里尘颓,即由固定的中間語義表示C換成了根據(jù)當(dāng)前輸出單詞來調(diào)整成加入注意力模型的變化的Ci走触。增加了AM模型的Encoder-Decoder框架理解起來如圖2所示
Decoder過程的如下:
Y1=F(C1)
Y2=F(C2,Y1)
Y3=F(C3,Y1,Y2)
每個(gè)Ci對(duì)應(yīng)著不同的源語句子單詞的注意力分配概率分布
例子:
接下來的問題是:AM模型所需要的輸入句子單詞注意力分配的概率分布值,如何獲得疤苹?
以Encoder和Decoder都是RNN為例(也是比較常見的一種模型配置)互广,如下圖:
那么可以用下圖較為便捷的說明注意力分配概率分布值的通用計(jì)算過程:
對(duì)于采用RNN的Decoder來說,如果要生成yi單詞卧土,在時(shí)刻i惫皱,我們是可以知道在生成Yi之前的隱層節(jié)點(diǎn)i時(shí)刻的輸出值Hi的,而我們的目的是要計(jì)算生成Yi時(shí)的輸入句子單詞“Tom”尤莺、“Chase”旅敷、“Jerry”對(duì)Yi來說的注意力分配概率分布,那么可以用i時(shí)刻的隱層節(jié)點(diǎn)狀態(tài)Hi去一一和輸入句子中每個(gè)單詞對(duì)應(yīng)的RNN隱層節(jié)點(diǎn)狀態(tài)hj進(jìn)行對(duì)比颤霎,即通過函數(shù)F(hj,Hi)來獲得目標(biāo)單詞Yi和每個(gè)輸入單詞對(duì)應(yīng)的對(duì)齊可能性媳谁,這個(gè)F函數(shù)在不同論文里可能會(huì)采取不同的方法,然后函數(shù)F的輸出經(jīng)過Softmax進(jìn)行歸一化就得到了符合概率分布取值區(qū)間的注意力分配概率分布數(shù)值友酱。圖5顯示的是當(dāng)輸出單詞為“湯姆”時(shí)刻對(duì)應(yīng)的輸入句子單詞的對(duì)齊概率晴音。絕大多數(shù)AM模型都是采取上述的計(jì)算框架來計(jì)算注意力分配概率分布信息,區(qū)別只是在F的定義上可能有所不同缔杉。
——上述內(nèi)容就是論文里面常常提到的Soft Attention Model的基本思想锤躁,你能在文獻(xiàn)里面看到的大多數(shù)AM模型基本就是這個(gè)模型,區(qū)別很可能只是把這個(gè)模型用來解決不同的應(yīng)用問題或详。
如何理解AM模型的物理意義呢系羞?
一般文獻(xiàn)里會(huì)把AM模型看作是單詞對(duì)齊模型。在機(jī)器翻譯語境下是非常直觀的:傳統(tǒng)的統(tǒng)計(jì)機(jī)器翻譯一般在做的過程中會(huì)專門有一個(gè)短語對(duì)齊的步驟鸭叙,而注意力模型其實(shí)起的是相同的作用觉啊。