Attention注意力機(jī)制--原理與應(yīng)用
注意力機(jī)制即Attention mechanism在序列學(xué)習(xí)任務(wù)上具有巨大的提升作用,在編解碼器框架內(nèi),通過(guò)在編碼段加入A模型,對(duì)源數(shù)據(jù)序列進(jìn)行數(shù)據(jù)加權(quán)變換,或者在解碼端引入A模型,對(duì)目標(biāo)數(shù)據(jù)進(jìn)行加權(quán)變化,可以有效提高序列對(duì)序列的自然方式下的系統(tǒng)表現(xiàn)。
什么是Attention?
Attention模型的基本表述可以這樣理解成(我個(gè)人理解):當(dāng)我們?nèi)嗽诳匆粯訓(xùn)|西的時(shí)候,我們當(dāng)前時(shí)刻關(guān)注的一定是我們當(dāng)前正在看的這樣?xùn)|西的某一地方,換句話說(shuō),當(dāng)我們目光移到別處時(shí),注意力隨著目光的移動(dòng)野在轉(zhuǎn)移,這意味著,當(dāng)人們注意到某個(gè)目標(biāo)或某個(gè)場(chǎng)景時(shí),該目標(biāo)內(nèi)部以及該場(chǎng)景內(nèi)每一處空間位置上的注意力分布是不一樣的。這一點(diǎn)在如下情形下同樣成立:當(dāng)我們?cè)噲D描述一件事情,我們當(dāng)前時(shí)刻說(shuō)到的單詞和句子和正在描述的該事情的對(duì)應(yīng)某個(gè)片段最先關(guān),而其他部分隨著描述的進(jìn)行,相關(guān)性也在不斷地改變。從上述兩種情形,讀者可以看出,對(duì)于Attention的作用角度出發(fā),我們就可以從兩個(gè)角度來(lái)分類(lèi)Attention種類(lèi):空間注意力和時(shí)間注意力,即Spatial Attention 和Temporal Attention。這種分類(lèi)更多的是從應(yīng)用層面上,而從Attention的作用方法上,可以將其分為Soft Attention和Hard Attention,這既我們所說(shuō)的,Attention輸出的向量分布是一種one-hot的獨(dú)熱分布還是soft的軟分布,這直接影響對(duì)于上下文信息的選擇作用。
為什么要加入Attention?
再解釋了Attention做了一件什么事之后,我們討論一下為什么需要Attention模型,即Attention加入的動(dòng)機(jī):
序列輸入時(shí),隨著序列的不斷增長(zhǎng),原始根據(jù)時(shí)間步的方式的表現(xiàn)越來(lái)越差,這是由于原始的這種時(shí)間步模型設(shè)計(jì)的結(jié)構(gòu)有缺陷,即所有的上下文輸入信息都被限制到固定長(zhǎng)度,整個(gè)模型的能力都同樣收到限制,我們暫且把這種原始的模型稱(chēng)為簡(jiǎn)單的編解碼器模型。
編解碼器的結(jié)構(gòu)無(wú)法解釋?zhuān)簿蛯?dǎo)致了其無(wú)法設(shè)計(jì)。
Attention到底是什么原理?
下面我們來(lái)看一下Attention的具體原理:
首先讓編碼器輸出結(jié)構(gòu)化的表示,假設(shè)這些表示,可以用下述集合表示,(Hold不住了,我要截圖了,太麻煩了?。。。?/p>
由于定長(zhǎng)上下文特征表示帶來(lái)的信息損失,同時(shí)也是一種缺陷,由于不同的時(shí)間片或者空間位置的信息量明顯有差別,利用定常表示無(wú)法很好的解決損失的問(wèn)題,而Attention則恰好解決了這個(gè)問(wèn)題。
我們甚至可以進(jìn)一步解釋?zhuān)幗獯a器內(nèi)部大致是如何工作的,當(dāng)然從我看來(lái)這有點(diǎn)馬后炮的意思,畢竟Attention是根據(jù)人的先驗(yàn)設(shè)計(jì)出來(lái)的,因此導(dǎo)致最后訓(xùn)練的結(jié)果朝著人指定的目標(biāo)在走。可以說(shuō),就是輸入第j維的上下文表示信息與第t時(shí)間片輸出的關(guān)系,第j維可以是空間維度上,也可以是時(shí)序上。由于加入Attention會(huì)對(duì)輸入的上下文表示進(jìn)行一次基于權(quán)重的篩選,然而這種顯示的篩選模式并不是人工制定這種機(jī)制所要看到的結(jié)果,而是通過(guò)此種加權(quán)的方式,讓網(wǎng)絡(luò)能學(xué)到空間上或者時(shí)序上的結(jié)構(gòu)關(guān)系,前提當(dāng)然是假設(shè)這里有一種原先不可解釋的相互關(guān)系。以上圖1可以很清晰地看出機(jī)器翻譯問(wèn)題中,加入的attention模型輸出權(quán)重的分布與輸入與輸出信息的關(guān)系。
所以說(shuō)Attention的作用是?
Attention的出現(xiàn)就是為了兩個(gè)目的:1. 減小處理高維輸入數(shù)據(jù)的計(jì)算負(fù)擔(dān),通過(guò)結(jié)構(gòu)化的選取輸入的子集,降低數(shù)據(jù)維度。2. “去偽存真”,讓任務(wù)處理系統(tǒng)更專(zhuān)注于找到輸入數(shù)據(jù)中顯著的與當(dāng)前輸出相關(guān)的有用信息,從而提高輸出的質(zhì)量。Attention模型的最終目的是幫助類(lèi)似編解碼器這樣的框架,更好的學(xué)到多種內(nèi)容模態(tài)之間的相互關(guān)系,從而更好的表示這些信息,克服其無(wú)法解釋從而很難設(shè)計(jì)的缺陷。從上述的研究問(wèn)題可以發(fā)現(xiàn),Attention機(jī)制非常適合于推理多種不同模態(tài)數(shù)據(jù)之間的相互映射關(guān)系,這種關(guān)系很難解釋?zhuān)茈[蔽也很復(fù)雜,這正是Attention的優(yōu)勢(shì)—不需要監(jiān)督信號(hào),對(duì)于上述這種認(rèn)知先驗(yàn)極少的問(wèn)題,顯得極為有效。
讓我們來(lái)看一個(gè)具體的例子!
這里直接上一幅圖,舉個(gè)具體的例子,然后咱們慢慢來(lái)解釋?zhuān)?/p>
讓我們來(lái)看一下論文里其他研究者都是如何利用AttentionModel的:
評(píng)論
查看更多