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

1 背景美团外卖业务种类繁多、场景丰富,根据业务特点可分为推荐、广告、搜索三大业务线以及数个子业务线,比如商家推荐、菜品推荐、列表广告、外卖搜索等等,满足了数亿用户对外卖服务的全方面需求 。而在每条业务线的背后,都涉及用户、商家、平台三方面利益的平衡:用户需要精准的展现结果;商家需要尽可能多的曝光和转化;平台需要营收的最大化,而算法策略通过模型机制的优化迭代,合理地维护这三方面的利益平衡,促进生态良性发展 。
随着业务的发展,外卖算法模型也在不断演进迭代中 。从之前简单的线性模型、树模型,到现在复杂的深度学习模型,预估效果也变得愈发精准 。这一切除了受益于模型参数的不断调优,也受益于外卖算法平台对算力增长的工程化支撑 。外卖算法平台通过统一算法工程框架,解决了模型&特征迭代的系统性问题,极大地提升了外卖算法的迭代效率 。
根据功能不同,外卖算法平台可划分为三部分:模型服务、模型训练和特征平台 。其中,模型服务用于提供在线模型预估,模型训练用于提供模型的训练产出,特征平台则提供特征和样本的数据支撑 。本文将重点阐述外卖特征平台在建设过程中遇到的挑战以及优化思路 。
诚然,业界对特征系统的研究较为广泛,比如微信FeatureKV存储系统聚焦于解决特征数据快速同步问题,腾讯广告特征工程聚焦于解决机器学习平台中Pre-Trainer方面的问题,美团酒旅在线特征系统聚焦于解决高并发情形下的特征存取和生产调度问题,而外卖特征平台则聚焦于提供从样本生成->特征生产->特征计算的一站式链路,用于解决特征的快速迭代问题 。
随着外卖业务的发展,特征体量也在快速增长,外卖平台面对的挑战和压力也不断增大 。目前,平台已接入特征配置近万个,特征维度近50种,日处理特征数据量几十TB,日处理特征千亿量级,日调度任务数量达数百个 。面对海量的数据资源,平台如何做到特征的快速迭代、特征的高效计算以及样本的配置化生成?下文将分享美团外卖在平台建设过程中的一些思考和优化思路,希望能对大家有所帮助或启发 。
2 特征框架演进2.1 旧框架的不足外卖业务发展初期,为了提升策略迭代效率,算法同学通过积累和提炼,整理出一套通用的特征生产框架,该框架由三部分组成:特征统计、特征推送和特征获取加载 。如下图所示:
该框架应用在外卖多条业务线中,为算法策略的迭代提供了有力支撑 。但随着外卖业务的发展,业务线的增多,数据体量的增大,该框架逐渐暴露以下三点不足:
2.2 新平台的优势针对旧框架的不足,我们在2018年中旬开始着手搭建新版的特征平台,经过不断的摸索、实践和优化,平台功能逐渐完备,使特征迭代能力更上一层台阶 。
特征平台框架由三部分组成:训练样本生成(离线)、特征生产(近线)以及特征获取计算(在线),如下图所示:
目前,外卖特征平台已接入外卖多条业务线,涵盖数十个场景,为业务的策略迭代提供平台化支持 。其中,平台的优势在于两点:
3 特征平台建设3.1 特征生产:海量特征的生产能力特征同步的方式有多种,业界常见做法是通过开发MR任务/Spark任务/使用同步组件,从多个数据源读取多个字段,并将聚合的结果同步至KV存储 。这种做法实现简单,但存在以下问题:
围绕上述几点问题,本文将从三个方面进行特征生产核心机制的介绍:
3.1.1 特征语义特征平台目前已接入上游Hive表数百个、特征配置近万个,其中大部分特征都需天级别的更新 。那平台如何从上游高效地拉取特征呢?直观想法是从特征配置和上游Hive表两个角度进行考虑: