相对位置编码
原文链接:【link】(以下的截图和部分文字均取自上链接)
self-attention中存在的问题
一个序列中,第i个单词和第j个单词的attention score分数为:
其中Wq,Wk分别是multi-head attention给每个head加的query和key参数,Exi和Exj是xi和xj的词嵌入,Ui和Uj是第i个位置和第j个位置的位置向量。
因式分解得到下式:
其中(a)和位置向量和位置编码没关系,(b)和(c)都只有一个位置的向量,所以也不包含相对位置信息,(d)同时包含Ui和Uj,是最有可能包含相对位置信息的。
实际上,Ui和Uj的内积表示注意力结果,而且其值应该有如下约束:
越接近自己的词,Ui和Uj的内积应该越大,表示越要注意其附近的词。(我自己的想法)
但是,如果中间多了一个矩阵WqTWk!=I的话,那么其则不会满足上述约束,如下图所示: