Q25RAG 检索增强真题解析RAG 检索AgentAlpha 社区真题库约 7 分钟更新 2026-09-29

RAG 检索真题 · 文本检索的指标了解哪些

真题完整解析:面试官想看你是否真正理解检索评估体系,而非死记硬背指标公式。考察类型是工程取舍 + 系统设计,刁钻点在于:能否根据业务场景(如搜索、推荐、RAG)动态选择指标,并解释为什么 Recall@K 和 NDCG 不能互相替代。答好了…

面试官原题

文本检索的指标了解哪些?

面试官 · Agent 岗面试现场

文本检索的指标了解哪些

1️⃣ 考察意图

面试官想看你是否真正理解检索评估体系,而非死记硬背指标公式。考察类型是工程取舍 + 系统设计,刁钻点在于:能否根据业务场景(如搜索、推荐、RAG)动态选择指标,并解释为什么 Recall@K 和 NDCG 不能互相替代。答好了能展示你对信息检索(IR)评估的深度理解,以及从离线指标到在线效果的工程落地能力。

2️⃣ 标准答

文本检索指标分三大类:覆盖率、排序质量、多级相关性。以下按场景拆解,附带工程坑。

1. 覆盖率指标:Recall@K 与 Hit Rate@K

  • Recall@K:前 K 个结果中相关文档数 / 总相关文档数。适合 RAG 场景,因为 LLM 依赖检索到的上下文覆盖所有关键信息。工程坑:总相关文档数在真实数据中常缺失,需人工标注或假设(如 MS MARCO 用 BM25 前 100 作为“伪相关”)。
  • Hit Rate@K:前 K 个结果是否包含至少一个相关文档。二值化版本,适合“只要找到一条就算赢”的场景(如 FAQ 问答)。Trade-off:Hit Rate 忽略召回数量,当业务需要多源证据时(如法律文档检索),Recall@K 更优。

2. 排序质量指标:MRR 与 NDCG

  • MRR(Mean Reciprocal Rank):第一个相关文档排名的倒数均值。适合单答案场景(如知识库问答)。例如,检索“苹果公司CEO”,第一个相关结果排第 3,则 RR=1/3。坑:MRR 对排名靠后的结果不敏感,如果业务需要多结果(如搜索列表页),需换指标。
  • NDCG@K(Normalized Discounted Cumulative Gain):考虑排序位置 + 多级相关性(如 0-3 分)。公式:DCG = Σ (2^rel_i - 1) / log2(i+1),再除以理想排序的 IDCG。这是搜索场景的黄金指标,因为它惩罚高相关结果排在后面。工程落地:NDCG 对相关性标注质量敏感,标注不一致会导致指标波动 10-20%,建议用众包或 LLM-as-Judge 做一致性校验。

3. 多查询聚合指标:MAP(Mean Average Precision)

  • MAP:对每个查询算 Average Precision(AP),再取均值。AP = Σ (Precision@k * 相关性变化) / 总相关文档数。适合多相关等级场景(如学术论文检索,一篇论文可能部分相关)。Trade-off:MAP 假设所有相关文档同等重要,而 NDCG 允许不同权重,因此 NDCG 更灵活。

4. 实际落地的坑 + 解法

  • 坑 1:K 值选择。K=10 时 Recall 可能低(如总相关文档 50 个),K=100 时 Precision 稀释。解法:业务上定义“用户翻几页”,搜索通常 K=10,RAG 常用 K=5-20(取决于 LLM 上下文窗口)。
  • 坑 2:离线 vs 在线指标冲突。离线 NDCG@10 提升 5%,在线点击率(CTR)可能下降。原因:NDCG 假设相关性是静态的,但用户行为受多样性、新鲜度影响。解法:离线指标只做筛选,最终决策依赖 A/B 测试,且需监控“长尾查询”的 Recall(如低频词检索)。
  • 坑 3:相关性标注成本。用 LLM 自动标注(如 GPT-4 打分)可降本 80%,但存在幻觉风险。解法:混合策略——LLM 标注 + 人工抽检 5% 样本,计算 Cohen’s Kappa 系数(>0.6 可接受)。

