• 什么是推荐系统
  • 个性化推荐系统的应用
    • 电子商务
    • 电影和视频网站
    • 个性化音乐网络电台
    • 社交网络
    • 个性化阅读
    • 基于位置的服务
    • 个性化邮件
    • 个性化广告
  • 推荐系统评测
    • 推荐系统的试验方法

      • 离线实验
      • 用户调查
      • 在线实验
    • 评测指标
      • 用户满意度
      • 预测准确度
      • 覆盖率
      • 多样性
      • 新颖性
      • 惊喜度
      • 信任度
      • 实时性
      • 健壮性
      • 商业目标
      • 总结
    • 评测维度

什么是推荐系统

信息过载:information overload

推荐系统任务

联系用户和信息,一方面帮助用户发现对自己有价值的信息
另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢

推荐系统不需要用户提供明确的需求,通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息

搜索引擎满足了用户有明确目的主动查找需求,而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容

社会化推荐(social recommendation)

让好友给自己推荐物品

基于内容的推荐 (content-based filtering)

分析用户曾经看过的电影找到用户喜欢的演员和导演,然后给用户推荐这些演员或者导演的其他电影

基于协同过滤(collaborative filtering)的推荐

找到和自己历史兴趣相似的一群用户,看看他们最近在看什么电影,那么结果可能比宽泛的热门排行榜更能符合自己的兴趣


个性化推荐系统的应用

电子商务

亚马逊:

个性化推荐列表

基于物品的推荐算法(item-based method)/Facebook的好友关系

相关推荐列表(打包销售(cross selling))

买了这个商品的用户也经常购买的其他商品
浏览过这个商品的用户经常购买的其他商品

电影和视频网站

Netflix/YouTube/Hulu:基于物品的推荐算法

个性化音乐网络电台

Pandora
基于内容(音乐基因工程)
Last.fm
利用用户行为计算歌曲的相似度

个性化推荐的成功应用需要两个条件:

  • 信息过载
  • 用户大部分时候没有特别明确的需求

音乐推荐的特点:

  • 物品空间大
  • 消费每首歌的代价很小
  • 物品种类丰富
  • 听一首歌耗时很少
  • 物品重用率很高
  • 用户充满激情
  • 上下文相关
  • 次序很重要
  • 很多播放列表资源
  • 不需要用户全神贯注
  • 高度社会化

音乐是一种非常适合用来推荐的物品
很多推荐系统都是作为一个应用存在于网站中(亚马逊的商品推荐和Netflix的电影推荐)
音乐推荐可以支持独立的个性化推荐网站(Pandora、Last.fm和豆瓣网络电台)

社交网络

社交网络中的个性化推荐技术主要应用
1.利用用户的社交网络信息对用户进行个性化的物品推荐;
2.信息流的会话推荐;
3.给用户推荐好友。

个性化阅读

Google Reader
用户关注自己感兴趣的人,然后看到所关注用户分享的文章
Zite
收集用户对文章的偏好信息
Digg
根据用户的Digg历史计算用户之间的兴趣相似度,然后给用户推荐和他兴趣相似的用户喜欢的文章

基于位置的服务

位置是一种很重要的上下文信息,基于位置给用户推荐离他近的且他感兴趣的服务,用户就更有可能去消费

个性化邮件

Tapestry
通过分析用户阅读邮件的历史行为和习惯对新邮件进行重新排序,从而提高用户的工作效率

个性化广告

个性化广告投放 狭义个性化推荐
以用户为核心 以广告为核心

广告定向投放(Ad Targeting)

计算广告学

个性化广告投放技术

  • 上下文广告
  • 搜索广告
  • 个性化展示广告

推荐系统评测


好的推荐系统,三方共赢

预测准确度是推荐系统领域的重要指标,准确的预测并不代表好的推荐。对于用户来说,他会觉得这个推荐结果很不新颖。

好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户发现那些他们可能会感兴趣。

推荐系统的试验方法

获得推荐系统指标的方法
离线实验(offline experiment)
用户调查(user study)
在线实验(online experiment)

离线实验

  1. 通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;
  2. 将数据集按照一定的规则分成训练集和测试集;
  3. 在训练集上训练用户兴趣模型,在测试集上进行预测;
  4. 通过事先定义的离线指标评测算法在测试集上的预测结果。
