ML方向初步计划学习下推荐系统,感谢灵哥和宇哥推荐的书——《推荐系统实践》,书一到手,迫不及待的就把第一章看完了,感觉确实很有意思,值得投入去学习。本书并没有打算写成handbook式的巨著或者事无巨细的基础教材,内容相对琐碎松散,当然,这应该是由于领域特点所限,因此,自己打算在学习之余,抽时间将所学内容进行整理总结,做成阅读笔记,也方便自己以后查阅补充。
——题记


一、推荐系统简介

1. 为何要用推荐系统

核心是面对信息过载问题,解决方案由分类目录(Yahoo)到搜索引擎(Google),由于以下两个优点,又到了推荐系统,当然推荐系统并没有取代搜索引擎,两者可以互补使用。
(1)推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容
(2)推荐系统可以更好地发掘物品的长尾

2. 推荐系统是什么

推荐系统的基本任务是联系用户与物品(可供用户消费的东西的统称),解决信息过载的问题。推荐算法的本质是通过一定的方式将用户与物品联系起来,大致有三种方式:
(1)社会化推荐
(2)基于内容的推荐
(3)基于协同过滤的推荐

二、应用领域

几乎所有的推荐系统应用都是由以下三部分组成:
- 前台的展示页面
- 后台的日志系统
- 推荐算法系统
广泛应用个性化推荐系统的领域
(1)电子商务 —— Amazon
个性化推荐列表;相关推荐列表(打包销售)
(2)电影和视频网站 —— Netflix
(3)个性化音乐网络电台 —— Pandora 豆瓣
注意音乐推荐具有很多特殊点
(4)社交网络 —— Facebook
Facebook有个推荐API
(5)个性化阅读 —— GoogleReader Zite
(6)基于位置的服务
位置是一种很重要的上下文信息
(7)个性化邮件 —— Tapestry
(8)个性化广告 —— Facebook
广告定向投放是很多互联网公司的核心技术

三、评测方式

1. 推荐系统参与方

(1)用户
(2)物品
(3)提供推荐系统的网站

2. 推荐系统试验方法 —— 评测推荐效果

一般来说,一个新的推荐算法最终上线,需要依次完成下述试验:
(1)通过离线实验证明其在很多离线指标上优于现有算法
(2)通过用户调查确定其用户满意度不低于现有算法
(3)通过在线AB测试确定其在我们关心的指标上优于现有算法

2.1 离线实验

(1)特点:通过日志系统获取用户行为数据集即可
(2)优点: 不需要真实用户参与,只要有一个从实际系统日志中提取的数据集即可,计算迅速
(3)缺点: 适合评测“预测准确度”,对很多商业上关注的指标“用户满意度”“点击率”“转化率”等无法获得

2.2 用户调查

(1)特点:在做用户调查时,一方面要控制成本,另一方面又要保证结果的统计意义
(2)优点:可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误容易弥补
(3)缺点:组织大规模测试难,致使测试结果统计意义不足;设计双盲实验困难,测试环境和真实环境下用户行为差异,导致测试环境下收集的测试指标可能在真实环境中难以复现

2.3 在线实验

(1)特点:AB测试是一种很常见的在线评测算法的试验方法。AB测试中流量切分至关重要,不同层以及控制这些层的团队需要从一个统一的地方获得自己AB测试的流量,不同层之间的流量应该是正交的。
(2)优点:可以公平获得不同算法实际在线时的性能指标
(3)缺点:周期比较长,必须进行长期的实验才能得到可靠的结果

3. 推荐系统评测指标

3.1 用户满意度

(1)最重要指标
(2)只能用户调查(首要)或者在线实验(通过用户行为统计,例如点击率、用户停留时间和转化率等)获得

3.2 预测准确度

(1)最重要的离线评测指标
(2)离线试验和问卷调查都可
(3)评分评测系统 —— RMSE 或 MAE


RMSE标准更加严苛。如果评分系统是基于整数建立的(即用户给的评分都是整数),那么对预测结果取整会降低MAE的误差。
(4)TopN推荐系统 —— 准确率 或 召回率


(5)选择评分评测还是TopN主要看推荐网站的内容。

3.3 覆盖率

