09 什麼是注意力機制(Attention )


Attention(注意力機制)

你會注意什麼?

大數據(什麼數據都有,重要的,不重要的)

對於重要的數據,我們要使用

對於不重要的數據,我們不太想使用

但是,對於一個模型而言(CNN、LSTM),很難決定什麼重要,什麼不重要

由此,注意力機制誕生了(有人發現瞭如何去在深度學習的模型上做注意力)

img

紅色的是科學家們發現,如果給你一張這個圖,你眼睛的重點會聚焦在紅色區域

人--》看臉

文章看標題

段落看開頭

後面的落款

這些紅色區域可能包含更多的信息,更重要的信息

注意力機制:我們會把我們的焦點聚焦在比較重要的事物上

怎麼做注意力

我(查詢對象 Q),這張圖(被查詢對象 V)

我看這張圖,第一眼,我就會去判斷哪些東西對我而言更重要,哪些對我而言又更不重要(去計算 Q 和 V 裏的事物的重要度)

重要度計算,其實是不是就是相似度計算(更接近),點乘其實是求內積(不要關心爲什麼可以)

Q,\(K =k_1,k_2,\cdots,k_n\) ,我們一般使用點乘的方式

通過點乘的方法計算Q 和 K 裏的每一個事物的相似度,就可以拿到 Q 和\(k_1\)的相似值\(s_1\),Q 和\(k_2\)的相似值\(s_2\),Q 和\(k_n\)的相似值 \(s_n\)

做一層 \(softmax(s_1,s_2,\cdots,s_n)\) 就可以得到概率\((a_1,a_2,\cdots,a_n)\)

進而就可以找出哪個對Q 而言更重要了

img

我們還得進行一個彙總,當你使用 Q 查詢結束了後,Q 已經失去了它的使用價值了,我們最終還是要拿到這張圖片的,只不過現在的這張圖片,它多了一些信息(多了於我而言更重要,更不重要的信息在這裏)

V = \((v_1,v_2,\cdots,v_n)\)

\((a_1,a_2,\cdots,a_n)*+(v_1,v_2,\cdots,v_n)=(a_1*v_1+a_2*v_2+\cdots+a_n*v_n)\) = V'

這樣的話,就得到了一個新的 V',這個新的 V' 就包含了,哪些更重要,哪些不重要的信息在裏面,然後用 V' 代替 V

一般 K=V,在 Transformer 裏,K!=V 可不可以,可以的,但是 K 和 V 之間一定具有某種聯繫,這樣的 QK 點乘才能指導 V 哪些重要,哪些不重要

51, 49---》 0.51,0.49

80/8,20/8 --》 0.9999999999, 0.0000000001

10 / 3 --> 0.9, 0.1

a1 和 a2 之間的差額越大,這個概率就越離譜

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章