自然语言处理中的Attention Model:是什么以及为什么[二]
轉(zhuǎn)載自??自然語(yǔ)言處理中的Attention Model:是什么以及為什么[二]
自然語(yǔ)言處理中的Attention Model:是什么以及為什么[二]
1、Attention Model
圖一見(jiàn)下:
圖1中展示的Encoder-Decoder模型是沒(méi)有體現(xiàn)出“注意力模型”的,所以可以把它看作是注意力不集中的分心模型。
為什么說(shuō)它注意力不集中呢?請(qǐng)觀察下目標(biāo)句子Y中每個(gè)單詞的生成過(guò)程如下:
其中f是decoder的非線性變換函數(shù)。從這里可以看出,在生成目標(biāo)句子的單詞時(shí),不論生成哪個(gè)單詞,是y1,y2也好,還是y3也好,他們使用的句子X(jué)的語(yǔ)義編碼C都是一樣的,沒(méi)有任何區(qū)別。
而語(yǔ)義編碼C是由句子X(jué)的每個(gè)單詞經(jīng)過(guò)Encoder 編碼產(chǎn)生的,這意味著不論是生成哪個(gè)單詞,y1,y2還是y3,其實(shí)句子X(jué)中任意單詞對(duì)生成某個(gè)目標(biāo)單詞yi來(lái)說(shuō)影響力都是相同的,沒(méi)有任何區(qū)別(其實(shí)如果Encoder是RNN的話,理論上越是后輸入的單詞影響越大,并非等權(quán)的,估計(jì)這也是為何Google提出Sequence to Sequence模型時(shí)發(fā)現(xiàn)把輸入句子逆序輸入做翻譯效果會(huì)更好的小Trick的原因)。
這就是為何說(shuō)這個(gè)模型沒(méi)有體現(xiàn)出注意力的緣由。
這類似于你看到眼前的畫(huà)面,但是沒(méi)有注意焦點(diǎn)一樣。如果拿機(jī)器翻譯來(lái)解釋這個(gè)分心模型的Encoder-Decoder框架更好理解,比如輸入的是英文句子:Tom chase Jerry,Encoder-Decoder框架逐步生成中文單詞:“湯姆”,“追逐”,“杰瑞”。
在翻譯“杰瑞”這個(gè)中文單詞的時(shí)候,分心模型里面的每個(gè)英文單詞對(duì)于翻譯目標(biāo)單詞“杰瑞”貢獻(xiàn)是相同的,很明顯這里不太合理,顯然“Jerry”對(duì)于翻譯成“杰瑞”更重要,但是分心模型是無(wú)法體現(xiàn)這一點(diǎn)的,這就是為何說(shuō)它沒(méi)有引入注意力的原因。
沒(méi)有引入注意力的模型在輸入句子比較短的時(shí)候估計(jì)問(wèn)題不大,但是如果輸入句子比較長(zhǎng),此時(shí)所有語(yǔ)義完全通過(guò)一個(gè)中間語(yǔ)義向量來(lái)表示,單詞自身的信息已經(jīng)消失,可想而知會(huì)丟失很多細(xì)節(jié)信息,這也是為何要引入注意力模型的重要原因。
上面的例子中,如果引入AM模型的話,應(yīng)該在翻譯“杰瑞”的時(shí)候,體現(xiàn)出英文單詞對(duì)于翻譯當(dāng)前中文單詞不同的影響程度,比如給出類似下面一個(gè)概率分布值:
(Tom,0.3)(Chase,0.2)(Jerry,0.5)
每個(gè)英文單詞的概率代表了翻譯當(dāng)前單詞“杰瑞”時(shí),注意力分配模型分配給不同英文單詞的注意力大小。
這對(duì)于正確翻譯目標(biāo)語(yǔ)單詞肯定是有幫助的,因?yàn)橐肓诵碌男畔ⅰ?/strong>同理,目標(biāo)句子中的每個(gè)單詞都應(yīng)該學(xué)會(huì)其對(duì)應(yīng)的源語(yǔ)句子中單詞的注意力分配概率信息。
這意味著在生成每個(gè)單詞Yi的時(shí)候,原先都是相同的中間語(yǔ)義表示C會(huì)替換成根據(jù)當(dāng)前生成單詞而不斷變化的Ci。
理解AM模型的關(guān)鍵就是這里,即由固定的中間語(yǔ)義表示C換成了根據(jù)當(dāng)前輸出單詞來(lái)調(diào)整成加入注意力模型的變化的Ci。
增加了AM模型的Encoder-Decoder框架理解起來(lái)如圖2所示。
即生成目標(biāo)句子單詞的過(guò)程成了下面的形式:
而每個(gè)Ci可能對(duì)應(yīng)著不同的源語(yǔ)句子單詞的注意力分配概率分布,比如對(duì)于上面的英漢翻譯來(lái)說(shuō),其對(duì)應(yīng)的信息可能如下:
其中,f2函數(shù)代表Encoder對(duì)輸入英文單詞的某種變換函數(shù),比如如果Encoder是用的RNN模型的話,這個(gè)f2函數(shù)的結(jié)果往往是某個(gè)時(shí)刻輸入xi后隱層節(jié)點(diǎn)的狀態(tài)值;
g代表Encoder根據(jù)單詞的中間表示合成整個(gè)句子中間語(yǔ)義表示的變換函數(shù),一般的做法中,g函數(shù)就是對(duì)構(gòu)成元素加權(quán)求和,也就是常常在論文里看到的下列公式:
假設(shè)Ci中那個(gè)i就是上面的“湯姆”,那么Tx就是3,代表輸入句子的長(zhǎng)度,h1=f(“Tom”),h2=f(“Chase”),h3=f(“Jerry”),對(duì)應(yīng)的注意力模型權(quán)值分別是0.6,0.2,0.2,
所以g函數(shù)就是個(gè)加權(quán)求和函數(shù)。如果形象表示的話,翻譯中文單詞“湯姆”的時(shí)候,數(shù)學(xué)公式對(duì)應(yīng)的中間語(yǔ)義表示Ci的形成過(guò)程類似下圖:
這里還有一個(gè)問(wèn)題:生成目標(biāo)句子某個(gè)單詞,比如“湯姆”的時(shí)候,你怎么知道AM模型所需要的輸入句子單詞注意力分配概率分布值呢?就是說(shuō)“湯姆”對(duì)應(yīng)的概率分布:
(Tom,0.6)(Chase,0.2)(Jerry,0.2)是如何得到的呢?
為了便于說(shuō)明,我們假設(shè)對(duì)圖1的非AM模型的Encoder-Decoder框架進(jìn)行細(xì)化,Encoder采用RNN模型,Decoder也采用RNN模型,這是比較常見(jiàn)的一種模型配置,則圖1的圖轉(zhuǎn)換為下圖:
圖4 ?RNN作為具體模型的Encoder-Decoder框架
那么用下圖可以較為便捷地說(shuō)明注意力分配概率分布值的通用計(jì)算過(guò)程:
圖5 ?AM注意力分配概率計(jì)算
對(duì)于采用RNN的Decoder來(lái)說(shuō),如果要生成yi單詞,在時(shí)刻i,我們是可以知道在生成Yi之前的隱層節(jié)點(diǎn)i時(shí)刻的輸出值Hi的,而我們的目的是要計(jì)算生成Yi時(shí)的輸入句子單詞“Tom”、“Chase”、“Jerry”對(duì)Yi來(lái)說(shuō)的注意力分配概率分布。
那么可以用i時(shí)刻的隱層節(jié)點(diǎn)狀態(tài)Hi去一一和輸入句子中每個(gè)單詞對(duì)應(yīng)的RNN隱層節(jié)點(diǎn)狀態(tài)hj進(jìn)行對(duì)比,即通過(guò)函數(shù)F(hj,Hi)來(lái)獲得目標(biāo)單詞Yi和每個(gè)輸入單詞對(duì)應(yīng)的對(duì)齊可能性。
這個(gè)F函數(shù)在不同論文里可能會(huì)采取不同的方法,然后函數(shù)F的輸出經(jīng)過(guò)Softmax進(jìn)行歸一化就得到了符合概率分布取值區(qū)間的注意力分配概率分布數(shù)值。
圖5顯示的是當(dāng)輸出單詞為“湯姆”時(shí)刻對(duì)應(yīng)的輸入句子單詞的對(duì)齊概率。
絕大多數(shù)AM模型都是采取上述的計(jì)算框架來(lái)計(jì)算注意力分配概率分布信息,區(qū)別只是在F的定義上可能有所不同。
上述內(nèi)容就是論文里面常常提到的Soft Attention Model的基本思想,你能在文獻(xiàn)里面看到的大多數(shù)AM模型基本就是這個(gè)模型,區(qū)別很可能只是把這個(gè)模型用來(lái)解決不同的應(yīng)用問(wèn)題。
那么怎么理解AM模型的物理含義呢?一般文獻(xiàn)里會(huì)把AM模型看作是單詞對(duì)齊模型,這是非常有道理的。
目標(biāo)句子生成的每個(gè)單詞對(duì)應(yīng)輸入句子單詞的概率分布可以理解為輸入句子單詞和這個(gè)目標(biāo)生成單詞的對(duì)齊概率,這在機(jī)器翻譯語(yǔ)境下是非常直觀的:傳統(tǒng)的統(tǒng)計(jì)機(jī)器翻譯一般在做的過(guò)程中會(huì)專門(mén)有一個(gè)短語(yǔ)對(duì)齊的步驟,而注意力模型其實(shí)起的是相同的作用。
在其他應(yīng)用里面把AM模型理解成輸入句子和目標(biāo)句子單詞之間的對(duì)齊概率也是很順暢的想法。
當(dāng)然,我覺(jué)得從概念上理解的話,把AM模型理解成影響力模型也是合理的,就是說(shuō)生成目標(biāo)單詞的時(shí)候,輸入句子每個(gè)單詞對(duì)于生成這個(gè)單詞有多大的影響程度。這種想法也是比較好理解AM模型物理意義的一種思維方式。
圖6是論文“A Neural Attention Model for Sentence Summarization”中,Rush用AM模型來(lái)做生成式摘要給出的一個(gè)AM的一個(gè)非常直觀的例子。
這個(gè)例子中,Encoder-Decoder框架的輸入句子是:“russian defense minister ivanov called sunday for the creation of a joint front for combating global terrorism”。
對(duì)應(yīng)圖中縱坐標(biāo)的句子。系統(tǒng)生成的摘要句子是:“russia calls for joint front against terrorism”,對(duì)應(yīng)圖中橫坐標(biāo)的句子。可以看出模型已經(jīng)把句子主體部分正確地抽出來(lái)了。
矩陣中每一列代表生成的目標(biāo)單詞對(duì)應(yīng)輸入句子每個(gè)單詞的AM分配概率,顏色越深代表分配到的概率越大。這個(gè)例子對(duì)于直觀理解AM是很有幫助作用的。 ??
? ? ? ?
總結(jié)
以上是生活随笔為你收集整理的自然语言处理中的Attention Model:是什么以及为什么[二]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 马丽个人资料 马丽介绍
- 下一篇: 魔兽世界先祖硬币怎么获得