互联网的增长引擎——推荐系统
【思维导图】
1、 推荐系统简介
1、what?
- 对于用户来说:推荐系统是一种帮助用户快速发现有用信息的工具。
- 对于公司来说:推荐系统是一种增加公司产品与用户接触,购买等行为概率的工具。
2、why?
-
用户角度:解决在信息过载的情况下,用户如何高效获得感兴趣信息的问题。节约用户的时间。
-
公司角度:解决产品能够最大限度地吸引用户、留存用户、增加用户粘性,提高产品的用户转化率的问题,以达到公司商业目标连续增长的目的。
推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
2、 推荐系统的架构
逻辑架构
-
处理问题:对于用户U,在特定场景C下,针对海量的物品信息,构建一个函数f(U,I,C),预测用户对特定候选物品I的喜好程度 ,再根据喜好程度对所有候选物品进行排序,生成推荐列表。
-
逻辑架构示意图如下:
技术架构
\quad \quad 推荐系统中,着重解决的问题主要有两类:
-
数据和信息相关的问题:即“用户信息”、“物品信息”、“场景信息”分别是什么?如何存储、更新和处理?
“数据和信息”包括:数据离线批处理、实时流处理的数据流框架; -
算法和模型相关的问题:模型如何训练、预测和达到更好的效果?
“算法和模型”包括:训练、评估、部署和线上推断。 -
技术架构示意图如下:
数据部分
\quad \quad 推荐系统的数据部分主要负责信息的收集和处理。
-
数据收集预处理(数据按照实时性的强弱排序为)
- 客户端及服务器端实时数据处理
- 流处理平台准实时数据处理
- 大数据平台离线数据处理
-
得到原始数据之后,需要数据加工得到的数据有:
- 推荐模型所需的样本数据,用于算法模型的训练和评估。
- 推荐模型服务(model serving)所需的“特征”,用于推荐系统的线上推断
- 系统监控、商业智能(Business Intelligence,BI)系统所需的统计型数据
模型部分
\quad \quad 推荐系统的模型部分是推荐系统的主体。模型的结构一般包括:召回层、排序层和补充策略与算法层。(模型训练决定模型结构)
模型结构:
- 召回层:利用高效的召回规则、算法或简单的模型,快速从海量的候选集中召回用户可能感兴趣的物品;
- 排序层:利用排序模型对初筛的候选集进行精排序;
- 补充策略与算法层:也被称为“再排序层”,为了兼顾结果的多样性、新鲜度等指标,结合补充的策略与算法对推荐列表进行一定的调整,最终形成用户可见的推荐列表。
模型训练:
\quad \quad 模型训练方法根据模型训练环境的不同,分为离线训练和在线更新两部分。
- 离线训练:利用全量样本和特征,使模型逼近全局最优点
- 在线更新:准实时地“消化”新的数据样本,更快地反映新的数据变化趋势。
\quad \quad 初次之外,为了评估推荐模型的效果,方便模型的迭代优化,推荐系统的模型部分提供了“离线系统”和“线上A/B测试”等多种评估模块,用得出的线下和线上评估指标,指导下一步的模型迭代优化。
参考资料:
1、《推荐系统实践》—项亮著
2、《深度学习与推荐系统》—王喆著