☰
Recall@K、Precision@K、MRR、nDCG@K简介
2026/10/4 5:15:24 网站建设 项目流程

这四个是信息检索(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∣1​q=1∑∣Q∣​rankq​1​

其中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∑K​log2​(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:

位置 irel_i折损 log₂(i+1)贡献
131.0003.000
221.5851.262
302.0000
412.3220.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 检索、问答),我可以帮你分析该重点用哪个。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询