5. 指标选择决策树

  • 单答案(QA)→ MRR
  • 多结果排序(搜索)→ NDCG@10
  • 覆盖优先(RAG)→ Recall@K + Hit Rate
  • 多级相关性(论文检索)→ MAP

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从覆盖率、排序质量、多级相关性三个层面回答。覆盖率用 Recall@K 和 Hit Rate,适合 RAG 场景;排序质量用 NDCG@10 和 MRR,NDCG 是搜索黄金指标,因为它惩罚高相关结果排在后面;多级相关性用 MAP。实际工程中,K 值选择、离线在线指标冲突、标注成本是三大坑。总结一句:指标选择取决于业务场景——搜索看 NDCG,RAG 看 Recall,QA 看 MRR。”

4️⃣ 高频追问 & 应对

追问 1:为什么 NDCG 比 Precision@K 更适合搜索场景?

NDCG 有两个优势:一是考虑排序位置,用 log 折扣惩罚靠后的结果;二是支持多级相关性(如 0-3 分),而 Precision@K 只做二值判断。例如,搜索“深度学习”,结果 1 是“深度学习入门”(相关度 3),结果 2 是“机器学习”(相关度 1),NDCG 能区分,Precision@K 则都算相关。工程上,NDCG 对标注质量敏感,建议用 NDCG@10 作为主指标,同时监控 Recall@100 防止漏检。

追问 2:在 RAG 系统中,如何平衡 Recall 和 LLM 的上下文窗口?

核心 trade-off:Recall 高意味着 K 值大,但 LLM 上下文窗口有限(如 GPT-4 128K tokens)。解法:先用 BM25 或 Dense Retrieval 召回 Top-100,再用 Reranker(如 Cohere Rerank 3)压缩到 Top-5-10,保证 Recall 的同时控制输入长度。实际坑:Reranker 会增加延迟(约 50-100ms),需用异步流水线或缓存高频查询。如果上下文窗口足够大(如 128K),可尝试“全量召回 + 滑动窗口”策略,但注意 LLM 对长上下文的注意力衰减。

追问 3:离线指标提升但线上效果变差,可能的原因是什么?

常见原因:① 离线指标基于静态标注,线上用户行为受多样性、新鲜度影响(如用户更喜欢新内容,但离线标注没考虑);② 离线指标只评估检索,线上效果受排序、展示、用户意图影响(如点击率 CTR 受标题吸引度干扰)。解法:离线指标只做“负向筛选”(如 NDCG 下降 5% 以上直接否决),线上 A/B 测试需监控“长尾查询”的 Recall 和“零结果率”。另外,用“离线模拟在线”方法(如用用户点击日志作为相关性标签)可缩小 gap。

5️⃣ 避坑 · 常见错误答法

  • ❌ 只背公式,不解释场景(如“Recall@K 是相关文档数除以总相关文档数”) → ✅ 必须关联业务(如“RAG 场景下 Recall@K 决定 LLM 能否看到所有关键证据,K 值通常设 5-20”)
  • ❌ 混淆 MRR 和 NDCG(如“MRR 也考虑排序位置,和 NDCG 一样”) → ✅ 明确区别:MRR 只关注第一个相关结果,NDCG 考虑所有结果的位置和多级相关性
  • ❌ 忽略工程坑(如“离线指标好,线上一定好”) → ✅ 必须提离线在线 gap,并给出解法(如 A/B 测试 + 长尾监控)

6️⃣ 简历呼应

  • 如果你有 RAG 项目:从“检索模块评估”切入,强调你用 Recall@K 和 Hit Rate 衡量检索覆盖率,并对比了 BM25 和 Dense Retrieval 的 NDCG@10 差异,最终通过 Reranker 提升 15% Recall。
  • 如果你只做过传统 NLP:用“分类任务评估”类比,如 F1 对应 Precision/Recall 权衡,而 NDCG 类似 AUC 考虑排序。强调你理解指标选择取决于任务目标,并迁移到检索场景。
  • 如果你是校招无项目:聚焦 MS MARCO 或 TREC 公开数据集,复现 BM25 的 Recall@K 和 NDCG@10 计算,并写一篇博客分析不同 K 值对指标的影响。面试时展示代码和结果图。
—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。