首页/AI/RAG 与向量库速查/Recall@k 与命中率评估
Embedding 与检索50 条

Recall@k 与命中率评估

Recall@k 衡量前 k 个候选中出现相关片段的查询占比(命中率口径),是检索质量最直接的指标;重建索引、换模型、调参前后都应以它为回归基线。

RAG 与向量库速查AI更新于 2026-10-12

Recall@k 计算

Recall@k 计算
def recall_at_k(queries, retrieved, gold, k):
    hit = 0
    for qid in queries:
        got = set(retrieved[qid][:k])
        if got & set(gold[qid]):        # 命中任一相关片段
            hit += 1
    return hit / len(queries)

print(recall_at_k(qids, retrieved_ids, gold_ids, k=10))
更严格的口径是相关片段召回比例(| retrieved∩gold | / | gold |),两者要写明,避免同名指标口径不一致。

易错点

  • 只标注最后一个相关片段,Recall@k 被低估,据此调参方向会错
  • 线上无标注数据时不做人工抽检,指标长期无法回归

数据来源与参考

  • Manning et al., Introduction to Information Retrieval(评测指标章节)
  • RAGAS 官方文档(context recall 概念)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