推荐系统的常用指标

SNHer 发表于 2020/12/22 00:18:15 2020/12/22
【摘要】 本文主要介绍了推荐系统中常用的评价指标。

在互联网行业中,用户在某段时间内开始使用应用,经过一段时间后,仍然继续使用应用的被认作是留存;这部分用户占当时新增用户的比例即是留存率,会按照每隔1单位时间(例日、周、月)来进行统计。顾名思义,留存指的就是“有多少用户留下来了”。留存用户和留存率体现了应用的质量和保留用户的能力。 留存率=登录用户数/新增用户数*100%(一般统计周期为天) 新增用户数:在当前时间段新注册登录应用的用户数; 登录用户数:在当前时间段至少登录过一次的用户数; 活跃用户数:登录用户数-新增用户数; 次日留存率:(当天新增的用户数,在第2天还登录的用户数)/当天新增的用户数; 第3日留存率:(当天新增的用户数,在往后的第3天还有登录的用户数)/当天新增的用户数; 第7日留存率:(当天新增的用户数,在往后的第7天还有登录的用户数)/当天新增的用户数; 第30日留存率:(当天新增的用户数,在往后的第30天还有登录的用户数)/当天新增的用户数。

AUC

AUC定义为ROC曲线下方的面积,ROC曲线的横坐标为假阳性(判为正的负样本数/真实负样本数) 、纵坐标为真阳性(判为正的正样本数/真实正样本数) 。AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。

Hit Ratio(HR)

在top-K推荐中,HR是一种常用的衡量召回率的指标。例子,三个用户在测试集中的商品个数分别是10,12,8,模型得到的top-10推荐列表中,分别有6个,5个,4个在测试集中,那么此时HR的值是 (6+5+4)/(10+12+8) = 0.5

Mean Average Precision(MAP)

在了解 MAP(Mean Average Precision) 之前,先来看一下 AP(Average Precision), 即为平均准确率。

对于AP可以用这种方式理解: 假使当我们使用google搜索某个关键词,返回了10个结果。当然最好的情况是这10个结果都是我们想要的相关信息。但是假如只有部分是相关的,比如5个,那么这5个结果如果被显示的比较靠前也是一个相对不错的结果。但是如果这个5个相关信息从第6个返回结果才开始出现,那么这种情况便是比较差的。这便是AP所反映的指标,与recall的概念有些类似,不过是**“顺序敏感的recall”** 。 具体求解:

假设有两个查询,查询1有4个相关文档,查询2有5个相关文档。某系统对查询1检索出4个相关文档,其rank分别为1,2,4,7;对于查询2检索出3个相关文档,其rank分别为1,3,5。

对于查询1,AP平均正确率为:(1/1+2/2+3/4+4/7)/4=0.83

对于查询2,AP平均正确率为:(1/1+2/3+3/5)/5=0.45

则平均正确率均值为:(0.83+0.45)/2=0.64

Normalized Discounted Cummulative Gain(NDCG)

在了解 MAP(Mean Average Precision) 之前,先来看一下 AP(Average Precision), 即为平均准确率。

对于AP可以用这种方式理解: 假使当我们使用google搜索某个关键词,返回了10个结果。当然最好的情况是这10个结果都是我们想要的相关信息。但是假如只有部分是相关的,比如5个,那么这5个结果如果被显示的比较靠前也是一个相对不错的结果。但是如果这个5个相关信息从第6个返回结果才开始出现,那么这种情况便是比较差的。这便是AP所反映的指标,与recall的概念有些类似,不过是“顺序敏感的recall”。

用一个例子来解释AP的计算过程:

推荐列表中的排序 是否在 ground-truth 中 该位置的 Precision
1 1 1/1 = 1
2 0 0
3 1 (1+1)/3 = 0.66
4 0 0
5 0 0
6 1 (2+1) / 6 = 0.5

因此该 user 的 AP 为 (1 + 0.66 + 0.5) / 3 = 0.72

5. Normalized Discounted Cummulative Gain(NDCG)

对于NDCG,我们需要一步步揭开其神秘的面纱,先从CG说起:

CG:

我们先从 CG(Cummulative Gain) 说起, 直接翻译的话叫做“累计增益”。 在推荐系统中,CG 即将每个推荐结果相关性 (relevance) 的分值累加后作为整个推荐列表 (list) 的得分。

DCG:

CG 的一个缺点是没有考虑每个推荐结果处于不同位置对整个推荐效果的影响,例如我们总是希望相关性高的结果应排在前面。显然,如果相关性低的结果排在靠前的位置会严重影响用户体验, 所以在 CG 的基础上引入位置影响因素,即 DCG(Discounted Cummulative Gain), “Discounted” 有打折,折扣的意思,这里指的是对于排名靠后推荐结果的推荐效果进行“打折处理”。

1)推荐结果的相关性越大,DCG越大。

2)相关性好的排在推荐列表的前面的话,推荐效果越好,DCG越大。

NDCG

DCG仍然有其局限之处,即不同的推荐列表之间,很难进行横向的评估。**而我们评估一个推荐系统,不可能仅使用一个用户的推荐列表及相应结果进行评估, 而是对整个测试集中的用户及其推荐列表结果进行评估。 那么不同用户的推荐列表的评估分数就需要进行归一化,也即 NDCG(Normalized Discounted Cummulative Gain)。

在介绍 NDCG 之前,还需要了解一个概念:IDCG. IDCG, 即 Ideal DCG, 指推荐系统为某一用户返回的最好推荐结果列表, 即假设返回结果按照相关性排序, 最相关的结果放在最前面, 此序列的 DCG 为 IDCG。因此 DCG 的值介于 (0,IDCG] ,故 NDCG 的值介于 (0,1]。

NDCG 的完整案例:

假设在Baidu搜索到一个词,得到5个结果。我们对这些结果进行3个等级的分区,对应的分值分别是3、2、1,等级越高,表示相关性越高。假设这5个结果的分值分别是3、1、2、3、2。

因此CG的计算结果为3+1+2+3+2 = 11。DCG的值为6.69,具体见下表:

相关性 位置 分母 相关性/分母
3 1 1 3
1 2 1.584962501 0.630929754
2 3 2 1
3 4 2.321928095 1.292029674
2 5 2.584962501 0.773705614
log(i+1) 6.696665042

因此,DCG 的结果是 6.6967;

理想状况下,我们的IDCG排序结果的相关性应该是3,3,2,2,1,其中 IDCG 的计算过程如下:

相关性 位置 分母 相关性/分母
3 1 1 3
3 2 1.584962501 1.89275
2 3 2 1
2 4 2.321928095 0.86133
1 5 2.584962501 0.386847
log(i+1) 7.14

因此 IDCG 为 7.14(具体过程不再给出),因此NDCG结果为6.69/7.14 = 0.94。

6. Mean Reciprocal Rank (MRR)

是一个国际上通用的对搜索算法进行评价的机制,即第一个结果匹配,分数为1,第二个匹配分数为0.5,第n个匹配分数为1/n,如果没有匹配的句子分数为0。最终的分数为所有得分之和。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请发送邮件至:cloudbbs@huaweicloud.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。