向量搜索的简明数学基础
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个相似度最大的向量结果集是等价的。
相关文章推荐
- 【3D数学基础】三维空间折射向量计算
- Unity3D数学之向量基础
- 3D数学基础--向量
- 【原创】开源Math.NET基础数学类库使用(02)矩阵向量计算
- 三维数学基础之坐标系、向量、矩阵
- 【原创】开源Math.NET基础数学类库使用(02)矩阵向量计算
- shader数学基础之顶点法向量从物体坐标系变换到世界坐标系
- 数学基础 —— 向量运算(叉乘)
- 3d数学基础:常用向量相关运算
- 3d数学基础-向量相关操作-用C++实现
- 3D 图形编程的数学基础(1) 向量及其运算
- 机器学习的数学基础:向量篇
- 3D数学基础 - 坐标系、向量、矩阵
- 机器学习的数学基础:向量篇
- 机器学习 深度学习用到的数学基础知识 标量、向量、矩阵和张量
- 向量和矩阵函数的微分——机器学习数学基础笔记(一)
- 数学基础 —— 向量运算(点积)
- 点和向量的数学基础
- 数学基础:向量
- 3D 图形编程的数学基础 1 向量及其运算