1问拘、引入
英語(yǔ)長(zhǎng)句子優(yōu)先找出主謂賓,人像油畫會(huì)先看眼睛惧所,...骤坐。人在觀察事物的時(shí)候會(huì)抓住重點(diǎn),所以想讓機(jī)器也具備這種“抓住重點(diǎn)”的能力下愈。
最早用于機(jī)器翻譯場(chǎng)景纽绍。使用固定大小(fixed-size)的representation去概括非常長(zhǎng)的句子的所有語(yǔ)言義細(xì)節(jié)是非常困難的势似。
對(duì)于一個(gè)(RNN\LSTM...)深層網(wǎng)絡(luò)模型拌夏,如何讓它知道什么是重點(diǎn)?什么沒(méi)那么重要履因?抓住重點(diǎn)可以降低困難障簿。
那么如何實(shí)現(xiàn)“抓住重點(diǎn)”的目的呢?
2栅迄、什么是Attention站故?
Transformer中關(guān)于Attention的解釋,寫成公式大概是:
其中為Attention weight霞篡。
原文: 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.
翻譯: Attention可以描述為將query和一組key-vlaue映射成一個(gè)output,其中query端逼,key朗兵,value和output都是向量。output的計(jì)算為values的加權(quán)總和顶滩,其中分配給每個(gè)value的權(quán)重通過(guò)query與相應(yīng)key的兼容函數(shù)計(jì)算余掖。
補(bǔ)充
輸入:K,Q,V
涉及函數(shù): compatibility function,softmax()
計(jì)算步驟:
【步驟一】基于KQ計(jì)算兩個(gè)向量相似程度礁鲁;
【步驟二】softmax函數(shù)可以將各種輸入值壓縮到0-1的范圍上盐欺,這樣就可以得到對(duì)Values關(guān)注應(yīng)該分布的注意力強(qiáng)弱了赁豆。
【步驟三】乘上values得到具有關(guān)注信息的新的向量output。
Attention本身概念并不復(fù)雜冗美,就是基于query和key計(jì)算一個(gè)權(quán)重魔种,然后對(duì)value重新賦值。
2.1粉洼、f是怎么节预?
函數(shù)旨在獲得query和key的相似程度,
有很多的計(jì)算方法
属韧。
不過(guò)最出名的是Scaled Dot-Product方法安拟,對(duì)QK做內(nèi)積計(jì)算,然后乘上縮放因子宵喂,其中
是query和key的維度糠赦。
講到Attention,常見(jiàn)到下圖锅棕,指的就是Scaled Dot-Product Attention拙泽,特指是Scaled Dot-Product的Attention,來(lái)源與Transformer論文哲戚。
2.2奔滑、QKV是什么東西?
在不同場(chǎng)景下QKV是不一樣的顺少。
2.2.1朋其、機(jī)器翻譯場(chǎng)景
Attention機(jī)制最早在機(jī)器翻譯的場(chǎng)景中出現(xiàn),引入Attention后提升了長(zhǎng)文本的翻譯效果脆炎。
隨著序列長(zhǎng)度的增長(zhǎng)梅猿,加了Attention的翻譯模型仍舊保持較高的Bleu得分。
機(jī)器翻譯采用seq2seq的結(jié)構(gòu)秒裕,一個(gè)encoder袱蚓,一個(gè)decoder。編碼器對(duì)每次詞的輸出作為key和value几蜻,解碼器對(duì)上一個(gè)詞的輸出作為query喇潘。Attention基于key和query計(jì)算權(quán)重值,輸出對(duì)原本的value賦予權(quán)重后的結(jié)果梭稚。
進(jìn)一步解釋:比如把法語(yǔ)翻譯成英語(yǔ)颖低,每個(gè)詞作為一個(gè)輸入,經(jīng)過(guò)embedding+雙向RNN編碼處理弧烤,輸出的值作為Attention需要的key和value忱屑。query取的是上一個(gè)詞翻譯的結(jié)果。
Attention操作后,改變了每個(gè)詞的重要性莺戒。比如翻譯出第一個(gè)詞“Jane”伴嗡,原本每個(gè)法語(yǔ)詞對(duì)翻譯出“Jane”的重要性都是一樣的,加入Attention之后从铲,給法語(yǔ)“Jane”更大的權(quán)重瘪校,使得翻譯容易進(jìn)行。
所以在翻譯場(chǎng)景中食店,key和value其實(shí)是同一個(gè)東西渣淤,是輸入詞經(jīng)過(guò)編碼處理后的輸出;query是上一個(gè)詞經(jīng)過(guò)解碼后的結(jié)果吉嫩。
2.2.2价认、Transformer
Transformer里有三個(gè)相關(guān)的Attention層。
1自娩,2的Key,Value,Query用踩,是一根線過(guò)來(lái)復(fù)制三下的,用的是同一個(gè)東西忙迁;
3的query來(lái)自上一個(gè)解碼器層脐彩,keys和values來(lái)自編碼器的輸出。
3姊扔、常見(jiàn)Attention
3.1惠奸、self-Attention
傳統(tǒng)的Attention是基于source端和target端的隱變量計(jì)算Attention,得到的結(jié)果是源端的每個(gè)詞與目標(biāo)端每個(gè)詞之間的依賴關(guān)系。
self-Attention恰梢,顧名思義佛南,self就是自己,關(guān)注自身的注意力嵌言,source端和target端都是自身嗅回,關(guān)注自身的依賴關(guān)系。
雖然self-Attention的query摧茴,key绵载,value都是同一個(gè)來(lái)源,但還是有點(diǎn)差異的苛白,引入了三個(gè)對(duì)應(yīng)的權(quán)重
娃豹,由模型訓(xùn)練得到。
小結(jié):self-Attention就是query购裙,key-value都是同個(gè)東西懂版,研究自身內(nèi)部的關(guān)系
3.2、Multi-Head Attention
Multi-Head Attention并行計(jì)算多個(gè)attention缓窜,再把輸出的結(jié)果合并起來(lái)定续。
其中,
當(dāng)這個(gè)attention是self-attention時(shí)禾锤,
3.3私股、其他Attention
基于query,key獲得attention matrix,當(dāng)句子很長(zhǎng)的時(shí)候恩掷,N*N的計(jì)算量會(huì)很大的倡鲸。
所以要想辦法把這個(gè)矩陣的計(jì)算復(fù)雜度降低。提出了很多雜七雜八的attention黄娘,比如Local Attention峭状,stride Attention,Global Attention逼争,...优床,反正都是想辦法把矩陣計(jì)算的復(fù)雜度降低[4]。
4誓焦、其他
4.1胆敞、position信息
Transformer是完全使用Attention的,沒(méi)有用之前的循環(huán)或者卷積杂伟。但Attention是沒(méi)有記錄位置信息的移层,所以需要有位置信息。
所以在Transformer的框架圖里會(huì)有Positional Encoding赫粥。
4.2观话、Attention代碼實(shí)現(xiàn)
【暫放】更多探索
# Scaled Dot-product attention layer
tf.keras.layers.Attention(use_scale=True, score_mode="dot", **kwargs)
4.3、為什么要scaled越平?
scaled dot-production attention中為什么做scaled的縮放频蛔?
4.4、補(bǔ)充
知名的Transformer(變形金剛)論文全名是《Transformer:Attention is all you need》喧笔,Transformer框架中涉及self-attention帽驯,multi-head attention,masked multi-head attention书闸。
然后之后就出現(xiàn)了很多“xxx is all you need”的論文尼变。
參考資料
[1] 李沐,66 使用注意力機(jī)制的seq2seq【動(dòng)手學(xué)深度學(xué)習(xí)v2】
[2] 吳恩達(dá)浆劲,P170 注意力模型直觀理解
[3] 論文嫌术, Trandsformer:Attention is all you need
[4] 李宏毅, P34 各種self-attetion