理解向量

向量具有维度和方向。 例如,下图在笛卡尔坐标系中描绘了一个二维向量 ,用箭头表示。
向量 的头部位于点 。 x 坐标值为 ,y 坐标值为 。这些坐标也被称为向量的分量。
相似性
可以使用多种数学公式来确定两个向量是否相似。 其中最直观且易于理解的是余弦相似度。 考虑以下显示三组图表的图像:

当向量 和 指向彼此接近时,它们被认为是相似的,如第一个图表所示。 当向量彼此垂直时,它们被认为是不相关的;当它们指向相反方向时,它们被认为是相反的。
它们之间的角度 是衡量它们相似性的好方法。 如何计算角度 ?
我们都熟悉 毕达哥拉斯定理。
当 a 和 b 之间的角度不是 90 度时怎么办?
引入 余弦定律。
下图显示了这种方法的向量图:
这个向量的大小根据其分量定义如下:
两个向量
用向量大小和点积重写余弦定律得到以下结果:
将
这个公式适用于高于 2 或 3 维的情况,虽然难以可视化。但是,https://projector.tensorflow.org/[可以在一定程度上进行可视化]。 在 AI/ML 应用中,向量通常有数百甚至数千个维度。
使用向量分量在更高维度中的相似度函数如下所示。 它通过使用 求和数学语法 将前面给出的二维大小和点积定义扩展到 N 维。
这是向量存储简单实现中使用的关键公式,可以在 SimpleVectorStore
实现中找到。