Attention注意力機(jī)制--原理與應(yīng)用
注意力機(jī)制即Attention mechanism在序列學(xué)習(xí)任務(wù)上具有巨大的提升作用,在編解碼器框架內(nèi),通過在編碼段加入A模型,對源數(shù)據(jù)序列進(jìn)行數(shù)據(jù)加權(quán)變換,或者在解碼端引入A模型,對目標(biāo)數(shù)據(jù)進(jìn)行加權(quán)變化,可以有效提高序列對序列的自然方式下的系統(tǒng)表現(xiàn)。
什么是Attention?
Attention模型的基本表述可以這樣理解成(我個人理解):當(dāng)我們?nèi)嗽诳匆粯訓(xùn)|西的時(shí)候,我們當(dāng)前時(shí)刻關(guān)注的一定是我們當(dāng)前正在看的這樣?xùn)|西的某一地方,換句話說,當(dāng)我們目光移到別處時(shí),注意力隨著目光的移動野在轉(zhuǎn)移,這意味著,當(dāng)人們注意到某個目標(biāo)或某個場景時(shí),該目標(biāo)內(nèi)部以及該場景內(nèi)每一處空間位置上的注意力分布是不一樣的。這一點(diǎn)在如下情形下同樣成立:當(dāng)我們試圖描述一件事情,我們當(dāng)前時(shí)刻說到的單詞和句子和正在描述的該事情的對應(yīng)某個片段最先關(guān),而其他部分隨著描述的進(jìn)行,相關(guān)性也在不斷地改變。從上述兩種情形,讀者可以看出,對于Attention的作用角度出發(fā),我們就可以從兩個角度來分類Attention種類:空間注意力和時(shí)間注意力,即Spatial Attention 和Temporal Attention。這種分類更多的是從應(yīng)用層面上,而從Attention的作用方法上,可以將其分為Soft Attention和Hard Attention,這既我們所說的,Attention輸出的向量分布是一種one-hot的獨(dú)熱分布還是soft的軟分布,這直接影響對于上下文信息的選擇作用。
為什么要加入Attention?
再解釋了Attention做了一件什么事之后,我們討論一下為什么需要Attention模型,即Attention加入的動機(jī):
序列輸入時(shí),隨著序列的不斷增長,原始根據(jù)時(shí)間步的方式的表現(xiàn)越來越差,這是由于原始的這種時(shí)間步模型設(shè)計(jì)的結(jié)構(gòu)有缺陷,即所有的上下文輸入信息都被限制到固定長度,整個模型的能力都同樣收到限制,我們暫且把這種原始的模型稱為簡單的編解碼器模型。
編解碼器的結(jié)構(gòu)無法解釋,也就導(dǎo)致了其無法設(shè)計(jì)。
Attention到底是什么原理?
下面我們來看一下Attention的具體原理:
首先讓編碼器輸出結(jié)構(gòu)化的表示,假設(shè)這些表示,可以用下述集合表示,(Hold不住了,我要截圖了,太麻煩了?。。。?/p>
由于定長上下文特征表示帶來的信息損失,同時(shí)也是一種缺陷,由于不同的時(shí)間片或者空間位置的信息量明顯有差別,利用定常表示無法很好的解決損失的問題,而Attention則恰好解決了這個問題。
我們甚至可以進(jìn)一步解釋,編解碼器內(nèi)部大致是如何工作的,當(dāng)然從我看來這有點(diǎn)馬后炮的意思,畢竟Attention是根據(jù)人的先驗(yàn)設(shè)計(jì)出來的,因此導(dǎo)致最后訓(xùn)練的結(jié)果朝著人指定的目標(biāo)在走。可以說,就是輸入第j維的上下文表示信息與第t時(shí)間片輸出的關(guān)系,第j維可以是空間維度上,也可以是時(shí)序上。由于加入Attention會對輸入的上下文表示進(jìn)行一次基于權(quán)重的篩選,然而這種顯示的篩選模式并不是人工制定這種機(jī)制所要看到的結(jié)果,而是通過此種加權(quán)的方式,讓網(wǎng)絡(luò)能學(xué)到空間上或者時(shí)序上的結(jié)構(gòu)關(guān)系,前提當(dāng)然是假設(shè)這里有一種原先不可解釋的相互關(guān)系。以上圖1可以很清晰地看出機(jī)器翻譯問題中,加入的attention模型輸出權(quán)重的分布與輸入與輸出信息的關(guān)系。
所以說Attention的作用是?
Attention的出現(xiàn)就是為了兩個目的:1. 減小處理高維輸入數(shù)據(jù)的計(jì)算負(fù)擔(dān),通過結(jié)構(gòu)化的選取輸入的子集,降低數(shù)據(jù)維度。2. “去偽存真”,讓任務(wù)處理系統(tǒng)更專注于找到輸入數(shù)據(jù)中顯著的與當(dāng)前輸出相關(guān)的有用信息,從而提高輸出的質(zhì)量。Attention模型的最終目的是幫助類似編解碼器這樣的框架,更好的學(xué)到多種內(nèi)容模態(tài)之間的相互關(guān)系,從而更好的表示這些信息,克服其無法解釋從而很難設(shè)計(jì)的缺陷。從上述的研究問題可以發(fā)現(xiàn),Attention機(jī)制非常適合于推理多種不同模態(tài)數(shù)據(jù)之間的相互映射關(guān)系,這種關(guān)系很難解釋,很隱蔽也很復(fù)雜,這正是Attention的優(yōu)勢—不需要監(jiān)督信號,對于上述這種認(rèn)知先驗(yàn)極少的問題,顯得極為有效。
讓我們來看一個具體的例子!
這里直接上一幅圖,舉個具體的例子,然后咱們慢慢來解釋:
讓我們來看一下論文里其他研究者都是如何利用AttentionModel的:
最新一篇CVPR2017年accepted paper關(guān)于VQA問題的文章中,作者使用到了基于Spatial和基于Temporal兩個層面的Attetion模型,效果肯定提升了不用說,該問題更是極好的利用了這兩點(diǎn),其實(shí)這兩種應(yīng)用方式早在MT中得到了利用。
**今天實(shí)在太晚了,我要回家睡覺,先寫到這,不然又不知道幾點(diǎn)睡,不能總熬夜,周五前更新完
**上次說周五前更新完,結(jié)果拖了一周了,不過想想也沒說哪個周五,啊哈哈哈。這里趕緊補(bǔ)上
上圖的兩種attention用法都屬于soft attention,即通過確定性的得分計(jì)算來得到attended之后的編碼隱狀態(tài),圖示來自論文
Jang Y, Song Y, Yu Y, et al. TGIF-QA: Toward Spatio-Temporal Reasoning in Visual Question Answering[J]. arXiv preprint arXiv:1704.04497, 2017.
我們來討論一下圖示中的左邊和右邊兩種attention是如何實(shí)現(xiàn)的。
(a)空間注意力 Spatial Attention
對與視頻轉(zhuǎn)文字,圖像轉(zhuǎn)文字,VQA問題啊,這種task都需要視覺信息,那么和text信息一樣,對visual content進(jìn)行編碼了以后,將編碼后的特征表示直接接入解碼器,可以得到我們想要的輸出,例如text sentences。這就是基礎(chǔ)的結(jié)構(gòu),但是現(xiàn)在加入空間Attention之后,如何改變結(jié)構(gòu)呢。
假設(shè)前面視覺編碼后的特征表示為7x7x3072維featuremaps(論文里的參數(shù))mt,然后來自text encoder的隱狀態(tài)為hq1x1024,生成一個7x7的attend mask,at=f(hq,mt),attended featuremaps 為atmt,所以現(xiàn)在的維度不就變成了1x3072了嗎?
評論
查看更多