Attention機制是什麼?
說到底attention實際上是一個加權求和,用於計算每個與attention關注的對象(其實是一個向量)的相關程度。
step1 設計一個打分函數,針對每個,計算出一個score 。而打分的依據,就是與attention所關注的對象(其實就是一個向量)的相關程度,越相關,所得越大。
step2 對所得到的k個score si(i=1,2,…,k),通過一個softmax函數,得到最後的權重,即:
step3 將與對應相乘再求和,得到最終的attention value.
打分函數主要有以下幾種,如dot、general、concat和MLP等。公式如下:
Attention的設計
對於打分函數 在論文”Dynamic Attention Deep Model for Article Recommendation by Learning Human Editors’Demonstration”中的Attention Mechanism章節給了較爲全面的概括。大體分爲三類:
- Location-based Attention
- General Attention
- Concatenation-based Attention
Location-based Attention
關注的圖像僅一個重要特徵
Location-based的意思就是,這裏的attention沒有其他額外所關注的對象,即attention的向量就是本身,因而的設計如下:
其種,, ,這裏的激活函數activation,常見的有三種:1)tahn,2)relu,3)y=x(即沒有激活函數)
參考文獻 [1]中有具體的例子,都有着明顯的套路。
General Attention 不常見略過
Concatenation-based Attention
關注的圖像有多個特徵情況
就是被設計出來衡量和之間相關性的函數。一般是這麼設計的:
這裏,,,,,一般情況下。
函數的描述的意思就是,希望通過W1,W2的對齊操作,使得和的特徵能夠對應上。然後再通過v計算score。
參考文獻 [1]中有具體的例子,都有着明顯的套路。
多層attention
多爲兩層,一層用於針對多個不同特徵對原始圖像打分,另一層用於結合多個特徵分攤權重。