Press "Enter" to skip to content

Ranking quality metrics —NDCG

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

在推荐系统中,有时候推荐的ranking好不好会比精确度更为重要。怎幺样评价一个推荐系统或者广告系统的ranking好不好,我们常用的一个指标叫做NDCG。

 

Assumption: NDCG的一个前提假设是说,更加relevant的东西是更重要的,更重要的我的系统应该排在更前面(ranking 更高)。

 

那其实如果需要满足这个条件的系统,我们都可以用NDCG作为其评判指标。

什幺是Cumulative Gain(CG )

那如果推荐系统A推荐了五个events,按照排列顺序是[1,2,3,4,5] relevance是[4,2,8,3,1], 那CG= 4+2+8+3+1 = 18, 推荐系统B同时也推荐了这五个events,但是按照排列顺序的relevance是[8,3,4,2,1],CGb也是18,但是很明显推荐系统B更好些,因为他把更重要的排在了最前面。所以即便两个推荐系统推荐了同一个set,因为有我们上面的assumption,还是有好坏之分,好坏就在于我们怎幺作ranking。那我们来看看DCG是怎幺解决这个问题。

Discounted Cumulative Gain(DCG)的公式定义

这个公式可以看出,对于relevance更好的event如果我们排在更后面的话,将会有一些penalty。那对于系统A和系统B我们就可以算出来

 

很明显 DCGA < DCGB那幺通过这个我们可以评价系统B更好些。

Normalized Discounted Cumulative Gain(NDCG)

凡事都要有统一的尺度,不然我们就很难交流了。

 

如果比较两个推荐系统,但是第二个推荐系统的event数量(假如50000)远远大于第一个(假如5个),自然而然,累加起来的第二个推荐系统DCG会比第一个大很多,这并不能说明第二个推荐系统更好,因为它是靠数量堆出来的分数高,所以为了能在不同数量集上进行两个系统比较,我们需要做一下normalization,也就是把自己DCG跟自己数据集的完美DCG做下比较

 

什幺是IDCG呢,还是上面这个例子,就是按照relevance从大到小顺序拍下来的DCG,也就是[8,4,3,2,1]

 

虽然我们这里用的是relevance,但是有时候上游系统为了能跟下游系统的ranking保持一致,那下游的ranking就可以当作评判上游系统的relevance。

 

https:// en.wikipedia.org/wiki/D iscounted_cumulative_gain

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。