内容简介 · · · · · ·
内容简介:
随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代 。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:对于信息消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
作者简介 · · · · · ·
项亮,毕业于中国科学技术大学和中国科学院自动化所,研究方向为机器学习和推荐系统,现任职于北京Hulu软件技术开发有限公司,从事视频推荐的研究和开发。2009年参加Netflix Prize推荐系统比赛获得团体第二名,且于当年发起创建了Resys China推 荐系统社区。
目录 · · · · · ·
第1章 好的推荐系统 1
1.1 什么是推荐系统 1
1.2 个性化推荐系统的应用 4
1.2.1 电子商务 4
1.2.2 电影和视频网站 8
1.2.3 个性化音乐网络电台 10
1.2.4 社交网络 12
1.2.5 个性化阅读 15
1.2.6 基于位置的服务 16
1.2.7 个性化邮件 17
1.2.8 个性化广告 18
1.3 推荐系统评测 19
1.3.1 推荐系统实验方法 20
1.3.2 评测指标 23
1.3.3 评测维度 34
第2章 利用用户行为数据 35
2.1 用户行为数据简介 36
2.2 用户行为分析 39
2.2.1 用户活跃度和物品流行度的分布 39
2.2.2 用户活跃度和物品流行度的关系 41
2.3 实验设计和算法评测 41
2.3.1 数据集 42
2.3.2 实验设计 42
2.3.3 评测指标 42
2.4 基于邻域的算法 44
2.4.1 基于用户的协同过滤算法 44
2.4.2 基于物品的协同过滤算法 51
2.4.3 UserCF和ItemCF的综合比较 59
2.5 隐语义模型 64
2.5.1 基础算法 64
2.5.2 基于LFM的实际系统的例子 70
2.5.3 LFM和基于邻域的方法的比较 72
2.6 基于图的模型 73
2.6.1 用户行为数据的二分图表示 73
2.6.2 基于图的推荐算法 73
第3章 推荐系统冷启动问题 78
3.1 冷启动问题简介 78
3.2 利用用户注册信息 79
3.3 选择合适的物品启动用户的兴趣 85
3.4 利用物品的内容信息 89
3.5 发挥专家的作用 94
第4章 利用用户标签数据 96
4.1 UGC标签系统的代表应用 97
4.1.1 Delicious 97
4.1.2 CiteULike 98
4.1.3 Last.fm 98
4.1.4 豆瓣 99
4.1.5 Hulu 99
4.2 标签系统中的推荐问题 100
4.2.1 用户为什么进行标注 100
4.2.2 用户如何打标签 101
4.2.3 用户打什么样的标签 102
4.3 基于标签的推荐系统 103
4.3.1 实验设置 104
4.3.2 一个最简单的算法 105
4.3.3 算法的改进 107
4.3.4 基于图的推荐算法 110
4.3.5 基于标签的推荐解释 112
4.4 给用户推荐标签 115
4.4.1 为什么要给用户推荐标签 115
4.4.2 如何给用户推荐标签 115
4.4.3 实验设置 116
4.4.4 基于图的标签推荐算法 119
4.5 扩展阅读 119
第5章 利用上下文信息 121
5.1 时间上下文信息 122
5.1.1 时间效应简介 122
5.1.2 时间效应举例 123
5.1.3 系统时间特性的分析 125
5.1.4 推荐系统的实时性 127
5.1.5 推荐算法的时间多样性 128
5.1.6 时间上下文推荐算法 130
5.1.7 时间段图模型 134
5.1.8 离线实验 136
5.2 地点上下文信息 139
5.3 扩展阅读 143
第6章 利用社交网络数据 144
6.1 获取社交网络数据的途径 144
6.1.1 电子邮件 145
6.1.2 用户注册信息 146
6.1.3 用户的位置数据 146
6.1.4 论坛和讨论组 146
6.1.5 即时聊天工具 147
6.1.6 社交网站 147
6.2 社交网络数据简介 148社交网络数据中的长尾分布 149
6.3 基于社交网络的推荐 150
6.3.1 基于邻域的社会化推荐算法 151
6.3.2 基于图的社会化推荐算法 152
6.3.3 实际系统中的社会化推荐算法 153
6.3.4 社会化推荐系统和协同过滤推荐系统 155
6.3.5 信息流推荐 156
6.4 给用户推荐好友 159
6.4.1 基于内容的匹配 161
6.4.2 基于共同兴趣的好友推荐 161
6.4.3 基于社交网络图的好友推荐 161
6.4.4 基于用户调查的好友推荐算法对比 164
6.5 扩展阅读 165
第7章 推荐系统实例 166
7.1 外围架构 166
7.2 推荐系统架构 167
7.3 推荐引擎的架构 171
7.3.1 生成用户特征向量 172
7.3.2 特征?物品相关推荐 173
7.3.3 过滤模块 174
7.3.4 排名模块 174
7.4 扩展阅读 178
第8章 评分预测问题 179
8.1 离线实验方法 180
8.2 评分预测算法 180
8.2.1 平均值 180
8.2.2 基于邻域的方法 184
8.2.3 隐语义模型与矩阵分解模型 186
8.2.4 加入时间信息 192
8.2.5 模型融合 193
8.2.6 Netflix Prize的相关实验结果 195
后记 196
· · · · · · (收起)
"推荐系统实践"试读 · · · · · ·
说起本书,还要追溯到2010年3月份的ResysChina推荐系统大会。在那次会议上,我遇到了刘江老师。刘老师看过我之前写的一些推荐系统方面的博客,希望我能总结总结,写本简单的书。当时国内还没有推荐系统方面的书,而国外已经有这方面的专业书了,因此图灵公司很想出版一本介绍推荐系统的书。所以,去年7月博士毕业时,我感觉有时间可以总结一下这方面的工作了,于是准备开始写这本书。 ...
丛书信息
喜欢读"推荐系统实践"的人也喜欢的电子书 · · · · · ·
喜欢读"推荐系统实践"的人也喜欢 · · · · · ·
推荐系统实践的话题 · · · · · · ( 全部 条 )



