一句话定义:Recall@k(召回率@k)指检索或推荐系统返回的前 k 个结果里,命中的相关项目数,占全部相关项目总数的比例。
用生活化的比方:你在图书馆要找 10 本指定的书,管理员规定你只能从"排在最前面的 k 本"里挑。假设 k=5,你挑出的 5 本里有 3 本正是要找的,那么 Recall@5 = 3/10 = 30%。它的关注点很朴素——该出现的,有没有出现在名单里,而不在乎名单里混进了多少不相关的。
把它和几个常被放在一起的指标分清楚:
| 指标 | 分母是什么 | 关心什么 |
|---|---|---|
| Recall@k | 全部相关项目总数 | 漏没漏 |
| Precision@k | k | 准不准、有没有掺水 |
| Hit Rate@k | 查询次数 | 至少命中一个的比例 |
| MRR@k / NDCG@k | 排序位置 | 命中得靠不靠前 |
需要注意,Recall@k 的分母取决于"全部相关项目"怎么定义。在评测集里它通常是被标注出的相关文档总数;如果标注本身不全,算出来的数值就只是一个受限于标注的口径。生产环境中往往无法穷举全部相关内容,所以这个指标更多用于离线评测和有明确标准答案的场景,具体口径以团队或官方文档为准。
对从业者的意义在于:Recall@k 是召回阶段的第一道门槛。在搜索、推荐和 RAG(Retrieval-Augmented Generation,AI 词典:检索增强生成">检索增强生成)链路里,通常先粗排召回一大批候选,再精排、再交给大模型生成。如果相关内容压根没进前 k,后面无论重排模型多强、大模型多聪明,都救不回来——它没见过这条信息。所以排查线上效果差时,第一步常常是分开看:是没召回(Recall@k 低),还是召回了但排序靠后(Recall@k 高、NDCG@k 低),还是召回和排序都对、只是生成环节没用好。
做法上也有取舍:把 k 调大,Recall@k 通常上升,但精确度会下降,延迟和成本也会涨。实际中会配合查询改写、混合检索(关键词加向量)、分块策略等手段,先把 k 控制在一个可接受的范围内,再靠重排把好内容提到前面。
对普通职场人来说,这个指标解释了一个常见困惑:搜不到东西,未必是系统"不懂你",而是你要的那条信息从一开始就没被捞进候选池。它也是评估"资料库搭得好不好"的一个直观切入点,比笼统地说"AI 答得不准"要具体得多。
