推荐系统之评估体系

1、预测准确度

这是最最关键的指标,推荐系统推荐物品干嘛,就是希望推荐出来的物品能让用户满意。一般用点击率,用户停留时间等指标来度量。但是,用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。

2、预测准确度

预测准确度可以用评分预测和TopN表示

(1)评分预测

评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。

对于测试集中一个用户u 和 物品 i,令 rui 是用户u对i 的实际评分,而^rui 是推荐算法给出的预测评分。那么 RMSE 的定义为:

MAE 采用绝对值计算预测误差,它的定义为:

假设用列表 records 存放用户评分数据,令 records[i] = [u,i,rui,pui],其中 rui 是用户u对i的真实评分,pui 是算法预测出来的评分,则:

计算RMSE的代码为:

def RMSE(records):
    return math.sqrt(
        sum([(rui - pui)*(rui - pui) for u,i,rui,pui in records]) \
            / float(len(records)))

计算MSE的代码为:

def MAE(records):
    return sum([abs(rui-pui) for u,i,rui,pui in records]) \
        / float(len(records))

(2)TopN方法

网站在提供服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做 TopN 推荐。

TopN 推荐的预测准确率一般是通过 准确率(precision)/召回率(recall) 度量。

令R(u)是根据用户在训练集上的行为给用户做出的推荐列表,而T(u)是用户在测试集上的行为列表。

推荐结果的召回率:

推荐结果的准确率定义为:

def PrecisionRecall(test,N):
    hit = 0
    n_recall = 0
    n_precision =0
    for user,items in test.items():
        rank = Recommend(user,N)
        hit += len(rank & items)
        n_recall += len(items)
        n_precision += N
    return [hit / n_recall, hit / n_precision]

有的时候,为了全面评测TopN推荐的准确率和召回率,一般会选取不同的推荐列表长度 N ,计算出一组准确率 / 召回率曲线。

3.覆盖率

指推荐出来的结果能不能很好的覆盖所有的商品,是不是所有的商品都有被推荐的机会。最简单的方法就是计算所有被推荐的商品占物品总数的比重。

定义物品的流行度为 p(i), I 为全部的物品集,假设物品是按照流行度p从小到大排列的。则我们定义基尼系数(Gini Index)如下:

def GiniIndex(p):
    j = 1
    n = len(p)
    G = 0
    for item,weight in sorted(p.items(),key = itemgetter(1)):
        G += (2 * j - n - 1) * weight
    return G / float(n - 1) 

关于基尼系数,不得不提到马太效应:强者更强,弱者更弱的效应。如果一个系统会增大热门物品和非热门物品的流行度差距,让热门的物品更热门,不热门的物品更加不热门,那么这个系统就有马太效应。推荐系统的初衷就是消除马太效应,使得各种物品都能被展示给对它们感兴趣的某一类人群。但是很多研究表明现在的主流推荐算法(比如协同过滤)是具有马太效应的。评测推荐系统是否具有马太效应的简单办法就是使用基尼系数。如果G1 是从初始用户行为中计算出的物品流行度的基尼系数,G2 是从推荐列表中计算出的物品流行度的基尼系数,那么如果 G2 > G1,就说明推荐算法具有马太效应。

4.多样性

用户的兴趣是广泛的,比如用户既可能喜欢动画片,也喜欢动作片。为了满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同的兴趣领域。

推荐结果中要体现多样性,可以根据物品间的相似度来计算,一个推荐列表中如果所有物品间的相似度都比较高,那么往往说明都是同一类物品,缺乏多样性。

5.新颖性

用户喜欢周星驰的电影,如果推荐给用户周星驰演过的但是用户自己从来没听过的电影,叫新颖性。

不能说系统推荐的物品其实我都知道,那这样推荐系统就完全失去了存在的意义,一般都希望推荐一些用户不知道的物品或者没有产生过行为的物品。方法是取出已经产生过行为过的物品。

6.惊喜性

用户喜欢周星驰的电影,但是莫名其妙推荐了跟用户兴趣完全无关的成龙的电影。用户看完后表示很喜欢,这叫惊喜度。

7.信任度

用户对推荐系统的结果本身的认可感。

8.实时性

当用户买苹果手机的时候,立即推荐苹果耳机等配件。而不是等到第二天收集了用户购买行为,再离线计算推荐算法,第二天推荐苹果耳机。这就叫实时性。

9.健壮性

防止攻击的性能。假如我是商户,我可以叫大量人来阅览点击我的商品,那么推荐系统极有可能会增加推荐我的商品的概率。这就是恶意攻击。因为推荐系统本身是通过收集用户行为而推荐的。针对这种情况,除了选择健壮性较高的算法之外,还可以设计推荐系统时尽量使用代价比较高的行为。比如,在购买行为和浏览行为中主要使用购买行为。

在使用数据前,进行攻击检测,从而对数据进行清理。

