在上文(https://blog.csdn.net/burstone/article/details/143666876)中,介绍了两个基础的准确率与召回率,本文介绍两个推荐系统中非常重要的两个评价指标:MAP与NDCG,这两个指标与之前的略有不同,它考虑了推荐结果命中用户偏好的位置。例如,对于一个用户,两次推荐结果R1与R2都命中了三个用户感兴趣的项目,哪个更好呢,肯定是top3结果是三个感兴趣项目的是最好的。因而,本文给出几个量化指标。下面分别介绍:
精度均值(Average Precision, AP):
先介绍单个用户下的精度定义:AP(Average Precision),它衡量的是推荐系统对于单个用户的排序质量,AP表示了对一个给定的用户,其推荐列表中相关项目的平均精度。具体地,每次出现相关项目时的精度值,然后取这些精度值的平均。精度(Precision)在这里是指在推荐列表中,用户感兴趣的项目所占的比例。
假设给用户u推荐了N个项目,其中M个是相关的,P(k)表示第k个相关项目出现时的准确率。则AP的形式化定义如下:
AP=1M∑k∈RelevantP(k)\text{AP} = \frac{1}{M}\sum_{k\in Relevant}P(k)AP=M1∑k∈RelevantP(k)
可见,AP考虑了推荐列表中项目的位置,因此它是一个“顺序敏感”的指标,即推荐列表中相关项目的位置越靠前,其对AP的贡献越大。下面举例说明:
例如,对于一个用户,其真实的兴趣列表中有3个项目,推荐系统为该用户推荐了长度为6的项目集:[1, 0, 1, 0, 1, 0],其中三个1表示用户感兴趣的。那么,对于这个用户,其AP值计算如下:
● Precision@1 = 1/1(如果第一个推荐项目是用户感兴趣的)
● Precision@3 = 2/3(如果前三个推荐项目中有二个是用户感兴趣的)
● Precision@5 = 3/5(如果前五个推荐项目中有三个是用户感兴趣的)
因此,该用户的AP值 = (1 + 0.67 + 0.6) / 3 = 0.76。
通常地,AP值越大,说明推荐系统对于该用户的相关项目排序越靠前,推荐效果越好。
平均精度均值(Mean Average Precision, MAP):
有了上述AP的概念,MAP非常简单了。假设用户集合为U,|U|表示用户的总数,因而,MAP是所有用户下AP的平均:
MAP=1|U|∑i∈∣U∣AP(ui)\text{MAP} = \frac{1}{|U|}\sum_{i\in |U|}AP(u_i)MAP=|U|1∑i∈∣U∣AP(ui)
如果有多个用户,可以计算所有用户的AP值的平均,得到整体的MAP(Mean Average Precision)值。
DCG与DNCG是两个常见的用来量化排序结果的评价指标。我们先从CG这个基础指标开始介绍,然后讲解DCG与NDCG。
累积增益(Cumulative Gain, CG)
CG表示推荐系统给出的前p个结果下,与用户感兴趣程度的相关性总和,计算公式如下:
CGp=∑i=1preliCG_p=\sum_{i=1}^{p}rel_iCGp=∑i=1preli
其中,rel_i表示了每i个结果的相关性分数(典型地,0为不相关,1为相关)。可见,对用户的一次推荐而言,CG越大,推荐效果越好。
折扣累积增益(Discounted Cumulative Gain, DCG)
仔细分析CG,对于两个推荐结果(1,0,1,0,0)与(0,0,0,1,1),其CG值是相同的,因为都包含了两个1,然而,显而易见,每一个推荐结果更好。其实是由于CG并未考虑每个项目所在的位置。因而有了下面DCG与NDCG。
DCG考虑了排序顺序的因素,即排名靠前的项目对用户更有价值,因此对排名靠后的项目进行折损。推荐系统给出的前p个结果下,DCG的计算公式如下:
DCGp=∑i=1prelilog2(i+1)DCG_p=\sum_{i=1}^{p}\frac{rel_i}{log_2(i+1)}DCGp=∑i=1p

1661

被折叠的 条评论
为什么被折叠?



