美团外卖平台,美团外卖平台的建设与实践?( 四 )


3.2.2.1 智能分组特征以分组的形式进行聚合,用于特征的写入和读取 。起初,特征是以固定分组的形式进行组织管理,即不同业务线的特征会被人工聚合到同一分组中,这种方式实现简单,但却暴露出以下两点问题:
因此,特征平台设计了智能分组,打破之前固定分组的形式,通过合理机制进行特征分组的动态调整,保证特征聚合的合理性和有效性 。如下图所示,平台打通了线上线下链路,线上用于上报业务线所用的特征状态,线下则通过收集分析线上特征,从全局视角对特征所属分组进行智能化的整合、迁移、反馈和管理 。同时,基于存储和性能的折中考虑,平台建立了两种分组类型:业务分组和公共分组:
通过特征在两种分组间的动态迁移以及对线上的实时反馈,保证各业务对特征所拉即所用,提升特征读取性能,保证KV集群稳定性 。
3.2.2.2 分组合并智能分组可以有效的提升特征获取效率,但同时也引入了一个问题:在智能分组过程中,特征在分组迁移阶段,会出现一个特征同时存在于多个分组的情况,造成特征在多个分组重复获取的问题,增加对KV存储的访问压力 。为了优化特征获取效率,在特征获取之前需要对特征分组进行合并,将特征尽量放在同一个分组中进行获取,从而减少访问KV存储的次数,提升特征获取性能 。
如下图所示,经过分组合并,将特征获取的分组个数由4个(最坏情况)减少到2个,从而对KV存储访问量降低一半 。
3.3 训练样本构建:统一配置化的一致性训练样本生成能力3.3.1 现状分析训练样本是特征工程连接算法模型的一个关键环节,训练样本构建的本质是一个数据加工过程,而这份数据如何做到“能用”(数据质量要准确可信)、“易用”(生产过程要灵活高效)、“好用”(通过平台能力为业务赋能)对于算法模型迭代的效率和效果至关重要 。
在特征平台统一建设之前,外卖策略团队在训练样本构建流程上主要遇到几个问题:
3.3.2 配置化流程平台化建设最重要的流程之一是“如何进行流程抽象”,业界有一些机器学习平台的做法是平台提供较细粒度的组件,让用户自行选择组件、配置依赖关系,最终生成一张样本构建的DAG图 。
对于用户而言,这样看似是提高了流程编排的自由度,但深入了解算法同学实际工作场景后发现,算法模型迭代过程中,大部分的样本生产流程都比较固定,反而让用户每次都去找组件、配组件属性、指定关系依赖这样的操作,会给算法同学带来额外的负担,所以我们尝试了一种新的思路来优化这个问题:模板化 + 配置化,即平台提供一个基准的模板流程,该流程中的每一个节点都抽象为一个或一类组件,用户基于该模板,通过简单配置即可生成自己样本构建流程,如下图所示:
整个流程模板包括三个部分:输入(Input)、转化(Transform)、输出(Output),其中包含的组件有:Label数据预处理、实验特征抽取、特征样本关联、特征矩阵生成、特征格式转换、特征统计分析、数据写出,组件主要功能:

  • 实验特征抽取:线下训练如果需要调研一些新特征(即在一致性特征样本中不存在)效果,可以通过特征补录方式加入新的特征集 。
  • 特征样本关联:将Label数据与补录的实验特征根据唯一标识(如:poi_id)进行关联 。
  • 特征矩阵生成:根据用户定义的特征MFDL配置文件,将每一个样本需要的特征集计算合并,生成特征矩阵,得到训练样本中间表 。
  • 特征格式转换:基于训练样本中间表,根据不同模型类型,将数据转换为不同格式的文件(如:CSV/TFRecord) 。