未完待續,寫作中可能會有大改版,依然和之前一樣看完就懂。
文章中對於Scaled Dot-Product Attention定義如下:
假設有: , , ,則:
如何理解Scaled Dot-Product Attention?其中的Q,K,V是什麼?
不妨回憶一下之前文章中提到的LuongAttention的實現方式,代表Encoder狀態,代表Decoder狀態。
接下來對上面的公式稍作變換,對LuongAttention定義Query,Keys,Values:
Decoder狀態 Query(Q): Encoder狀態 Keys(K):Values(V):
Decoder狀態 Query(Q):
由於 ,顯然 是一一對應的。對於LuongAttention中的注意力向量 可以寫成:
如果這裡的 採用Dot方式計算:
則寫成矩陣形式(非嚴格數學推理):
看到這裡就很清楚了,所謂的「Scaled Dot-Product Attention」並不是什麼新東西,其本質就是一個注意力機制,將序列 編碼成了一個新的 序列。這種注意力的定義並不新鮮,但由於 Google 的影響力,可以認為是正式地提出了這個定義,並將其視為一個層看待。
其中 , , , 。
一起看一個例子
參考文獻