論文鏈接:Attention is all you need
Intro
之前的RNN和LSTM方法是基於時序的,不能並行化(parallelizable),也就是計算了t-1時刻之后才能計算t時刻,訓練效率就比較低。
Self-Attention
An attention mechanism relating different positions of a single sequence in order to compute a representation of the sequence



計算出的每一個\(\hat a\)是相對於\(v\)的權重(是一個數值而不是向量),權重越大表示越關注這個\(v\),權重就是query和key的相似度


矩陣表示
上述操作都是矩陣乘法,可以並行化處理
Multi-head Self-Attention

將\(q^1\)拆分成\(q^{1,1}\)和\(q^{1,2}\),原論文中是均分,比如把\((1,1,0,1)\)分成\((1,1)\)和\((0,1)\)




Encoder and Decoder

左邊為encoder
multi-head self-attention + MLP
有一個residual connection, LayerNorm(x + Sublayer(x))
在變長的應用中使用LayerNorm而不是BatchNorm,對樣本進行normalization而不是feature
右邊為decoder
當前時刻的輸入是上一時刻的輸出
decoder在訓練時基於t時刻之前的數據,不應該知道t以后的輸入,而self-attention機制能看到所有時刻的數據
所以使用Mask,保證t時刻不會看到之后的數據,使訓練與預測行為一致
Reference
[1] 這么多年,終於有人講清楚 Transformer 了!