推荐系统的在线训练时解决什么问题的?一般是怎么做的?
0 904
0
该提问暂无详细描述
收藏
2021-06-07 14:55 更新 怪瘦的钱包 •  30
共 1 个回答
高赞 时间
0

对于业务来说,我们希望用户对于上一个广告的反馈 (喜欢或者不喜欢,有没有点击,可以很快地用于下 一个广告的推荐中。这就要求我们用另一种方法来解决推荐问题,这个方法就是在线训练。

基于在线训练的推荐系统架构适合于广告和电商等高维度大数据量且对实时性要求很高的场景. 相比较基于离线训练的推荐系统,基于在线训练的推荐系统不区分训练和测试阶段,每个回合都在学习,通过实时的反馈来调整策略。 一方面,在线训练要求其样本、特征和模型的处理都是实时的,以便推荐的内容更快地反映用户实时的喜好;另一方面,因为在线训练并不需要将所有的训练数据都存储下来,所以不需要巨大的离线存储开销,使得系统具有很好的伸缩性,可以支持超大的数据量和模型。

  1. 样本处理:和基于离线训练的推荐系统相比,在线训练在数据上报阶段的主要不同体现在样本处理上。对于离线训练来说,上报后的数据先是被存储到一个分布式文件系统,然后等待离线计算任务来对样本进行处理;对于在线训练来说,对样本的去重、过滤和采样等计算都需要实时进行。
  2. 实时特性:实时特征模块通过实时处理样本数据拼接训练需要的特征构造训练样本,输入流式训练模块用于更新模型。该模块的主要的功能是特征拼接和特征工程。
  3. 流式训练:流式训练模块的主要作用是使用实时训练样本来更新模型。推荐算法中增量更新部分的计算,通过流式计算的方式来进行更新。在线训练的优势之一,是可以支持模型的稀疏存储。训练方面,在线模型不一定都是从零开始训练,而是可以将离线训练得到的模型参数作为基础,在这个基础上进行增量训练。
  4. 模型存储和加载:模型一般存储在参数服务器中。模型更新后,将模型文件推送到线上存储,并由线上服务模块动态加载。

参考: https://github.com/NLP-LOVE/ML-NLP

收藏
2021-06-07 15:06 更新 酒量大的路灯 •  29