什么是 稠密检索(Dense Retrieval)?
稠密检索(Dense Retrieval)是一种语义搜索方法,它把查询和文档表示为稠密嵌入向量,并通过向量相似度检索结果。
工作原理
稠密检索是许多现代 RAG 系统的基础,因为它能在查询和文档用词不同的情况下找到语义相关片段。查询编码器把用户请求映射为向量,文档编码器把分块映射为向量,向量数据库或近似最近邻索引返回最相近结果。它的优势是语义匹配;弱点是精确标识符、罕见名称、数字和严格过滤条件可能被漏掉,除非配合元数据过滤、混合检索或重排。
主要特点
- 以嵌入向量而不是精确词项匹配作为主要检索信号
- 在模型支持时,可跨改写、同义表达和多语言内容进行语义匹配
- 通常依赖向量数据库或近似最近邻索引
- 对嵌入模型质量、分块、归一化和领域不匹配很敏感
- 生产环境常与稀疏检索、元数据过滤和重排器结合
常见用途
- 查找能回答自然语言问题的文档片段
- 检索语义相近的客服工单
- 支撑知识库、政策和开发者文档上的 RAG
- 使用兼容嵌入模型搜索多语言内容
- 在交叉编码器重排前提供候选片段
示例
loading...
Loading code...常见问题
稠密检索和关键词搜索有什么区别?
稠密检索比较嵌入模型学到的向量,而关键词搜索主要比较词项。稠密检索可以在用词不同的情况下匹配语义。
稠密检索会取代 BM25 吗?
不一定。BM25 对精确词、标识符和罕见短语仍然很强,因此许多生产系统采用混合检索。
稠密检索效果差的常见原因是什么?
常见原因包括嵌入模型弱、分块不佳、领域不匹配、缺少元数据过滤,以及查询本身需要精确匹配。
为什么稠密检索后还要重排?
稠密检索适合高效生成候选结果,但重排器能更细致比较完整查询和片段,从而改善最终排序。