(1)覆盖率描述一个推荐系统对物品长尾的发掘能力。三种方式都可实现。是内容提供商比较关心的指标可以通过研究物品在推荐列表中出现次数的分布描述推荐系统发掘长尾的能力
(2)可以通过研究物品在推荐列表中出现次数的分布描述推荐系统发掘长尾的能力,可以用信息熵和基尼系数两个指标衡量


其中,p(i)是物品i的流行度比上所有物品的流行度之和(关于流行度的计算公式尚未出现);i_j是按照物品流行度p()由小到大排序后的物流表中的第j个物品
(3)现在主流的推荐算法都具有马太效应,推荐系统的初衷是要消除马太效应的。
评测推荐系统是否具有马太效应的简单方法就是使用基尼系数,如果G1是从初始用户行为中计算出的物品流行度的基尼系数,G2是从推荐列表中计算出的物品流行度的基尼系数,那么当G2>G1时,就说明推荐算法具有马太效应。

3.4 多样性

(1)多样性描述了推荐列表中物品两两之间的不相似性,主要靠问卷调查获取
(2)推荐系统的整体多样性可以定义为所有用户推荐列表多样性的平均值,即

,其中用户u在推荐列表R(u)下的多样性为

其中,s(i,j)定义了物品i与j之间的相似度。

3.5 新颖性

(1)新颖的推荐是指给用户推荐那些他们之前没有听说过的物品,主要靠问卷调查获取
(2)最简单的实现方式,即吧那些用户之前在网站中对其有过行为的物品从推荐列表中过滤掉
(3)如果推荐结果中物品的平均热门程度较低,则推荐结果可具有较高的新颖性。

3.6 惊喜性

注意与新颖性进行区别,尚没有公认的定义指标,只能通过问卷调查获取

3.7 信任性

(1)只能通过问卷调查得到
(2)提高推荐系统的信任度主要在于需要增加推荐系统的透明度,即提供对推荐系统的解释,让用户明白其运行机制
考虑用户的社交网络信息,利用好友信息进行推荐,利用好友进行解释等

3.8 实时性

(1)推荐系统需要实时地更新推荐列表来满足用户新的行为变化 —— 通过推荐列表的变化速率来评测
(2)推荐系统需要能够将新加入系统的物品推荐给用户 —— 利用用户推荐列表中多大比例的物品是当天新加入的来评测

3.9 健壮性

(1)健壮性衡量一个推荐系统抗击作弊(人为攻击)的能力
(2)评测主要利用模拟攻击
(3)可以通过以下手段提高系统健壮性:
设计推荐系统时尽量使用代价比较高的用户行为,例如将浏览行为换为购买行为
在使用数据前,进行攻击测试,从而对数据进行清理

3.10 商业目标

与网站的盈利模式相关

3.11 总结

(1)对于离线优化来说,一般在给定覆盖率、多样性、新颖性等约束条件下,优化预测准确度。
(2)为了充分了解一个算法的性能,应该在多个维度上进行评测:
用户维度:主要包括用户的人口统计信息、活跃度以及是不是新用户等
物品维度:包括物品的属性信息、流行度、平均分以及时不时新加入的物品等
时间维度:包括季节、是工作日还是周末,是白天还是晚上等

