RS chap1:好的推荐系统
一、什么是推荐系统
1.个性化推荐系统:从庞大的电影库中找几部符合你兴趣的电影供你选择。
2.推荐系统是帮助用户快速发现有用信息的工具。和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。搜索引擎和推荐系统是两个互补的工具,搜索引擎满足了用户有明确目的时的主动查找需求,而推荐系统能够在用户没有明确目的的时候,帮助他们发现感兴趣的内容。
3.长尾。传统的80/20原则(即80%的销售额来自20%的热门品牌),在互联网的加入下会受到挑战。长尾商品的销售额可能会超过热门商品所带来的销售额。主流商品代表了绝大多数用户的需求,而长尾产品往往代表了一小部分用户的个性化需求。因此如果需要提高销售额,就必须充分研究用户的兴趣。
4.推荐系统通过发掘用户行为,找到用户的个性化需求,从而将长尾神品准确 的推荐给需要他的用户,帮助用户发现他们很感兴趣但是很难发现的商品。
5.推荐算法的本质是通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式推荐系统是自动联系用户和物品的一种工具。下图展示了联系用户和物品的常用方式,比如利用好友、用户的历史兴趣以及用户注册的信息等。
二、个性化推荐系统的应用
1.个性化推荐系统需要依赖用户的行为和数据,一般都是作为一个应用存在于不同的网站中。
2.个性化推荐系统的作用:(1)分析大量用户行为日志,给不同的用户提供不同的个性化页面展示,提高网站的点击率和转化率。
3.推荐系统应用构成:
(1)前台的展示页面
(2)后台日志系统
(3)推荐算法系统
4.电子商务个性化推荐系统的标准用户界面
(1)推荐结果的标题、缩略图以及求他内容属性:告诉用户给他们推荐的是什么
(2)推荐结果的平均分:推荐结果的总体质量,代表了大部分用户对这本的看法
(3)推荐理由。
(4)相关列表推荐。亚马逊相关商品推荐列表有两种,一种是包含购买了这个商品的用户也经常购买的其他商品,另一种是浏览过这个商品的用户也经常购买的其他商品。相关推荐列表最重要的应用就是打包销售(cross selling)。即你在购买某个物品的时候,亚马逊会告诉你其他用户在购买这个商品的同时也会购买其他的几个商品,让你选择是否要同时购买这些商品,如果点击同时购买,如果你点击同时购买,则会把这几件商品同时打包,并且提供一定的折扣,然后卖给你。
5.电影和视频网站。Netflix的电影推荐页面,从中可以看到NetFlix的推荐结果展示页面包含了以下的几个部分。
(1)电影海报和标题
(2)用户反馈模块:包括play(播放),评分和Not Interested(不感兴趣)3中
(3)推荐理由:因为用户曾经喜欢过别的电影
6.个性化推荐的成功应用需要两个条件。
(1)存在信息过载。因为如果用户很容易的从所有物品中找到喜欢的物品,就不需要个性化推荐了。
(2)用户大部分的时候没有明确的需求。因为如果用户有明确的需求,可以直接通过搜索引擎找到感兴趣的物品。
7.音乐推荐有如下特点:
(1)物品空间大。物品数很多,物品空间大
(2)消费每首歌的代价很小
(3)听一首歌耗时很少
(4)物品重用率很高
(5)用户充满激情
(6)上下文相关
(7)次序很重要
(8)很多播放列表资源
(9)不需要用户全神贯注
(10)高度社会化
8.社交网络中的个性化推荐技术主要用在3个方面:
(1)利用用户的社交网络信息对个性化物品推荐
(2)信息流的会话推荐
(3)给用户推荐好友
9.个性化阅读
10.基于位置的服务
11.个性化邮件
12.个性化广告
(1)上下文广告
(2)搜索广告
(3)个性化展示广告
13.推荐系统评测
(1)完整的推荐系统存在3个参与方:用户、物品提供者和提供推荐系统的网站
(2)预测的准确性是推荐系统领域的重要指标
14.推荐系统的试验方法。主要有3中评测效果的实验方法:(1)离线计算;(2)用户调查;(3)在线实验
15.离线实验由以下几个步骤构成:
(1)通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集
(2)将数据集按照一定的规则分成测试集和训练集
(3)在训练集上训练用户兴趣模型,在测试集上进行预测
(4)通过事先定义的离线指标评测算法在测试集上进行预测。
16离线计算的优缺点:
(1)优点:只需要从实际系统日志中提取数据集即可。不需要有对实际系统的控制权,不需要真实用户参与,可以快速直接地计算出来,可以方便快速的测试大量不同的算法。
(2)缺点:无法计算商业上关注的指标;离线实验的指标和商业指标存在差距
17.用户调查。需要一些真实用户,让他们在需要测试的推荐系统中完成一些任务。在他们完成任务时,需要观察和记录他们的行为,并让他们回答一些问题。最后需要分析他们的行为和答案来了解测试系统的性能。
18.用户调查的优缺点。
(1)优点:可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后容易弥补。
(2)缺点:招募测试用户的代价很大,很难组织大规模的测试用户,这会使得测试结果的意义不足。
19.在线实验。
(1)在完成那个离线实验和必要的用户调查之后,可以将推荐系统上线做AB测试,这将和旧的算法进行比较
(2)AB测试是一种常用的在线评测算法的实验方法。
思想:通过一定的规则将用户随机分成几组,对不同组的用户采用不同的算法,然后统计不同组用户的各种不同的评测指标比较不同算法,如可以统计不同组用户的点击率。通过点击率比较不同算法的性能
(3)AB测试的优点:公平获得不同算法实际在线使得性能指标,包括商业上关注的指标。
(4)AB测试的缺点:周期比较长,必须进行长期的实验餐能得到可靠的结果。切分流量是AB测试的关键,不同的层以及控制这些层的团队需要一个统一的地方获得自己的AB测试流量,而不同层之间的流量应该是正交的。
(5)一般而言,一个新的推荐算法最终上线,需要上面的三个实验。
首先。需要通过离线实验证明它在很多离线指标上优于现有的算法
然后。需要通过用户调查确定他的用户满意度不低于现有的算法
最后。通过AB测试确定它在我们关系的指标上优于现有的算法
20.测评指标。
1.用户满意度:只能通过用户调查或者在线实验获得。
(1)用户调查主要通过调查问卷的形式。
(2)在线系统中。用户满意度主要通过一些用户行为的统计得到。
2.预测准确度
(1)预测准确度:度量一个推荐系统或者推荐算法预测用户行为或能力。
(2)在进行预测的时候,需要有一个离线数据集,包含用户历史行为记录,然后将该数据集通过时间分成训练集和测试集。在训练集上建立用户行为和兴趣模型,在测试集上测试该模型,计算预测行为和测试集上实际行为实际行为的重合度来作为预测的准确度
3.预测准确度指标。
(1)评分预测。预测用户对物品评分的行为称为评分预测。如果知道了用户对物品的历史评分,就可以从习得用户的兴趣模型,并预测该用户在将来看到一个他没有评分的物品时,会给这个物品评多少分。
(2)评分预测一般通过均方根误差(RMSE)和平方绝对误差的计算。对于测试集中的一个用户u和一个产品i,令rui是用户u对i的实际评分,而rui0是推荐算法给出的测试评分,那么RMSE的定义为:
(3)MAE采用绝对值计算预测误差,它的定义为:
(4)TopN推荐:网站在推荐服务的时候,一般会给用户一个个性化推荐列表
TopN推荐的预测准确率一般通过准确率/召回率度量的。
R(u)是根据用户在训练集上的行为给用户做出的推荐列表,而T(u)是用户在测试集上的行为列表,那么推荐结果的召回率似是:
推荐结果的准确率是:
3.覆盖率。描述一个推荐系统对物品长尾的发掘能力。
(1)覆盖率定义:推荐系统能够推荐出来的物品占总物品集合的比例。
系统的用户集合为U,推荐系统会给每个用户推荐一个长度为N的物品列表R(u)
(2)一个好的推荐系统不仅需要有比较高的用户满意度,也要有较高的覆盖率
4.多样性.
5.新颖性
6.惊喜度
7.信任度
8.实时性
9.健壮性
10.商业目标
RS chap1:好的推荐系统的更多相关文章
- 【RS】Collaborative Memory Network for Recommendation Systems - 基于协同记忆网络的推荐系统
[论文标题]Collaborative Memory Network for Recommendation Systems (SIGIR'18) [论文作者]—Travis Ebesu (San ...
- 【RS】CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Collaborative Filtering-CoupledCF:在推荐系统深度协作过滤中学习显式和隐式的用户物品耦合
[论文标题]CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Colla ...
- 【RS】Matrix Factorization Techniques for Recommender Systems - 推荐系统的矩阵分解技术
[论文标题]Matrix Factorization Techniques for Recommender Systems(2009,Published by the IEEE Computer So ...
- 【RS】Improving Implicit Recommender Systems with View Data - 使用浏览数据提升隐式推荐系统
[论文标题]Improving Implicit Recommender Systems with View Data(IJCAI 18) [论文作者]Jingtao Ding , Guanghui ...
- 明尼苏达推荐系统导论(第一课 欢迎来到RS)
一.RS介绍 1.显示评分:直接从用户来 隐式评分:从用户活动推测得到的 2.预测是偏好的估计,是预测缺失值,推荐是从其他用户推荐项目,是推荐感兴趣的项目. 3.协同表示利用其它用户的数据 二.欢迎来 ...
- RS:推荐系统中的数据稀疏和冷启动问题
如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题. 冷启动问题主要分为三类: (1) 用户冷启动:如何给新用户做个性化推荐的问题,新用户刚使 ...
- RS:关于数据挖掘中的推荐系统
一.推荐系统概述和常用评价指标 1.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重要性UI>数据>算法,就是推荐系统中 ...
- 【RS】Deep Learning based Recommender System: A Survey and New Perspectives - 基于深度学习的推荐系统:调查与新视角
[论文标题]Deep Learning based Recommender System: A Survey and New Perspectives ( ACM Computing Surveys ...
- 【RS】Wide & Deep Learning for Recommender Systems - 广泛和深度学习的推荐系统
[论文标题]Wide & Deep Learning for Recommender Systems (DLRS'16) [论文作者] Heng-Tze Cheng, Levent Koc, ...
随机推荐
- C++入门经典-例2.17强制类型转换
1:代码如下: // 2.17.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using ...
- 利用Zookeeper实现分布式锁
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- EPPlus生成Excel表格(只支持2007及以上)
主要来源: https://www.cnblogs.com/rumeng/p/3785748.html http://epplus.codeplex.com/ FileInfo newFile = n ...
- 使用stringstream代替sprintf和sscanf
C++里面的字符串格式话 之前一直是用的sprintf和sscanf 比较麻烦的是要申请一个字符数组然后在调用 用stringstream就比较完美 int main(int narg,char** ...
- SparseArray II
SparseArray: SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的类,目的是提高内存效率,其核心是折半查找函数(binar ...
- 鬼知道NOI会不会成为下一个奥数
认真写作文不可能的,这辈子不可能认真写作文的. (月考,期末考,高考即将到达战场,真香警告) 以下应该成为原稿!!! 真.喜欢写感悟,但我感觉我可能把它写的有点商业化,商业化的文章不可能放的,所以我尽 ...
- 第八章 SpringCloud之Feign、Hystrix结合使用
#这个章节主要是针对Hystrix的使用,因为Feign的章节在上一节已经实现了,整个代码也是在上一个章节的基础上修改的 ##################Hystrix一个简单Demo实现#### ...
- Solr安装并导入mysql数据
参考博客:https://blog.csdn.net/u013160017/article/details/81037279 下载地址:https://lucene.apache.org/solr/m ...
- 在 vue 中用 transition 实现轮播效果
概述 今天我接到一个需求:轮播效果.本来我是打算使用 Swiper 实现的,但是想起来貌似 transition 也能实现.于是就试了下,真的可以,还挺简单的,于是就记录下来,供以后开发时参考,相信对 ...
- docker(常见调试技巧):docker打包镜像调试技巧
写Dockerfile可以先不指定CMD.ENTRYPOINT等启动命令,只要拷贝就好了 如下: # Dockerfile for basic-app-client # Build with: # d ...