推荐系统 (一): 推荐系统的架构

目录

  • 推荐系统的逻辑框架
  • 推荐系统的技术架构
    • 推荐系统的数据部分
    • 推荐系统的模型部分
  • 参考文献

推荐系统的逻辑框架

  • 推荐系统要处理的是 “人” 和 “信息” 的关系。这里的 “信息” ,在商品推荐中指的是 “商品信息”,在视频推荐中指的是 “视频信息 ”, 在新闻推荐中指的是 “新闻信息”,简而言之, 可统称为 “物品信息” 。 而从 “人” 的角度出发, 为了更可靠地推测出 “人” 的兴趣点, 推荐系统希望利用大量与 “人” 相关的信息, 包括历史行为、人口属性、关系网络等, 这些可统称为 “用户信息”。此外, 在具体的推荐场景中, 用户的最终选择一般会受时间、地点、用户的状态等一系列环境信息的影响, 可称为 “场景信息” 或 “上下文信息”
  • 在获知 “用户信息” “物品信息” “场景信息” 的基础上, 推荐系统要处理的问题可以较形式化地定义为:对于用户 U U U (user), 在特定场景 C C C (context) 下, 针对海量的 “物品“ 信息,构建一个函数 f ( U , I , C ) f(U,I,C) f(U,I,C), 预测用户对特定候选物品 I I I (item) 的喜好程度, 再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题
    推荐系统 (一): 推荐系统的架构_第1张图片

不同业务模式的公司定义的具体推荐系统优化目标不同, 例如,视频类公司更注重用户观看时长 (Deep Neural Networks for YouTube Recommendations),电商类公司更注重用户的购买转化率 (Conversion Rate, CVR), 新闻类公司更注重用户的点击率, 等等。需要注意的是,设计推荐系统的最终目标是达成公司的商业目标、增加公司收益,这应是推荐工程师站在公司角度考虑问题的出发点

推荐系统的技术架构

  • 在实际的推荐系统中,工程师需要将抽象的概念和模块具体化 、工程化。在 图 1-3 的基础上,工程师需要着重解决的问题有两类:
    • (1) 数据和信息相关的问题,即 “用户信息” “物品信息” “场景信息” 分别是什么?如何存储 、 更新和处理?
      • “数据和信息” 部分逐渐发展为推荐系统中融合了数据离线批处理、 实时流处理的数据流框架
    • (2) 推荐系统算法和模型相关的问题, 即推荐模型如何训练 、 如何预测 、 如何达成更好的推荐效果?
      • “算法和模型” 部分则进一步细化为推荐系统中集训练 (training)、评估 (evaluation) 、 部署 (deployment)、 线上推断 (online inference) 为一体的模型框架

推荐系统 (一): 推荐系统的架构_第2张图片

推荐系统的数据部分

  • 推荐系统的数据部分 (如图 1-4 中米黄色部分所示) 主要负责 “用户” “物品” “场景” 的信息收集与处理。 在得到原始的数据信息后,推荐系统的数据处理系统会将原始数据进一步加工, 加工后的数据出口主要有三个:
    • (1) 生成推荐模型所需的样本数据, 用于算法模型的训练和评估
    • (2) 生成推荐模型服务 (model serving) 所需的 “特征”, 用于推荐系统的线上推断
    • (3) 生成系统监控 、商业智能 (Business Intelligence, BI) 系统所需的统计型数据

负责数据收集与处理的三种平台

  • 客户端及服务器端实时数据处理” “流处理平台准实时数据处理” “大数据平台离线数据处理
    • 实时性由强到弱递减的同时, 三种平台的海量数据处理能力则由弱到强。 因此, 一个成熟的推荐系统的数据流系统会将三者取长补短, 配合使用

推荐系统的模型部分

  • 模型的结构一般由 “召回层” “排序层” “补充策略与算法层” 组成
    • “召回层” 一般利用高效的召回规则、 算法或简单的模型, 快速从海量的候选集中召回用户可能感兴趣的物品
    • 排序层“ 利用排序模型对初筛的候选集进行精排序 (推荐系统产生效果的重点,也是业界和学界研究的重心)
    • 补充策略与算法层”,也被称为 “再排序层”,可以在将推荐列表返回用户之前, 为兼顾结果的 “多样性” “流行度” “新鲜度” 等指标, 结合一些补充的策略和算法对推荐列表进行一定的调整, 最终形成用户可见的推荐列表

从推荐模型接收到所有候选物品集,到最后产生推荐列表, 这一过程一般称为模型服务过程


模型训练

  • (1) 离线训练:利用全量样本和特征,使模型逼近全局最优点
  • (2) 在线更新:准实时地 “消化” 新的数据样本,更快地反映新的数据变化趋势,满足模型实时性的需求

模型评估

  • 为了评估推荐模型的效果,方便模型的迭代优化,推荐系统的模型部分提供了 “离线评估” 和 “线上 A/B 测试” 等多种评估模块,用得出的线下和线上评估指标, 指导下一步的模型迭代优化

参考文献

  • 《深度学习推荐系统》(王喆)

你可能感兴趣的:(推荐系统,推荐系统)