架构
模型训练层
服务层
推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定权重或者优先级合并、排序然后返回。
召回:初始推荐结果
推荐引擎的构建来源于不同的数据源(也就是用户的特征有很多种类,例如统计的、行为的、主题的)+不同的推荐模型算法,推荐引擎的架构可以试多样化的(实时推荐的+离线推荐的),然后融合推荐结果(人工规则+模型结果),融合方式多样的,有线性加权的或者切换式的等
多个引擎一般也称为多路召回:
- 新鲜度召回
- 热度召回
- 质量分召回
- 个性化
- 基于用户CF召回
- 基于itemCF召回
随机提取,每路召回1000个item。10路就10000 item。
优点:
- 支持多种模型,以及自定义模型
- 可以方便地增加/删除引擎,控制不同引擎对推荐结果的影响。对于绝大多数需求,只需要通过不同的引擎组合实现。
- 可以实现推荐引擎级别的用户反馈
粗排
精排
通常采用LR模型,或者LR的变种。
最上层线上推荐服务、中层各个推荐数据召回集(数据主题、分类池子)、底层各种推荐模型。
推荐系统有哪些坑? | 知乎
将“推荐”理解为“推送
高估算法作用
- 推荐系统中,按照影响效果:用户交互界面(UI) > 数据 > 算法。
技术点、难点、瓶颈
- online/offline
- streaming 推荐,比如滑来滑去小视频
参考
- 《推荐系统实践》 项亮
- QQ大数据推荐系统的架构演进
- 推荐系统的架构