推荐系统学习笔记——二、推荐系统包含哪些环节
二、推荐系统包含哪些环节
推荐系统要解决的挑战是:怎样从海量的内容中,挑选出用户感兴趣的条目,并且满足系统50MS~300MS的低延迟要求?
- 系统需要在50毫秒~300毫秒内进行返回:
- Netflix要求99%的请求在250毫秒内返回
- 今日头条大概是200毫秒
为了解决这个问题,业界会将推荐服务分为3个环节:召回、排序、调整
1、召回:有两个主要的职责
- 实现巨量的数据降低,比如说亿级别到万级别
- 选取和用户直接相关、间接相关的很粗略的个性化内容
- 使用方法:协同过滤召回、内容相似召回、图算法召回、热门召回、新课召回等等
- 要么是和用户相关,要么是系统强推的条目,比如说热门条目、新的条目
召回的策略很多,几十种、上百种。有时候,一个新的推荐系统的效果往往取决于召回这一步所做的事情。
召回结束之后,得到的数据是成万或者上千的,然后进行下一步排序环节
2、排序:个性化排序,使用的技术是一般是机器学习的二分类算法
- 机器学习的二分类算法,解决二分类问题,eg:某个用户对一个item喜欢还是不喜欢,喜欢是1,不喜欢是0,得出用户对召回结果中的每一个item喜欢的概率是多少,对概率进行排序
- LR:逻辑回归
- GBDT:集成树
- DNN:深度学习算法
- Wide&Deep:谷歌的
- 从大到小进行排序,得出结果的数据是成千、上百。已经是很精细的个性化了
- 排序完成了非常精细的个性化
- 如果数据量没那么大,或者排序算法速度很快,可以绕过召回,直接进入排序阶段
3、调整
- 去重:可能会出现条目重复的情况,因此需要做去重
- 已读过滤,已购过滤:有些是已经看过的、或者已经购买的,不需要再推荐
- 在线过滤:很多召唤算法是天粒度运行的,到了当前时刻有些内容已经下线了
- 热门补足:如果是新用户,召回和排序可能得不到个性化的内容,需要用系统的热门内容进行补全
- 分页提取 :排序的输出可能是成千上百,但是屏幕只能展示几个、几十个,需要进行分页处理,把调整的结果进行缓存,通过分页提取一部分id,一部分物品,作为最终的目标
- 合并内容信息:前面的召回和排序,都是物品的id,需要把标题、图片、价格、分类、标签等等具体内容展示出来