10. 此外,对于在线评估,也有一些指标:

推荐系统的在线评估指标包括:点击率、点击人数比、人均点击次数、留存率、转化率等。

(1)点击率

点击率是评估推荐效果比较经典的指标,记录了用户每次进入推荐内容的点击情况,能够粗略衡量转化效果。

(2)点击人数比

点击人数比是点击的人数除以推荐的曝光人数,这是一个用来衡量推荐系统触达率的重要指标。在评估一个模型效果时, 可能点击率上涨,但点击人数比并没有变化,这说明推荐结果只对于部分老用户产生比较好的效果,对于触达不到的用户, 仍然没有成功吸引他们来使用推荐系统,所以点击人数比与点击率是对推荐系统在不同方面的评估。

(3)人均点击次数

人均点击次数是指每个人在推荐系统里面平均每天点击了多少次。人均点击次数是需要大家持续关注的指标,因为这个指 标真正体现出用户在这款产品中的使用深度。

(4)留存率和转化率

留存率和转化率对于推荐系统来说,可能并不是一个那么直接的指标。比如推荐对留存的影响到底有多大,很大程度上取 决于不同的产品形态,但它仍是我们评估推荐系统的一个指标,至少我们需要知道此次推荐系统的迭代到底对于留存率的 影响有多大。 如果迭代后的留存率下降, 即使点击率和点击人数都在上升,但这一次迭代无法上线,因为它影响了留存的指标。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如今大数据已经成了各大互联网公司工作的重点方向,而推荐系统可以说就是大数据最好的落地应用之一,已经为企业带来了可观的用户流量和销售额。特别是对于电商,好的推荐系统可以大大提升电商企业的销售业绩。国内外的知名电商,如亚马逊、淘宝、京东等公司,都在推荐系统领域投入了大量研发力量,也在大量招收相关的专业人才。打造的电商推荐系统项目,就是以经过修改的中文亚马逊电商数据集作为依托,并以某电商网站真实的业务架构作为基础来实现的,其中包含了离线推荐与实时推荐体系,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。具体实现的模块主要有:基于统计的离线推荐、基于隐语义模型的离线推荐、基于自定义模型的实时推荐,以及基于内容的、和基于Item-CF的离线相似推荐。整个项目具有很强的实操性和综合性,对已有的大数据和机器学习相关知识是一个系统性的梳理和整合,通过学习,同学们可以深入了解推荐系统在电商企业中的实际应用,可以为有志于增加大数据项目经验的开发人员、特别是对电商业务领域感兴趣的求职人员,提供更好的学习平台。适合人群:1.有一定的 Java、Scala 基础,希望了解大数据应用方向的编程人员2.有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员3.有电商领域开发经验,希望拓展电商业务场景、丰富经验的开发人员4.有较好的数学基础,希望学br习机器学习和推荐系统相关算法的求职人员
本教程为官方授权出品伴随着大数据时代的到来,作为发掘数据规律的重要手段,机器学习已经受到了越来越多的关注。而作为机器学习算法在大数据上的典型应用,推荐系统已成为各行业互联网公司营销体系中不可或缺的一部分,而且已经带来了真实可见的收益。目前,推荐系统和机器学习已经成为各大公司的发力重点,众多知名公司(如亚马逊、netflix、facebook、阿里巴巴、京东、腾讯、新浪、头条等)都在着眼于将蕴含在庞大数据中的宝藏发掘出来,懂机器学习算法的大数据工程师也成为了新时代最紧缺的人才。精心打造出了机器学习与推荐系统课程,将机器学习理论与推荐系统项目实战并重,对机器学习和推荐系统基础知识做了系统的梳理和阐述,并通过电影推荐网站的具体项目进行了实战演练,为有志于增加大数据项目经验、扩展机器学习发展方向的工程师提供更好的学习平台。本课程主要分为两部分,机器学习和推荐系统基础,与电影推荐系统项目实战。第一部分主要是机器学习和推荐系统基础理论的讲解,涉及到各种重要概念和基础算法,并对一些算法用Python做了实现;第二部分以电影网站作为业务应用场景,介绍推荐系统的开发实战。其中包括了如统计推荐、基于LFM的离线推荐、基于模型的实时推荐、基于内容的推荐等多个模块的代码实现,并与各种工具进行整合互接,构成完整的项目应用。通过理论和实际的紧密结合,可以使学员对推荐系统这一大数据应用有充分的认识和理解,在项目实战中对大数据的相关工具和知识做系统的回顾,并且可以掌握基本算法,入门机器学习这一前沿领域,为未来发展提供更多的选择,打开通向算法工程师的大门。谁适合学:1. 有一定的 Java、Scala 基础,希望了解大数据应用方向的编程人员2. 有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员3. 有较好的数学基础,希望学习机器学习和推荐系统相关算法的求职人员

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值