最近在学习transformer的时候遇到了一个问题,Q矩阵和K矩阵点乘是在反应两个向量的相似度,点乘的结果越大越是相似。
点乘的公式:a*b= |a| * |b| * cosθ
由点乘的公式可知,点乘的结果不仅仅是由相似度(也就是cosθ)决定,还由向量的模的大小决定的,如果模很大,即使向量夹角很大(也就是很不相似),得出来的结果也有可能很大,那么这个结果就不能反应这个两个向量是否相似了。是不是应该在Embeding的时候,将所有的词向量的模设置成大小一样的?这样计算的结果才能真正的反映向量之间的相似度。