推荐系统实践的书评 · · · · · · ( 全部 46 条 )
> 更多书评 46篇
-
Stefanie (理智和情感的灰色)
推荐系统的成功在于两个方面:1. 信息过载,2,用户的需求不够明确。什么样的物品适合推荐:消费代价小,用户热情高,种类丰富,重用率高,反馈容易。 推荐系统的任务就是解决信息过载的问题,联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。 从实现的角度讲,就是挖掘用户的行为,找到用户个性化的需求。系统一般分为:前台的展...2012-07-27 16:41 9人喜欢
推荐系统的成功在于两个方面:1. 信息过载,2,用户的需求不够明确。什么样的物品适合推荐:消费代价小,用户热情高,种类丰富,重用率高,反馈容易。 推荐系统的任务就是解决信息过载的问题,联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。 从实现的角度讲,就是挖掘用户的行为,找到用户个性化的需求。系统一般分为:前台的展示页面,后台的日志系统,以及推荐算法系统。(用户行为分析部分算哪个部分?) 推荐方式:social recommendation (amazon推荐给你facebook上好友喜欢的), content-based filtering(根据你历史喜欢的东西), collaborative filtering(买了这个东西的人也买了什么,打包销售) Facebook的会话推荐:用户在社交网络上的分享以及它的所有评论被称为一个会话,Facebook的EdgeRank算法就在计算这些会话的排序,是用户能尽量看到熟悉好友的最新会话。 广告定点投放:上下文广告,搜索广告,个性化展示广告。Yahoo有很多论文 推荐系统的指标:预测准确度,同时扩展用户的视野。准确度,覆盖度,新颖性,惊喜度,信任度,透明度。实验方法:离线实验,用户调查,在线实验(AB测试)。评测指标:用户满意度(显式的用户反馈),预测准确度(评分预测(均方根误差RMSE,平均绝对误差MAE),topN推荐(准确率和召回率,会看曲线和趋势),覆盖率(覆盖长尾的能力,通过物品在推荐列表出现的次数的分布来描述长尾能力:信息熵和基尼指数),多样性(用推荐物品的相似性差异性来评价多样性),新颖性,惊喜度,信任度(增加透明度,给出解释,建立用户之间的信任系统), 实时性, 强健性(行为注入攻击), 商业目标,), 推荐相关的牛人:amazon的前科学家Greg Linden, Andreas Weigend, 产品:Facebook的Instant Personalization 看的论文:The Youtube video recommendation system. Major components of the gravity recommendation system. Music Recommendation and Discovery in the Long Tail 关于惊喜度: Evaluating Recommendation Systems. Auralist:introducing serendipity into music recommendation Metrics for evaluating the serendipity of recommendation lists.
回应 2012-07-27 16:41 -
这书其实内容不是很多,国内第一本专门讲推荐系统的书,理论与实践并重,书本身并不厚,主要是讲个性化推荐系统的算法(主要是离线算法),评测标准,最后提到了工程的构建。总体说来,推荐系统的评测过于简单,只是用了一个召回率、准确率、覆盖率什么的,讲的很简单,换一个算法,然后评测一下。其实推荐系统主要并不是难在算法上,因为算法都有现成的,一般也不会有人去开发一个全新的算法。如果用一个协同过滤算法就可以构... (5回应)
2012-06-29 15:56 7人喜欢
这书其实内容不是很多,国内第一本专门讲推荐系统的书,理论与实践并重,书本身并不厚,主要是讲个性化推荐系统的算法(主要是离线算法),评测标准,最后提到了工程的构建。总体说来,推荐系统的评测过于简单,只是用了一个召回率、准确率、覆盖率什么的,讲的很简单,换一个算法,然后评测一下。其实推荐系统主要并不是难在算法上,因为算法都有现成的,一般也不会有人去开发一个全新的算法。如果用一个协同过滤算法就可以构建一个简单的推荐系统的话,那么现在估计大家都已经做出来了。推荐其实是领域相关的,需要大量的业务逻辑,算法只是得出一个基础的结果集而已,并且这个结果集一定也非常的稀疏。最近使用item-CF算法计算商品相似度的时候发限热门用户对商品相似度的影响很大,想起来书上一个item-IUF的降权算法可以对热门用户惩罚,发现书上的公式有错误,可能是印刷错误吧,分子上少了括号
第57页item-IUF公式5回应 2012-06-29 15:56 -
Stefanie (理智和情感的灰色)
推荐系统通过分析用户行为日志,给用户生成推荐,最终展示在网站页面上(其中推荐理由和反馈是最有意义的) 用户行为数据可以分为两个部分,实时存取的:购买,收藏,评论...,采用数据库或者缓存,还有不需要实时存取的,阅览和搜索,采用分布式文件系统。 推荐系统一般是将多种推荐策略的引擎的结果按照一定权重或者优先顺序合并,排序然后返回。我们可以根据用户选择不同的推荐策略。 A:从数据库或者缓存中拿到用户行为数据,...2012-08-31 15:37 5人喜欢
推荐系统通过分析用户行为日志,给用户生成推荐,最终展示在网站页面上(其中推荐理由和反馈是最有意义的) 用户行为数据可以分为两个部分,实时存取的:购买,收藏,评论...,采用数据库或者缓存,还有不需要实时存取的,阅览和搜索,采用分布式文件系统。
推荐系统一般是将多种推荐策略的引擎的结果按照一定权重或者优先顺序合并,排序然后返回。我们可以根据用户选择不同的推荐策略。
A:从数据库或者缓存中拿到用户行为数据,通过分析不同行为,生成当前用户的特征向量。 B:负责将用户的特征向量通过特征-物品的关联矩阵转化为初始推荐物品的列表。 C:对初始推荐列表进行过滤,排名,成为最终的推荐结果。 A:利用用户行为构建用户向量的时候需要考虑:用户行为的种类,时间,次数,物品的热门程度(越不热门的产品越能表示用户的喜好)。 C:过滤:用户已经产生行为的物品,候选物品以外的物品,某些质量很差的物品(大部分用户都不喜欢的物品,平均评分在2分一下的) 排序:用户反馈模块,利用点击模型,预测用户是否会点击某个链接。 Click Model: 1. A dynamic bayesian network click model for web search ranking 2. online learning from click data and sponsored search 3. contextual advertising by combining relevance with click feedback. MyMedia: 一个著名的开源推荐引擎框架
回应 2012-08-31 15:37
-
萝卜公公 (阅读即生活,但不要忘记去思考)
推荐系统的一些入门知识,还算详细,也不艰深。但在数据量不大的情况下,还真不如找来小编天天来整点有趣的东西。 [http://pan.baidu.com/share/link?shareid=4120455182&uk=3005258800]2013-11-05 23:11
推荐系统的一些入门知识,还算详细,也不艰深。但在数据量不大的情况下,还真不如找来小编天天来整点有趣的东西。 http://pan.baidu.com/share/link?shareid=4120455182&uk=3005258800
回应 2013-11-05 23:11
-
一、好的推荐系统: 1、原则 解决信息过载 在用户没有目的的时候,帮助他们发现感兴趣的新内容 帮助长尾商品曝光给对它们感兴趣的用户 有推荐反馈(展示推荐理由) 2、评测点 用户满意度:用户调研、反馈 预测准确度:准召率 覆盖率:推荐物品占总物品的比例,消除马太效应 多样性、新颖性、惊喜度 信任度:如呈现方式像广告则影响信任度,推荐解释可增加信任度 实时性:如feed 健壮性:抗作弊能力,如尽量使用代价高的用户行为...
2021-03-02 19:29
一、好的推荐系统:
1、原则
- 解决信息过载
- 在用户没有目的的时候,帮助他们发现感兴趣的新内容
- 帮助长尾商品曝光给对它们感兴趣的用户
- 有推荐反馈(展示推荐理由)
2、评测点
- 用户满意度:用户调研、反馈
- 预测准确度:准召率
- 覆盖率:推荐物品占总物品的比例,消除马太效应
- 多样性、新颖性、惊喜度
- 信任度:如呈现方式像广告则影响信任度,推荐解释可增加信任度
- 实时性:如feed
- 健壮性:抗作弊能力,如尽量使用代价高的用户行为;数据清理
- 商业目标
3、维度:评估不同维度值下推荐系统是否ok
- 用户维度
- 物品维度:物品属性、流行度、是否新品等
- 时间维度:季节、工作日or周末、不同时段
二、用户行为分析+热启动推荐 1、协同过滤:基于邻域的算法,包括基于用户、基于物品2种;
- 基于用户UserCF:找到相似的人(按物品计算人相关性),推荐其他人看的物品
- 基于物品ItemCF:一个人喜欢a也喜欢b,则ab相似,置信则按a推荐b
tips.
- 受热门影响大,需惩罚热门物品、极高活跃度用户权重,避免影响结果
- Item中,不同领域的热门物品相似度高,需引入物品的内容数据解决问题,如降低不同领域物品权重!
优劣:
- User适合用户少,item适合物品少
- User时效性强,用户兴趣变化不明显的领域(如新闻领域);item长尾丰富,适合用户个性化需求强烈的领域(电商、豆瓣)
- user很难解释,item相反
2、隐语义模型:通过隐含特征,联系用户兴趣和物品(自动化解决对物品分类、用户偏好刻画、进行推荐的过程)
- 相关技术:pLSA\LDA\隐含类别模型\隐含主题模型\矩阵分解等
LFM推荐算法,是机器学习,非统计!实现过程P68
- 模型输入样本要求:a. 每个用户的正负样本平衡; b.负样本要选择热门,但用户没有行为的物品;
- 缺点:实时性差、可解释性差
3、基于图的模型:用户-物品的二分图(按图的边关联,计算相关性) 三、冷启动推荐 1、利用用户注册信息:人口统计学、用户兴趣偏好、其他站外数据 2、利用合适物品试探:物品需满足比较热门、具有代表性和区分性、启动物品集合具有多样性 3、利用物品的内容:判断相似物品推荐,物品内容可通过“向量空间模型”表示,将物品表示成关键向量;
- 优劣:简单,但丢失关键词间的关系信息;
- 相关算法:ContentItemKNN,需要丰富的领域知识确认所用特征
4、专家作用:专家标注确认特征和值 四、”标签“推荐 1、定义:无层次化结构、用来描述信息的关键词 2、标签常见生成方式: A. 作者或专家打标签; B. 用户打标签,即UGC
- UGC好处:群体智能,获得准确的关键词描述(准确的信息是推荐系统的重要资源!)
- 用户标签特点:有高频词,也有长尾
3、基于标签的推荐算法:人→标签→有标签的物品→人
- TF-IDF:解决热门影响推荐结果不够个性化的问题
- 数据稀疏性:新用户、新物品推荐时,加入标签的相似标签增加数据量;(标签扩展方法:同义词、使用用户行为进行标签相似度刻画、话题模型等)
- 标签清理:原因1-不是所有标签都能反映用户兴趣!不恰当的不可用;
原因2-将标签作为推荐解释:去除词频很高的停止词;去除因词根不同造成的同义词;去除因分隔符造成的同义词; 4、基于标签的推荐解释: 考虑的出发点(用户需求点):
- 用户对标签的兴趣对帮助用户理解为什么给他推荐某个物品有帮助;
- 用户对标签的兴趣和物品标签的相关度对于帮助用户判定自己是否喜欢被推荐物品具有同样的作用;
- 物品标签相关度对于帮助用户判定被推荐物品是否符合他当前的兴趣更有帮助;
- 客观事实类标签相比主观感受类标签对用户更有用;
推荐解释的方向:书中调研给出的满意度高低D>A>B>C
- A-RelSort:使用用户以前使用过且物品上有的标签,给出用户对标签的兴趣和标签与物品的相关度,但标签按照和物品的相关度排序;
- B-PrefSort:使用用户以前使用过且物品上有的标签,给出用户对标签的兴趣和标签与物品的相关度,但标签按照用户的兴趣程度排序;
- C-RelOnly:使用用户以前使用过且物品上有的标签,给出标签与物品的相关度,且标签按照和物品的相关度排序;
- D-PrefOnly:使用用户以前使用过且物品上有的标签,给出用户对标签的兴趣程度,且标签按照用户的兴趣程度排序;
五、利用上下文信息推荐 1、时间上下文:
- 考虑原因:用户兴趣实时变化;物品存在生命周期;季节效应
- 判断是否需要考虑时间的指标:物品平均在线天数、相隔T天物品流行度向量的平均相似度(就是看不同时间差异是否大)
- 实时性:平衡近期行为和长期行为-体现近期行为变化,但也保证对用户兴趣预测的延续性;
如用户近期没有新的行为,也可以经常变化一下结果,具有一定的时间多样性; 2、地点上下文:兴趣本地化(如考虑国籍、大的地域)、活动本地化(考虑推荐地点和用户LBS的距离) 六、利用社交网络数据,社会化推荐
- 形式:email收发人、用户注册信息、用户lbs+IP、论坛、即时聊天工具、社交工具
1、社交网络数据分类:双向确认、单向关注、基于社区的设社交网络数据 2、社会化推荐优点:好友推荐增加推荐的信任度;解决冷启动问题; 刻画相关因素:
- 用户熟悉度:共同好友比例;
- 用户兴趣相似度:喜欢物品的重合度;
方法:
- 基于邻域
- 基于图(性能更优)
- 信息流推荐:考虑熟悉度、用户行为偏好、时间衰减系数、好友参与程度等
其他应用形式:好友推荐 3、升华:社交网络的研究都基于随机图理论 七、推荐系统实例&应用 1、用户特征抽象分类:
- 人口学
- 行为特征:浏览、收藏、打分等
- 话题特征:话题模型获取用户感兴趣的方向
2、推荐目标:
- 新物品
- 商业高收益物品
- 多品类物品
3、推荐方式:
- 混合推荐:多品类
- 区分场景推荐:如首页热门推荐,个性化页面长尾推荐;
- 上下文推荐:结合上下文
Tips.
- 不同推荐目标&方式可构建不同的推荐引擎,通过引擎组合实现多样性
- 基于用户反馈,为不同用户使用不同的推荐引擎组合权重!(难以想象的个性化方式!)
4、推荐引擎的架构
- STEP1生成用户特征向量:对用户代价高的、近期的、行为次数多的、不热门物品的行为高加权;
- STEP2特征-物品相关推荐
- STEP3过滤模块:过滤已产生过行为的、质量差的物品等
- STEP4排名:新颖性、多样性、时间多样性、用户反馈等
5、评分预测问题解决方案列举
- 离线实验(训练集、测试集找误差最小)
- 评分预测算法
后记tips:平衡数据和算法之间的关系 使用正确的用户数据对推荐系统至关重要,用户数据理解是设计好推荐系统的必要条件,因此分析数据是设计系统中最重要的部分; 数据分析决定了如何设计模型,算法只决定最终如何优化模型。
回应 2021-03-02 19:29 -
1 推荐系统 通过挖掘用户行为,找到用户个性化需求,从而将长尾商品准确地推荐给需要的用户,帮助用户发现那些他们感兴趣但很难发现的商品。 2 评价指标 推荐系统主要分为1 评分问题 2 Top N 问题 评分问题评价指标: RSME,MAE Top N 问题评价指标:precision/recall ,覆盖率(信息熵,gini index表征) 基尼系数的计算真理 首先,我们将物品按照热门程度从低到高排列,那么右图中的黑色曲线表示最不热门的x%物品的总流行度占...
2020-11-25 11:21
1 推荐系统
通过挖掘用户行为,找到用户个性化需求,从而将长尾商品准确地推荐给需要的用户,帮助用户发现那些他们感兴趣但很难发现的商品。
2 评价指标
推荐系统主要分为1 评分问题 2 Top N 问题
评分问题评价指标: RSME,MAE
Top N 问题评价指标:precision/recall ,覆盖率(信息熵,gini index表征)
基尼系数的计算真理
首先,我们将物品按照热门程度从低到高排列,那么右图中的黑色曲线表示最不热门的x%物品的总流行度占系统的比例y %。这条曲线肯定是在y=x曲线之下的,而且和y=x曲线相交在(0,0)和(1,1)。
令SA是A的面积,SB是B的面积,那么基尼系数的形象定义就是SA / (SA + SB),从定义可知,基尼系数属于区间[0,1]。
如果系统的流行度很平均,那么SA就会很小,从而基尼系数很小。如果系统物品流行度分配很不均匀,那么SA就会很大,从而基尼系数也会很大。
多样性(物品列表的不相关性),新颖性(过滤已经购物的列表),惊喜度,信任度(推荐解释,好友信息),实行性(新用户,新物品),鲁棒性(抗作弊能力,行为注入)
对于一个常用的推荐系统,离线优化目标:
max precision ,覆盖率>A, 多样性>B,新颖度>C
3 冷启动问题
用户冷启动(利用用户注册信息,诱导用户选择兴趣模块)
物品冷启动(物品内容信息,标签信息)
系统冷启动(专家标注)
4. 推荐系统数据种类
行为类数据
显性反馈行为(明确物品的喜爱行为)
隐形反馈行为(浏览,停留时长)
上下文信息(时间上下文,地点上下文)
社交网络数据
5. 标签系统的重要性
标签系统的最大优势是可以发挥群体的智慧,获得对物品内容信息比较准确的关键词描述。标签能够帮助用户发现可能喜欢的物品。例如:
1)统计每个人常用的标签
2)对每个标签统计被打过这个标签次数最多的商品
3)将这个商品推荐给常打该标签的用户
标签也要扩展和及时清除,如 去除词频很高的停止词,去除因词根不同造成的同义词,去除因分隔符造成段位同义词等。
6. 推荐系统框架
推荐系统框架简单的召回回应 2020-11-25 11:21 -
读后感首发于: [https://zhuanlan.zhihu.com/p/129820834] 为什么会读这么书? 读这本书的必要性在哪? 对于需求不具体的用户而言,在寻找相关信息时(比如买东西、捐增某个项目或者选电影的时候),希望得到推荐(比如推荐某部电影),从而做出判断与决定; 对于产品经理而言,在特定场景给用户推荐相关的信息,可以满足用户需求; 在《三节课策略产品经理训练营》中,专业人士产品人刘滢推荐了这本书; 在推荐策略方面,这...
2020-05-12 17:56
读后感首发于: https://zhuanlan.zhihu.com/p/129820834
为什么会读这么书?
这本书讲了什么?
第一章:好的系统推荐:
第二章 利用用户行为数据:
第三章 推荐系统冷启动问题
第四章 利用用户标签数据
第五章 利用上下文信息
第六章: 利用社交网络数据
第七章 推荐系统实例:
第八章 评分预测问题
后记:
读完这本书,你的收获是?
- 通过此书可以系统了解什么是推荐系统?在用户未提出明确的需求下,推荐系统通过分析用户的历史行为,并且建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。
- 推荐系统作用?给用户推荐满足他们兴趣和需求的信息。
- 推荐系统的评价?
- 推荐系统的应用?详见第一章个性化推荐系统的应用;
- 推荐系统的原理?详见第一章推荐方式;
回应 2020-05-12 17:56 -
第一章 好的推荐系统 1.1 什么是推荐系统: 推荐系统的任务就是联系⽤用户和信息: ⼀一⽅方⾯面帮助⽤用户发现对⾃自⼰己 有价值的信息, 另⼀一⽅方⾯面让信息能够展现在对它感兴趣的⽤用户⾯面前,从⽽而实现信息消费者和信息 ⽣生产者的双赢 和搜索引擎⼀一样,推荐系统也是⼀一种帮助⽤用户快速发现有⽤用信息的⼯工具。 推荐系统可以更更好地发掘物品的⻓长尾(long tail)。 如...
2020-03-02 08:28
第一章 好的推荐系统
1.1 什么是推荐系统:
推荐系统的任务就是联系⽤用户和信息:
⼀一⽅方⾯面帮助⽤用户发现对⾃自⼰己 有价值的信息, 另⼀一⽅方⾯面让信息能够展现在对它感兴趣的⽤用户⾯面前,从⽽而实现信息消费者和信息 ⽣生产者的双赢
和搜索引擎⼀一样,推荐系统也是⼀一种帮助⽤用户快速发现有⽤用信息的⼯工具。 推荐系统可以更更好地发掘物品的⻓长尾(long tail)。 如下⽅方式决定最终看什什么电影:
向朋友咨询-称为社会化推荐(social recommendation); 基于内容的推荐,eg.根据喜欢的导演和演员; 基于协同过滤:找到和⾃自⼰己历史兴趣相似的⽤用户; 基于物品的推荐算法;
1.2 个性化推荐系统的应⽤用:
电⼦子商务;
电影和视频⽹网站;
个性化⾳音乐⽹网络电台;
社交⽹网络;
个性化阅读;
基于位置的服务;
个性化邮件;
个性化⼴广告;
第⼆二章 利利⽤用⽤用户⾏行行为数据
起初就让⽤用户告诉⾃自⼰己兴趣的三个缺点:
现在的⾃自然语⾔言理理解技术很难理理解⽤用户⽤用来描述兴趣的⾃自然语⾔言; ⽤用户的兴趣是不不断变化的,但⽤用户不不会不不停地更更新兴趣描述; 很多时候⽤用户并不不知道⾃自⼰己喜欢什什么,或者很难⽤用语⾔言描述⾃自⼰己喜欢什什么
购物⻋车分析: 啤酒和尿尿布的故事,从⽤用户⾏行行为数据中可以挖掘,不不那么显⽽而易易⻅见的规律律。找出类似“购买A商品的⽤用户都购买B商品”这种规律律。
基于⽤用户⾏行行为分析的推荐算法,即协同过滤算法。顾名思义,协同过滤就是指⽤用户可以⻬齐⼼心协⼒力力,通过不不断地和⽹网站互动,使⾃自⼰己的推荐列列表能够不不断 过滤掉⾃自⼰己不不感兴趣的物品,从⽽而越来越满⾜足⾃自⼰己的需求。
2.1 ⽤用户⾏行行为数据简介:
⽤用户⾏行行为数据:原始⽇日志->会话⽇日志->展示⽇日志->点击⽇日志 ⽤用户⾏行行为分类:
显性反馈信息,标记喜欢或不不喜欢;
隐性反馈信息;⻚页⾯面浏览⾏行行为;
显性和隐性数据⽐比较:
显性和隐性数据示例例:
⽤用户⾏行行为的统⼀一标识:
2.2 ⽤用户⾏行行为分析: ⽤用户活跃度和物品流⾏行行度的分布:
fu(k)为对k个物品产⽣生过⾏行行为的⽤用户数,fi(k)被k个⽤用户产⽣生过⾏行行为的物品数。fu(k)和fi(k)都满⾜足⻓长尾分布。 ⽤用户活跃度和物品流⾏行行度的关系:
不不活跃⽤用户:要么是新⽤用户,要么是只来过⽹网站⼀一两次的⽼老老⽤用户。
新⽤用户倾向于浏览热⻔门的物品,因为他们对⽹网站还不不熟悉只能点击⾸首⻚页的热⻔门物品;
⽽而⽼老老⽤用户会逐渐开始浏览冷⻔门的物品;
⽤用户越活跃,越倾向于浏览冷⻔门的物品
协同过滤算法:
基于邻域的⽅方法(neighborhood-based); 基于⽤用户的协同过滤; 基于物品的协同过滤;
隐语义模型 (latent factor model); 基于图的随机游⾛走算法(random walk on graph)
2.3 实验设计和算法评测
数据集:MovieLens; 数据量量:100w条,6000多⽤用户,4000多电影; 数据划分⽅方法:M折交叉验证; 评测指标:Recall,precision,覆盖率; 覆盖率:终的推荐列列表中包含多⼤大⽐比例例的物品;
2.4 基于邻域的算法:
基于⽤用户的协同过滤算法: 步骤:
1. 找到相似的⽤用户集合;
2. 找到相似⽤用户喜欢的,切没点击过的物品;
计算相似度:
1. 向量量表征⽅方式:
找到⽤用户u对应的物品集合;
特征向量量
2. 相似度公式:
Jaccard公式:
余弦相似度:
wuv = 相似的的计算复杂度⾮非常⼤大,这是⼀一个很严重的问题,可以通过构建物品的倒排索引来解决这个问题。对于每个物品,和这个物品有关系的⽤用户,对应
wuv = ∣N(u) ∩ N(v)∣ ∣N(u)∪N(v)∣
∑i∈N (u)∩N (v) 1 log(1+∣N(i)∣)
∣N(u)∪N(v)∣
基于物品的协同过滤算法-ItemCF: ItemCF算法并不不利利⽤用物品的内容属性计算物品之间的相似度,它主要分析⽤用户的⾏行行为记录计算物品相似度。
∣N(u)∩N(v)∣ ∣N(u)∪N(v)∣
的稀疏矩阵+K个物品。以下图解释,如何得到倒排表的:
对普通UserCF的⼩小提升-UserCF-IIF: 考虑物品的流⾏行行度,加⼀一个惩罚因⼦子,来惩罚过度流⾏行行的商品。
wuv = ⽤用户ABCD,他们分别喜欢的物品时{a,b,d},{a,c},{b,e},{c,d,e} 。
此处有点偏经验性,通过内兄属性计算也不不是说不不可以。
UserCF的缺陷:
1. 随着⽤用户量量的增加,计算⽤用户兴趣相似度矩阵复杂度太⼤大; 2. 推荐结果的可解释性不不好;
Iterm-CF步骤:
1. 计算物品之间的相似度;
2. 根据物品相似度和⽤用户历史⾏行行为⽣生成推荐
相似度计算⽅方法:
\
分⼦子: 即喜欢物品i,也喜欢物品j的⽤用户数; 分⺟母: N(i)喜欢物品i的⽤用户数,j类似;
wij =
∣N(i) ∩ N(j)∣ ∣N(i)∣∣N(j)∣
和UserCF类似,使⽤用物品倒排表来计算,物品相似度矩阵。下图简单说明,相似度矩阵是如何求得的。左边每⼀一⾏行行代表⼀一个⽤用户喜欢的物品集合。
ItemCF计算⼀一个⽤用户u对⼀一个物品j 的兴趣:
puj =
∑ wjirui i∈N(u)∩S(j,k)
N (u):⽤用户u喜欢的物品的集合;
S(j, k):和物品j最相似的K个物品;
wij :物品i,j之间的相似度;
rui :⽤用户u对物品i的兴趣,如果是1-5级评分则为相对应的评分,如果是喜欢与否,则为1
⽤用户活跃度对物品相似度的影响:
我们可以认为,过于活跃的⽤用户对物品相似度的贡献不不如活跃度较差的,不不过这⾥里里⾯面也应该有⼀一个阈值限制,不不活跃的等级。为了了修正活跃的⽤用户对于
相似度的贡献:
wij =
∑u∈N(i)∩N(j) 1 log(1+∣N(u)∣)
∣N(i)∣∣N(j)∣ w′ = wij
ij maxj wij
物品归⼀一化相似度:
通过物品归⼀一化相似度,可以解决类内,类间,物品相似度差距⽐比较⼤大的问题。
UserCF VS ItemCF:
2.5 隐语义模型(LFM): 2.6 基于图的模型:
将⽤用户⾏行行为表示为⼆二分图模型,推荐任务变转换成度量量⽤用户定点和没有边连接的物品定点在图上的相关性的问题。
度量量两个顶点之间相关性的算法:
两个顶点之间的路路径数;
两个顶点之间的⻓长度;
两个顶点之间的路路径经过的顶点;
相关性较⾼高的顶点所具有的特征:
两个顶点之间有很多路路径相连;
连接的路路径⻓长度⽐比较短;
路路径不不会经过出度⽐比较⼤大的点;
第三章 推荐系统冷启动问题
3.1冷启动简介:
分类:
⽤用户冷启动:针对新⽤用户;
物品冷启动:新的物品;
系统冷启动:新开发⽹网站,没有⽤用户,没有⾏行行为信息,只有少量量物品信息;
3.2 利利⽤用⽤用户注册信息: 信息分类:
⼈人⼝口统计学信息:年年龄,性别,职业,学历等;
⽤用户兴趣描述:⽂文字描述兴趣;
⽤用户站外⾏行行为数据:其它⽹网站的⾏行行为数据和社交数据;
基于注册信息的个性化推荐流程:
1. 获取⽤用户注册信息;
2. 根据注册信息对⽤用户进⾏行行分类; 3. 推荐所属分类⽤用户喜欢的商品;
如何根据注册信息对⽤用户进⾏行行分类呢,是否可以⽤用聚类,尽可能分更更多的类,根据注册信息进⾏行行分类,如果test的准确率特别⾼高的话,可以考虑将label 加⼊入到聚类⾥里里⾯面⼀一起进⾏行行聚类。
UserCF
ItemCF
推荐原理理
推荐那些和⽤用户有共同兴趣爱好的⽤用户所喜欢的产品
给⽤用户推荐和他之前喜欢的物品类似的物品
侧重⽅方⾯面
和⽤用户兴趣相似的⼩小群体的热点
维系⽤用户的历史兴趣
群体
社会化
个性化
技术⻆角度
⽤用户相似度矩阵
⽤用物品相似度矩阵
性能
适⽤用于⽤用户较少的场合
适⽤用于物品数量量较少的场合
领域
时效性强,⽤用户兴趣稳定
⻓长尾物品丰富,个性化需求强烈烈
重点是计算特征喜欢的物品,也就是某个特征和物品的关系。
p(f , i)具有特征f 的⽤用户对物品i的喜好程度:
N (i):喜欢物品i的⽤用户集合; U (f ):具有特征f的⽤用户集合;
p(f , i) = ∣N (i) ∩ U (f )∣
为了了解决热⻔门物品,修改为喜欢物品i的⽤用户中具有特征f 的⽐比例例:
p(f,i)= ∣N(i)∩U(f)∣
N(i)+α
α的是为了了解决数据稀疏问题。但是α应该如何确定呢。 ⽤用户的⼈人⼝口统计学特征越多,越能准确的预测⽤用户兴趣。
3.3 选择合适的物品启动⽤用户的兴趣:
启动⽤用户的物品特点:
⽐比较热⻔门的物品,冷⻔门物品⽤用户甚⾄至⽆无法给出正确的反馈;
具有代表性和区分型的物品;
物品集合需要更更多的多样性;
衡量量⼀一个物品的区分度:
D(i) = σu∈N+(i) + σu∈N+(i) + σu∈N−(i)
σu∈N + (i) :喜欢i的⽤用户集合,对应的评分⽅方差;
σu∈N + (i) :不不喜欢i的⽤用户集合,对应的评分⽅方差
σu∈N − (i) :没有评分的⽤用户,对应的其他物品评分⽅方差;
3.4 利利⽤用物品信息解决物品冷启动问题:
物品内容信息通过向量量空间模型来表示。
将物品的内容表示成关键词向量量:
ei :关键词向量量; wi :关键词权重
di =(e1,w1),(e2,w2)...
得到向量量后,物品之间两两计算相似度,复杂度是O(N2)。采⽤用关键词-物品倒排表可以加速。 第四章 利利⽤用⽤用户标签数据:
除了了前⾯面讲过的基于⽤用户喜欢过的物品,利利⽤用兴趣相似的⽤用户这两种⽅方式,另⼀一种常⽤用的⽅方式是通过⼀一些特征来联系⽤用户和物品,其实这和我们常⽤用的
⽅方式相⼀一致,也就是常说的做特征。特征可以是⽤用户属性,也可以是⽤用户特征,和隐语义向量量。
标签系统的作⽤用:
表达:帮助我们表达对电影的看法;
组织:帮助组织喜欢的电影;
学习:增加对电影的了了解;
发现:更更容易易发现喜欢的电影;
决策:帮助判断是否看⼀一部电影;
第五章 利利⽤用上下⽂文信息
时间上下⽂文信息: 时间信息对⽤用户兴趣的影响表现:
⽤用户兴趣是变化的;
物品是有⽣生命周期的;
季节效应;
包含时间信息的⽤用户⾏行行为数据集,由⼀一系列列三元组组成,(u, i, t),表示⽤用户u在时刻t对物品i产⽣生过⾏行行为。
物品的⽣生存周期和系统的时效性:
物品的平均在线天数:它和物品的流⾏行行程度成正⽐比;
推荐系统的实时性;
推荐系统的的时间多样性;
时间上下⽂文推荐算法: 最近最热⻔门: 物品i在时间T的流⾏行行度
时间上下⽂文相关的ItemCF:
* 原始ItemCF相似度计算公式:
添加时间衰减项:
f(∣tui −tuj∣)时间衰减函数,eg.:
时间上下⽂文相关的UserCF:
原始UserCF相似度计算公式:
将时间信息考虑进去:
其实UserCF和ItemCF都是相似的,都是在计算相似度的时候添加⼀一个时间衰减因⼦子。
地点上下⽂文信息: 基于位置的推荐算法:
LARS(Location Aware Recommend System):
将物品分为两类:有、⽆无空间属性;
⽤用户同样分为两类:有空间属性,没有直接的空间属性的;
⽤用户兴趣和地点相关的两组特征:
兴趣本地化:根据位置不不同聚集的⼈人,具有不不同的兴趣,此处可以提取⼀一些,地点特征,单纯的可以根据经纬度来进⾏行行聚类,可以聚成不不同的组, 然后作为不不同的特征,让模型来进⾏行行选择。
活动本地化:有些⼈人只是在某个范围活动,
推荐资料料:
collaborative filtering with temporal dynamics; Temporal Diversity in Recommender Systems; Evaluating Collaborative Filtering Over Time; http://pages.stern.nyu.edu/~atuzhili/
第六章 利利⽤用社交⽹网络数据:
获取社交⽹网络数据的途径:
电⼦子邮件; ⽤用户注册信息; ⽤用户的位置数据; 论坛和讨论组; 即时聊天⼯工具; 社交⽹网站:
Faceboook:熟⼈人社交,社会图谱; Twitter:陌⽣生⼈人社交,兴趣图谱;
社交⽹网络数据简介:
利利⽤用图来定义社交⽹网络:
G(V , E, w):代表⼀一个社交⽹网络; V :顶点,⽤用户集合;
E :边,⽤用户关系集合;
Facebook:双向确认,⽆无向边连接; Twitter:单向关系,有向边连接;
w:边的权重; out(u):⽤用户u指向(关注)的点集合; in(u):指向⽤用户u的顶点集合(被关注);
社会化推荐的优点和缺点
优点:
好友推荐可以增加推荐的信任度;
社交⽹网络可以解决冷启动问题;
缺点:
不不⼀一定能提⾼高离线精度;
社交群体内不不⼀一定有共同的兴趣
基于社交⽹网络的推荐: 基于领域的社会化推荐算法:
根据社交⽹网络和⽤用户⾏行行为数据集来进⾏行行推荐,社交⽹网络给出⽤用户之间的好友关系。 ⽤用户u对物品i的兴趣:
ni(T) =
∑ 1 (u,i,t)∈Train,t<T 1+α(T−t)
Sim(i,j) = ∑u∈N(i)∩N(j) 1 ∣N(i)∣∣N(j)∣
Sim(i,j)= ∑u∈N(i)∩N(j)f(∣tui −tuj∣) ∣N(i)∣∣N(j)∣
f(∣tui −tuj∣)= 1 1+α∣tui −tuj∣
∣N(u)∩N(v)∣ ∣N (u)∣ ∪ ∣N (v)∣
wuv = ∑1
wuv = i∈N(u)∩N(v) 1+α∣tui−tvi∣ ∣N (u)∣ ∪ ∣N (v)∣
out(u):⽤用户u的好友集合; wuv :⽤用户u和v的相似度;
⽤用户的熟悉度:共同好友的⽐比例例
⽤用户的兴趣相似度:喜欢的物品集合重复度
rvi:⽤用户u喜欢i则为1,否则为0 基于图的社会化推荐算法:
pui = ∑ wuvrvi v∈out(u)
f amiliatiry(u, v) = out(u) ∩ out(v) out(u) ∪ out(u)
familiatiry(u,v)= N(u)∩N(v) N(u) ∪ N(v)
可以将⽤用户之间的关系以及⽤用户是否属于同⼀一个社群,构建在⼀一个途中。
左边是社群,如果两个⽤用户和同⼀一个社群相连,代表他们属于同⼀一个社群。⽤用户之间同样⽤用边相连,代表他们之间的关系。
回应 2020-03-02 08:28
论坛 · · · · · ·
推荐系统相关的书或者学习途径求推荐 | 来自蔷薇姑娘吖 | 1 回应 | 2020-06-18 |
图 2 11 矩阵的内容是不是错了 | 来自Aaron | 1 回应 | 2020-03-09 |
第56页 | 来自Zealot | 2014-08-27 |
当前版本有售 · · · · · ·
购买二手书 · · · · · ·
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
谁读这本书?
二手市场
订阅关于推荐系统实践的评论:
feed: rss 2.0
5 有用 羡辙 2015-04-04
讲得很浅显清楚,很适合感兴趣的门外汉了解一下~(不要再趁亚马逊 kindle 图书促销囤书了!这本书囤了半年了…)
17 有用 风撼斜阳 2013-09-30
适合不了解推荐系统的童鞋看,入门级别。另,俺觉得书里的python代码完全可以去掉......
1 有用 tomsheep 2013-05-21
充分照顾了我的智商
1 有用 Moiren 2013-06-10
之前看到有人用贝叶斯做,结合来看。
2 有用 苏不西 2012-08-02
收获还行,虽然我不懂算法
0 有用 Charlotte 2021-03-01
内容通俗易懂 就是老了些
0 有用 清水濁 2021-02-25
基本的入门书
0 有用 kkkkk 2021-02-17
是本挺不错的推荐算法的科普读物。本以为是讲“推荐系统”的,但是书里其实只有一章讲了相关内容,算是一点小的瑕疵吧
0 有用 fotia 2021-02-16
3小时快速入门推荐系统
0 有用 栗噔噔 2021-02-11
写法像在写论文,先从通识的认知和解决方案切入,再由浅及深描述各类解决策略,的确是优秀的作品,推荐好奇推荐系统实现方式的人看看