AI 基础

向量相似搜索是什么以及它是如何工作的?

mm
将 Unite.AI 添加到您在 Google 上的首选来源

向量相似搜索 在选定的距离或相似度函数下,查找其数值表示与查询向量接近的项目。嵌入模型将文本、图像、音频、产品或用户映射为向量,使相关项目能够在表示空间的相邻区域中出现。

搜索索引并不能独立于嵌入和度量来理解相似性。如果表示编码了错误的相关性概念,即使是快速的最近邻算法也会高效地返回错误的邻居。

关键要点

  • 嵌入模型、预处理和距离度量决定了“接近”的含义。
  • 精确的 k 最近邻搜索会扫描所有候选项;近似索引则在召回率、速度和内存之间进行权衡。
  • HNSW、倒排文件索引和产品量化提供了不同的构建、查询和更新权衡。
  • 元数据过滤、混合检索和重新排序是系统的一部分,而非事后补充。
What is Vector Similarity Search and How Does It Work? diagram showing content, embed, index, search, filter + rerank, results
检索质量来源于嵌入、度量、索引、过滤器和评估共同协作的整体系统。

嵌入与相似度度量

Transformer 或其他编码器将项目转换为固定长度的向量。余弦相似度比较角度,点积结合方向和幅度,欧氏距离衡量直线距离。

归一化可以使余弦相似度和点积的排序等价。用于训练嵌入的度量应与检索相匹配。需要评估特定领域的相关性,因为语义相似性、可替代性和用户偏好是不同的目标。

精确搜索与近似搜索

精确搜索对每个符合条件的向量计算相似度,并返回真正的最近候选项。它简单且准确,但随着集合规模、维度或查询率的增长,成本会变得高昂。

近似最近邻(ANN)索引会检查更小的候选集合。需在延迟、吞吐量和内存等指标的同时,以 recall@k 对比精确的真实值。“近似”描述的是搜索算法,而非嵌入本身是否正确。

HNSW、倒排文件与压缩

层次可导航小世界(HNSW)图在多个层级中连接向量。查询从稀疏的远程链接下降到密集的本地链接。搜索宽度控制召回率与延迟的权衡,而图的构建和更新会消耗内存。

倒排文件索引使用粗粒度聚类——通常与 K-means 相关——来搜索选定的区域。产品量化压缩向量子空间,在降低内存的同时会引入距离误差。Faiss 将多种此类技术结合起来。

过滤、混合检索与重新排序

实际查询常常需要租户、语言、日期、权限或产品过滤。预过滤可能导致图的候选过少;后过滤则可能浪费检索工作。索引和查询计划应在真实的过滤选择性下进行测试。

混合搜索将词法匹配与向量相似度结合,使精确名称和语义含义共同发挥作用。重新排序器可以对顶部候选使用更昂贵的交叉编码器或业务规则。必须在每个阶段保留授权检查。

评估、更新与漂移

使用标注的相关性判断或下游任务成功率,而非仅凭可视化聚类。跟踪召回率、精确率、归一化折扣累计增益(NDCG)、延迟分位数、内存、索引构建时间和新鲜度。

嵌入模型升级需要重新嵌入,可能会移动所有点。使用版本向量和索引,支持双跑迁移并监控查询/人群漂移。降维可帮助可视化,但可能扭曲邻域,不能误认为是检索评估。

嵌入、度量与索引结构

向量相似搜索将项目表示为数值嵌入,并在余弦相似度、点积或欧氏距离等度量下检索与查询接近的向量。嵌入模型决定了“接近”的含义;索引仅加速该几何计算。必要时对向量进行归一化,保留模型和预处理的版本,且不要比较不兼容嵌入空间的距离。一个在通用语义上表现强大的模型,如果没有领域评估,可能在产品兼容性、法律引用、图像、代码或多语言术语上失效。

精确搜索比较每个向量,简单但在大规模时成本高。近似最近邻方法在召回率与速度、内存之间进行权衡。图索引如 HNSW 导航链接邻居;倒排文件方法将向量划分为粗糙的单元;产品量化压缩向量;基于磁盘的方法在存储和延迟之间取舍。构建时间、查询时间和内存参数相互影响。需在接近生产环境的向量数量、维度、更新、过滤、并发和硬件上进行基准测试。

