分類目錄:《深入理解深度學(xué)習(xí)》總目錄
相關(guān)文章:
·注意力機(jī)制(AttentionMechanism):基礎(chǔ)知識
·注意力機(jī)制(AttentionMechanism):注意力匯聚與Nadaraya-Watson核回歸
·注意力機(jī)制(AttentionMechanism):注意力評分函數(shù)(AttentionScoringFunction)
·注意力機(jī)制(AttentionMechanism):Bahdanau注意力
·注意力機(jī)制(AttentionMechanism):自注意力(Self-attention)
·注意力機(jī)制(AttentionMechanism):多頭注意力(MultiheadAttention)
·注意力機(jī)制(AttentionMechanism):位置編碼(PositionalEncoding)
在《深入理解深度學(xué)習(xí)——注意力機(jī)制(Attention Mechanism):自注意力(Self-attention)》中,我們?yōu)榱诉\(yùn)行自注意力機(jī)制,我們需要創(chuàng)建三個(gè)新矩陣,即查詢矩陣 Q Q Q、鍵矩陣 K K K和值矩陣 V V V。由于使用了《深入理解深度學(xué)習(xí)——注意力機(jī)制(Attention Mechanism):多頭注意力(Multi-head Attention)》中的多頭注意力層,因此我們創(chuàng)建了 h h h個(gè)查詢矩陣、鍵矩陣和值矩陣。對于注意力頭 i i i的查詢矩陣 Q i Q_i Qi?、鍵矩陣 K i K_i Ki?和值矩陣 V i V_i Vi?,可以通過將 X X X分別乘以權(quán)重矩陣 W i q W^q_i Wiq?、 W i k W^k_i Wik?、 W i v W^v_i Wiv?而得。
下面,讓我們看看帶掩碼的多頭注意力層是如何工作的。假設(shè)傳給解碼器的輸入句是<sos>Je vais bien
。我們知道,自注意力機(jī)制將一個(gè)單詞與句子中的所有單詞聯(lián)系起來,從而提取每個(gè)詞的更多信息。但這里有一個(gè)小問題。在測試期間,解碼器只將上一步生成的詞作為輸入。比如,在測試期間,當(dāng)
t
=
2
t=2
t=2時(shí),解碼器的輸入中只有[<sos>,Je]
,并沒有任何其他詞。因此,我們也需要以同樣的方式來訓(xùn)練模型。模型的注意力機(jī)制應(yīng)該只與該詞之前的單詞有關(guān),而不是其后的單詞。要做到這一點(diǎn),我們可以掩蓋后邊所有還沒有被模型預(yù)測的詞。比如,我們想預(yù)測與<sos>
相鄰的單詞。在這種情況下,模型應(yīng)該只看到<sos>
,所以我們應(yīng)該掩蓋<sos>
后邊的所有詞。再比如,我們想預(yù)測Je
后邊的詞。在這種情況下,模型應(yīng)該只看到Je
之前的詞,所以我們應(yīng)該掩蓋Je
后邊的所有詞。其他行同理,如下圖所示。
像這樣的掩碼有助于自注意力機(jī)制只注意模型在測試期間可以使用的詞。對于一個(gè)注意力頭
i
i
i的注意力矩陣
Z
i
Z_i
Zi?的計(jì)算方法:
Z
i
=
Softmax
(
Q
i
K
i
T
d
k
)
V
i
Z_i=\text{Softmax}(\frac{Q_iK^T_i}{\sqrt{d_k}})V_i
Zi?=Softmax(dk??Qi?KiT??)Vi?
需要計(jì)算帶掩碼的多頭注意力,主要有以下幾步:
- 計(jì)算查詢矩陣與鍵矩陣的點(diǎn)積。下圖顯示了點(diǎn)積結(jié)果。需要注意的是,這里使用的數(shù)值是隨機(jī)的,只是為了方便理解。
- 將
Q
i
K
i
T
Q_iK^T_i
Qi?KiT?矩陣除以鍵向量維度的平方根
d
k
\sqrt{d_k}
dk??,假設(shè)下圖是
Q
i
K
i
T
d
k
\frac{Q_iK^T_i}{\sqrt{d_k}}
dk??Qi?KiT??的結(jié)果:
- 我們對上圖所得的矩陣應(yīng)用Softmax函數(shù),并將分值歸一化。但在應(yīng)用Softmax函數(shù)之前,我們需要對數(shù)值進(jìn)行掩碼轉(zhuǎn)換。以矩陣的第1行為例,為了預(yù)測
<sos>
后邊的詞,模型不應(yīng)該知道<sos>
右邊的所有詞(因?yàn)樵跍y試時(shí)不會有這些詞)。因此,如下圖所示,對于第1行我們可以用 ? ∞ -\infty ?∞掩蓋<sos>
右邊的所有詞,第2行用 ? ∞ -\infty ?∞掩蓋Je
右邊的所有詞,以此類推。
現(xiàn)在,我們可以將Softmax函數(shù)應(yīng)用于前面的矩陣,并將結(jié)果與值矩陣
V
i
V_i
Vi?相乘,得到最終的注意力矩陣
Z
i
Z_i
Zi?。同樣,我們可以計(jì)算
h
h
h個(gè)注意力矩陣,將它們串聯(lián)起來,并將結(jié)果乘以新的權(quán)重矩陣
W
0
W_0
W0?,即可得到最終的注意力矩陣
M
M
M:
M
=
Concatenate
(
Z
1
.
Z
2
,
?
?
.
Z
h
)
W
0
M=\text{Concatenate}(Z_1. Z_2, \cdots. Z_h)W_0
M=Concatenate(Z1?.Z2?,?.Zh?)W0?文章來源:http://www.zghlxwxcb.cn/news/detail-487366.html
參考文獻(xiàn):
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] 車萬翔, 崔一鳴, 郭江. 自然語言處理:基于預(yù)訓(xùn)練模型的方法[M]. 電子工業(yè)出版社, 2021.
[4] 邵浩, 劉一烽. 預(yù)訓(xùn)練語言模型[M]. 電子工業(yè)出版社, 2021.
[5] 何晗. 自然語言處理入門[M]. 人民郵電出版社, 2019
[6] Sudharsan Ravichandiran. BERT基礎(chǔ)教程:Transformer大模型實(shí)戰(zhàn)[M]. 人民郵電出版社, 2023
[7] 吳茂貴, 王紅星. 深入淺出Embedding:原理解析與應(yīng)用實(shí)戰(zhàn)[M]. 機(jī)械工業(yè)出版社, 2021.文章來源地址http://www.zghlxwxcb.cn/news/detail-487366.html
到了這里,關(guān)于深入理解深度學(xué)習(xí)——注意力機(jī)制(Attention Mechanism):帶掩碼的多頭注意力(Masked Multi-head Attention)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!