图解Transformer模型(Multi-Head Attention)
本文內(nèi)容主要源于Attention is all you need:?https://arxiv.org/abs/1706.03762
由于本人最近在研究文本的判別式模型,如文本分類任務(wù),所以學(xué)習(xí)了Transformer,并根據(jù)自己的理解制作了PPT介紹總結(jié)Transformer中幾個比較重要的部分.
文章內(nèi)容為本人制作的PPT,同時在需要解釋的slide寫上了補充說明;
主要內(nèi)容包括
1.Transformer的提出背景;
2.Transformer的Encoder(Scaled Dot-Product Attention,Multi-head-Attention)較為詳細(xì)的圖解,部分圖引自《Attention is all you need》一文;
3.雖然本人主要是應(yīng)用于判別式模型,但是最后簡單介紹了包含Decoder部分,梳理了Transformer的整個流程;
Slide 1
Slide 2
Slide 3
?
slide 4,其實很明顯,Multi-Head Attention是Transformer最突出的貢獻(xiàn),所以直入主題:
slide5 Multi-Head Attention的核心組件-Scaled Dot-Product Attention,以實例"華南"一詞的Scaled Dot-Product Attention過程為例逐一圖解每個模塊的對應(yīng)工作
(1)此處僅以"華南"為例,圖解Scaled Dot-Product Attention是如何避免通過Reccurent model來捕獲上下文信息,具體做法就是如圖通過當(dāng)前Q與每個K(包括自己)的MatMul;
(2)同時此處為什么要進(jìn)行放縮(Scale),對應(yīng)圖中有解釋;
(3)Mask具體操作如圖中文本框解釋,作用于紅框步驟中,將(1)(2)步驟的計算結(jié)果score針對性的屏蔽Mask)
具體屏蔽的是文本向量化過程中,由于文本長度小于Fix_length的Padding部分,在Padding部分對應(yīng)index的score設(shè)為-inf
最后的效果就是使得經(jīng)過softmax之后,Padding部分給予的attention權(quán)重為近似0.
這種類似的操作在Decoder部分也使用了,目的是為了Decoder只關(guān)注早于當(dāng)前輸出位置的部分!
slide 6-理解了Scaled-Dot Product Attention ,繼續(xù)了解Multi-Head Attention,先看其中的Multi-Head是什么意思?
如圖藍(lán)框部分為Multi-Head部分的解釋,實際上n個head 就是進(jìn)行n次linear映射出不同的子區(qū)域表征空間,更加全面的挖掘不同位置在不同子空間下的信息,同時此設(shè)計出于并行計算的考慮。
slide 7 Multi-Head Attention中的Scaled Dot-Product Attention部分(前面詳細(xì)圖解)
slide 8 經(jīng)過Multi-Head映射多個子空間→Scaled Dot-Product Attention
接下來:
1.將n_Head個子空間得到的編碼信息融合(本文中concat拼接)
2.拼接后,Linear回與Transformer模型空間維度(d_model)一致,方便如下圖與原始輸入INPUTS進(jìn)行Resnet以及LayerNormalization
slide 9
Multi-Head Attention部分已經(jīng)圖解解釋完了,Encoder部分后續(xù)還經(jīng)過一個Feed Forward,其實就是兩層Linear以及在第一層加入了ReLu激活函數(shù),就不繼續(xù)講了。
接下來簡單講下Transformer中是如何應(yīng)用在生成式模型,如機器翻譯任務(wù):
在slide中,以中文:"我是中國人" 翻譯為 英文為例
1.編碼部分(Encoder):
1.1輸入文本:"我是中國人" 直接INPUTS ,此處圖中為了簡潔,省略了word_embedding以及position_embedding過程
1.2綠色框"Encoder"部分對應(yīng)單個transformer模型的Encoder部分,Encoder的最終輸出結(jié)果為"K","V"
2.解碼部分(Decoder):
2.1初始狀態(tài):輸出結(jié)果僅包含輸出起始標(biāo)志"Start of result"
2.2綠色框"Decoder"部分對應(yīng)單個transformer模型的Decoder部分,注意transformer結(jié)構(gòu)框圖中,在Decode-Encoder Attention部分,即Decoder部分的第二次Multi-Head Attention:其K V 輸出是采用Encoder的輸出,目的是利用Encoder編碼好的K V,幫助Decoder在合適的位置處放置更多的"注意力"(Attention)
2.3Transformer中的Decoder部分的第一個Multi-Head Attention ,也進(jìn)行了Masked操作,此操作實現(xiàn)及原因在前文提到解釋過,上翻!
2.4Decoder部分整體是一個自回歸過程,即在Decoder過程中:是一個詞一個詞預(yù)測出來的,當(dāng)前預(yù)測的結(jié)果output1,會作為Decoder的輸入,參與下一個詞的預(yù)測,如當(dāng)前slide預(yù)測結(jié)果為"I",在下一個預(yù)測,見slide10
slide 10
依此循環(huán),直至預(yù)測出結(jié)束標(biāo)識符,完成整個模型的任務(wù)。
?
至此,大概介紹了Transformer的結(jié)構(gòu),主要是Encoder部分的Multi-Head Attention部分,同時也簡單梳理了整個結(jié)構(gòu)。
希望有所收獲的讀者能點個“喜歡” 給個贊,謝謝支持!
另外如有誤解之處還請原諒指出,謝謝!
總結(jié)
以上是生活随笔為你收集整理的图解Transformer模型(Multi-Head Attention)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 达梦公司介绍
- 下一篇: 怎么在抖音中一键复制微信号打开微信引流