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