稀疏检索和稠密向量检索有什么区别?
先用自己的话答,再看参考说法
60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。
别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。
参考内容当前已显示;开始口述后会暂时隐藏。
面试时怎么答
用“词面匹配”和“语义匹配”对照最自然。稀疏检索保留词项维度,BM25 对精确名词和编号稳健、可解释;稠密检索把文本映射到连续向量,能找同义表达,但依赖训练域且可能漏掉关键字面条件。
被问生产选型时,不要强行二选一。说明混合召回通常更稳,再按查询类型、语料语言和延迟预算决定权重。
可以这样答:
稀疏检索以词项匹配为核心,BM25 对产品编号、专有名词和关键词约束很敏感,索引可解释且容易更新;稠密检索使用语义向量,能覆盖同义改写和没有共同词的相关文本,但效果受 Embedding 训练域影响。两者错误往往互补,所以实际常做双路召回再融合重排。选型应按查询类型比较 Recall、排序质量、索引成本和尾延迟。
核心回答
BM25 等稀疏检索依赖词项匹配,擅长产品编号、人名、缩写和罕见关键词;稠密检索把查询与文档编码成向量,擅长找到措辞不同但语义相近的内容。稀疏检索不需要训练领域向量模型且结果较容易解释,稠密检索能跨越字面差异但受 Embedding 模型、领域分布和近似索引影响。两者不存在无条件的优胜者。
展开说明
- 稀疏检索:利用倒排索引。BM25 综合词频、逆文档频率和文档长度归一化计算相关度,精确词项对结果影响明显。
- 稠密检索:双编码器分别编码 Query 和 Passage,再按点积、余弦相似度或其他与训练方式匹配的度量搜索近邻。
- 典型失败:BM25 可能漏掉同义改写;向量检索可能把主题相似但不能回答问题的片段排得很高,并遗漏编号或拼写敏感实体。
向量相似度不是事实正确率,也不能直接与 BM25 原始分数比较。是否归一化向量、使用何种距离,应与 Embedding 模型说明和索引配置保持一致。
工程实践
分别建立 BM25-only 与 Dense-only 基线,按实体查询、自然语言改写、长问题和领域术语切片评估。记录每路候选及命中原因,再决定使用查询路由还是混合检索;不要因为平均分提升就删除在关键 SKU、法规编号等场景更可靠的关键词通道。
常见追问
- 为什么向量相似度高不代表文档能回答问题? 相似度可能只反映主题接近,文档仍缺少问题要求的实体、时间或因果证据;检索还需可回答性和来源约束。
- BM25 为什么适合专有名词和编号查询? 稀有词的 IDF 权重大,精确词项匹配不会被语义编码平滑掉,因此错误码、产品号和人名常更容易命中。
- 点积与余弦相似度在归一化后是什么关系? 若查询和文档向量都做 L2 归一化,点积就等于余弦相似度;未归一化时点积还受模长影响。
一句话复习
稀疏检索保留字面精确性,稠密检索提供语义泛化,选择取决于查询和语料分布。
参考资料
评论与补充
评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。
正在连接站内评论服务…
正在加载评论…
还没有评论,你可以先写下自己的理解或追问。