從attention到self-attention


attention的本質

  通過計算Query和一組Key的相似度(或者叫相關性/注意力分布),來給一組Value賦上權重,一般地還會求出這一組Value的加權和。

  

  一個典型的soft attention如下公式所示:

  

  先用Query求出分別和一組Key計算相似度,計算相似度的方法有很多種,常用的有點乘、perceptron

  然后用softmax歸一化,得到每個Key對應的概率分布α(或者叫權重),即attention

  由於Key和Value是一一對應的,再用α對Value做加權求和,得到加權和

Seq2Seq模型中attention的應用

  

  在Seq2Seq模型中,Key = Value = encoder hidden state(即h),而 Query = decoder hidden state(即z)

  其實際的含義也很好理解:通過計算當前decode出來的hidden state和encode時的hidden state的關系,給原來所有的encode的hidden state加一個權重,然后求加權和,相當於計算當前輸出詞對每個輸入詞的相關性,用這個相關性做加權求和,得到最終的hidden state。

  (上圖剛好沒有計算Q、K、V的過程,計算順序是這樣的:z0、h -> α0 -> c0 -> z1 ... ..., 其中 z0 作為第一個decoder hidden state是隨機初始化的)

  (上圖machine指向z2的箭頭實際上應該是z1指向z2的)

計算機視覺中attention的應用

Transformer中Self-attention的應用

  先給出Transformer中attention的計算公式:

  

  

  這里Q、K采用了Scaled Dot-Product Attention,分母就是一個歸一化超參。整個形式和常規的attention是一樣的。

  所謂self-attention就是 Query = Key = Value。等等,Query是一個向量,Key和Value是一組向量,怎么能相等呢?

  其實是這樣的,Query也可以是一組向量,只不過這時候這組向量的每個向量分別去和Key、Value計算attention(這個操作可以並行!),所以最后加權和得到的不是一個向量,而是一組向量,和Query中的每個向量分別對應。下圖可以方便理解這一過程:

    

  而在Transformer中,輸入的Q、K、V就是word embedding序列,輸出的是hidden state序列,與每一個word是一一對應的。

  不難理解,整個self-attention的過程實際上是一個詞序列中的每個詞分別與這個序列中的每個詞計算attention,所以形成了全連接的形式,每個詞與每個詞都通過attention直接聯系在了一起,所以解決了long-term dependency的問題。而且可以並行計算,這也對提升RNN的性能有很大幫助。

Graph Attention Networks

  從Transformer中我們發現,position embedding其實是非常重要的,因為attention機制和RNN、CNN不同,不包含任何position的信息,所以在做序列任務時需要專門處理position的信息。

  但了解GNN的同學會發現,在做node aggregate的過程中,一個節點的鄰節點是無序的;而attention機制剛好又非常適合做aggregate操作。因此,用attention做Graph Neural Network會是一個非常好的點,因此就有了Graph Attention Networks。

 

 

參考:

https://www.cnblogs.com/robert-dlut/p/8638283.html (自然語言處理中的自注意力機制)

https://blog.csdn.net/qq_41664845/article/details/84969266 (圖解Transformer)

https://jalammar.github.io/illustrated-transformer/ (The Illustrated Transformer)

https://www.cnblogs.com/huangyc/p/10409626.html#_label3 (從Encoder-Decoder(Seq2Seq)理解Attention的本質)

https://zhuanlan.zhihu.com/p/53682800 (nlp中的Attention注意力機制+Transformer詳解)

https://zhuanlan.zhihu.com/p/56501461 (計算機視覺中的注意力機制)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM