推荐算法评价指标——NDCG
NDCG(Normalized Discounted Cumulative Gain):归一化折损累计增益
参考视频 NDCG
参考博客 搜索评价指标——NDCG
主要思想:
- 高关联度的结果比一般关联度的结果更影响最终的指标得分
- 有高关联度的结果出现在更靠前的位置的时候,指标会越高
Gain
相当于Relevance Score,在推荐系统中,如果你点击了相关性可能就是1,如果没有点击相关性可能就是0。
Cumulative Gain
累计增益即所有的增益相加。它是一个搜素结果相关性分数的总和。只考虑到了相关性的关联程度,没有考虑到位置的因素。指定位置p上的CG为:
reli: 表示i这个位置上的相关度。
e.g.,向用户推荐10个节目(top10),用户点击了第一个和第三个,这两个的Relevance Score就是1,其余的都是0,累计增益为2。
这样会导致一个问题:假如用户点击了第九个和第十个,累计增益同样为2,怎么区分这种情况呢?
Discounted Cumulative Gain
所以为了区分我们要计算一个discount即折损。用所有的Relevance Score除以log2为底的一个对数,再把折扣后的Relevance Score加起来。
为什么要这么做呢?目的就是为了让排名越靠前的结果越能影响最后的结果。假设排序越往后,价值越低。到第i个位置的时候,它的价值是 1/log2(i+1),那么第i个结果产生的效益就是 reli * 1/log2(i+1),所以:
当然还有一种比较常用的公式,用来增加相关度影响比重的DCG计算方式是:
Normalized Discounted Cumulative Gain
进一步思考,为每个用户给出的推荐列表长度可能不一样。假设推荐列表很长,TA有可能拿到一个更高的DCG分数。DCG没法针对两个不同的搜索结果进行比较,这时候就需要考虑normalize(归一化)了。
iDCG(ideal DCG):完美状态下的DCG。那上个例子来说,完美状态就是用户点击前两个节目(最优先推荐的)。
其中 |REL| 表示,结果按照相关性从大到小的顺序排序,取前p个结果组成的集合。也就是按照最优的方式对结果进行排序。
示例


浙公网安备 33010602011771号