从向量到嵌入:相似度背后的几何学
直观理解向量、点积、余弦相似度,以及嵌入为何能把含义转换成几何关系。
嵌入把一个对象——单词、图像、用户或文档——表示成一串数字。这串数字就是一个向量:
单个坐标很少有简单的人类标签。重要的是许多向量共同创造出的几何结构。
从方向开始
假设两个向量几乎指向同一个方向。它们的坐标大小可能不同,但仍然表达相似的模式。余弦相似度衡量这种方向上的一致性:
分子是点积。分母消除了长度的影响。
一个小型示例
设 ,。由于 ,两个向量指向完全相同的方向,它们的余弦相似度是 。
function dot(left, right) {
return left.reduce((sum, value, index) => sum + value * right[index], 0);
}
这段代码对应数学定义 。
嵌入为何有用
训练会排列向量,使有用的关系变成几何关系。因此,搜索系统可以检索相近的文档;推荐系统可以比较用户与商品;分类器可以在不同区域之间画出边界。
核心思想很简单:当距离或方向保留了我们关心的关系时,嵌入才有用。