向量检索的原理是什么?
未标记
考查重点:向量表示、相似度与近似搜索。把问题与文档映射到同一向量空间,按余弦或距离找相近向量;大规模时用近似索引缩小搜索,再看召回与延迟
本题目录
参考答案
核心回答
向量检索先用Embedding模型把文档与查询映射到可比较的向量空间,再按余弦相似度、内积或距离,找出与查询最接近的文档向量。离线阶段处理文档、生成向量并建立索引;在线阶段编码用户问题,检索Top-K候选,再按ID取回原文和元数据。
它能把一些不同措辞但意思接近的表达联系起来。例如“关闭自动续费”可以匹配“取消订阅”的说明,但效果依赖模型及业务数据。向量相似表示检索信号,不等于候选已经回答问题,也不保证错误码、版本号等精确条件都正确。
相似度为什么有意义
Embedding模型通过相应训练目标,让相关查询与文档的表示更接近。数据库不负责重新理解文本,而是按照选定度量在这些向量中搜索。建库与查询应使用兼容的模型版本、维度、归一化和编码约定;非对称检索还可能分别使用query/document提示或编码路径。
余弦比较方向,内积同时受向量长度影响,欧氏距离比较空间距离;应按照模型训练与索引约定选择。当非零向量都归一到单位长度时,余弦与内积相同,欧氏距离平方也满足 ||q-d||²=2-2×cos(q,d),因而对应排序一致。
用二维单位向量作计算示意:q=(1,0),A=(0.8,0.6),B=(0,1)。余弦相似度分别为0.8与0,A排在B之前。这里的数值是说明度量方法,实际文本向量由模型产生,不能据此给每一维指定固定语义。
怎样从全量比较加速到索引
精确搜索逐个计算查询与所有向量的相似度,可作为小数据集或离线评估的基线。N条D维向量的全量距离计算约为O(ND),此外还要选择Top-K结果;向量数量与维度增长都会增加成本。
大规模时可采用ANN近似最近邻索引。例如IVF先寻找相关分桶,再在选中桶里扫描;HNSW利用多层邻接图导航,逐步接近查询附近的候选。减少计算的代价是可能漏掉真正最近邻,还要承担建索引、内存和更新维护成本。
因此搜索范围与返回K是不同参数。不能只增大最终K而不检查索引搜索预算,也不能把近似索引找出的Top-K当作全库精确Top-K。
工程上还要保存什么
向量随片段ID、文档版本、来源和权限元数据保存,查询结果才能取回正确原文并校验访问范围。更新Embedding模型时通常需要重建相应文档向量,避免在同一索引里混合不可比较的空间。
过滤条件会改变有效候选集合,过严过滤或过滤后的候选不足,都可能造成漏召回。实际选型要用业务问题同时测量证据覆盖、精确检索对照召回、延迟和资源;需要精确实体匹配时可以结合关键词检索,排序仍不佳时再评估重排。
常见追问
一定要单独的向量数据库吗? 不一定。可以采用带向量索引能力的现有数据库、检索引擎或专用向量库,按规模、筛选、更新和运维条件比较。
相似度很高为什么仍然答错? 可能只是主题相似,缺少所问条件,也可能片段不完整、版本过期或生成阶段误解。需要沿编码、索引召回、排序与生成分别定位。
对应教程
- 第18章:向量数据库与Embedding实战:回看文本向量化、相似度计算、保存向量和查询的完整主线,注意返回分数可能表示距离。
参考资料
- 国内:JavaGuide:向量数据库与HNSW:依据编码、度量与索引的职责,串起正文中文档向量化、存储和在线近邻查询的完整链路。
- 国内:zero2Agent:IVF_FLAT与HNSW:IVF与HNSW的对照解释分桶扫描和图导航怎样减少候选比较;具体速度与容量仍需在业务数据上验证。
- 国内:阿里云:使用与调优基于HNSW的ANN索引:依据 HNSW 构建与查询参数,说明正文中返回 K 与搜索范围不同,以及召回和延迟需要权衡的原因。
- 国外:Malkov、Yashunin:HNSW原论文v4:分层图与候选扩展算法说明近似检索如何减少距离计算,也明确近似结果与精确最近邻基线的区别。
- 国外:Sentence Transformers:Semantic Search:依据同一空间、非对称检索和归一化的要求,说明正文中查询与文档编码约定、度量和模型配置需要兼容。
