1. 推荐系统的作用/意义/目标
推荐系统的作用和意义:
- 用户角度:推荐系统解决在“信息过载”的情况下,用户如何从海量信息中高效获得感兴趣信息的问题。
- 推荐系统是在用户需求并不十分明确的情况下,进行信息的过滤。因此,与搜索系统(用户会输入明确的搜索词 query)相比,推荐系统更多地利用用户的各类历史信息“猜测”可能喜欢的内容。
- 公司角度:推荐系统解决产品能够最大限度地吸引用户、留存用户、增加用户黏性、提高用户转化率的问题,从而达到公司商业目标连续增长(增加公司收益)的目的。
推荐系统的终极优化目标:包括以下两个维度
- 一个维度是用户体验的优化
- 另一个维度是满足公司的商业利益
对一个健康的商业模式来说,以上两个维度应该是和谐统一的
2. 推荐系统的架构
三类信息:
- 物品信息:商品推荐中的商品信息,视频推荐中的视频信息,新闻推荐中的新闻信息
- 用户信息:与人相关的信息,包括历史行为、人口属性、关系网络等,可以用来更可靠地推测出人的兴趣点
- 场景信息/上下文信息:指具体推荐场景中的时间、地点、用户的状态等一系列环境信息
2.1 推荐系统的逻辑框架
推荐系统要处理的问题的定义:
- 对于用户 U (user),在特定场景 C (context) 下,针对海量的物品信息,构建一个函数
f(U,I,C)
,预测用户对特定候选物品 I (item) 的喜好程度,再根据喜好程度对所有物品进行排序,生成推荐列表
2.2 推荐系统的技术架构
实际的推荐系统需要解决两类问题:
- 数据和信息相关的问题:即用户信息、物品信息、场景信息分别是什么?如何存储、更新和处理?
- 推荐系统算法和模型相关的问题:即推荐模型如何训练、如何预测、如何达到更好的推荐效果?
因此,推荐系统的技术架构也分为两个部分:
- 数据部分:数据离线批处理、实时流处理
- 负责“用户”“物品”“场景”的信息收集与处理
- 原始数据加工后有 3 个主要出口:
- 生成推荐模型所需的样本数据,用于算法模型的训练和评估
- 生成推荐模型服务(model serving)所需的“特征”,用于推荐系统的线上推断
- 生成监控系统、商业智能系统所需的统计型数据
- 模型部分:训练、评估、部署、线上推断
- 模型结构/模型服务过程:输入是所有候选物品集,输出是推荐列表
- 召回层:一般由高效的召回规则、算法或简单的模型组成,这让推荐系统能快速从海量的候选集中召回用户可能感兴趣的物品
- 深度学习中的 Embedding 技术
- 排序层(精排层):利用排序模型对初筛的候选集进行精排序。是推荐系统产生效果的重点/核心
- 深度学习模型的复杂结构,使其具备了理论上拟合任何函数的能力,极大地增强了推荐系统的拟合能力和表达能力
- 补充策略与算法层(再排序层):在返回给用户推荐列表之前,为兼顾结果的“多样性”“流行度”“新鲜度”等指标,结合一些补充的策略和算法对推荐列表进行一定的调整,最终形成用户可见的推荐列表
- 召回层:一般由高效的召回规则、算法或简单的模型组成,这让推荐系统能快速从海量的候选集中召回用户可能感兴趣的物品
- 模型训练:在线环境进行模型服务前,需要通过模型训练确定模型结构、超参数、参数取值
- 离线训练:可以利用全量样本和特征,使模型逼近全局最优点
- 在线更新:可以准实时地“消化”新的数据样本,更快地反应新的数据变化趋势,满足模型实时性的需求
- 评估模块:
- 离线评估:得到线下评估指标
- 线上 A/B 测试:得到线上评估指标
- 模型结构/模型服务过程:输入是所有候选物品集,输出是推荐列表