Attention的梳理、随想与尝试
轉(zhuǎn)自:https://zhuanlan.zhihu.com/p/38281113
(一)深度學(xué)習(xí)中的直覺(jué)
3 X 1 and 1 X 3 代替 3 X 3
LSTM中的門(mén)設(shè)計(jì)
Attention機(jī)制的本質(zhì)來(lái)自于人類(lèi)視覺(jué)注意力機(jī)制。人們視覺(jué)在感知東西的時(shí)候一般不會(huì)是一個(gè)場(chǎng)景從到頭看到尾每次全部都看,而往往是根據(jù)需求觀察注意特定的一部分。而且當(dāng)人們發(fā)現(xiàn)一個(gè)場(chǎng)景經(jīng)常在某部分出現(xiàn)自己想觀察的東西時(shí),人們會(huì)進(jìn)行學(xué)習(xí)在將來(lái)再出現(xiàn)類(lèi)似場(chǎng)景時(shí)把注意力放到該部分上:
將更多的注意力聚焦到有用的部分,Attention的本質(zhì)就是加權(quán)。但值得注意的是,同一張圖片,人在做不同任務(wù)的時(shí)候,注意力的權(quán)重分布應(yīng)該是不同的。
基于以上的直覺(jué),Attention可以用于:
- 這個(gè)加權(quán)可以是保留所有分量均做加權(quán)(即soft attention);也可以是在分布中以某種采樣策略選取部分分量(即hard attention),此時(shí)常用RL來(lái)做;
- 這個(gè)加權(quán)可以作用在原圖上,也可以作用在特征圖上;
- 這個(gè)加權(quán)可以在時(shí)間維度、空間維度、mapping維度以及feature維度。
2. 任務(wù)聚焦、解耦(通過(guò)attention mask)
多任務(wù)模型,可以通過(guò)Attention對(duì)feature進(jìn)行權(quán)重再分配,聚焦各自關(guān)鍵特征。
(二)發(fā)展歷程
Attention機(jī)制最早是在視覺(jué)圖像領(lǐng)域提出來(lái)的,應(yīng)該是在九幾年思想就提出來(lái)了,但是真正火起來(lái)應(yīng)該算是2014年google mind團(tuán)隊(duì)的這篇論文《Recurrent Models of Visual Attention》,他們?cè)赗NN模型上使用了attention機(jī)制來(lái)進(jìn)行圖像分類(lèi)。隨后,Bahdanau等人在論文《Neural Machine Translation by Jointly Learning to Align and Translate》中,使用類(lèi)似attention的機(jī)制在機(jī)器翻譯任務(wù)上將翻譯和對(duì)齊同時(shí)進(jìn)行,他們的工作算是第一個(gè)將attention機(jī)制應(yīng)用到NLP領(lǐng)域中。接著attention機(jī)制被廣泛應(yīng)用在基于RNN/CNN等神經(jīng)網(wǎng)絡(luò)模型的各種NLP任務(wù)中。2017年,google機(jī)器翻譯團(tuán)隊(duì)發(fā)表的《Attention is all you need》中大量使用了自注意力(self-attention)機(jī)制來(lái)學(xué)習(xí)文本表示。自注意力機(jī)制也成為了大家近期的研究熱點(diǎn),并在各種NLP任務(wù)上進(jìn)行探索。下圖展示了attention研究進(jìn)展的大概趨勢(shì):
(三)Attention設(shè)計(jì)
3.1 定義
Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}})V
Google 2017年論文Attention is All you need中,為Attention做了一個(gè)抽象定義:
An attention function can be described as mapping a query and a set of key-value pairs to an output, where the query, keys, values, and output are all vectors. The output is computed as a weighted sum of the values, where the weight assigned to each value is computed by a compatibility function of the query with the corresponding key.注意力是將一個(gè)查詢(xún)和鍵值對(duì)映射到輸出的方法,Q、K、V均為向量,輸出通過(guò)對(duì)V進(jìn)行加權(quán)求和得到,權(quán)重就是Q、K相似度。
計(jì)算Attention Weighted Value有三個(gè)步驟:
3.2 分類(lèi)
3.2.1 按輸出分類(lèi)
- Soft attention
- Hard attention
soft attention輸出注意力分布的概率值,hard attention 輸出onehot向量。
3.2.2 按關(guān)注的范圍分類(lèi)
Effective Approaches to Attention-based Neural Machine Translation- Globle attention
全局注意力顧名思義對(duì)整個(gè)feature mapping進(jìn)行注意力加權(quán)。
- Local attention
局部注意力有兩種,第一種首先通過(guò)一個(gè)hard-globle-attention鎖定位置,在位置上下某個(gè)local窗口進(jìn)行注意力加權(quán)。
第二種是在某中業(yè)務(wù)場(chǎng)景下, 比如 對(duì)于一個(gè)問(wèn)題"Where is the football?", "where"和"football’"在句子中起著總結(jié)性的作用。而這種attention只和句子中每個(gè)詞自身相關(guān)。Location-based的意思就是,這里的attention沒(méi)有其他額外所關(guān)注的對(duì)象,即attention的向量就是q本身,即Q=K,其attention score為:
?$score(Q,K)=activation(W^TQ+b)?$
3.2.3 按計(jì)算score的函數(shù)不同
(四)業(yè)務(wù)應(yīng)用
- chatbot意圖分類(lèi)
采用:Self-attention + Dot-product-score
?效果:
觀察到:
(四)思考
- 多步負(fù)荷預(yù)測(cè)
多任務(wù)多輸出模型,每步預(yù)測(cè)對(duì)于特征的關(guān)注點(diǎn)應(yīng)該不一樣,學(xué)習(xí)一個(gè)feature mapping 的mask attention。
- 異常數(shù)據(jù)mask負(fù)荷預(yù)測(cè)
在原始feature mapping 后接一個(gè)attention,自動(dòng)mask 異常輸入,提升模型的魯棒性。
(六)Reference
Paper
github
Blog
總結(jié)
以上是生活随笔為你收集整理的Attention的梳理、随想与尝试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sklearn API 文档
- 下一篇: Elasticsearch的Scroll