第六章的内容主要从工程的角度来看推荐系统,分为三个部分:

  1. 推荐系统的数据流
  2. 深度学习推荐模型的离线训练
  3. 深度学习推荐模型的上限部署

    推荐系统的数据流

    -指的是训练、服务推荐模型所需数据的处理流程

    发展阶段

  • 批处理大数据架构
    • 传统数据库很难处理海量数据的存储和计算->DFS/HDFS分布式存储诞生->MapReduce框架诞生
    • 分布式存储+mapreduce只能处理静态数据(已经落盘的数据),无法在数据的采集传输过程中处理
  • 流计算大数据架构
    • 在数据流产生及传递的过程中流式地消费并处理,数据在一个时间窗口内被消费
    • 滑动窗口的大小基本以分钟级别居多,相比批处理,时间延迟大大缩小
    • 可以对多个不同数据流进行join,在同一个时间窗口内进行整合处理
    • 一个流计算环节的输出可以作为下游应用的输入
    • 数据处理延迟小,但数据合法检查、全量数据分析的场景不适用
  • Lambda架构
    • Lambda架构从最开始的数据收集阶段裂变为两条分支:实时流 和离线处理
    • 实时流部分保证实时性,离线批处理部分保证最终的一致性
    • 兼具实时和全面性,但是存在大量逻辑冗余
  • Kappa架构

    • 为了解决Lambda结构的代码冗余,将批处理视为流处理的一种特殊形式
    • 批处理:流处理框架上增加了“原始数据存储”、“数据重播”。未经流处理的数据保存到分布式文件系统,数据重播将数据按时间顺序送入流处理框架

      大数据平台与推荐系统的整合

      大数据平台与推荐系统的整合提现在两个方面:
  • 训练数据的处理

  • 特征的预计算

经过大数据平台处理的数据流向:

  • 以HDFS为代表的存储平台,存储训练用的数据
  • 以Redis为代表的实时特征数据库,负责为模型的在线服务提供实时特征

    训练推荐模型的主流平台

    -SparkMLlib、ParameterServer、Tensorflow

  • Spark MLlib

  • Parameter Server
  • Tensorflow