1、超大规模深度学习在美团的应用余建平美团点评用户平台研究员自我介绍2011年硕士毕业于南京大学计算机科学与技术系。毕业后曾在百度凤巢从事机器学习工程相关的工作,加入美团后,负责超大规模机器学习系统,从无到有搭建起支持千亿级别规模的深度学习系统,与推荐、搜索、广告业务深度合作,在算法上提供从召回到排序的全系统优化方案,在工程上提供离线、近线、在线的全流程解决方案。目录 美团超大规模模型场景简介 超大规模机器学习MLX MLX平台目标 MLX平台架构 模型场景应用 召回模型 排序模型目录 美团超大规模模型场景简介 超大规模机器学习MLX MLX平台目标 MLX平台架构 模型场景应用 召回模型 排序模
2、型美团超大规模模型应用场景美团推荐美团搜索美团应用场景简介 场景特点 模型特点亿级的用户,千万级的O2O商品海量的用户行为,完整的交易闭环LBS相关的推荐百亿级别的训练数据千亿级别的模型特征秒级实时的模型反馈目录 美团超大规模模型场景简介 超大规模机器学习MLX MLX平台目标 MLX平台架构 模型场景应用 召回模型 排序模型超大规模模型的有效性 VC维理论 描述模型的学习能力:VC维越大模型越复杂,学习能力越强 机器学习能力=数据+特征+模型 数据 海量数据:美团的亿级用户、千万级POI 特征 大规模离散特征 小规模泛化特征 模型 DNN 树模型 LR美团超大规模模型应用场景 可扩展的机器学
3、习架构 基于Parameter Server架构 数据并行 支持超大规模训练集 模型并行 支持超大规模模型 业界千亿级以上的机器学习平台 开源:PaddlePaddle、XDL,etc.内部:Abacus、XPS,etc.关于Online Learning Online Learning的价值 用户的近期行为,更能表现意图和偏好 增强新item的模型感知能力 更快数据反馈、更少资源消耗 分钟级的数据反馈 增量训练、避免batch重训带来的资源消耗MLX的模型能力 支持千亿级特征、千亿级样本 支持计算图模式,模型结构灵活多样 支持推荐、搜索、广告场景常用的深度学习模型 FTRL、FM、FFM、W
4、DL、DCN、DeepFM、MTL等MLX的模型能力 Optimizer FTRL、AdaGrad、AdaDelta、ADAM、AmsGrad、etc Loss Function LogLoss、SquareLoss、Cross Entropy、etc 评估指标 AUC、Loss、MAE、RMSE 支持外部eval工具,计算MAP、NDCGMLX模型能力 提供离线、近线、在线全流程解决方案,各阶段提供扩展方案,降低算法迭代成本;支持Online Learning,提供从近线到在线的模型数据通路;提供从召回到排序全流程的模型解决方案,为业务提供最佳实践;提供系统的平台化工具,为用户提供易用的界面
5、操作;MLX平台架构MLX平台架构模型训练框架 基于Worker+PS架构搭建 Worker 模型计算引擎(Engine)计算图框架(Graph)模型计算引擎Engine 模型结构处理 与PS通信交换模型参数 计算图的计算 计算图框架Graph 计算逻辑抽象op,通过op组合形成模型结构 提供正向(forward)、反向(backward)、Loss的操作扩展模型训练框架 模型可变计算路径 应用场景离线预计算 运行阶段 模型召回,ANN检索 计算图裁剪 粗排模型,降低线上计算量Parameter Server 分布式Sharding 模型分片存储,支持超大规模模型 数据并行计算,加速Optim
6、izer计算 低频特征过滤 Counting Bloom Filter 概率方式 模型数据通路 Base+Delta方式 增量提供ACK机制,确保模型正确性PS的参数放置策略 模型数据的统一管理 Ps分布式分片的均衡,避免分片大小不一致 模型结构 模型参数NN网络矩阵按行切分,解决请求包不均衡问题特征按照Hash方式分布式存储PS的多模型训练 模型并行调超参 提高内存使用效率 grid search random search model group内共享特征key的存储PS的长尾效应 超大规模模型-高扇出的分布式PS 长尾效应:单个分片的抖动(网络、CPU)对请求影响变大 单分片4个9的可用
7、性 16分片整体可用性:99.99%16=99.84%64分片整体可用性:99.99%64=99.36%128分片整体可用性:99.99%128=98.72%Backup Request Jeff Dean在解决BigTable高扇出时提出的方案Backup RequestPredictorPS Reqreply 1req 1reply 2 reply Nreq Nreq 2Backup Request超过tCancel Request副本1副本2副本1副本2PS Shard 1PS Shard 2流式模型的通路 持久化存储 PS快速failover 本地disk存储,持久化对齐kafka的数
8、据 Compaction机制,降低load数据量流式拼接框架 Online Learning对数据流的要求 不重不丢:重复的数据会使模型有偏,数据的缺失会使模型丢失重要信息 数据有序性:数据乱序会导致样本穿越的现象 Log Join框架 双流拼接框架,通过组合方式支持多流拼接 基于Event Time的Window机制拼接方式 基于Low Watermark解决流乱序、流延迟等流式常见问题流式拼接 Low Watermark机制 定义了流式数据的时钟,不可逆性 Smooth low watermark:异常数据时间跳变 Checkpoint解决不重不丢问题 外存解决大数据量性能问题 在引擎中流
9、转log key,特征数据在外存在线预估服务 分业务场景支持 轻量级predictor:仅支持模型的计算,特征由业务传入,无状态设计 自定义predictor:提供业务抽象,支持业务自定义逻辑,插件化实现 逻辑阶段抽象,业务根据自身需求选择性实现 数据获取:根据业务的自身逻辑获取特征原始数据 特征抽取:将特征数据进行转换,转换成模型所需的格式,比如离散化 模型计算:传入转换后的特征数据,调用模型计算引擎特征抽取框架 特征编码方式 通过明文hash的方式编码 适用于特征的动态增长 不需要预分配,提高处理效率 框架与实现分离 提供op形式的特征抽取类 逻辑一致性:在线、近线、离线目录 美团超大规模
10、模型场景简介 超大规模机器学习MLX MLX平台目标 MLX平台架构 模型场景应用 召回模型 排序模型美团推荐场景的应用 漏斗模型 召回模型 排序模型推荐的漏斗模型漏斗模型策略漏斗模型数千千万数百召回粗排精排候选集模型召回解决方案 模型的设计 样本&特征的设计 模型的通路召回模型设计 基于双塔的模型召回架构 基于用户和item的DNN结构 产出用户和item两侧向量 基于ANN的向量相似度检索 Item侧离线计算,形成ANN词表 用户侧向量实时计算,通过ANN找出相似item向量样本&特征设计 LBS的负例采样 特征设计 用户侧:能设计完整的特征,个性化,实时特征 Item侧:预计算带来的副作
11、用,不能使用实时特征 与位置相关的negative sampling全体集合同地域无效信息多仅曝光分布偏差大点击(+)样本分布召回模型通路 在线、近线、离线全流程解决方案排序模型解决方案 粗排模型 精排模型粗排模型 粗排阶段的特点 候选集大,通常在千到万级别 线上的响应时间要求高,通常在几到十几ms 简单模型 计算耗时短:线性模型LR、树模型 模型表达能力不足,效果一般 复杂模型 DNN模型解决耗时是关键,利用预计算解决耗时问题 效果保障:保证用户的个性化信息,降低候选集计算复杂度精排模型 精排阶段的特点 候选集较少,通常在百级别 线上耗时相对宽松,几十毫秒(视效果而定)小规树模型 精排模型的特点 结构复杂,怎么有效果怎么来1.Random Forest2.XGBoost 特征多样:历史行为、统计值、id类特征、高维交叉,etc.模型发展历程 树模型:Random Forest、XGBoost 小规模DNN:MLP、小规模的Wide&Deep 大规模离散DNN:大规模的Wide&Deep、DeepFM、DCN总结 超大规模深度学习 工程实现 数据并行、模型并行 在线、近线、离线逻辑一致性 实时模型 业务应用 召回模型,ANN搜索 粗排模型,模型预计算 精排模型,大规模离散DNN