【BitTiger读书会】·第三期《RecommenderSys
【BitTiger读书会简介】
BitTiger读书会,以书会友。以报告方式,加强组织表达力;以讨论方式,激荡思考判断力,期能扩充知识领域,养成读书习惯。
每周一本好书,一年阅读50本书,集众智,挑好书,留精华内容,创优质社群。
BitTiger读书会,欢迎您的加入!
在上一期的活动中,我们跟随数据分析师田华从数据、分类、关联、聚类这四个方面领略了《数据挖掘手册》这本书的精华内容,干货总结请见http://community.bittiger.io/topic/725/bittiger读书会-第二期-数据挖掘导论。
在第三期里,岳彩婷将结合具体项目,为你解读如何有效利用行为数据,向用户做出满意推荐,和大家分享《Recommender System Handbook》(推荐系统技术、评估及高效算法)的精品内容。
【分享书籍】
《Recommender System Handbook》(推荐系统技术、评估及高效算法)
【BitTiger读书会】·第三期《RecommenderSystemsHandbook》(英文原版)
【BitTiger读书会】·第三期《RecommenderSystemsHandbook》(中文版)
【书籍介绍】
随着互联网时代的快速发展,在海量的信息和数据中挖掘有价值的部分呈现给用户,成为电商、社交、新闻、影音等各大主流应用的核心功能。
推荐系统技术也就应势而生,集数据挖掘、机器学习、用户行为学、人机交互等多领域的知识为一体,让信息变得更加智能。
本书是推荐系统领域内的殿堂级大作,除了在遇到不同问题的时候,查阅相关的章节,更是可以随时放在枕边随手翻翻的技术读物。
领读者将结合一些推荐系统的具体案例,如Amazon、Netflix等,展示不同行业对推荐系统技术的不同应用,深度的学习和挖掘需要读者自己继续研究。
【嘉宾介绍】
岳彩婷,大连理工大学软件工程系学生,IEEE CS Member,关注推荐系统、搜索引擎、人工智能等领域,当前正着手于推荐系统项目的研究。
【加入读书会】
获取BitTiger读书会系列读书分享信息,请添加微信ID: saraincs,备注“读书”加入BitTiger读书会活动群
【BitTiger读书会】·第三期《RecommenderSystemsHandbook》【电子书下载】
点击此处下载:Recommender_systems_handbook.pdf
或者从Google网盘下载(国内需翻墙):
https://drive.google.com/open?id=0Bzu4H4u37WXScWdITkFKNUZZaW8
【分享文稿】
什么是推荐系统?《Recommender Systems Handbook》这本书中的解释是:推荐系统是一种软件工具和技术方法,它可以向用户建议有用的物品,这种建议适用于多种决策过程,如购买什么物品、听什么音乐、在网上浏览什么商品等。推荐系统主要针对的是那些缺乏足够的个人经验和能力的人,他们无法评估潜在的大量可供选择的物品。
从这段话中可以总结出什么信息呢?首先推荐系统是一种工具和技术方法,既然是工具和方法,那就是用来帮助给人们解决问题的。什么问题呢?这个关键就在于“大量”,只有在物品数量特别多、用户感觉到有信息过载的压力时,才需要做推荐系统。这句话很简单,但是很多做推荐的人都忽视了这一点,我之前碰到过一个做推荐的应用,后台其实内容不多,本用不着做推荐,但它还是用了推荐,也许短时间看不出来什么,但时间一长,用户就会发现,似乎有很多重复的内容,从体验的角度来看,就不太理想了。
这本书的内容可以分为五个部分:技术、推荐系统的应用和评估、推荐系统的交互、推荐系统和社区及高级算法。第一部分中介绍了数据挖掘、基于内容的推荐、基于近邻的推荐、协同过滤算法、基于约束的推荐系统、情景感知推荐系统。第二部分中介绍了推荐系统的一些属性,这些属性可以帮助大家知道怎么去评估一个推荐系统,离线实验可以评估算法精确度,但是推荐系统仅仅只是精确推荐是不够的,要让用户有好的体验有惊喜感,还要用诸如在线实验的方法去提高推荐性能,在后面的实例中就可以看到,很多公司都设计出了自己独特的推荐算法,所以也不需要去生搬硬套一些方法。第三部分探讨了一系列的文章,包括推荐系统的展示、浏览、解释和视觉化,以及使得推荐过程更结构化和方便的技术等,这个部分偏向更深入的研究,已经完成推荐系统的初步架构的同学可以从这里去深入考虑怎么提高推荐的性能。第四部分聚集的话题更加新颖,更加基于过滤的推荐思想。搜索和推荐是两个既互相协助又彼此互异的技术,社会化标签推荐系统的数据更加多维,信任增强推荐系统就像是找熟人买东西,让人学会信任系统,这一点更加智能化。最后一部分中的高级算法介绍了推荐系统中的偏好聚合、主动学习、多准则评分和具有健壮性的协同推荐等算法。这些算法有助于进一步提高推荐系统性能。
下面进入实例部分。以下研究的几个实例是在推荐系统中做的十分突出且比较成熟的互联网企业。
首先是被称为“推荐系统之王”的亚马逊。
常用的经典推荐算法基本上亚马逊都用到了,比如根据浏览记录、最近查看等信息进行的推荐,根据类似行为用户的协同过滤推荐,根据物品进行的协同过滤推荐,混合推荐,捆绑推荐……也很明显,在购买物品时用户可能有的行为亚马逊都研究了一遍,然后选择了与这些行为对应的推荐算法。
亚马逊个性化推荐系统的标准用户界面包含以下组成:
a. 推荐结果的标题、缩略图以及其他内容属性
b. 推荐结果的平均分
c. 推荐理由
d. 其他:加入改善推荐、允许禁用推荐理由(隐私保护)
e. 对推荐结果进行反馈的方式:“已经有了”、“不感兴趣”、“修改推荐原因”、“为该商品评分”
(此处针对亚马逊网站最新推荐应用界面分析而得,此前有5种反馈方式,不同的是现在加入了“加入到购物车”和“添加到心愿单”,而没有“修改推荐原因”选项。从这个不同里可以看出亚马逊推荐系统的优化策略。)
“亚马逊相对于其他电子商务网站的最大优势就在于个性化推荐系统,该系统让每一个用户都能拥有一个自己的在线商店,并且能在商店中找到自己感兴趣的商品。”—亚马逊CEO Jeff Bezos
研究亚马逊的推荐算法,可以看出其在协同推荐上做得十分突出,对应这一类算法的研究可以回归到原书第四章:基于近邻推荐方法的综述,第五章对协同过滤算法的高级解读中更提供了大量的模型和解释。
Netflix本来是一个DVD租赁网站,后来也开始了视频业务,现在已然发展到一家巨大的电影、视频网站,2006年起,Netflix举办了推荐系统大赛,以丰厚的奖金吸引很多技术者与科学家参与其中。这些比赛也逐渐让推荐系统走入大家的视野。关于Netflix的推荐系统就有大量可以谈的东西了。
包含内容:电影标题和海报,用户反馈模块—包括播放、评分和不感兴趣三种。
Netflix新一代推荐系统的承载形式是“会员首页”。把首页基于推荐系统来驱动,一来说明他们对推荐系统的重视程度,二来表明他们对自己推荐技术的高度自信。
有一篇论文写到:On a Netflix screen, a user is presented with about 40 rows of video categories, with each row containing up to 75 videos.
几种核心的推荐算法介绍:
a. video-to-video similarity algorithm(Sims算法)根据“what you watched" 进行推荐
b. Personalized Video Ranker algorithm: PVR
最核心部分,基于“基因”的电影推荐。这种推荐算法是千人千面的,同一个基因推荐序列,每个用户推荐的影片也是不相同的。
“The closer to the first position on a row a title is, the more likely it will get played.”
当PVR算法与"unpersonalized popularity”结合的时候,效果最好。
c. TOP N推荐
在“Top Picks”里进行推荐,其核心目标是从所有序列中找出来最最相关的。
d. Trending Now
从近期趋势预测用户观看行为,如果与合适的个性化方法结合起来会更好。
trending ranker算法的适用场景:
1)每隔几个月(比如每年一次)会重复,且每次发生都会有一波明显的短期效应的,比如每年情人节期间的浪漫爱情片;
2)突发的、短期的事件,比如媒体大规模报道了一场在人口密集区域登陆的飓风,就会引发一波对于飓风及其他自然灾害相关的纪录片和影片的关注。
e. Continue watching
对是否继续观看某部影片或者某个系列来进行建模。它不是未观看视频的简单陈列,它会综合考虑距离上次观看的时间,是停在了影片的
中段、开头还是结尾,使用的什么设备,期间是否又观看了别的影片等众多因素。
f. Page Generation: Row selection and Ranking
将上万行的推荐结果收缩到40行内展示到首页,同时要保障相关性和多样性。2015年以前,netflix使用的是基于规则的方法来生成推荐结果页面,现在已经演进成了一种更优化的页面生成算法。
g. Evidence
以上算法一起组成了完整的Netflix推荐系统,但还有一些其他算法,如推荐理由选择算法,它和推荐算法一起构成了Netflix推荐的完整用户体验,用户依据推荐理由来判断推荐的影片是否适合他。Netflix的推荐理由包括:
1)对于影片的预测评分;
2)内容介绍;
3)演员阵容、所获奖项之类的元数据;
4)推荐图片的选择能其他UI相关的部分,等等。
推荐理由选择算法会评估推荐影片相关的可供显示的所有条目,然后选择出最有利于帮助用户做出判断的条目显示在页面的推荐理由区域。
举个例子,推荐理由选择算法会决定是应该标明一部影片获得过奥斯卡,还是提示用户这部影片和他最近刚看完的某部影片非常相似;
它还会从多个版本的图库中选择出一张最贴合给定推荐理由的图片。
h. Search
80%的用户会受到推荐的影响,20%的用户来自于搜索。用户通常都是搜索影片、演员或者是目录提供的基因;netflix综合使用了信息检索及相关技术为用户提供最相关的搜索结果。但是,因为用户的搜索词也会经常触碰到不在库里的影片、演员或者是基因,再或者是一些宽泛概念,以至于搜索也变成了某种推荐问题。
【推荐系统的商业价值】
Netflix提到了一个很有意思的点:推荐系统帮助Netflix赢得关键时刻。
另外一个很重要的点,个性化技术可以显著提高推荐影片的被接受度(Take-Rate),即推荐给用户的影片真正被播放的比率。
当一个推荐系统面对海量的用户以及大量的待推荐条目的时候,如何评价推荐结果就是一件极其核心的事情了。Netflix采用的是付费会员的商业模式,因此付费会员数就是非常有效的评价指标,这个数字受三个部分的影响:
1)新会员转化率;
2)老会员退订率;
3)已退订会员的召回率。
好的推荐系统无疑可以让用户存留率增大,存留率又和用户的观看时长非常有关系。Netflix在大量使用AB测试的方法来不断的优化相关的指标。
需要重点考虑的问:
1)如何准确地定义目标;
2)如何合理地切分数据和流量;
3)如何真实评价实验结果。
Netflix推荐系统也并非十全十美,事实上,推荐系统很难说做到十全十美,因为推荐这件事情本身就存在一定的主观性。
Netflix的推荐系统也还是有各种提升空间的,Netflix列举了几点。
更有效的实验框架:能够支持离线实验算法更快速的迭代,并且可以更有效预测线上AB测试结果;在参与度指标体系中如何能够更好地平衡电影、连续剧、专题节目等各种形式的内容
适应全球化的算法:Netflix想要进入全球市场,不同版权要求的内容会有相应的限制,比如某些影片只限于某些国家播放,如何统一有效地利用Netflix全球数据来最大化某个区域的推荐效果。
控制正反馈带来的偏置效应:推荐系统是典型的强正反馈系统,用户参与度越高的影片会进一步推荐给更大的用户群体,然后这些影片就又会更活跃。如何能够找到更有效的方法引入随机性,从而学习到更健壮的模型。
更好的推荐页面构建方法:推荐页面构建还是一个相对新颖、研究比较少的领域。
会员冷启动问题:这个是推荐领域老大难的问题了,Netflix也不例外,PVR算法在老用户上的效果要明显好于新用户。如何能够在新用户首月体验期内更好的拿下他,价值巨大。
共享账户的问题:尽管Netflix已经提供了一个付费会员支持多个独立账号的功能,但多个家庭成员共享一个账号的情况仍然很常见,如何能够更加智能地自动化解决这个问题。
提供更好的推荐理由:如何为给到每一个用户的每一个推荐结果都搭配上更个性化的推荐理由。
针对Netflix推荐系统,建议阅读本书的第二板块即推荐系统的应用与评估。推荐系统有很多属性,如
用户偏好、预测准确度、覆盖率、置信度等等,一般是通过离线实验、用户调查和在线实验这三种
方式进行测量。如何让已有的推荐系统做的更好,这一板块给出了有效信息。
Pandora是美国的一个个性化音乐网络电台,个性化推荐成功的应用需要两个条件:第一是存在信息
过载,因为用户若是很容易找到自己喜欢的物品就不需要推荐了,另一个是用户大部分时候没有明
确的需求,有明确需求的可以直接通过搜索引擎找到感兴趣的物品。
因此,个性化音乐网络电台是非常符合个性化推荐技术的产品。
Pandora的音乐推荐算法主要来自一个叫做音乐基因工程的项目,该项目起始于2000年,成员包括音乐家和对音乐感兴趣的工程师。Pandora的算法主要基于内容,其音乐家和研究人员亲自听了上万首来自不同歌手的歌,然后对歌曲的不同特性(旋律、节奏、编曲、歌词等)进行标注,这些标注被称为音乐的基因,然后Pandora会根据专家标注的基因计算歌曲的相似度,并给用户推荐和他之前喜欢的音乐在基因上相似的其它音乐。
Pandora研究人员总结的音乐推荐的特点:
a. 物品空间大。相较于书和电影,物品数量和空间大。
b. 消费每首歌的代价很小。对于在线音乐来说,音乐都是免费的,不需要付费。
c. 物品种类丰富。
d. 听一首歌耗时很少。用户听音乐的成本时间成本很低。
e. 物品重用率很高。 每首歌用户会听很多遍,与书本不同。
f. 用户充满激情。
g. 上下文相关。(跟情境、情绪很相关)
h. 次序很重要。
i. 很多播放列表资源。
j. 不需要用户全神贯注。很多用户会将其作为背景音乐。
k. 高度社会化。比如会跟好友分享喜欢的音乐。
音乐基因推荐算法有点像基于内容的推荐系统,可追寻到本书的第三章,其中对内容推荐算法有比较详细的描述,另外,音乐有个特别的地方在于情境信息。本书在对推荐系统的改进中提到了情境感知,很多推荐系统已无法只靠内容和协同过滤等传统算法支撑了。情境信息很重要,比如用户选择音乐时会受天气、心情、昼夜、节日的影响,所以大家也可以同时参考第七章情境感知推荐系统。
一些干货资料分享:
ACM Recommender SystemsRecSys - ACM Recommender Systems
Recommending music on Spotify with deep learning
有个博客里面提供了一些资料,可以参考:BreezeDeus
阿里在云栖大会上发表过一个演讲:【直播回顾】21天搭建推荐系统:实现“千人千面”个性化推荐(含视频)-博客-云栖社区-阿里云
饿了么推荐系统:从0到1 - 极客头条 - CSDN.NET
从算法到案例:推荐系统必读的10篇精选技术文章
探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
其他资料:
《Recommender Systems Handbook》
作者相关信息
Francesco Ricci
网站链接:http://www.inf.unibz.it/~ricci/
邮件:fricci@unibz.it
Lior Rokach
Linkedin:https://www.linkedin.com/in/liorrokach/
Bio:http://www.ise.bgu.ac.il/faculty/liorr/#bio
Bracha Shapira
Linkedin: https://www.linkedin.com/in/bracha-shapira-0b461b6/
Paul B. kantor
Linkedin: https://www.linkedin.com/in/paul-b-kantor-4196532/