推荐系统学习笔记——二、推荐系统包含哪些环节

二、推荐系统包含哪些环节

推荐系统要解决的挑战是:怎样从海量的内容中,挑选出用户感兴趣的条目,并且满足系统50MS~300MS的低延迟要求?

  • 系统需要在50毫秒~300毫秒内进行返回:
    • Netflix要求99%的请求在250毫秒内返回
    • 今日头条大概是200毫秒

为了解决这个问题,业界会将推荐服务分为3个环节:召回、排序、调整
推荐系统学习笔记——二、推荐系统包含哪些环节

1、召回:有两个主要的职责

  • 实现巨量的数据降低,比如说亿级别到万级别
  • 选取和用户直接相关、间接相关的很粗略的个性化内容
    • 使用方法:协同过滤召回、内容相似召回、图算法召回、热门召回、新课召回等等
    • 要么是和用户相关,要么是系统强推的条目,比如说热门条目、新的条目

召回的策略很多,几十种、上百种。有时候,一个新的推荐系统的效果往往取决于召回这一步所做的事情。

召回结束之后,得到的数据是成万或者上千的,然后进行下一步排序环节

2、排序:个性化排序,使用的技术是一般是机器学习的二分类算法

  • 机器学习的二分类算法,解决二分类问题,eg:某个用户对一个item喜欢还是不喜欢,喜欢是1,不喜欢是0,得出用户对召回结果中的每一个item喜欢的概率是多少,对概率进行排序
    • LR:逻辑回归
    • GBDT:集成树
    • DNN:深度学习算法
    • Wide&Deep:谷歌的
  • 从大到小进行排序,得出结果的数据是成千、上百。已经是很精细的个性化了
  • 排序完成了非常精细的个性化
  • 如果数据量没那么大,或者排序算法速度很快,可以绕过召回,直接进入排序阶段

3、调整

  • 去重:可能会出现条目重复的情况,因此需要做去重
  • 已读过滤已购过滤:有些是已经看过的、或者已经购买的,不需要再推荐
  • 在线过滤:很多召唤算法是天粒度运行的,到了当前时刻有些内容已经下线了
  • 热门补足:如果是新用户,召回和排序可能得不到个性化的内容,需要用系统的热门内容进行补全
  • 分页提取 :排序的输出可能是成千上百,但是屏幕只能展示几个、几十个,需要进行分页处理,把调整的结果进行缓存,通过分页提取一部分id,一部分物品,作为最终的目标
  • 合并内容信息:前面的召回和排序,都是物品的id,需要把标题、图片、价格、分类、标签等等具体内容展示出来