李珂:vivo大规模机器学习实践
2020-02-27 143浏览
- 1.v从ivo大0SA到规C模1C机到2器01学无7习穷实践
- 2.本次演讲的要点 如何快速的在企业中快速实现大规模机器学习算法 端到端落地 由简单离线系统向复杂实时系统的演进 2017在算法迭代中的经验和教训 SACC对未来的展望
- 3.vivo互联网算法相关业务介绍 APP搜索广告 APP展示广告 APP推荐 SACC2017 信息流推荐 信息流广告 音乐推荐 游戏推荐
- 4.初创团队普遍存在的问题 2.数据中坑很多 1.两三条枪 S00A13CC20002147 3. 技术积累弱 4.领导希望尽快看到效果
- 5.第一代解决方案架构-2016 用户基础数据 Hive 用户行为数据 Hive 物品数据 Hive 前端请求 特征工程 Spark 模型训练 Spark 预测用户行为 Spark SACC2017写入Mongo 是否有个性化CTR 有 在Mongo中取离线CTR 返回请求 没有 统计CTR
- 6.第一代解决方案的优劣势 优势: 对算法团队技能要求单一 很好的利用现有大数据架构 对工程团队要求低 出错的几率小 7 劣势: 01 1. 离线预测,很多实时特征用不了 2 2. 离线训练,模型更新较慢 C 3. 用Spark进行训练,可选模型少,效率低,训练数据的规模有瓶颈 SAC 接入业务: APP展示广告,游戏推荐
- 7.第二代解决方案架构-2017上半年 实时用户行为 Kafka 拼接训练数据 SparkStreaming 实时数据 Kafka 实时特征工程 SparkStreaming 实时特征 Rdeis 模型训练 SparkStreaming 用户基础数据 Hive 用户行为数据 Hive 物品数据 Hive 特征工程 SACC2017Spark 离线特征 Rdeis 模型存储 Rdeis 前端请求 是否有个性化CTR 有 实时预测 没有 统计CTR 返回请求
- 8.第二代解决方案解决的进步和挑战 进步: 实时预测,能够使用上下文,时间等场景信息 。 在线训练,能够学习新广告,适应概念漂移。 挑战: 7 大量使用实时数据,工程端承担线上预测部分开发,出错的可能性增 01大 SACC2 算法迭代涉及大数据和工程改动,成本高周期长 接入业务: 信息流广告,APP推荐
- 9.第二代解决方案的经验 实时特征工程一定要存原始数据 特征交叉,甚至一部分特征工程用jar包的方式热加载 实时预测模块要打日志,包括读取的数据和预测结果 7 客户端上传日志的时候要透传预测的CTR和requestID 201 模型要先做线下验证,不光是整体的,还要单个item的 ACC 如果线上线下数据模型都对上了,线下验证好线上效果还是差的话。 S很可能是某些小item被高估了
- 10.第三代解决方案架构-现在 实时用户行为 Kafka 拼接训练数据 SparkStreaming 模型训练 在线验证 SparkStreaming 实时数据 Kafka 实时特征工程 SparkStreaming 实时特征 Rdeis 用户基础数据 Hive 用户行为数据 Hive 物品数据 Hive 特征工程 SACC2017Spark 离线特征 Rdeis 召回模块 Spark 模型存储 Rdeis 前端请求 是否有个性化CTR 有 召回模块 Redis 没有 实时预测 统计CTR 返回请求
- 11.第三代解决方案的经验 主要增加了召回模块 支持多条拉链的并行召回 支持离线或者在线更新拉链 7 支持灰度拉链热拔插 201 接入业务: SACC 信息流推荐,关联广告,搜索广告
- 12.第四代解决方案展望-2017年底 Spark,mllib的问题: Spark不支持FM,DNN等业界较先进的模型 Spark因为没有Parameter Server,executor的CPU利用率最多到30% RDD的机制使得最慢的executor决定了迭代的速度 executor挂了之后重拉,持久化的块不会恢复 C2017 替代方案: C CPU Cluster,通过Kubernetes+Docker弹性部署 A GPU方案因为网络还不复杂,且数据量大。GPU利用率不足(40%) S 同时在考虑Angel作为过渡方案。
- 13.SACC2017