什么是推荐系统

  • 推荐系统是一种信息过滤系统,根据用户的历史行为、社交关系、兴趣点

  • 算法可以判断用户当前感兴趣的物品或内容。你也可以将它理解为一家只为你而开的商店。店铺里摆放的都是你需要的,或者适合你的商品。

  • 亚马逊CEO贝索斯说:如果我们有100万用户,我们将给他们100万个亚马逊网站

机器如何找到这些适合你的商品呢?

  1. Content-based Filtering

  2. 最早人们使用的是基于内容的推荐方法,根据物品的属性为他们打上标签

  3. 再通过这些标签计算他们之间的相似度

  4. Collaborative Filtering

  5. 协同过滤就是通过数据找到与你相似的用户,通过他们的行为和他们喜欢的内容。为你推荐你可能感兴趣的物品或内容

  6. 日常生活中,我们也会找到兴趣相同的朋友来帮我们推荐电影或者音乐

Using data to solve problems

在推荐系统中,Using data重在“相似度”,Solve problems在于“推荐”

Thinking:data可以是物品本身的,也可以是基于用户行为的

物品本身:Content-based 基于物品本身的内容,而不是用户购买/浏览物品的行为

用户行为: 显性反馈数据:用户明确表示对物品的喜欢行为:评分,喜欢,收藏,购买

隐性反馈数据:不能明确反映用户喜好的行为:浏览,停留时间,点击

协同过滤的思想:利用用户的“集体智慧”

1.如何评判“相似”

User-based,两个人共同喜欢的东西越多,那么两个人就越相似

Item-based,两个物品共同喜欢的人越多,这两个物品就越相似

2.如何进行“推荐”

UserCF,和你兴趣相投的用户,推荐他们喜欢的商品 ItemCF,给用户推荐那些和他们之前喜欢的物品相似的物品

ItemCF不利用物品的内容属性计算物品之间的相似度,主要通过分析用户的行为记录计算物品之间的相似度

推荐系统的冷启动问题

当没有大量的数据时候就面临着冷启动的问题

  • 用户冷启动:新用户来的时候,如何推荐

  • 物品冷启动:新的物品,如何推荐

  • 系统冷启动:新的网站上线,如何推荐

Exploit & Explore(利用与探索)

优点 不足
Exploit 充分利用已有的资源 信息茧房 (信息圈养)
Explore 认知未知的世界,开疆辟土 准确率低

选餐厅:

Exploitation : 去最喜欢的餐厅

Exploration: 尝试新餐厅

浏览内容:

Exploitation: 展示以往感兴趣的内容

Exploration: 展示多样性的内容

在线广告:

Exploitation: 展示最好的广告

Exploration: 展示些不同的广告

多臂老虎机问题MAB(Multi-armed bandit problem)

背景:一家赌场里有多台老虎机(K台),每次摇动都可能获得一定金额的奖励,或者遗憾(regret)

目标:你需要通过选择不同的老虎机臂,最大化自己的利益

在线广告:如何进行广告投放,收益最大化?

对于固定流量来说,Exploit的这部分流量显然会产生收益,而Explore不一定能立刻就有收益。所以,如何分配E&E流量才能最大化收益呢

冷启动问题:对于新用户时,如何通过若干次实验,猜出用户的大致兴趣? 如果用户对推荐的某个Topic感兴趣,就代表获得了收益。否则就表示遗憾

“选择-观察-更新-选择”的循环,将收益最大化

推荐系统的目标定义

通过Exploit & Explore会给推荐系统带来惊喜度

惊喜度只是推荐系统的目标之一,从评测指标来看包括了:用户满意度、预测精准度、覆盖率、多样性、新颖性、惊喜度、实时性、内容时效性、内容资料和商业目标。

目标很多,我们到底要选择哪个作为指标

不同场景,需求不同

  • 首页推荐

  • 热门推荐

  • 搜索之后推荐

  • 购买之后的推荐

  • 关了某一个用户之后的推荐

该如何设计推荐系统的架构

不同的推荐引擎 -> 初始推荐结果->过滤、排名和推荐解释->推荐结果

Using data to solve problem

推荐系统是一种信息过滤系统

  • 数据源:item特征,用户画像,用户行为
  • 召回阶段:粗筛,得到候选物品集
  • 排序阶段:对多个召回通道的内容进行打分排序,选出最优的少量结果。兼顾推荐系统的多维度指标:覆盖率,多样性,新颖度。

推荐系统架构

总结

  • 推荐系统是一种信息过滤系统 => 千人千面
  • 基于内容的推荐,与基于协同过滤的推荐的区别 => 是否利用用户行为(ItemCF, UserCF)
  • 冷启动问题 和 EE问题是推荐系统常见问题
  • EE问题的目标是带来更多收益(累积收益最大化),比如AlphaGo
  • 推荐系统的目标有很多,需要根据场景来定
  • 一切源于需求

原创文章,转载请注明出处:http://michaelblog.cn/article/4/