推荐系统实践——第一章学习

今天开始阅读和学习《推荐系统实践》,希望和你一起学习一起成长,利用每一天,让自己成长成梦想的样子。

阅读这本书的初衷很简单,增加自己在机器学习方面的应用涉猎程度。这本书据说很适合作为了解推荐系统在业界的应用情况和主要算法。按照数据分类的方法,每一章都根据一种用户的行为数据去探讨可以使用的算法,并且比较算法之间性能的差异。


第一章主要是介绍了推荐系统在各个领域的应用以及推荐系统业界常用的评价指标。

个性化推荐成功应用需要两个条件,分别是存在信息过载,当信息不过载的时候,可以通过全量检索得到;二是用户没有明确的需求。因为当用户有明确需求的时候,可以使用搜索引擎。

推荐系统的分类

1.社会化推荐:通过向朋友询问好看的电影。

1.基于内容的推荐:通过寻找用户曾经看过的电影,找到用户喜欢的演员和导演。给用户推荐这些演员或者导演的其他电影

2.基于协同过滤的推荐:找到和自己历史兴趣相似的一群用户,看看他们最近在看什么电影,推荐给用户。

个性化推荐系统在各个领域的应用

这一部分的内容就不详细介绍了,作者介绍了个性化推荐系统在电商、电影视频网站、音乐网站、社交网络、个性化阅读等应用上的使用现状。我觉得看一两个应用即可了解大致情况。

亚马逊上推荐系统的应用

1.基于物品的推荐:根据用户对过去的书籍的评分,推荐相关的书籍

2.查看用户的好友关系,推荐好友喜欢的物品给用户

3.购买过这个商品的用户购买过其他商品,因此给添加了这个商品的用户推荐其他的商品。

个性化推荐为亚马逊提供了20%~30%的主要营业额。

电影和视频网站的推荐:

和亚马逊的第一个一样,大部分是基于物品的推荐。

个性化网络电台

...


推荐系统测评

什么才是好的推荐系统?一个推荐系统的参与者有三个,分别是网站、内容提供商、用户。因此评价系统可以从用户、内容提供商和网站三个角度分别设置不同的评价指标进行评判。一个好的推荐系统应该是既可以为用户提供优质的推荐、为内容提供商寻找出口的用户、同时网站应该可以收集用户高质量的反馈,不断完善推荐的质量。好的推荐系统不应该只是追求能够准确预测用户的行为,更应该能够扩展用户的视野,帮助用户发现那些他们可能感兴趣的但是不那么容易发现的东西。

实验方式:

1.离线实验:从日志系统中获取用户的行为数据得到标准的数据集,根据数据集进行训练,根据事先定义的离线指标评测算法的结果。缺点是无法计算和商业指标相关的指标,比如点击率和转化率

2.用户调查:缺点是成本比较高。优点是可以获得很多体现用户主观感受的指标。

3.在线实验:主要是AB实验。在离线实验和用户调查的基础上,将新的算法和旧的算法进行在线的性能比较。即通过一定的规则将用户随机的分为几组,对不同组的用户采用不同的算法,通过统计不同组用户的各种不同的评价指标比较不同的算法(比如统计不同组用户的点击率等)

评价指标

1. 用户满意度(只能通过用户调查或者在线实验得到):无法通过离线得到。

用户调查:直观可得

在线实验:利用购买率度量用户的满意度,还可以使用点击率、用户停留时间、转化率度量满意度;还可以通过设计反馈按钮

2.预测准确度(离线测评指标):这是一个很重要的指标,用来度量推荐系统预测用户行为的能力。主要可以分为两类来评价预测准确度。

2.1.评分预测:样本的真实label是用户给物品的评分。一般通过算法可以得到预测的用户评分,将这个评分作为预测label。预测label和真实label,通过平方根误差和平均绝对误差计算,即可得到这个推荐系统的评分预测准确度。

2.2.TopN推荐:网站在提供推荐的时候,一般会根据算法产生推荐列表R(u)。根据用户针对这个推荐列表的行为列表T(u),分别计算准确率RU&&TU/||RU||和召回率RU&&TU/||TU||。还可以画出准确率/召回率的曲线。

3.覆盖率(内容供应商比较关注的):这个参数提供了推荐体统对物品长尾的发掘能力。长尾理论也可以理解为二八理论,20%的商品占据了80%的销售额,20%的物品获得了80%的关注,而其余的80%的物品只获得20%的关注。不热门商品又被成为长尾商品,长尾商品往往代表一小部分用户的个性化需求,挖掘用户的个性化需求,提高长尾商品的销售额和曝光率也是个性化推荐需要解决的问题。

覆盖率可以简单定义为推荐系统能够推荐的物品占总物品的比率。覆盖率为100%表示每个商品都至少会被推荐给一个用户。为了更加细致的描述覆盖率,还需要统计推荐系统中不同物品出现的次数的分布显然如果所有的物品都会出现在推荐列表中,且出现的次数差不多,那么这个推荐系统挖掘长尾的能力就比较强。我们可以用信息熵和基尼系数来评价系统的覆盖率。推荐系统的信息熵越大,则表示推荐的分布越平均,覆盖能力强。基尼系数越小,则表示系统的推荐分布比较平均。

推荐系统设计的初衷是为了消除马太效应(强者越强弱者越弱),因此推荐系统应该不具有马太效应。可以通过计算算法之前的列表和算法使用之后的列表的基尼系数来,若后者的基尼系数是否变大了,则这个推荐系统是具有马太效应的。

4.多样性:为了满足用户广泛的兴趣,推荐列表应该需要覆盖用户不同的兴趣领域,也就是需要多样性。

描述了推荐列表中两两之间的不相似性。假设sij描述了两个物品之间的相似性,那么用于u的推荐列表R(u)的多样性为:diversity(R(u))=1-(R(u)内部物品之间的相似度之和)/0.5*|R(u)|*|R(u)|

推荐系统多样性最好可以既考虑到用户的多样性有考虑到用户的主要兴趣。

5.新颖性:新颖的推荐指用户没有听说过的物品。因此如果给用户推荐的物品流行度比较低,那么推荐结果可能具有较高的新颖度

6.惊喜度:如果推荐结果与用户的历史兴趣不相似,但是让用户觉得满意。因此这个指标可以理解为提高推荐结果的满意度,同时降低推荐结果和用户历史兴趣的相似度。

7.信任度:针对网站而言的指标。简单的可以这么理解,如果物品是朋友推荐的,那么出于对朋友的信任,用户可能会有购买欲。如果是以类似广告的形式推荐的,那么用户很难产生购买的欲望。网站可以通过增加推荐系统的透明度等方式增加用户对于推荐结果的信任度。

8.实时性:对于新闻之类的有很强的时效性的物品很有用。第一、需要实时更新推荐列表来满足用户新的额行为变化,第二,考验系统对新加入的物品的冷启动时间,可以利用用户推荐列表中有多大比例的物品是当天加入的来衡量第二个指标。

9.健壮性:衡量推荐系统抗击作弊的能力。可以通过如下的途径提高系统的健壮性,

选择健壮性高的算法;

选择代价较高的用户行为作为输入;

在使用数据之前,进行攻击检测

你可能感兴趣的:(推荐系统实践——第一章学习)