飞桨助力OPPO上线3.5亿用户规模分布式推荐系统,训练效率提升8倍!

随着技术的完善与门槛的降低,深度学习正在加大往各行业渗透落地的力度。5月20日,由深度学习技术及应用国家工程实验室与百度联合主办的“WAVE SUMMIT”2020深度学习开发者峰会召开。百度飞桨开源深度学习平台公布了7项新产品和23项重磅升级,瞄准工业大生产持续发力,会上展示的与OPPO的合作,成为飞桨在消费类电子领域智能推荐服务落地的典型案例。

根据峰会现场介绍,在飞桨大规模分布式训练的助力下,OPPO推荐系统业务模型训练速度提升了8倍,模型扩大了20倍,推荐场景效果提升了4%-5%,并节省了90%的内存,为OPPO在全球3.5亿用户带来更精准快速的移动互联网服务。

飞桨与OPPO,是如何结下这场“不懈之缘”?

 

缘起:OPPO大举进军互联网业务,个性化推荐效率成“硬骨头”

 

提起OPPO,人们总是会想到造型时尚、性能强大的手机产品线,经过十一年的积累发展,OPPO已经成为中国智能手机市场的头部品牌,根据IDC数据报告,OPPO稳居2020年Q1中国智能手机市场出货量前三。OPPO还在2018年起开始大举进军互联网业务,创立了信息流、信息流广告、应用商店、游戏中心、商业中心等多个业务线。

互联网业务创立伊始, OPPO的算法团队便快速部署了基于传统机器学习和深度学习的解决方案来助力其业务线规模的高速增长,与之相伴而来的是指数级增长的用户和数据,用户的大量增长让团队欣喜不已,但与之同时增长的用户行为数据等也大大增加了模型训练的压力,让团队有所烦恼。

“我们使用的训练框架是基于单机实现的,数据增长导致训练耗时基本线性增加,已经影响到了正常的线上训练和模型产出。为了保证效率,旧式的解决方案是对训练样本做负采样,或者干脆直接减少训练数据集的规模,这样速度是快了,但会影响模型效果,用户可能就觉得推荐给自己的内容不是那么精准。”OPPO的算法工程师表示。

在当时,深度学习已经被广泛用于应用商店、内容推荐、负一屏、广告等推荐场景,但是已有的框架进行单机训练会受限于单机算力和内存等资源,这影响了模型上线的效率,会拖累产品优化的速度。对OPPO的算法工程师而言,寻找到一套更好的深度学习框架,实现高效处理海量数据集、支持先进的模型及训练模式、提供高频率迭代模型的能力,成为推荐系统是否成功的核心关键。

OPPO算法工程师使用了包括TensorFlow在内的深度学习框架,在速度上、效果上或者是水平扩展能力上都有一些不能令人满意的地方。直到2019年4月,百度飞桨正式对外开源了基于自身多年产业实践的大规模分布式深度学习系统,这引起了OPPO方面的注意。

百度飞桨的分布式训练能力在百度内部久经打磨,应用在百度搜索、信息流、信息流广告、好看视频等多个推荐相关业务,也是百度搜索领先业界的技术护城河之一,经过多年的积淀,在以下几个方面飞桨的分布式训练相比于业界同类产品做到了领先

  1. 开源了召回、排序、融合、多任务等多种类型的业内经典模型,效果达到SOTA,能够快速进行模型效果验证并提升模型的迭代效率。

  2. 易用且性能极佳的分布式训练能力,针对大规模稀疏场景极限优化,具有良好的水平扩展能力及加速比,能够基于Kubernates快速部署。

  3. 高性能数据读取接口Dataset,支持Python在内的多种数据解析方法,降低数据处理门槛的同时,拥有极高的性能,并且提供了包括数据全局shuffle、本地shuffle等实用功能。

  4. 提供服务器、移动/边缘端以及服务化部署等多种场景的模型线上部署方案,即训即用,灵活开发和高性能兼备。

  5. 7*24 H中文社区,完善的文档和教程,遇到问题可以快速找到解决方案,并有专人跟进。

经过多年业务实践和打磨,该系统已经达到相当完善的地步,百度也决定将其开源分享,配合容器集群管理系统Kubernates,可以方便快速地为外部企业所部署应用。这些功能非常契合OPPO互联网推荐系统的需求,于是,OPPO向百度飞桨的团队抛来了合作的橄榄枝。

 

攻关:飞桨深度学习平台如何改造移动互联网服务?

 

