作者:zcr2016 | 来源:互联网 | 2023-09-04 21:08
NDCG的目标:希望得到的排序列表,质量越高越好。若将更相关的排到更前面,那么计算得到的NDCG就会越高。
要想理解NDCG,首先要从CG开始理解。
累积增益CG:推荐系统中CG表示将推荐列表中每个推荐结果相关性的分值累加后这个列表的得分。
reli表示位置i的推荐结果的相关性,k表示推荐列表的大小。
CG缺点:没有考虑推荐列表中每个推荐结果处于不同位置对整个推荐结果的影响。比如,我们希望相关性大的结果排在前面,相关性低的排在前面会影响用户体验。
举例:假设搜索“篮球”结果,最理想的结果是:B1、B2、 B3。而出现的结果是 B3、B1、B2的话,CG的值是没有变化的,因此需要下面的DCG。
折扣累积增益DCG:在CG的基础上引入了位置影响因素。
从这个式子可以得出:
- 1)推荐结果的相关性越大,DCG越大。
2)相关性高的排在推荐列表前面,推荐效果越好,DCG越大。
DCG缺点:
- 对不同推荐列表之间很难进行横向评估,而我们评估一个推荐系统不可能仅使用一个用户的推荐列表及相应结果进行评估,而是对整个测试集中的用户及其推荐列表结果进行评估。
归一化折扣累积增益NDCG:
- 对整个测试集中用户及其推荐列表结果评估分数进行归一化。
理想化折扣累积增益IDCG:
- 推荐系统某一用户返回的最佳推荐结果列表,即假设返回结果按照相关性排序,最相关的结果放在最前面,此序列的DCG为IDCG。因此DCG的值介于(0,IDCG],故NDCG的值介于(0,1],那么用户p的NDCG定义为:
举个例子:
CG的计算结果为3+1+2+3+2=11。
DCG的值为6.69。
理想情况下,我们的IDCG排序结果的相关性应该是3,3,2,2,1
因此IDCG为7.14。
因此NDCG结果为6.69/7.14=0.94