Lei's Blog

关注机器学习、信息检索、数据挖掘和推荐系统等研究领域

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: 订阅 订阅 :: 管理 ::

转:http://www.zhizhihu.com/html/y2011/2794.html

评价标准

性能良好的评分模型,应该能够给予那些引起msg或click的候选会员更高的评分(排序靠前),从而推荐给指定会员。本次竞赛的主要排名标准为Normalized Discounted Cumulative Gain(NDCG),定义如下:

这里。其中n为候选会员集合中的总人数,表示模型给出的排序中,排名为的候选会员的实际ACTION值(msg=2,click=1,rec=0)。对每一位获得推荐建议的会员A,都需要计算一个相应的NDCG@10。所有获得推荐建议的会员对应的NDCG@10的平均值,作为排名的主要依据。

表示计算NDCG时仅采用排序至多前10的候选会员的ACTION进行计算,因此将尽可能多的msg或click排在前面至关重要。指数变换是为了增大ACTION间的差异以凸显msg和click的重要性。折扣因子用来强调越能将msg会员排名靠前的算法越好。例如,两种不同的推荐算法给出的排序对应的真实ACTION如下表所示,由于RANK 1算出的NDCG为0.8045,而RANK 2算出的NDCG仅有0.7579,我们认为RANK 1对应的算法更好。

RANK 1 click msg rec click rec
RANK 2 click click msg rec rec

这里给出一个计算NDCG的例子。假设某统计评分模型对5位会员进行了评分,以确定哪位会员更可能获得会员A的青睐(评分越高表示兴趣越大):

USER_ID_B 1 2 3 4 5
模型评分 1.2 0.7 -2.5 0.2 4.0
按评分排序 2 3 5 4 1
ACTION (y) msg (y2=2) click (y3=1) rec (y5=0) rec (y4=0) rec (y1=0)

因此对于会员A,

如果能够获得的评分足够理想,从而能够完美地预测出会员A关于5位会员的兴趣排序,则此时相应的DCG称为Ideal DCG:

从而对会员A,

在下载数据集中,我们提供了用于计算NDCG的python脚本,以及相关例子,供各参赛队参考和使用。关于python环境的配置等问题,请参赛队自行解决。参赛队也可以根据NDCG的定义,自己编写计算程序用于建模工作。

posted on 2014-02-19 18:00  Lei-Blog  阅读(2539)  评论(0编辑  收藏  举报