百度飞桨团队对于OPPO这个来自于消费类电子领域的头部用户相当重视,进行初步接触之后,了解到OPPO旗下需要应用机器学习、深度学习等技术的产品和业务主要在于应用商店、信息流、信息流广告、游戏中心、商业广告,这些都是非常典型的互联网推荐业务场景, 它们后端基本都是通过在线或离线的方式结合用户行为等数据进行模型训练,当用户访问应用时,基于用户的属性和行为实时预测用户需求,并推送符合用户需求的内容。

OPPO从自身业务出发对飞桨提出了四点诉求:能够支持先进的模型,以及推荐系统领域内最新论文发表的新模型或新模式;能够支持分布式大规模深度学习训练能力,包括增量训练等多种训练机制和亿级别以上的稀疏参数训练;性能速度要超越同业竞品,在指定时间内训练完成全部所需的数据;有完善的训练和预测的能力,支持分布式训练到高性能模型部署。

其实,这些同样也是深度学习技术要在产业实现落地的前提。

接触之后,百度飞桨团队很快根据内部使用经验和对OPPO业务场景的了解,提供全面的解决方案:

  1. 数据读取阶段,使用高性能数据读取接口Dataset,采用slot:feasign的形式定义数据,保证数据读取性能的同时,增加输入配置及模型配置的灵活性。

  2. 训练阶段,采用全异步超大规模稀疏参数服务器技术的训练平台进行训练,采用天级增量迭代的方式,既能满足线上模型产出的要求,也能保证效果的稳定性。

  3. 预测阶段,采用飞桨原生推理库构建预测服务,连编业务线上库,剥离embedding到Redis,通过深度优化来满足线上性能的要求。

经过验证,OPPO的研发人员发现相比其他框架,飞桨的参数服务器训练方法有非常高的性价比,采用十台以内CPU服务器就可以有效地解决大规模稀疏参数、大规模数据、自膨胀的海量特征及高频率模型迭代的问题,并拥有超大吞吐量及高效率。

 

攻关:飞桨深度学习平台在OPPO应用商店推荐场景的实践

 

经过对飞桨分布式训练能力的初步验证,结果显示飞桨全异步大规模稀疏参数服务器的训练能力能够切实解决OPPO的痛点,双方一拍即合,立刻开始着手将飞桨应用落地到OPPO的具体业务场景。但要先从哪一块“硬骨头”啃起?OPPO与飞桨的研发人员将目光放在了应用商店,这是OPPO互联网服务中最重要、流量非常大的业务,其中有三个需要训练的板块:应用商店首页、应用商店详情业和应用商店热搜。

个性化应用商店可以让用户更直接更快速的找到符合自己心仪的应用,包括Apple Store、Google Play等都上线了个性化推荐功能,为用户量身定做推荐内容,OPPO应用商店的功能类似。整个OPPO的应用商店推荐系统架构如下图:

此次优化的核心点是推荐系统中的排序阶段,优化的目标是提升用户点击率。整个排序阶段的优化流程包括:模型选择、样本构建、效果优化三个部分。

1. 模型选择:

应用商店排序基线模型是LR模型,基于以下几个原因,我们在优化时选择了Wide & Deep模型:相比于基线模型,Wide & Deep模型的Wide部分依然采用LR模型,并延续使用基于LR所做的特征交叉与特征组合;Deep部分采用DNN模型,加强模型的泛化能力,能够提高模型效果;Google在2016年发表此模型的作用场景也正好是应用商店,有比较强的借鉴意义。

Wide & Deep的模型结构如下图:

2. 样本与特征构建:

应用商店排序模型的目标是预测用户是否点击,训练的源数据来源于用户在应用商店场景下的应用浏览和点击数据。

整个训练的特征构建也围绕着用户信息和应用信息两方面展开,应用了用户画像、应用(标题、描述)等特征,通过加入这些重要的特征维度,来进一步提升模型效果。

在应用商店首页场景下, 用户的正负例样本差距一般较大,通过负采样10%的方式来平衡正负样本比例。

3. 效果优化:

训练效果优化是应用商店项目中非常关键的环节, 我们从Embedding稀疏特征优化、迭代模式优化以及优化器选取等多个方面进行了升级,离线训练在增量迭代了一段时间后,AUC相比比原模型提高0.5%。

