https://blog.csdn.net/tg229dvt5i93mxaq5a6u/article/details/78422216,這篇講的非常好,解決了我的好多疑問。
1.機器翻譯中計算權重和概率
其中aij是通過si-1和hj計算得到的,也就相當於qk,那么上式中的hj也就是v,在這里k=v的。這廝soft 注意力,相當於一個軟尋址的過程,硬尋址只從存儲內容里面找出一條內容,而軟是盡可能從每個Key地址都會取出內容,取出內容的重要性根據Query和Key的相似性來決定,之后對Value進行加權求和。
2.Attention機制本質思想
其中source在機器翻譯中就是源語言。首先是根據q和k計算權重,然后再和v加權求和獲取到概率分布。
第一步中相似性的計算可以通過:
之后經過softmax歸一化,轉換為權重和為1的概率分布,
下面是加權求和:
由上圖我們可以知道,在transformer的encoder中,qkv來源都相同的,而在解碼中,q是來自前一個預測的word,kv來自編碼的輸出!
3.self-attention機制
自注意力是source=target,那么問題來了,在機器翻譯這樣source≠target中,attention模擬的是翻譯中的對齊過程,那么source=target的物理意義是什么呢?
答:它可以學習到句子單詞之間的句法特征和語義特征,比如遠距離的一些單詞的指代關系,如果實在RNN或LSTM中遠距離的信息被捕獲的可能性就相對小。
Self Attention在計算過程中會直接將句子中任意兩個單詞的聯系通過一個計算步驟直接聯系起來,所以遠距離依賴特征之間的距離被極大縮短,有利於有效地利用這些特征。除此外,Self Attention對於增加計算的並行性也有直接幫助作用。
4.應用
除了在機器翻譯中,還有圖片轉換為文字及語音轉換為文字中,都可以建立起target和source的注意力關系。