參考:Transformer模型詳解(圖解最完整版) - 知乎
如何了解attention中的Q,K,V? - 知乎
注意力機制到底在做什麼,Q/K/V怎麼來的?一文讀懂Attention注意力機制 - 知乎
核心思想:Q K V,次元特征,然後通過矩陣的點乘計算出二者的相似性!
0.為什麼使用三個可訓練的參數矩陣生成Q K V因為,他們可以增強模型的拟合能力呗!
其中,WQ,WK和WV是三個可訓練的參數矩陣。輸入矩陣X分别與WQ,WK和WV相乘,生成Q、K和V,相當于經曆了一次線性變換。Attention不直接使用X,而是使用經過矩陣乘法生成的這三個矩陣,因為使用三個可訓練的參數矩陣,可增強模型的拟合能力。
1.嵌入向量方面
就是詞嵌入和位置嵌入的加和。
2.将向量矩陣傳入N個編碼塊(N可以為6!),之後得到句子所有單詞的編碼資訊矩陣 C。如下圖。單詞向量矩陣用 Xn×d 表示, n 是句子中單詞個數,d 是表示向量的次元 (論文中 d=512)。每一個 Encoder block 輸出的矩陣次元與輸入完全一緻。
3.如下圖:【目前不太了解!】
4.自注意力機制
5.
上圖是 Self-Attention 的結構,在計算的時候需要用到矩陣Q(查詢),K(鍵值),V(值)。在實際中,Self-Attention 接收的是輸入(單詞的表示向量x組成的矩陣X) 或者上一個 Encoder block 的輸出。而Q,K,V正是通過 Self-Attention 的輸入進行線性變換得到的。
6.Softmax歸一化指數函數:是對矩陣的每一行進行 Softmax,即每一行的和都變為 1.
Softmax(QK)就是求權重的展現:如何了解attention中的Q,K,V? - 知乎
注意力機制到底在做什麼,Q/K/V怎麼來的?一文讀懂Attention注意力機制 - 知乎
Q、K可以求出注意力權重配比值!
我們知道,向量點積的值可以表征詞與詞之間的相似性,而此處的“整個序列”包括The這個詞自己(再一次強調這是Self-Attention)。
是以最後輸出的詞的表示,其“主要成分”就主要地包含它自身和跟它相似的詞的表示,其他無關的詞的表示對應的權重就會比較低。
7.Add指 X+MultiHeadAttention(X),是一種殘差連接配接,通常用于解決多層網絡訓練的問題,可以讓網絡隻關注目前差異的部分,在 ResNet 中經常用到:
Add指 X+MultiHeadAttention(X),是一種殘差連接配接,通常用于解決多層網絡訓練的問題,可以讓網絡隻關注目前差異的部分,在 ResNet 中經常用到:
8.組成Encoder
9.MASK掩碼操作
注意 Mask 操作是在 Self-Attention 的 Softmax 之前使用的,下面用 0 1 2 3 4 5 分别表示 "<Begin> I have a cat <end>"。
下圖,就是單詞0隻能使用單詞0的資訊,單詞1可以使用單詞0,1的資訊;
也就是隻能使用之前的資訊。
10.softmax預測輸出單詞
end:
Transformer 總結
- Transformer 與 RNN 不同,可以比較好地并行訓練。
- Transformer 本身是不能利用單詞的順序資訊的,是以需要在輸入中添加位置 Embedding,否則 Transformer 就是一個詞袋模型了。
- Transformer 的重點是 Self-Attention 結構,其中用到的Q, K, V矩陣通過輸出進行線性變換得到。
- Transformer 中 Multi-Head Attention 中有多個 Self-Attention,可以捕獲單詞之間多種次元上的相關系數 attention score。