应用商店项目上线后,应用商店在前期就取得了2%左右的线上收益,排序模型的训练速度大幅提升,是原有训练工具速度的8倍。参数规模相比于原LR模型的参数规模提升了20倍。被打破的不光是训练瓶颈,飞桨提供了一系列经典的和最新的推荐相关模型,这也为后续的效果优化打下了基础,而飞桨的分布式训练也并未停止优化的脚步,百亿级大规模稀疏参数、在线学习也正在逐步上线到OPPO的推荐系统中。目前,OPPO已经构建了数百台服务器的集群用于训练飞桨的分布式任务,为产品线的策略调研提供了很大的便利。

“我们和飞桨团队进行了长期的接触合作,并且对方一直在及时响应和支持我们在应用部署中遇到的各类问题。”OPPO的算法工程师回忆:“从去年开始,双方每周都会组织沟通会议,高效同步进展和问题,训练效率的提升最终为OPPO的线上业务带来了实打实的收益。”

 

推广:OPPO 多个业务线,应用飞桨大规模分布式训练

 

在OPPO应用商店业务线上取得收益后,浏览器信息流及广告推荐业务等业务线也迅速跟进,基于飞桨上线了多个推荐相关的模型。

浏览器信息流使用场景在视频推荐和推文推荐环节,作用于精排阶段。其排序阶段架构如图:

浏览器信息流的排序阶段我们加入了精排来提升训练效果。精排使用了相对复杂的DNN网络,使用把包括用户侧、视频及图文侧以及其他挖掘出来的交叉特征来进行点击率的拟合。通过对特征的充分挖掘和学习,取得最大的线上收益。

广告推荐业务的目的则是提高广告的点击率和转化率,广告推荐的流程一般如图:

OPPO的广告业务运行也是基于上述原理来实现的, 但是在实际业务中缺遇到三个问题,一是用户商业意图理解困难,用户在浏览过程中无明确意图的浏览,因此难以匹配上有效的广告,二是业务规模较大,每日产生的数据量极大,之前的训练模式受阻,三是线上基线是LR模型,在模型表达能力上有限,无法更有效的获取用户意图。

采用飞桨分布式训练后,OPPO的广告推荐业务在模型和训练规模上都做了升级,模型从传统的LR模型升级为DNN模型,如图:

训练模式则由原单机训练升级为多机分布式训练,训练能力得到提升, 目前OPPO研发人员也在继续基于飞桨深度学习训练框架尝试更多新的模型,包括DeepFM, ESMM等。

 

成果:OPPO业务线的AI应用场景,训练更“快”,收益更“多”

 

“飞桨的分布式推荐系统在应用商店业务取得收益后,OPPO先后在信息流、信息流广告、商业广告、游戏中心等诸多部门进行运用,效果非常显著,其中信息流部门收益提升了5%,其他业务线也取得了2%-5%不等的提升。”OPPO研发人员肯定了百度飞桨对OPPO互联网业务带来的巨大价值。

而在这次合作中获得突破的并非只有OPPO一方,百度飞桨团队也表示,OPPO提供了大量的外部企业的需求,飞桨以此为契机,也完成了一系列升级,例如优化大规模分布式异步训练的速度、支持超大规模稀疏参数等,将自身打造成更符合企业实际应用的框架,能够更好地满足产业智能化转型的需求。

OPPO研发人员还认为,这次合作也进一步验证了飞桨作为工业级深度学习平台的成熟度,后续双方还将在在线学习、多目标等场景展开深度合作,将互联网服务所能提供的用户体验推进到新的高度,形成合作共赢的良性发展。

(百度CTO王海峰在“WAVE SUMMIT”2020

深度学习开发者峰会)

从百度飞桨与OPPO的合作中,更多企业也认识到,要实现产业智能化转型,AI能力和开发工具需要满足效率、易用性、性价比和实现效果等硬性指标。百度CTO王海峰在峰会上表示:“深度学习框架和平台在高速发展,易用性不断提升,模型库日益丰富,工具组件愈发完备,部署更加便捷。进而,围绕深度学习平台的技术和产业生态日渐繁荣,推动人工智能进入工业大生产阶段,加速各行各业智能化升级,并不断催生新的应用、新的产业。”

目前,飞桨累计开发者数量超过190万,服务企业数量达到8万4千家,发布模型数量超过23万个,是国内最领先、服务开发者规模最大、功能最完备的开源开放深度学习平台,正在为各大产业实现智能化转型提供独有的“中国速度”。

如在使用过程中有问题,可加入飞桨官方QQ群交流:1108045677

官网地址:

https://www.paddlepaddle.org.cn

飞桨开源框架项目地址:

GitHub:

https://github.com/PaddlePaddle/Paddle

Gitee: 

https://gitee.com/paddlepaddle/Paddle

END

实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值