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