说到自注意力机制就会想到QKV,那么为什么要定义三个Tensor呢?
自注意力机制就是通过权重矩阵来自发地找到数据之间的关系,因此肯定需要对每一个输入(input)定义一个tensor,然后通过乘法来得到与输入的关系。
显然,如果一个input只对应一个tensor是不够的,因为a和b的关系与b和a的关系并不是对偶的。
那定义两个呢?
就是q用来与其他输入找关系,k用来别人和自己找关系。这样两两之间就可以得到了权重关系了。
既然找到了权重关系,那如何使用?直接对输入进行加权操作显得比较直接,因此又定义了V,对输入加了一层可学习的参数,然后再与权重信息进行操作得到最后的输出。