对QKV的理解,先废一下话...
计算流程参考:https://zhuanlan.zhihu.com/p/82312421
给定一组query,和当前输入样本input(每个样本都有各自的key),经过空间变化后input→query。
计算query和key之间的相关性r,r中的每个元素就可以看做是input中每个样本和其他样本的关系向量,然后根据query和key的相关性得到value的加权和(即,注意力)。
本质上,QKV的计算就是矩阵之间的计算。通过样本输入向量input和训练过程中训练得到的三个矩阵WQ、WK、WV分别进行矩阵计算,得到QKV三向量。
虽然QKV三者的属性不在同一空间,其实是有一定潜在联系的,通过某种变换(个人认为就是矩阵之间的线性相乘相加计算)将三者属性映射到一个相似的空间。注意力机制不是为了query去找value,而是根据当前query获取value的加权和来获取对输入样本的注意力。