优点 缺点
不需要有对实际系统的控制权 无法计算商业上关心的指标
不需要用户参与实验 离线实验的指标和商业指标存在差距
速度快,可以测试大量算法

用户调查

  1. 用户调查需要有一些真实用户,让他们在需要测试的推荐系统上完成一些任务;
  2. 在他们完成任务时,我们需要观察和记录他们的行为,并让他们回答一些问题;
  3. 我们需要通过分析他们的行为和答案了解测试系统的性能。
优点 缺点
获得很多体现用户主观感受的指标 招募测试用户代价较大
相对在线实验风险很低,出现错误后很容易弥补 设计双盲实验非常困难

在线实验

AB测试是一种很常用的在线评测算法的实验方法AB测试

它通过一定的规则将用户随机分成几组并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法

优点 缺点
公平获得不同算法实际在线时的性能指标 周期比较长
大型网站的AB测试系统的设计也是一项复杂的工程

一个新的推荐算法最终上线,需要完成上面所说的3个实验
  1. 通过离线实验证明它在很多离线指标上优于现有的算法。
  2. 通过用户调查确定它的用户满意度不低于现有的算法。
  3. 通过在线的AB测试确定它在我们关心的指标上优于现有的算法。

评测指标

用户满意度

用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。

用户调查
用户调查获得用户满意度主要是通过调查问卷的形式
在线实验
用户满意度主要通过一些对用户行为的统计得到

预测准确度

预测准确度
度量一个推荐系统或者推荐算法预测用户行为的能力。

这个指标是最重要的推荐系统离线评测指标

不同的研究方向介绍它们的预测准确度指标1.评分预测
评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。对于
测试集中的一个用户uu和物品ii,令ruir_{ui} 是用户uu对物品ii的实际评分,而r^ui\hat{r}_{ui}是推荐算法给出的预测评分,那么RMSE的定义为:

RMSE=∑u,i∈T(rui−r^ui)2−−−−−−−−−−−−−−√|T|

RMSE=\frac{\sqrt{\sum_{u,i{\in}T}{\left(r_{ui} - \hat{r}_{ui}\right)^2}}}{\left|T\right|}
MAE采用绝对值计算预测误差,它的定义为:

MAE=∑u,i∈T|rui−r^ui||T|

MAE=\frac{\sum_{u,i{\in}T}{\left|r_{ui} - \hat{r}_{ui}\right|}}{\left|T\right|}
关于RMSE和MAE这两个指标的优缺点, Netflix认为RMSE加大了对预测不准的用户物品评分的惩罚(平方项的惩罚),因而对系统的评测更加苛刻。研究表明,如果评分系统是基于整数建立的(即用户给的评分都是整数),那么对预测结果取整会降低MAE的误差

2.TopN推荐
是给用户一个个性化的推荐列表
TopN推荐的预测准确率一般通过准确率(precision)/召回率(recall)度量。
令R(u)R\left(u\right)是根据用户在训练集上的行为给用户作出的推荐列表,而T(u)T\left(u\right)是用户在测试集上的行
为列表。那么,推荐结果的召回率定义为:

Recall=∑u∈U|R(u)⋂T(u)|∑u∈U|T(u)|

Recall=\frac{\sum_{u{\in}U}\left|{R\left(u\right){\bigcap}T\left(u\right)}\right|}{\sum_{u{\in}U}\left|{T\left(u\right)}\right|}
推荐结果的准确率定义为:

Precision=∑u∈U|R(u)⋂T(u)|∑u∈U|R(u)|

Precision=\frac{\sum_{u{\in}U}\left|{R\left(u\right){\bigcap}T\left(u\right)}\right|}{\sum_{u{\in}U}\left|{R\left(u\right)}\right|}

覆盖率

最简单的定义

推荐系统能够推荐出来的物品占总物品集合的比例。

假设系统的用户集合为UU,推荐系统给每个用户推荐一个长度为NN的物品列表R(u)R\left(u\right)。

Coverage=|Uu∈UR(u)||I|

Coverage=\frac{\left|U_{u{\in}U}{R\left(u\right)}\right|}{\left|{I}\right|}

