1、评估方法
HR(命中率)和 NDCG(归一化折损累计增益),HR直观地衡量测试项目是否存在于前10名列表中,而NDCG通过将较高分数指定为顶级排名来计算命中的位置,重点介绍NDCG
1.1 NDCG
NDCG,Normalized Discounted cumulative gain 直接翻译为归一化折损累计增益,NDCG这个名字可能比较吓人,但背后的思想却很简单.一个推荐系统返回一些item并形成一个列表,我们想要计算这个列表有多好,每一项都有一个相关的评分值,通常这些评分值是一个非负数,这就是gain(增益).此外对于这些没有用户反馈的项我们通常设置起增益为0.
累计增益(CG)
我们将这些增益相加就是Cumulative Gain(累计增益,CG),CG就是将每个推荐结果相关性的分支累加后作为整个推荐列表的得分.
公式4.1reli 表示处于位置i的推荐结果的相关性,k表示要考察的推荐列表的大小.
折损累计增益(DCG)
CG的一个缺点是没有考虑每个推荐结果处于不同位置对整个推荐效果的影响,例如我们总是希望相关性高的结果应该排在前面.显然,如果相关性低的结果排在靠前的位置会严重影响用户的体验,所以在CG的基础上引入位置影响因素,即DCG(Discounted Cumulative Gain),这里指的是对于排名靠后推荐结果的推荐效果进行“打折处理”。假设排序越往后,价值越低。到第i个位置的时候,它的价值是 1/log2(i+1),那么第i个结果产生的效益就是 reli * 1/log2(i+1),所以::
公式4.2从上面的式子可以得到两个结论:
1.推荐结果的相关性越大,DCG越大
2.相关性好的排在推荐列表前面的话,推荐效果越好,DCG越大.
归一化折损累计增益(NDCG)
DCG仍然有不足之处,即不同的推荐的推荐列表之间,很难进行横向的评估,而我们评估一个推荐系统不可能仅使用一个用户的推荐列表及相应结果进行评估,而是对整个测试机中的用户及其推荐列表结果进行评估.那么不同的用户的推荐列表的评估分数就需要进行归一化,也即NDCG(Normalized Discounted Cumulative Gain,归一化折损累计增益).
在介绍NDCG之前还需要知道另一个概念,IDCG(Ideal DCG),指推荐系统为某一用户返回的最好推荐结果列表,即假设返回结果按照相关性排序,最相关的结果放在前面,此序列的DCG为IDCG.因此DCG的值介于(0,IDCG],故NDCG的值介于(0,1]。NDCG计算公式:
IDCG为理想情况下最大的DCG值。
公式4.4其中 |REL| 表示,结果按照相关性从大到小的顺序排序,取前p个结果组成的集合。也就是按照最优的方式对结果进行排序。
实际的例子
假设推荐系统返回来的5个结果,其模型评分分别是 1.2、0.7、0.1、0.2、4.0。
id | 模型评分 | 按模型评分排序(i) | r(l)) | 按Gain排序(j) |
---|---|---|---|---|
1 | 1.2 | 2 | 2 | 1 |
2 | 0.7 | 3 | 1 | 2 |
3 | 0.1 | 5 | 0 | 3 |
4 | 0.2 | 4 | 0 | 3 |
5 | 4.0 | 1 | 0 | 3 |
我们首先通过公式4.2计算出DCG值为2.39278,按照公式4.4来计算出iDCG的值为3.6309
最后通过公式4.3计算出NDCG为65%
更多的推荐模型评估方法参考:https://statusrank.coding.me/articles/639f7364.html
网友评论