10分钟入门推荐系统,这份有实战、有代码的资料火了!

2019 年 6 月 6 日 七月在线实验室

如今推荐系统已经火爆到了什么程度?

几乎每个人手机中都至少有1款以推荐系统为核心的APP。

头条、抖音、知乎、淘宝等……

只要愿意去想,我估计在说出来20-30个顶级品牌也都不是问题。

为了帮助大家了解推荐系统。小七特意把《推荐系统实战》第一课的ppt呈现给大家。


推荐系统简介


一、what


  • 分类录(1990s):覆盖少量热门站。例:Hao123 Yahoo

  • 搜索引擎(2000s):通过搜索词明确需求。例:Google Baidu

  • 推荐系统(2010s):不需要用户提供明确的需求,通过分析用户的历史⾏为给用户的兴趣进⾏建模,主动给用户推荐能够满⾜他们兴趣和需求的信息

搜索vs推荐:


二、wht


1.推荐系统存在的前提:

  • 信息过载

  • 户需求不明确

2.推荐系统的标:

  • 效连接户和物品,发现长尾商品

  • 留住户和内容生产者,实现商业


推荐系统评估


一、整体流程和常见指标


1.用户:满足需求、扩展视野、获得快乐。

2.内容提供方:获得长尾流量、获得认可和互动、收益。

3.网站:留住用户、实现商业目标。

4.常见评估指标:

准确性、满意度、覆盖率、多样性、新颖性、惊喜度、信任度、实时性、鲁棒性、可拓展性、商业目标、用户留存。


二、如何获得用户反馈


Explicit vs Implicit:


三、指标举例


1.准确性(学术界)

  • 评分预测:

  • topN推荐:


2.准确性(工业界):

3.覆盖度:


  • 覆盖率:

  • 信息熵:

  • 基尼系数:

  • 分层流量占比:

4.多样性:推荐列表中两两物品的不相似性。

5.新颖性:未曾关注的类别、作者;推荐结果的平均流⾏度。

6.惊喜性:历史不相似(惊),但很满意(喜)。

实现4、5、6这三点时玩玩会牺牲准确性。


四、如何平衡准确性和精准性


1.Exploitation & Exploration

  • Exploitation:选择现在可能最佳的⽅案。

  • Exploration:选择现在不确定的⼀些⽅案,但未来可能会有⾼收益的方案。

  • 总结:在做两类决策的过程中,不断更新对所有决策的不确定性的认知,优化长期的⽬标函数。

  • Multi-armed bandit problem:


2.Bandit算法

a.原理:

Epsilon-Greedy:以1-epsilon的概率选取当前收益最大的臂, 以epsilon的概率随机选取一个臂。 

Upper Confidence Bound:均值越大,标准差越小,被选中的概率会越来越大。

Thompson Sampling:每个臂维护一个beta(wins, lose)分布,每次用现有的beta分布产生一个随机数,选择随机数最大的臂。


b.实现:


c.效果:

d.应用:兴趣探索、冷启动探索。

LinUCB:加入特征信息。用User和Item的特征预估回报及其置信区间,选择置信区间上界最⼤的Item推荐,观察回报后更新线性关系的参数,以此达到试验学习的目的。


COFIBA:bandit结合协同过滤。

  • 基于⽤户聚类挑选最佳的Item(相似⽤户集体决策的Bandit)。

  • 基于⽤户的反馈情况调整User和Item的聚类(协同过滤部分)。


3.EE实践

  • 兴趣扩展:相似话题,搭配推荐。

  • ⼈群算法:userCF、用户聚类。

  • Bandit算法。

  • graph walking。

  • 平衡个性化推荐和热门推荐比例。

  • 随机丢弃用户行为历史。

  • 随机扰动模型参数。


4.眼前的苟且&远方的田野

  • 探索伤害用户体验,可能导致⽤户流失。

  • 探索带来的长期收益(留存率)评估周期长,KPI压力大。

  • 如何平衡实时兴趣和长期兴趣?

  • 如何平衡短期产品体验和长期系统生态?

  • 如何平衡大众口味和小众需求?

  • 如何避免劣币趋势良币?


评估方法


一、问卷调查

问题:成本高。


二、离线评估

问题:只能在用户看到过的候选集上做评估,和线上真实效果有偏差、只能评估少数指标。

特点:速度快,不损害用户体验。


三、在线评估

A/B testing。


四、实践

离线评估和在线评估相结合,定期做问卷调查。


五、AB testing

1.单层实验:以某种分流的方法(随机、uid%100),给每个实验组分配⼀定的流量。每个实验组配置不同的实验参数。

2.问题:

  • 只能支持少量实验,不利于迭代。

  • 实验之间不独立,策略之间可能相互影响。

  • 分流方式不灵活。


六、多层重叠实验架构

1.特点:保留单层实验框架易用、快速的优点的同时,增加可扩展性、灵活性、健壮性。

2.核心思路:将参数划分到N个⼦集,每个子集都关联⼀个实验层,每个请求会被N个实验处理,同一个参数不能出现在多个层中。

