千亿特征流式学习在大规模推荐排序场景的应用

简介: 摘要:2017云栖大会机器学习平台PAI专场,阿里巴巴高级技术专家陈绪带来千亿特征流式学习在大规模推荐排序场景的应用的演讲。主要从电商个性化推荐开始谈起,进而描述了技术挑战和PAI解决方案,重点分享了鲲鹏框架和算法调优,最好作了简要总结。

摘要:2017云栖大会机器学习平台PAI专场,阿里巴巴高级技术专家陈绪带来千亿特征流式学习在大规模推荐排序场景的应用的演讲。主要从电商个性化推荐开始谈起,进而描述了技术挑战和PAI解决方案,重点分享了鲲鹏框架和算法调优,最好作了简要总结。

以下是精彩内容整理:

电商个性化推荐

ad99a41984a434a71373871f6fe35211a4d3adb4

淘宝、天猫在无线、PC端各个场景的商品个性化推荐大家都很熟悉,这些展示都是由个性化推荐排序算法决定的。根据每个用户不同的兴趣,做到千人千面的个性化展示,比如手淘首页的猜你喜欢,它是阿里电商最大的推荐场景,还有人群导购、看了又看、买了又买等页面,背后都是由机器学习算法来规划商品个性化排序。

点击率预估算法

商品的个性化排序一般都转化成点击率预估问题,给定一个当前用户,并且给定用户相关上下文的一些特征,来预测对于一个特定的商品的点击概率有多大,我们希望用户点击率越高的商品排在前面,点击或者不点击是二分类问题,通过采集用户商品各种维度特征进行建模,最终训练排序模型。

点击率预估算法是经典的研究课题,很早以前就有逻辑回归:Logistic Regression(LBFGS、FTRL)线性算法,还有决策树GBDT、XGBOOST提供非线性分类能力,近几年逐渐往更深层次发展研究,比如Factorization Machine、DNN、Wide&Deep。

 2f05de3d348df2cc152f5bdef4b75b5ca6824d0c

挑战和解决方案

具体到阿里电商场景,我们也有特定的问题和挑战。

阿里电商推荐的业务特点:最大场景达到百亿级别的PV/天,训练样本很大,亿级别用户维度和亿级别商品维度使我们做特征工程交叉组合时非常容易形成爆炸式天文数字的特征维度,还有快速实时变化的用户兴趣和热门商品。

传统的点击率预估算法和平台的挑战是特征规模有限(10亿~100亿)难以刻画全网用户行为和商品特征,热门商品每天也在快速变化,离线训练难以捕捉用户短期内兴趣模式。

基于以上问题,我们做了大量算法框架和平台优化,在PAI平台上开发千亿特征流式学习这样的机器学习框架。

 10852409101ada02c0f28f2ded22b2f853cf9b6d

