Transformer中自注意力的计算
对于输入,
,代表输入了m个长度为n的序列。
首先,要算出这m个序列的Keys,Queries和Values。这里使用三个矩阵,即:,
,
,分别计算如下:
此处 和
的大小应保持一致,
三个矩阵中的值都是可以学习的。
由此,得到了对应m个序列的Keys,Queries和Values。下一步要做的是,由Keys,Queries和Values计算出自注意力的分数,(为了简便,以下将Keys,Queries和Values简写为Q,K,V),计算方法如下:
这个score即为m个序列的权重系数,接下来只需将score与V相乘,即可得到最终输出:
所以,最终输出矩阵的尺寸为:输入序列的数量x (单个Value向量的维度),不过Transfor-mer的作者在原文中将
和
设置为了同样的数值。