3.问题:

  • 分配函数(流量在每层被打散的⽅法)如何设计?

  • 如何保证每层流量分配的均匀性和正交性?

  • 如何处理实验样本的过滤(eg只选取某个地区的用户、只选取新用户)?

  • 分配多⼤的流量可以使实验置信?


解决冷启动问题


一、冷启动


1.用户冷启动:如何为新用户做个性化推荐。

2.物品冷启动:如何将新物品推荐给用户(协同过滤)。

3.系统冷启动:用户冷启动+物品冷启动。

3.本质:推荐系统依赖历史数据,没有历史数据⽆法预测用户偏好。


二、用户冷启动:


1.收集用户特征:

  • 用户注册信息:性别、年龄、地域。

  • 设备信息:定位、手机型号、app列表。

  • 社交信息:推广素材、安装来源。


2.制造粗粒度选项,吸引用户填兴趣


3.transfer learning:使用其它站点的行为数据。如腾讯视频&QQ音乐,今日头条&抖音。

4.新老用户推荐策略的差异

  • 新⽤户在冷启动阶段更倾向于热门排⾏榜,⽼⽤户会更加需要长尾推荐。

  • 推荐候选的代表性&多样性。

  • Explore Exploit⼒度。

  • 使⽤单独的特征和模型预估。

  • 保护⽤户体验(物品冷启动探索、⼴告、推送)。


三、物品冷启动


  • 物品冷启动时会遇到哪些问题?

  • 如何做物品冷启动推荐?和⽤户冷启动策略有哪些异同?

  • 如何评估物品冷启动推荐的质量及带来的收益?

  • 实验传统的ab testing⽅法是否能够验证冷启动优化效果?


推荐系统架构


一、Netflix,2013



二、Taobao,2015



三、YouTube,2016



四、推荐系统的发展


1.发展阶段:

  • 1.0:关联规则、热门推荐等统计⽅法。

  • 2.0:矩阵分解等ML⽅法,离线计算推荐列表。

  • 3.0:召回 + learning to rank重排序。

  • 4.0:召回&排序实时化。

  • 5.0:end2end深度学习,⼀切皆embedding。

  • 6.0:智能化推荐系统。


2.发展趋势:


3.架构:

五、学术界和工业界之间的差别

《推荐系统实战》第一节课的ppt已经分享完毕了,感兴趣的话可以文末点击阅读原文,进行免费试听哦。


明天就是端午节了,小七提前祝大家端午安康,趁老板不在偷偷给大家发个福利。

现在可以点我,按规则留言,就有机会拿到李航博士的大作《统计学习方法》第2期

就业班来了

依据个人情况定制化教学

名企面试官亲自辅导面试

让你“薪”满意足


悄悄告诉大家

现在扫码咨询有神秘优惠哦


面试想拿offer?你需要知道这2个必考项!(文末送书)

数学差,连机器学习都做不了吗?(文末送课送电影票!)

阅读原文我们一起进步!
你在看吗?
登录查看更多
5

相关内容

推荐系统,是指根据用户的习惯、偏好或兴趣,从不断到来的大规模信息中识别满足用户兴趣的信息的过程。推荐推荐任务中的信息往往称为物品(Item)。根据具体应用背景的不同,这些物品可以是新闻、电影、音乐、广告、商品等各种对象。推荐系统利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品。这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的消费者不断流失。为了解决这些问题,个性化推荐系统应运而生。个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
专知会员服务
87+阅读 · 2020年1月20日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
【推荐系统/计算广告/机器学习/CTR预估资料汇总】
专知会员服务
87+阅读 · 2019年10月21日
我的推荐系统入门经验~
大数据技术
39+阅读 · 2019年9月19日
推荐系统(一):推荐系统基础
菜鸟的机器学习
25+阅读 · 2019年9月2日
一文简单理解“推荐系统”原理及架构
51CTO博客
8+阅读 · 2018年10月31日
一文教你构建图书推荐系统【附代码】
机器学习算法与Python学习
10+阅读 · 2018年9月16日
【推荐系统】一文读懂推荐系统知识体系
产业智能官
42+阅读 · 2017年10月31日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Parsimonious Bayesian deep networks
Arxiv
5+阅读 · 2018年10月17日
Arxiv
6+阅读 · 2018年5月18日
Arxiv
14+阅读 · 2018年4月18日
Arxiv
9+阅读 · 2018年3月23日
VIP会员
相关VIP内容
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
专知会员服务
87+阅读 · 2020年1月20日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
【推荐系统/计算广告/机器学习/CTR预估资料汇总】
专知会员服务
87+阅读 · 2019年10月21日
相关资讯
我的推荐系统入门经验~
大数据技术
39+阅读 · 2019年9月19日
推荐系统(一):推荐系统基础
菜鸟的机器学习
25+阅读 · 2019年9月2日
一文简单理解“推荐系统”原理及架构
51CTO博客
8+阅读 · 2018年10月31日
一文教你构建图书推荐系统【附代码】
机器学习算法与Python学习
10+阅读 · 2018年9月16日
【推荐系统】一文读懂推荐系统知识体系
产业智能官
42+阅读 · 2017年10月31日
Top
微信扫码咨询专知VIP会员