什么是 稠密检索(Dense Retrieval)?

稠密检索(Dense Retrieval)是一种第一阶段搜索方法,它把查询和文档编码为紧凑数值向量,再按声明的向量相似度或距离函数排序候选。

工作原理

先定义 Embedding 契约

分别记录 Query 与 Document 的预处理、模型 Revision、Tokenizer、任务前缀、Pooling 规则、输出维度、数值类型和是否归一化。只有向量已归一化时,Cosine 与 Dot Product 才会产生相同排序;Euclidean Distance 又是另一套契约。除非已经证明兼容,不要在一个逻辑索引中混用不同 Revision 的向量。迁移应构建并行索引,在切流前比较结果重合度、标注相关性、延迟与下游答案证据。

区分模型召回与 ANN 召回

Encoder 决定相关与不相关内容在向量空间中的位置,索引决定在资源预算下能否找到最近候选。先在代表性子集运行 Exact Search,再以其为参照测量 ANN Recall@K,并搜索 HNSW、IVF、Quantization 或等价参数。元数据与权限过滤必须声明 Pre-filter 或 Post-filter 语义。ANN Recall 再高,也无法修复把相关片段编码到远处的模型。

在生成前独立评测检索

使用查询级相关性标注,报告 Candidate Recall@K、MRR 或 nDCG、p50/p95 延迟、索引内存、更新滞后、无结果率与 Filter Exhaustion,并切分改写、精确 ID、否定、语言、时间、权限和域外查询。原始 [DPR 研究](https://aclanthology.org/2020.emnlp-main.550/)建立了面向开放域问答的实用双编码器路线,[BEIR](https://arxiv.org/abs/2104.08663)随后说明 Zero-shot 泛化会随任务显著变化。任何论文收益都只能在对应语料、标注与检索协议内解释。

主要特点

  • 把查询和文档映射到兼容表示空间中的紧凑向量
  • 无需精确词项重合即可匹配改写与概念相似性
  • 使用精确或近似最近邻搜索生成第一阶段候选
  • 把编码器质量与索引近似、过滤和更新行为分开
  • 输出模型特定的相似度,而不是校准后的相关概率
  • 需要协同管理模型、Tokenizer、预处理与索引 Revision

常见用途

  1. 为 RAG 与问答系统召回语义相关证据
  2. 跨改写检索相似客服工单或开发文档
  3. 使用经过目标语言对评测的模型生成多语言候选
  4. 为后续重排生成高召回候选集
  5. 通过 Shadow Index 比较 Embedding 与 ANN Revision 后再迁移

示例

loading...
Loading code...

常见问题

稠密检索、向量搜索与语义搜索是同一概念吗?

三者有交集但不相同。稠密检索描述用 Dense Representation 排序候选;向量搜索是也可服务非语义向量的执行原语;语义搜索则是用户意图,可以组合稠密、稀疏和重排信号。

稠密检索应该使用余弦相似度还是点积?

应使用模型及训练目标规定的 Metric。只有向量归一化后,Cosine 与 Dot Product 才产生相同排序。改变归一化或 Metric 会改变分数语义,必须重新做兼容性和相关性评测。

Embedding 模型变化后必须重新编码文档吗?

通常必须。模型、Tokenizer、Prefix、Pooling 或维度变化都可能产生不同向量空间。应构建并行索引验证;除非官方明确保证兼容,不要用新 Query Encoder 查询旧文档向量。

为什么余弦相似度很高仍可能返回错误片段?

相似度反映学习到的几何关系,不等于答案正确。领域漂移、分块、否定、数字、标识符和权限缺失都可能产生误导邻居。应使用标注查询与下游证据检查,而不是依赖通用阈值。

Reranker 能恢复稠密检索漏掉的相关文档吗?

不能。Reranker 只能重排收到的候选。应在重排前测量 Candidate Recall@K;如果 Dense 对精确或领域证据存在系统性漏召回,就需要词法或 Hybrid 分支。

相关术语

相关文章

RAG 混合检索与重排架构设计:融合、评测与发布门禁

RAG 混合检索不能靠固定 Top-K 和 RRF 参数套模板。本文从 BM25、稠密检索、权限过滤、候选去重、RRF 融合与 Cross-Encoder 重排出发,解释如何建立可追踪的检索契约,按查询切片评测 Recall、MRR、nDCG、答案证据支持度、P95 时延与成本,并通过消融实验、漂移监控和回滚门禁判断混合检索是否真的优于单路基线。

2026-04-03

向量嵌入工程指南:模型选型、语义检索评测与安全迁移

向量嵌入如何支撑语义搜索和 RAG?本文从向量空间、任务类型、归一化与距离函数讲到模型选型、混合检索、重排、Recall@k 评测、索引容量、权限过滤和双索引迁移,帮助开发者用真实查询集验证 Embedding,而不是依赖排行榜、固定维度或无条件相似度阈值。还覆盖向量版本契约、数据删除、跨租户隔离、近似索引取舍和生产监控。

2026-02-21

Embedding 内容分析:文本聚类、分类与语义去重

Embedding 内容分析如何用于文本聚类、分类、语义去重和主题发现?本文从内容身份、向量契约、任务边界与决策策略出发,讲解余弦阈值校准、聚类与分类评测、人工复核、漂移监控和删除传播,并提供可运行的 Go 示例,帮助团队构建可审计、可回滚的生产级内容智能管线。内容覆盖多语言切片、错误成本与来源权限,适用于知识库、内容平台、搜索和编辑治理。

2026-09-18