通过研究物品在推荐列表中出现次数的分布描述推荐系统挖掘长尾的能力。如果这个分布比较平,那么说明推荐系统的覆盖率较高,而如果这个分布较陡峭,说明推荐系统的覆盖率较低。

信息熵:

H=−∑i=1np(i)logp(i)

H=-\sum_{i=1}^{n}p\left(i\right)logp\left(i\right)
p(i)p\left(i\right)是物品 ii的流行度除以所有物品流行度之和

是基尼系数(Gini Index):

G=1n−1∑j=1n(2j−n−1)p(ij)

G=\frac{1}{n-1}\sum_{j=1}^{n}\left(2j-n-1\right)p\left(i_j\right)
这里, iji_j 是按照物品流行度 p(ij)p\left(i_j\right)从小到大排序的物品列表中第 jj个物品。

多样性

“不在一棵树上吊死”
假设s(i,j)∈[0,1]s\left(i,j\right)\in\left[0,1\right]定义了物品 ii和jj之间的相似度,那么用户 uu的推荐列表R(u)R(u)的多样性定义如下

Diversity=1−∑i,j∈R(u),i≠js(i,j)12|R(u)|(|R(u)|−1)

Diversity=1-\frac{\sum_{i,j{\in}R\left(u\right),i{\neq}j}s\left(i,j\right)}{\frac12\left|R\left(u\right)\right|\left(\left|R\left(u\right)\right|-1\right)}

推荐系统的整体多样性可以定义为所有用户推荐列表多样性的平均值:

Diversity=1|U|∑u∈UDiversity(R(u))

Diversity =\frac1{\left|U\right|}\sum_{u{\in}U}Diversity\left(R\left(u\right)\right)

新颖性

新颖的推荐是指给用户推荐那些他们以前没有听说过的物品

惊喜度

如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高,而推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。

目前并没有什么公认的惊喜度指标定义方式

信任度

两个推荐系统,尽管他们的推荐结果相同,但用户却可能产生不同的反应,这就是因为用户对他们有不同的信任度。

度量推荐系统的信任度只能通过问卷调查的方式

提高推荐系统的信任度主要有两种方法
  • 增加推荐系统的透明度(transparency)
  • 利用用户的好友信息给用户做推荐

实时性

  • 推荐系统需要实时地更新推荐列表来满足用户新的行为变化
  • 推荐系统需要能够将新加入系统的物品推荐给用户

健壮性

指标衡量了一个推荐系统抗击作弊的能力。

提高系统的健壮性
  • 选择健壮性高的算法
  • 设计推荐系统时尽量使用代价比较高的用户行为
  • 在使用数据前,进行攻击检测,从而对数据进行清理

商业目标

最本质的商业目标就是平均一个用户给公司带来的盈利

总结


在给定覆盖率、多样性、新颖性等限制条件下,尽量优化预测准确度。

评测维度

增加评测维度的目的就是知道一个算法在什么情况下性能最好

  • 用户维度:主要包括用户的人口统计学信息、活跃度以及是不是新用户等。
  • 物品为度:包括物品的属性信息、流行度、平均分以及是不是新加入的物品等
  • 时间维度:包括季节,是工作日还是周末,是白天还是晚上等

