向量搜索通过测量查询向量和代表存储数据的向量之间的相似度来对结果进行排序。每条数据(例如,文本、图像)都使用机器学习模型(如 word2vec、BERT 或 CLIP)转换为高维向量。当用户提交查询时,它也会被转换为向量。然后,系统计算查询向量和所有存储向量之间的距离或相似度,并返回距离最小或相似度得分最高的项目。常用的指标包括余弦相似度(测量向量之间的角度)、欧几里得距离(空间中的直线距离)和点积(幅度和方向对齐)。指标的选择取决于用例以及向量的归一化方式。
有几个因素会影响结果排序的准确性和效率。首先,嵌入(向量)的质量至关重要。在特定领域数据(例如,医学文本与产品描述)上训练的模型能够更好地捕捉细微差别,从而获得更相关的匹配。其次,近似最近邻 (ANN) 算法(例如,HNSW、FAISS)等索引方法可在速度和准确性之间取得平衡。这些算法将向量组织成图或树等结构,以快速查找候选者,而无需进行详尽的比较。例如,HNSW(分层可导航小世界)构建分层图来优先考虑局部相似性,从而缩短搜索时间。第三,降维(例如,PCA)或归一化(将向量缩放到单位长度)等预处理步骤可以提高性能。例如,归一化向量可确保余弦相似度和点积产生一致的排名。
一个实际的例子是电影推荐系统。假设每部电影都根据类型、概要和用户评分嵌入到一个向量中。对“以强大的女性角色为主的动作片”的查询将转换为向量,系统使用余弦相似度检索其向量与查询向量最接近的电影。另一个例子是图像搜索:用户上传一张红色运动鞋的照片,系统将其与鞋类产品向量进行匹配。开发人员可以通过调整相似度指标、试验嵌入模型或调整 ANN 参数(如考虑的候选者数量)来微调排名。例如,增加 HNSW 中的“ef”参数可以提高召回率,但会牺牲速度。这些选择直接影响延迟、计算成本和结果相关性之间的平衡。