nDCG 与 MAP, 排序模型的评价指标

本文介绍了信息检索领域中的评价指标DCG和nDCG,详细解释了这两个指标的计算方式及其应用场景,并通过对比说明了它们与推荐场景常用指标AUC的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

top-n 推荐领域的排序任务: 对候选集合作排列, 不仅要识别出样本的正负, 还要对正样本作进一步分档, 把更好的排在更前面.
再对比下分类任务: 仅需对一个样本(候选)作出识别即可.
更高一层的抽象: 也可以认为 分类就是排序, 因为 ctr 预估的值域为 (0,1), 对 ctr_pred 作排序就是排序任务.

1. NDCG

NDCG, Normalized Discounted Cumulative Gain, 正规化的折扣累积收益.
是信息检索领域中, 对排序问题的一个评价指标, 因素有文档相关性排序位置.
This measure is based on two following assumptions:

  1. 高度相关文档在排名靠前时, 对用户的帮助更大
  2. 高度相关文档比轻微相关文档, 对用户的帮助更大

Q: 与推荐场景常用的AUC, 有何区别?
A: 区别于评测样本的组织形式. ndcg 的样本为候选集合, auc 的样本是单个候选.

DCG

计算前k个结果的DCG.
D C G @ k = ∑ i = 1 k r e l ( i ) log ⁡ 2 ( i + 1 ) (1) \mathrm{DCG@k} = \sum_{i=1}^{k} \frac{rel_{(i)}}{\log_{2}(i+1)} \tag 1 DCG@k=i=1klog2(i+1)rel(i)(1)
where r e l ( i ) rel_{(i)} rel(i) is i-th doc’s relevant score. k k k is the rank position.
y = 1 log ⁡ 2 ( x + 1 ) y=\frac 1{\log_2{(x+1)}} y=log2(x+1)1 图表见下, 位置越靠后, 重要性越低.
在这里插入图片描述

nDCG

DCG 直接用并不直观, 因为不同的 query, 搜索结果的个数不一致, 所以需要正规化.
引入 IDCG, 表示在理想情况下, 这些文档按照相关性单调递减排序时的DCG 得分.

n D C G k ( 或  n D C G @ k ) = D C G k I D C G k \mathrm{nDCG_{k}}(或\ nDCG@k) = \frac {DCG_k} {IDCG_k} nDCGk( nDCG@k)=IDCGkDCGk

2. MAP

MAP(Mean Average Precision), 平均精度均值。
评价预测列表中 { top-1, top-2, …, top-k} 的精度的平均.

P@k

Precision, 精度. 如 P @ k = 前 k 个位置的正样本数 k P@k =\frac{前k个位置的正样本数}k P@k=kk个位置的正样本数.

AP

Average Precision, 指一个用户下的样本在不同 top 位置的 精度均值.
注意这里引入了 Hitting point(命中点)的概念, 仅在正样本所在的位置k上作指标累积. 这个口径的依据是 Qwen, chatGPT 给出的 py 实现中都有该细节.

A P @ n = ∑ k = 1 n P @ k ⋅ I ( k ) ∑ k = 1 n I ( k ) (1) AP@n=\frac {\sum_{k=1}^n P@k \cdot I(k)}{\sum_{k=1}^n I(k)} \tag 1 AP@n=k=1nI(k)k=1nP@kI(k)(1)
其中 I(k) 仅在 k位置上的样本为正时 值为1.

MAP

mean 指多个用户之间的 AP 再次求均值.

3. GSB

通常用于两个模型之间的对比, 而非单个模型的评测.

Δ G S B = # g o o d − # b a d # g o o d + # s a m e + # b a d \Delta GSB=\frac{\#good-\#bad}{\#good+\#same+\#bad} ΔGSB=#good+#same+#bad#good#bad
场景为已经有了一版模型A, 现在迭代了一版模型B, 评估B是否更优于A

<query,doc>B模型比A模型的提升
q1,d1good
q2,d2same
q3,d3bad
q4,d4bad

按照上表的统计,
Δ G S B = − 1 / 4 \Delta GSB=-1/4 ΔGSB=1/4, 不能上线.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值