|
|
|
@ -73,13 +73,13 @@ $$
|
|
|
|
|
|
|
|
|
|
那么A、B长度也就是模长,它的作用又是什么呢?可以理解为归一化处理。公式定理可知cosine最终的结果是[-1,+1]区间,我们来求一下,假设我们有两个向量A和B:
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240523102514832.png" alt="image-20240523102514832" width="300" />
|
|
|
|
|
<img src="../assets/image-20240523102514832.png" alt="image-20240523102514832" width="400" />
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240523102627330.png" alt="image-20240523102627330" width="300" />
|
|
|
|
|
<img src="../assets/image-20240523102627330.png" alt="image-20240523102627330" width="410" />
|
|
|
|
|
|
|
|
|
|
计算表明,两个向量的余弦相似度为 1,这意味着它们的方向完全相同。也就是模长是把数值归一化到[-1,+1]区间,那么如果我直接点积相乘,然后再进行归一化是不是也可以呢?亦或者我们进行一次数值缩放呢?再回头看下我们的图
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240523103216329.png" alt="image-20240523103216329" width="500" />
|
|
|
|
|
<img src="../assets/image-20240523103216329.png" alt="image-20240523103216329" width="600" />
|
|
|
|
|
|
|
|
|
|
注意两个红框,QK矩阵相乘后进行数值缩放,而结果A在输出后,也进行也一次数值缩放。也就是**矩阵相乘后进行数值缩放** 等同于 **余弦公式结果** 等同于 **求得多个元素间的相似度** 等同于 **自注意力机制**
|
|
|
|
|
|
|
|
|
|