特征平台的建设与实践

本文介绍了美团外卖在特征平台建设过程中的挑战与优化,包括特征框架的演进、特征生产、特征获取计算和训练样本生成。通过特征配置化管理、复用和平台化追踪,提高了特征迭代效率,降低了业务接入成本。此外,平台采用特征语义、多任务调度和存储机制优化,以应对海量数据的快速同步和计算需求。特征获取计算部分通过模型特征自描述MFDL提升易用性,保证离线训练与在线预估的一致性。训练样本构建则通过配置化流程和一致性保障,确保数据质量和模型效果。
摘要由CSDN通过智能技术生成

1 背景

美团外卖业务种类繁多、场景丰富,根据业务特点可分为推荐、广告、搜索三大业务线以及数个子业务线,比如商家推荐、菜品推荐、列表广告、外卖搜索等等,满足了数亿用户对外卖服务的全方面需求。而在每条业务线的背后,都涉及用户、商家、平台三方面利益的平衡:用户需要精准的展现结果;商家需要尽可能多的曝光和转化;平台需要营收的最大化,而算法策略通过模型机制的优化迭代,合理地维护这三方面的利益平衡,促进生态良性发展。

随着业务的发展,外卖算法模型也在不断演进迭代中。从之前简单的线性模型、树模型,到现在复杂的深度学习模型,预估效果也变得愈发精准。这一切除了受益于模型参数的不断调优,也受益于外卖算法平台对算力增长的工程化支撑。外卖算法平台通过统一算法工程框架,解决了模型&特征迭代的系统性问题,极大地提升了外卖算法的迭代效率。根据功能不同,外卖算法平台可划分为三部分:模型服务、模型训练和特征平台。其中,模型服务用于提供在线模型预估,模型训练用于提供模型的训练产出,特征平台则提供特征和样本的数据支撑。本文将重点阐述外卖特征平台在建设过程中遇到的挑战以及优化思路。

诚然,业界对特征系统的研究较为广泛,比如微信FeatureKV存储系统聚焦于解决特征数据快速同步问题,腾讯广告特征工程聚焦于解决机器学习平台中Pre-Trainer方面的问题,美团酒旅在线特征系统聚焦于解决高并发情形下的特征存取和生产调度问题,而外卖特征平台则聚焦于提供从样本生成->特征生产->特征计算的一站式链路,用于解决特征的快速迭代问题。

随着外卖业务的发展,特征体量也在快速增长,外卖平台面对的挑战和压力也不断增大。目前,平台已接入特征配置近万个,特征维度近50种,日处理特征数据量几十TB,日处理特征千亿量级,日调度任务数量达数百个。面对海量的数据资源,平台如何做到特征的快速迭代、特征的高效计算以及样本的配置化生成?下文将分享美团外卖在平台建设过程中的一些思考和优化思路,希望能对大家有所帮助或启发。

2 特征框架演进

2.1 旧框架的不足

外卖业务发展初期,为了提升策略迭代效率,算法同学通过积累和提炼,整理出一套通用的特征生产框架,该框架由三部分组成:特征统计、特征推送和特征获取加载。如下图所示:

  • 特征统计:基于基础数据表,框架支持统计多个时段内特定维度的总量、分布等统计类特征。
  • 特征推送:框架支持将Hive表里的记录映射成Domain对象,并将序列化后的结果写入KV存储。
  • 特征获取加载:框架支持在线从KV存储读取Domain对象,并将反序列化后的结果供模型预估使用。

该框架应用在外卖多条业务线中,为算法策略的迭代提供了有力支撑。但随着外卖业务的发展,业务线的增多,数据体量的增大,该框架逐渐暴露以下三点不足:

  • 特征迭代成本高:框架缺乏配置化管理,新特征上线需要同时改动离线侧和在线侧代码,迭代周期较长。
  • 特征复用困难:外卖不同业务线间存在相似场景,使特征的复用成为可能,但框架缺乏对复用能力的很好支撑,导致资源浪费、特征价值无法充分发挥。
  • 平台化能力缺失:框架提供了特征读写的底层开发能力,但缺乏对特征迭代完整周期的平台化追踪和管理能力。

2.2 新平台的优势

针对旧框架的不足,我们在2018年中旬开始着手搭建新版的特征平台,经过不断的摸索、实践和优化,平台功能逐渐完备,使特征迭代能力更上一层台阶。

特征平台框架由三部分组成:训练样本生成(离线)、特征生产(近线)以及特征获取计算(在线),如下图所示:

  • 训练样本生成:离线侧,平台提供统一配置化的训练样本生成能力,为模型的效果验证提供数据支撑。
  • 特征生产:近线侧,平台提供面对海量特征数据的加工、调度、存储、同步能力,保证特征数据在线快速生效。
  • 特征获取计算:在线侧,平台提供高可用的特征获取能力和高性能的特征计算能力,灵活支撑多种复杂模型的特征需求。

目前,外卖特征平台已接入外卖多条业务线,涵盖数十个场景,为业务的策略迭代提供平台化支持。其中,平台的优势在于两点:

  • 业务提效:通过特征配置化管理能力、特征&算子&解决方案复用能力以及离线在线打通能力,提升了特征迭代效率,降低了业务的接入成本,助力业务快速拿到结果。
  • 业务赋能:平台以统一的标准建立特征效果评估体系,有助于特征在业务间的借鉴和流通,最大程度发挥出特征的价值。

3 特征平台建设

3.1 特征生产:海量特征的生产能力

特征同步的方式有多种,业界常见做法是通过开发MR任务/Spark任务/使用同步组件,从多个数据源读取多个字段,并将聚合的结果同步至KV存储。这种做法实现简单,但存在以下问题:

  • 特征重复拉取:同一特征被不同任务使用时,会导致特征被重复拉取,造成资源浪费。
  • 缺乏全局调度:同步任务间彼此隔离,相互独立,缺乏多任务的全局调度管理机制,无法进行特征复用、增量更新、全局限流等操作,影响特征的同步速度。
  • 存储方式不够灵活健壮:新特征存储时,涉及到上下游代码/文件的改动,迭代成本高,特征数据异常时,需长时间重导旧数据,回滚效率较低。

围绕上述几点问题,本文将从三个方面进行特征生产核心机制的介绍:

  • 特征语义机制:用于解决平台从数百个数据源进行特征拉取和转化的效率问题。
  • 特征多任务调度机制:用于解决海量特征数据的快速同步问题。
  • 特征存储机制:用于解决特征存储在配置化和可靠性方面的问题。

3.1.1 特征语义

特征平台目前已接入上游Hive表数百个、特征配置近万个,其中大部分特征都需天级别的更新。那平台如何从上游高效地拉取特征呢?直观想法是从特征配置和上游Hive表两个角度进行考虑:

特征配置角度:平台根据每个特征配置,单独启动任务进行特征拉取。

  • 优点:控制灵活。
  • 缺点:每个特征都会启动各自的拉取任务,执行效率低且耗费资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值