阿里Parameter Server (鲲鹏,SIGKDD'17)优化

 0abc20db739ccce4cf06dca06ea4bdfa035bb602

PS支撑阿里集团最大规模的分布式算法训练,我们从2014年开始研发,到目前为止服务广告、推荐、搜索等多个重要场景,支撑PAI平台大规模算法,Owlqn-LR:300亿特征、1千亿样本,LDA:1万亿word - topic矩阵等,我们也逐步向公有云用户开放算法训练服务。

PS框架面临的挑战有很多,包括参数规模和样本规模巨大,为了能够更精确的学习商品特征,我们需要将规模提升到几千亿甚至上万亿级别;模型更新间隔短(分钟级别)才能尽快捕捉线上用户变化信息特征;算法效果稳定性要求高,在鲲鹏基础上做了大量针对性功能和优化来适应新型算法场景。

PS框架具备以下特点:

l  迈向千亿特征规模

200~400台Server,平均35GB内存。

l  特征集合高频率变化

使用定制的ArrayHashMap存储特征权重向量,去除特征ID化环节,插入、迭代性能较std::unordered_map提升300%。我们以高频率向模型中插入新特征到模型中,也会以非常高的频率剔除过期特征,在工程实践上做了大量改进,能够适应高频率特征集合的高频率变化。

l  通信性能优化

当并行server数量非常高时,我们做了大量通信性能优化,使得我们对大量特征样本量实时训练更新,Sparse、Dense参数合并通信,通信链路无锁。

8ecc0e4ca008fa57cff15a67c87860499fa5d752

我们将以前离线batch方式转换成实时在线训练,由全量样本训练向流式增量训练(Online Learning)演化,由训练Job转化为不间断训练Service,整个过程中内存数据不落盘,实时感知新数据分区触发训练,将训练样本读到训练进程中,将更新后的模型实时推到在线预测服务中去。同时,框架还支持灵活控制实时训练触发间隔,如果某些场景需要高频模型,最高可以精确到分钟级触发。

我们在多数据源支持统一checkpoint、Exactly Once Failover,所有数据保证严格训练一遍;支持单节点异步failover,在训练过程中,如果有个别进程crash,整个进程不需要打断,可以继续不受影响继续更新模型;我们也可以灵活断点调参,结合流式预估、流式评价算子,加速调参过程。

 

千亿特征流式算法体系

90464578f645c8180b87a9fc36a269cc51d1b0bf

我们在鲲鹏平台上打造了一系列千亿特征流式学习系列算法。包括XFtrl是线性模型+千亿级宽特征;XSVD是千亿规模Embedding向量召回模型,融合了许多矩阵算法;XNN也是千亿特征DNN算法。我们具备了从线性到浅层Embedding再到深层DNN网络的算法建设,实际上涵盖了个性化推荐在算法场景下的粗排召回模型以及精排的ranking模型,在平台上都可以支持。

我们对于参数更新模式进行了相应改进,不间断实时模型更新算法优化(XFtrl为例),比如在样本量累积到很大时很容易遇到数值稳定性问题和参数抖动问题,我们做了动态梯度平均策略和正则策略来弥补甚至消除动态抖动影响;此外,我们需要把特征进行高频增删,我们通过特征权重动态衰减策略及时从模型中剔除,保证模型始终是正向更新。

我们也进行了抽象算子(Operator)体系,比如参数Optimizer,支持稀疏梯度矩阵,减少计算量;参数Initializer,支持Lazy initialization,一直到参数第一次出现时我们才会进行随机初始化;我们还有很多的模型评估operator。

模型评估范式

592704ecd5a8eeb31a41e22b43badf8008d3e691

常规模型评价方式是准备一个验证数据集,每次训练完后在模型上计算Loss、AUC等指标,这样会带来流式场景下的问题:用户点击行为和商品快速变化;静态测试集无法反馈模型动态效果。

流式模型评估:对“未来”数据实时评估当前模型准度:AUC、PCOPC、MAE、...,提高了算法工程师对离线调参的效率。

 

总结

PAI平台鲲鹏框架在手淘、天猫多个大规模推荐场景上线,单场景1天100亿+训练样本,累积2000亿+特征;平台训练速度达到500万Sample/s迭代性能,模型持续增量在线训练超过60天;有了大规模特征和实时应用更新,使引导点击率和客单价显著提升。

我们在千亿特征流式学习模式下训练框架和实现算法的革新,PAI平台鲲鹏框架是推荐、广告、搜索排序算法的利器,而且我们以算法组件形式即将通过PAI平台提供公有云服务。


欢迎加入“数加·MaxCompute购买咨询”钉钉群(群号: 11782920)进行咨询,群二维码如下:

IMG_3471


 6c4b69af9fd1b465628b63fcee73224de0b62357

阿里巴巴大数据-玩家社区 https://yq.aliyun.com/teams/6/

---阿里大数据博文,问答,社群,实践,有朋自远方来,不亦说乎……

bba01b493e1c5d904e882b1c380673c6ebe49a98

 

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
弹性计算 分布式计算 MaxCompute
华北1 ECS 数据如何免费且高速同步到华北2MaxCompute
用户业务早期开在了华北1青岛,想搭数据仓库,但华北1又没有MaxCompute,怎么办?如果华北1 ECS跨Region数据同步到华北2MaxCompute,是否产生额外的带宽费用和同步性能差? 今天小编亲自测试下华北1 ECS 通过经典网络数据同步到华北2MaxCompute,打消大家对费用和性能的担心。
2812 110
华北1 ECS 数据如何免费且高速同步到华北2MaxCompute
|
存储 分布式计算 大数据
阿里云计算能力实现多项突破 BigBench规模全球首次被拓展至100TB
10月12日,阿里巴巴集团副总裁周靖人在云栖大会上发布了阿里云在大数据计算能力上的新突破:将BigBench数据规模扩展到100T;流计算2.0每秒峰值达千万QPS,整体链路延时亚秒级;E-MapReduce对比同类产品平均性能提升3倍。
3959 110
|
存储 监控 关系型数据库
MaxCompute帮助创业公司中减轻MySQL存储压力
从0到1 在我们公司初创的时候,组齐了三人的团队就开始做产品研发。当时整条业务线的东西都需要我们自己写,要在短时间内把东西做出来,效率是非常关键的。 我们的产品模式本身其实是需要验证的。创业有很多不确定性,在上线之前没人能知道,我们的一个项目究竟能达到多大的规模,能做到什么样。
3870 110
|
机器学习/深度学习 分布式计算 语音技术
重磅!MaxCompute助力阿里开源自研语音识别模型DFSMN,准确率高达96.04%
阿里开源语音识别模型DFSMN 在近期举行的云栖大会武汉峰会上,装有DFSMN语音识别模型的“AI收银员”在与真人店员的PK中,在嘈杂环境下准确识别了用户的语音点单,在短短49秒内点了34杯咖啡。此外,装备这一语音识别技术的自动售票机也已在上海地铁“上岗”。
3921 110
|
分布式计算 大数据 MaxCompute
中国唯一,阿里云进入Forrester大数据服务榜单
日前,全球权威调研机构Forrester发布《2018年一季度云端数据仓库》报告。报告对大数据服务商的主要功能、区域表现、细分市场和典型客户等进行了全面评估,最终AWS、阿里云、Google、微软四大巨头杀入全球一线阵营。
6552 110
|
存储 分布式计算 算法
|
分布式计算 DataWorks Java
[MaxCompute MapReduce实践]通过简单瘦身,解决Dataworks 10M文件限制问题
用户在DataWorks上执行MapReduce作业的时候,文件大于10M的JAR和资源文件不能上传到Dataworks,导致无法使用调度去定期执行MapReduce作业。 解决方案: jar -resources test_mr.
3831 110
|
关系型数据库 Python

热门文章

最新文章