《推荐系统实践》(一)好的推荐系统相关推荐

  1. 《推荐系统实践》要点思维导图

    推荐系统实践 1 好的推荐系统 1.1 基本任务:联系用户和物品 与分类目录.搜索引擎一样解决信息过载问题. 解决无明确目的的物品需求,并能发掘物品长尾. 1.2 推荐应用 应用于电子商务.视频网站. ...

  2. 达观数据于敬:个性化推荐系统实践

    达观数据于敬:个性化推荐系统实践 在DT(data technology)时代,网上购物.观看视频.聆听音乐.阅读新闻等各个领域无不充斥着各种推荐,个性化推荐已经完全融入人们的日常生活当中.个性化推荐 ...

  3. 【组队学习】【32期】推荐系统-新闻推荐系统实践

    推荐系统-新闻推荐系统实践 航路开辟者:罗如意 领航员:肖桐 航海士:汪志鸿.吴忠强.赖敏材.王辰玥.毛伟.宋禹成.陈雨龙.管柯琴 基本信息 开源内容:https://github.com/dataw ...

  4. 免费公开课报名 | 达观数据个性化推荐系统实践

    在人工智能浪潮之下,个性化推荐技术更是风靡业界,在金融.传媒.短视频.电商.教育等诸多领域大放异彩,影响人们生活的方方面面.不仅方便了人们获取各种各样的信息,还给企业带来了收益的大幅提升. 本次公开课 ...

  5. 京东电商推荐系统实践

    今天为大家分享下京东电商推荐系统实践方面的经验,主要包括: 简介 排序模块 实时更新 召回和首轮排序 实验平台 ▌简介 说到推荐系统,最经典的就是协同过滤,上图是一个协同过滤的例子.协同过滤主要分为俩 ...

  6. 深入浅出之个性化推荐系统实践

    作者:沈燕 ,来自:网易云 大数据在网易内部的应用丰富多彩,在<让机器读懂用户--大数据中的用户画像>一文中,网易工程师对用户画像进行了较为系统的介绍,并提到用户画像的一个重要作用在于个性 ...

  7. 机器学习与推荐系统实践

    https://www.toutiao.com/a6641861834074751495/ 2019-01-02 19:36:05 配套PPT下载,请关注公众号"智能推荐系统",后 ...

  8. 推荐系统实践整体化总结

    这一阵子在找实习,总的情况来看,一点都不理想,做了总结,主要是由于我的理论不够扎实,实践又不多导致的,其实这两者是有一定的联系的,因为实践的不多,所以理论上的提升就非常的有限.最近比较喜欢推荐系统相关 ...

  9. 读书笔记 |《推荐系统实践》- 个性化推荐系统总结

    -- 原创,未经授权,禁止转载 2017.11.15 -- 推荐系统实践 对于推荐系统,本文总结内容,如下图所示: 推荐系统.png 文章很长,你可以跳着看你感兴趣的部分. 一.什么是推荐系统 1. ...

  10. 《推荐系统实践》附上Reference 中的干货 (Paper,Blog等资料的链接)

    <推荐系统实践>这只是一本197页的书,但作者附上了诸多好资料,无论是paper, blog文章,wikipedia词条,数据集还是开源项目等 附上资料链接,格式基本按照'URL+资料名称 ...

最新文章

  1. futuretask java 并发请求_图文并茂理解 Java 多线程
  2. 事件相关去同步 (ERD) 和事件相关同步化 (ERS)在脑电信号研究中的应用
  3. android设置通知在屏幕横幅显示,Android推送通知横幅未显示在某些设备中
  4. caffe学习笔记18-image1000test200数据集分类与检索完整过程
  5. java executebatch_JDBC批量执行executeBatch
  6. java protobuf 例子_java使用protobuf例子
  7. Pytorch中的 torch.Tensor() 和 torch.tensor() 的区别
  8. [css] 你对响应式设计的理解是什么?知道它基本的原理是吗?要想兼容低版本的IE怎么做呢?
  9. 无人驾驶(大安全概念)
  10. c++语言偶数分离,在C++的链表中分离偶数和奇数节点
  11. cpython是什么_CPython是什么?PyPy是什么?Python和这两个东西有什么关系?
  12. 如果你想提高创新,那么本书就是答案
  13. Java--基础命名空间
  14. 基于STM32f407的TSL2561模块的使用
  15. 《30天自制操作系统》学习笔记--番外篇之Mac环境下的工具介绍
  16. C4996 scanf:This function or variable may be unsafe. / C6031 返回值被忽略.
  17. 张柏芝、谢霆锋、陈冠希近半年行踪关系图,这个图很厉害,可以作为思维导图的工具...
  18. 什么是RS485总线?怎么使用RS485总线?一文了解清楚
  19. 使用python画函数图像
  20. OpenCV的cv::cvtColor()

热门文章

  1. c语言中关键字的分类,C语言关键字分类整理
  2. 万圣节字体来啦!6款风格奇幻的中文字体免费下载
  3. 奥本海姆信号与系统(第二版)笔记
  4. InnoDB存储引擎关键特性
  5. 51单片机c语言xdata,新概念51单片机c语言教程ppt
  6. Cisco Packet Tracer安装教程
  7. Oracle设置主键自增
  8. Java Web学习视频
  9. VS2010 VB.net安装包生成过程
  10. Unity 3D 游戏开发学习资料集合(开发必备)