腾讯 | 引荐系统中模型训练及运用流程的标准化
作者头像
  • 张金伟
  • 2019-11-06 08:57:17 4

导读

本次分享的主题为推荐系统中模型训练及运用流程的标准化。在推荐系统中,点击率(CTR)预估模型是最关键且最复杂的部分。不论是采用线性模型还是流行的深度学习模型,在模型结构确定后,模型迭代的关键在于特征的选择与处理。因此,如何科学地管理特征变得尤为重要。

在实践中,我们对特征的采集、配置、处理流程及输入方式进行了标准化:通过配置文件和代码模板管理特征的声明及追加,特征的选取及预处理等流程。由于所有特征处理相关的配置都在同一份配置文件中定义,这样可以保证离线训练和在线预测时特征处理方式的一致性。

一、推荐系统

1. 业务简介

我们的产品“天天快报”涵盖了首页及数十个子频道,需要对每个频道进行召回和排序模型的构建。为了高效管理众多频道,我们需要一个系统来统一管理和处理所有特征和模型。

2. 推荐系统流程

推荐系统的主要流程是从海量内容中挑选出适合用户的少量文章。这一过程包括三个主要步骤:

  • 第一步:利用环境特征、用户特征和物品特征筛选出数千篇文章。
  • 第二步:通过排序模型预估用户对这些文章的兴趣程度。
  • 第三步:综合考虑多样性和用户体验等因素,最终向用户展示约十篇文章。

3. 常用推荐模型

常用的推荐模型包括LR(逻辑回归)、FM(因子分解机)、DNN(深度神经网络)、W&D(Wide & Deep)、DeepFM、DIN等。推荐系统通常需要以下几个模块:

  • 样本收集:大量训练样本是训练模型的基础,因此需要收集特征和标签。
  • 特征配置:推荐系统中存在上百个特征,需不断迭代优化。
  • 特征处理:例如,将用户ID转化为整数类型。
  • 模型训练和预测:训练好的模型用于预测用户行为。

4. 排序流程

排序系统主要通过特征处理和模型训练来实现。以用户ID为例,在线预测时,首先将用户ID填入变量中,通过哈希函数转换为整数类型,再输入模型。同时,记录特征以备训练样本使用。离线训练时,结合用户行为数据形成带有标签的样本,用于模型训练。

二、推荐系统中模型迭代的痛点

推荐系统中的模型需要不断迭代优化。日常工作中的挑战包括:

  • 在保证现有模型服务稳定的情况下,不断添加新特征并训练新模型。
  • 面临各种技术挑战,例如特征快速添加、在线离线特征一致性、特征配置及处理、多模型支持等。

三、特征处理标准化

为解决上述痛点,我们设计了一套基于CSV格式的特征处理标准。该标准旨在减少人工编码量,便于查看和维护,并易于迭代。CSV文件中每一行定义一个特征,包括特征名称、类型、位置、处理方式等信息。

痛点1:快速添加特征

在旧流程中,每次添加新特征都需要编写多个代码段。新的流程中,只需在CSV文件中定义变量处理方式,通过Python脚本和代码模板自动生成新C++程序,简化了流程。

痛点2:在线、离线特征的一致性

通过标准化特征类型,我们抽象出四种标准类型(整型、稀疏整型、字符串、稀疏字符串),并将其封装在一个基类中,确保在线特征和离线特征的一致性。

痛点3:特征配置及处理

  • 特征配置:通过CSV文件管理特征配置,实现特征的动态管理。
  • 特征处理:将特征处理分为特征填充、特征值和权重变换、向量变换三步,简化处理流程。

痛点4:支持多种模型

系统支持两种训练样本格式:libsvm和稀疏张量数组。通过CSV文件生成相应的训练样本,提供多种训练方式,支持不同模型的训练。

痛点5:特征监控

通过CSV文件配置监控函数,实时监控特征的变化情况,及时发现异常。

痛点6:样本过滤和加权

在特征处理过程中,过滤异常样本并设置合理的权重,确保样本质量。

四、总结

通过标准化特征处理流程,我们大大减少了人工编码量,提高了工作效率,降低了人为引入错误的可能性。推荐系统中特征处理的标准化体现在特征类型的标准化和特征处理过程的标准化两方面。

    本文来源:图灵汇
责任编辑: : 张金伟
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
引荐腾讯标准化模型运用流程训练系统
    下一篇