推荐系统(一) —— 好的推荐系统相关推荐

  1. python推荐系统-基于Python的推荐系统的设计与实现

    张玉叶 摘  要: 大数据时代的推荐系统可以帮助用户从海量信息中高效地获取自己的潜在需求,是大数据在互联网领域的典型应用.文章介绍了利用Python语言实现的一个基于物品的协同过滤算法推荐系统,给出了 ...

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

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

  3. 【推荐系统】深入理解推荐系统:排序

    写在前面 [推荐系统]专栏历史文章: 深入理解推荐系统:召回 深入理解YouTube推荐系统算法 作为[推荐系统]系列文章的第三篇,将以"排序"作为今天的主角,会从四个方面来介绍推 ...

  4. 推荐系统(一)推荐系统整体概览

    推荐系统(一)推荐系统整体概览 前记: 自工作后,由于工作日的搬砖劳累,每每周末就在做饭.吃饭.在公司内部度课堂上学习各位前辈高人留下的优秀资料(但我还是很菜,哈哈哈),睡觉.加班(大多数周末)中度过 ...

  5. 毕业设计 - 题目:推荐系统构建和应用 推荐系统

    文章目录 0 前言 1 什么是推荐系统 2 毕业设计 - 能做哪些推荐系统? 2.1 电商推荐系统 2.3 电影推荐系统 2.4 音乐推荐系统 2.5 就业推荐系统 2.6 图书推荐系统 2.7 小说 ...

  6. 混合推荐系统就是多个推荐系统“大杂烩”吗?

    作者丨gongyouliu 编辑丨zandy [导读]在本篇文章中,我们会介绍混合推荐系统(Hybrid Recommender Systems),就是利用多种推荐算法配合起来做推荐,期望避免单个推荐 ...

  7. 【推荐系统】深入理解推荐系统:无需人工特征工程的xDeepFM

    [推荐系统]专栏历史部分文章: 深入理解推荐系统:召回 深入理解推荐系统:排序 深入理解推荐系统:Fairness.Bias和Debias 深入理解推荐系统:推荐系统中的attention机制 深入理 ...

  8. 推荐系统炼丹笔记:推荐系统Bias/Debias大全

    作者:一元 公众号:炼丹笔记 背景 在实践中,做推荐系统的很多朋友思考的问题是如何对数据进行挖掘,大多数论文致力于开发机器学习模型来更好地拟合用户行为数据.然而,用户行为数据是观察性的,而不是实验性的 ...

  9. movielens推荐系统_浅谈推荐系统+3个小时上手python实现(完整代码)

    已经9012年了应该也不需要我解释什么是推荐系统,大致就像头图一样,挖掘用户的喜好,精准的推送给用户ta想要的东西!推荐系统可以说是无处不在了,电商的猜你喜欢,浏览器右侧的推送消息,包括搜索结果的排序 ...

  10. 推荐系统读书笔记(推荐系统实战)

    随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载的时代.在这个时代,无论是信息消费者还是信息生产者都遇到很大的挑战:对于消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情: ...

最新文章

  1. [翻译svg教程]svg中的circle元素
  2. 创建vue项目(一)搭建vue-cli、项目文件介绍、简单配置
  3. 读《程序是怎样跑起来的》第三章有感
  4. HDU 3081Marriage Match II(二分法+并检查集合+网络流量的最大流量)
  5. python编程入门第3版pdf-Python编程入门第3版PDF电子书免费下载
  6. 鸿蒙应用开发 | 时间选择器(TimePicker)的功能和用法
  7. python常用文件操作和解析xml文件
  8. 声音莫名从扬声器切换到听筒_扬声器听筒的切换
  9. java那块最难_Java哪块最难学?
  10. 天道酬勤,奋斗不止!
  11. 2023年品牌营销趋势是什么?如何提升品牌知名度
  12. java 读取excel表格_Java读取excel表格(原理+实现)
  13. 以Java工程师为例,技术面试应该怎么准备?
  14. redisflush操作
  15. caret包介绍学习之train函数介绍
  16. 计算机关机时出现计划,电脑计划任务自动关机
  17. Tornado笔记——用Tornado搭建假单统计考勤系统(九)
  18. 小程序没有unionid如何与App打通用户体系
  19. JavaScript基础——第三章,JavaScript操作DOM对象
  20. 设置html的table高度100%

热门文章

  1. hbase集群之间数据迁移_HBase不同集群间数据迁移
  2. component:(resolve) => require
  3. python etree库_python 标准库之xml.etree.ElementTree
  4. SLA(服务等级协议)
  5. 长春吉林大学计算机系奖状,校工会慰问五一劳动奖章、奖状以及巾帼标兵岗获奖个人和集体...
  6. 利用语音通讯接口开发语音会议系统指南
  7. 新高考计算机科学,2018年高考热门专业:计算机科学与技术
  8. 3ds无线传输连接服务器失败,3ds连不上wifi怎么办? 3ds连接wifi的方法
  9. 《javascript高级程序设计》第六章 读书笔记 之 javascript继承的6种方法
  10. 未来几年人工智能会迎来哪些激动人心的改变