推荐系统之实时性

推荐系统的实时性,包括
1. 更快捕获/更新用户特征 -- 特征实时性
2. 更快发现数据趋势 -- 模型实时性

特征实时性(实时性由强到弱)
1. 客户端实时特征(秒级,实时)
发生在客户端session,实时计算用户特征,可达秒级


2. 流处理平台(分钟级,近实时)
典型的流处理平台像flink、spark streaming,均具备处理某个时间窗口内的数据流的能力,能够统计用户点击行为等特征,并写入redis,可达分钟级


3. 分布式批处理平台(小时/天级,非实时)
分布式批处理平台(spark, hadoop等)一般处理全量的数据,这个过程中,可能需要准备好并且join多张表,耗费几个小时到天不等。计算得到的特征一般有两个用途:1. 模型训练和离线评估 2. 特征保存到特征数据库,供模型在线推理

模型实时性(实时性由强到弱)
1. 在线学习
获得一个样本的同时,更新模型。经典的方案:FTRL


2. 增量更新
将新加入的样本喂给模型,进行训练,往往无法找到全局最优点,所以通常的做法是 n轮增量更新+1轮全量更新


3. 全量更新
在某个时间段,使用落盘的全量样本对模型进行训练。最常用的模型训练方式


4. 局部更新
将模型分为两部分,以较快频率更新需要快速迭代的部分,反之则以较慢频率更新。常见的方案为:预训练Embedding+神经网络,其中,预训练Embedding部分无需快速迭代,而上层神经网络部分更新需要较高的实时性。

书中提到,推荐算法工程师,应该:从用户的角度思考问题,构建模型,而不是仅专注于是否需要dropout,是否需要加BN层。

你可能感兴趣的:(《深度学习推荐系统》读书笔记)