检索质量与混合搜索

构建带有相关和不相关项目的评估查询,涵盖稀有词、歧义、长文本、语言和新鲜度等因素。测量 recall@k、precision@k、平均倒数排名(MRR)、归一化折扣增益(NDCG)、延迟和成本。分别测量 ANN 对精确邻居的召回率以及对人类判断的语义相关性。若嵌入质量差,即使是快速索引也可能检索到数学上最近但错误的项目。

关键词搜索在精确名称、标识符、日期和稀有词上仍然强大。混合检索将词法和向量排名相结合,同时元数据过滤强制租户、权限、语言、日期和类型的限制。应在返回或生成结果前进行授权检查;检索后过滤可能泄露存在或内容。重新排序器在增加延迟的情况下提升精确率。分块应遵循文档结构,并保留源、版本和偏移量以便引用。

生产生命周期

更新需要确定性的 ID、删除传播、墓碑或压实,并制定模型变更后重新嵌入的策略。切勿在不知情的情况下混合旧的和新的嵌入;应重建或为索引设定版本,并在切换前离线比较。监控查询和结果分布、空查询和低分检索、延迟、索引健康以及标注反馈。保护嵌入因为它们可能编码敏感信息并导致推断。向量搜索是检索基础设施,而非事实准确性的保证;下游系统必须保留证据,并在支持不足时保持中立。

实际案例:基于权限的向量检索

某企业按章节对手册进行切分,使用带版本的模型进行嵌入,并存储文档 ID、权限、语言、版本和偏移量。评估查询集对比词法、向量、混合和重新排序的检索。评估指标包括 k 召回率和精确率、引用覆盖率、延迟、成本,以及对精确零件号和多语言术语的检索结果。ANN 召回率另行与精确向量邻居进行对比。

查询时,授权过滤器在内容返回前筛选候选项。低分检索会放弃,并在答案层引用源章节并说明冲突。重新嵌入会构建新索引,而非混合不同版本的向量,删除事件会移除源、切块和缓存。监控跟踪空查询、分数和延迟分布、权限拒绝以及已审查的相关性。嵌入被视为敏感的派生数据而受到保护。相似度检索提供证据;它并不证明证据真实或适用。

实施证据与运营准备

生产决策需要的不仅是成功的演示。需明确预期用户、运行环境、输入、输出、依赖、负责人以及每个关键故障的后果。调优前建立可复现的基线和带版本的评估集。测试常规案例、边界条件、格式错误或缺失的输入、分布漂移、依赖中断、误用以及最可能被忽视的群体或环境。将任务质量与校准或不确定性、延迟、吞吐量、资源成本、可访问性、隐私和安全性一起衡量。记录每一次转换和阈值,以便独立审查员能够复现结果并区分证据与吸引人的原型。

上线前,指定发布、例外、变更、回滚和退役的授权人。采用分阶段发布,保留安全回退,并通过有意注入的故障验证监控。运营遥测应揭示输入质量、输出行为、模型或规则版本、依赖健康、人为覆盖以及已确认的结果,同时避免收集不必要的敏感数据。设定警报阈值和响应负责人,然后在部署后审查真实世界的证据,而非假设离线性能会持续。每当数据源、用户、模型、供应商、政策、硬件或目标变化时都需重新评估。维护中的系统还需有文档化的恢复、事件学习、删除与保留流程,以及明确的停用或替换时点。

常见问题

相似搜索是否必须使用向量数据库?

不需要。库和关系型数据库也可以支持向量索引。当特定工作负载需要规模、过滤、持久性和运营特性时,专用的向量数据库会更有价值。

更高维度的嵌入是否总是表现更好?

不一定。维度越高成本越大,并且可能引入噪声。应在具代表性的检索质量、延迟和存储等方面对模型进行比较。

主要参考文献

Haziqa 是一名具有丰富经验的数据科学家,擅长为 AI 和 SaaS 公司撰写技术内容。