Recall@K、Precision@K、MRR、nDCG@K简介

这四个是信息检索(IR)和推荐系统 中最常用的排序质量评估指标。它们的共同目标是:衡量"把相关结果排在前面"的能力。下面按从简单到复杂的顺序讲清楚。


1. Precision@K(前K个里有多少是相关的)

定义:在返回的前 K 个结果中,相关结果所占的比例。

Precision@K=前K个结果中相关结果的数量K \text{Precision@K} = \frac{\text{前K个结果中相关结果的数量}}{K} Precision@K=K前K个结果中相关结果的数量

例子:返回前 5 个结果,其中 3 个相关 → Precision@5 = 3/5 = 0.6

关注点 :准确性------你推出来的东西里,有多少是用户真正想要的。

局限:只看前 K 个,不关心相关结果有没有被漏掉。


2. Recall@K(所有相关结果里,前K个覆盖了多少)

定义:前 K 个结果中覆盖了多少比例的全部相关结果。

Recall@K=前K个结果中相关结果的数量全部相关结果的总数 \text{Recall@K} = \frac{\text{前K个结果中相关结果的数量}}{\text{全部相关结果的总数}} Recall@K=全部相关结果的总数前K个结果中相关结果的数量

例子:系统里一共有 10 个相关结果,前 5 个里命中了 3 个 → Recall@5 = 3/10 = 0.3

关注点 :覆盖率------有没有把该找的都找出来。

局限:如果把所有东西都返回,Recall 会很高,但 Precision 很差。所以通常和 Precision 配合看。

Precision 与 Recall 的权衡:

  • K 增大 → Recall 通常上升,Precision 通常下降。
  • 实际中常用 F1@K 或 P-R 曲线 来综合。

3. MRR(平均倒数排名)

定义 :对每个查询,看第一个相关结果排在第几位,取倒数;再对所有查询求平均。

MRR=1∣Q∣∑q=1∣Q∣1rankq \text{MRR} = \frac{1}{|Q|}\sum_{q=1}^{|Q|} \frac{1}{\text{rank}_q} MRR=∣Q∣1q=1∑∣Q∣rankq1

其中 rankq\text{rank}_qrankq 是第 qqq 个查询中第一个相关结果的位置。

例子:

  • 查询1:第一个相关结果排第 2 → 1/2 = 0.5
  • 查询2:第一个相关结果排第 1 → 1/1 = 1.0
  • 查询3:第一个相关结果排第 4 → 1/4 = 0.25
  • MRR = (0.5 + 1.0 + 0.25) / 3 ≈ 0.583

关注点 :第一个相关结果出现得有多早。

适用场景:用户通常只关心"找到第一个能用的答案",比如问答系统、导航、事实查找。

局限:只关心第一个相关结果,后面的相关结果排得再好也不加分。如果一个问题有多个相关答案,MRR 就不太合适。


4. nDCG@K(归一化折损累计增益)

这是最全面、也最常用的排序指标。它同时考虑:

  1. 相关性等级(不只是相关/不相关,可以分等级)
  2. 位置越靠前越重要(折损)
  3. 归一化,方便跨查询比较

分步理解

① CG(累计增益)

前 K 个结果的相关性分数直接相加。

② DCG(折损累计增益)

对每个位置的相关性除以一个随位置增长的折损因子:

DCG@K=∑i=1Krelilog⁡2(i+1) \text{DCG@K} = \sum_{i=1}^{K} \frac{rel_i}{\log_2(i+1)} DCG@K=i=1∑Klog2(i+1)reli

其中 relirel_ireli 是第 iii 个结果的相关性分数(可以是 0/1,也可以是 0~4 这样的等级)。

③ IDCG(理想 DCG)

把同一批结果按最理想顺序排列后算出的 DCG。

④ nDCG

nDCG@K=DCG@KIDCG@K \text{nDCG@K} = \frac{\text{DCG@K}}{\text{IDCG@K}} nDCG@K=IDCG@KDCG@K

取值范围 0~1,越接近 1 越好。

例子

假设相关性等级为 3、2、0、1:

位置 i rel_i 折损 log₂(i+1) 贡献
1 3 1.000 3.000
2 2 1.585 1.262
3 0 2.000 0
4 1 2.322 0.431

DCG = 3.000 + 1.262 + 0 + 0.431 = 4.693

理想排序:3, 2, 1, 0

IDCG = 3/1 + 2/1.585 + 1/2 + 0 = 3 + 1.262 + 0.5 = 4.762

nDCG@4 = 4.693 / 4.762 ≈ 0.985

关注点:整体排序质量,尤其是高相关结果有没有排在前面。

优点:支持多级相关性,位置折损合理,归一化后可比。


四个指标对比总结

指标 关心什么 是否考虑位置 是否支持多级相关 典型场景
Precision@K 前K个里相关比例 只区分前K/后 否 推荐列表准确率
Recall@K 相关结果覆盖率 只区分前K/后 否 搜索召回评估
MRR 第一个相关结果多早出现 是 否 问答、导航
nDCG@K 整体排序质量 是(折损) 是 搜索、推荐排序

怎么选?

  • 只关心有没有找到 → Recall@K
  • 只关心推出来的准不准 → Precision@K
  • 只关心第一个正确答案 → MRR
  • 关心整个排序列表的质量,且相关性有等级 → nDCG@K

实际工作中,搜索和推荐系统通常同时看多个指标,比如 Recall@20 + nDCG@10,一个看召回,一个看排序。

如果你有具体场景(比如推荐系统、RAG 检索、问答),我可以帮你分析该重点用哪个。

相关推荐
在所不辞兄1 小时前
【零基础学智能仿真-38】从规则矩形到带孔薄板:Gmsh 网格与 FEniCSx 联合求解
人工智能·深度学习·算法·机器学习·工程仿真
yangmu32031 小时前
AI漫剧制作教程:从剧本到成片的完整流程
人工智能
鲲穹AI种草1 小时前
AI写真图像生成工具对比,多款人像创作工具能力与使用边界记录
人工智能·图像生成
W***25921 小时前
2026深度解读:Work Agent长程任务的执行机制与落地能力
大数据·人工智能
lank_M1 小时前
抠图换深色背景有白边?先分清直通和预乘alpha
图像处理·人工智能·计算机视觉·状态模式
feasibility.1 小时前
BeefTV:数据留在本地的 AI 视频工作台,和 ComfyUI 分工不同
人工智能·音视频
正经教主1 小时前
【FDE系列】阶段3:Day 72:RAGFlow 平台 — 端到端知识库
人工智能·rag·fde
EatFan1 小时前
AI Agent 进入工程化下半场:从多智能体编排走向治理、标准化与运行沙箱
人工智能·多智能体·ai agent·开源框架·mcp·agents.md
一木 之林1 小时前
DDPM扩散模型代码实战:前向加噪造数据、U-Net噪声预测与反向生成手写数字
人工智能·算法·计算机视觉