您的位置:首页 > 其它

向量搜索的简明数学基础

2019-10-24 18:10 2831 查看

虽然 Milvus 开源向量搜索引擎(GitHub)可以为用户隔离下面这些头疼的细节,不过多学一点向量数据的知识总是没坏处的。

L2正则化(归一化)

n 维原始向量空间: 为实数, 为非零自然数)

原始向量:

向量 X 的 L2 范数(模长):

归一化后的向量:

其中每一维的 L2 正则化算法:

归一化后,向量模长等于1:

计算向量相似度

近似最近邻搜索(approximate nearest neighbor searching, ANNS)是目前针对向量搜索的主流思路。其核心理念是只在原始向量空间的子集中进行计算和搜索,从而加快整体搜索速度。

假设搜索空间(即原始向量空间的子集):

内积(点积)

向量 A,B 的内积:

余弦相似度

向量 A,B 的余弦相似度:

通过余弦判断相似度:数值越大,相似度越高。即

假设向量 A,B 归一化后的向量分别是 A',B' ,则

因此,归一化后,两个向量之间的余弦相似度不变。特别的,

因此,归一化后,内积与余弦相似度计算公式等价

欧氏距离

向量 A,B 的欧式距离:

通过欧氏距离判断相似度:欧式距离越小,相似度越高。即

假设向量 A,B 经过归一化,那么进一步展开上面的公式:

因此,欧氏距离的平方与内积负相关。而欧式距离是非负实数,两个非负实数之间的大小关系与他们自身平方之间的大小关系相同。

所以,向量归一化后,针对同一个向量,在同等搜索空间的条件下,欧氏距离返回的前K个距离最近的向量结果集与内积返回的前K个相似度最大的向量结果集是等价的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Subset COS Milvus