

分钟级在线深度学习在手淘信息流排序模型中的探索与实践
source link: https://my.oschina.net/u/4662964/blog/5061747
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

分钟级在线深度学习在手淘信息流排序模型中的探索与实践 - 阿里巴巴淘系技术官方的个人空间 - OSCHINA - 中文开源技术交流社区
前些年流行的FTRL等在线学习算法在深度学习中已不太适用,为此信息流推荐算法团队从2019年开始探索在线学习的下一式——在线深度学习(Online Deep Learning, ODL),在首页商品信息流全量小时级在线深度学习,使得在线排序模型可以学习到1小时前平台上的用户和商家最新流行的数据模式。2020年团队又继续探索分钟级在线深度学习,把排序模型发现平台用户和商家最新流行的数据模式的延迟降低到分钟级。

在线学习的重要性


样本特征的实时性
样本特征的实时性包括在线系统实时计算和更新模型的输入特征,使得模型总能使用最新的特征进行预测和推荐,以及日志采集和样本构建系统实时采集用户行为并生成实时流式训练样本。其中我们把在线系统实时特征(实时行为序列、实时交叉统计特征等等)的计算和更新归类为模型结构优化的工作,不在本文介绍的工作范畴;本文着重介绍我们在实时流式样本构建和利用实时流式样本就是流式训练上的探索。▐ 实时流式样本生成

▐ 延迟反馈建模



▐ 特征独立同分布
机器学习算法有一个独立同分布的基本假设,即模型训练的数据分布要与预测时的数据分布独立同分布。一些时间特征比如week和hour,在离线批样本中由于被充分shuffle过,使用这些特征训练出来的模型依然能保障训练和预测独立同分布,但是在实时流式训练中,样本实时顺序到达的,这类特征无法被充分shuffle,使得模型训练一直在训练同一个时刻的特征值,而预测时可能切换到下一个时刻的特征值,导致模型泛化能力差。 图6是我们实验的对同一批样本修改hour的特征值对CTR批模型和流模型预估值的影响,可以看到在流模型中使用不同的hour特征值,模型预估值波动非常大,模型对hour特征过拟合,对下一个时刻没有泛化能力。在我们的实践中,我们在流模型中统一将这类特征的值和梯度置0(批模型不改),以保障模型的稳定性。
模型训练更新的实时性
模型训练时流模型首先通过restore离线批训练最新的模型版本作为实时流式训练的初始化模型,读取消费Swift消息队列的训练样本流式训练模型。训练平台上的模型会定时生成模型版本(checkpoint)到HDFS上,然后发布至在线打分平台,在线打分平台上接收到模型版本之后会先通过BuildService转换成在线打分的模型表,并load到在线机器的内存中进行在线打分服务。
▐ 批流结合训练
实时流式训练的在线学习模型具有时效性强,能捕捉数据分布的实时变化,更快发现人群的偏好和最新的流行趋势;然而由于上一章节介绍的延迟反馈问题以及特征独立同分布问题,流模型的训练样本label存在一定比例的错误,并且丢失了类似week和clock等时间特征,模型相比于离线批训练模型处于欠拟合状态。 而离线批训练模型由于样本是天级组织,label准度高,而且数据被重复shuffle过,可以弥补流模型存在的问题。因此我们结合批模型和流模型的有点,设计了批流结合的在线学习方案:定期从最新的批模型恢复重新流式训练流模型。 图8展示了每周从批模型重启一次的批流结合模型和持续流式训练的流模型在一个月的效果对比,可以看到批流结合的训练方式效果要优于持续流式训练的方式,持续流式训练的方式由于延迟反馈问题以及特征独立同分布问题会损失一定的效果,但是损失的该部分效果会趋向于稳定。
▐ 小时级模型更新
由于大规模深度排序模型的规模非常大(checkpoint大小 > 500G),按照传统模型更新的方式:生成checkpoint->推送到在线打分平台->BuildService生成模型表->在线打分平台加载模型表到内存,这整个过程需要1个多小时,因此最多只能做到小时级别的模型更新。2019年我们在深度排序模型做在线学习时,采用的就是这种更新方式,训练平台小时级定时的生成checkpoint和自动推送到在线打分平台来完成流式训练模型的在线更新。▐ PS直发分钟级模型更新
2020年信息流算法团队通过与算法工程团队同学合作,构建了PS直发的分钟级在线学习方案。深度排序的规模大主要是模型中包含一些大规模的Sparse参数,比如UserId、ItemID、PID等的embedding。与Dense参数不同,Sparse参数虽然总体规模庞大,但是不是每一次的训练迭代都会更新所有的Sparse参数,比如ItemID的embedding参数,每个训练的batch中涉及的到ItemID就只有几万个,占整个参数空间的一小部分。 在首猜的CTR大模型中,checkpoint大小>500G,但是每15min被更新的参数只有30多G的Sparse参数被更新(不包括梯度等在线推理不需要的参数),在线模型只需要在每15min更新这个窗口内更新的特征,就可以大大减少每次更新的参数规模,提升在线模型更新的效率,从而提高模型的时效性。 模型参数的增量更新有通过Diff Checkpoint的参数Diff收集更新的参数、在PS中维护HashMap记录更新的参数并通过PS直发等多套技术方案,最终我们采样更新效率最高的PS直发技术。 PS直发的具体实现是:对于SparseTensor会在每个PS上分别维护一个HashMap记录更新的ID和频次,每隔一定的时间间隔,由每个PS各种收集在这个时间间隔内更新的ID对应的参数,并行的写入到Swift Topic中;而对应非SparseTensor的参数,比如MLP权重和非Sparse的特征,由于其基本都是全部更新,由Chief Worker统一从各个PS上拉取这些参数并拼装成完整的参数再写入到Swift Topic中。 虽然SpareTensor是在PS上直发,但是Chief Worker在整个发送过程中起了协调和触发的作用,Chief 每次发送之前都会向Swift发送一个开始写的信号,在PS和Chief都完成参数发送后再发送一个写结束的信号。Swift会将这个写信号开始(startTime)和结束(endTime)之间的参数当作一个整体来看待,从而保证了参数的一致性。首猜商品CTR模型的分钟级更新采用了15min的时间间隔,每15min进行一次PS参数直发,发送参数规模在30G左右,在半分钟左右就能完成全部参数的发送。 在线打分平台上的Processor会读取Swift Topic上的参数,并将参数直接发送到Searcher,在Searcher上开辟一段实时内存来让参数实时生效;与此同时还会进一步将参数发送到BuildServer,构建出一个增量的索引,再次发送到Searcher上,Searcher收到这个索引之后会清掉实时内存中的这部分参数,以降低实时内存的消耗。
在线学习质量保障

▐ 样本质量
样本数据作为机器学习的基石,其质量的好坏直接决定了模型效果的上限,特征对于在线学习系统模型不断在利用最新的流式样本数据,做好样本数据质量保障,对于在线学习效果提升和系统稳定性保障至关重要。在样本质量保障方面,我们主要从特征监控体系、样本产出监控和样本特征在离线一致性校验来保障在线学习的样本质量。- 特征监控体系
- 样本产出质量
- 样本特征在离线一致性校验
▐训练质量
训练质量主要目标是保证模型训练的稳定性和正确性,主要包括异常样本拦截和模型离线效果监控。- 异常样本拦截
- 模型监控
▐预估质量
预估质量监控是在线学习监控链路的最后一个环节,改环节主要包括冒烟发布和异常回滚。 小流量灰度集群效果验证是保证模型预估质量最为稳妥的方式,先将模型推送到小流量集群进行效果观察,效果正常后进行全机房推全。这种方式能有效预防各种模型稳定引发的故障,但是这种方式更新周期长,切换效率低,有损在线学习模型的时效性。为了保证预估模型的质量和时效性,我们采用小样本在离线打分一致性评估的方式进行模型质量保证,其中离线评估通过AUC和predict mean确保离线模型的正确性,小样本在离线模型打分一致性对比为了确保在离线模型的一致性。小样本在离线打分一致性评估基本能达到小流量灰度集群验证的效果,而且校验数据快,不破坏在线学习模型的时效性。 异常回滚主要是在发现模型异常时,可以及时快速地回滚到上一个正常的版本。在线打分系统上的模型通常不仅仅存储当前在服务的版本,还会存储上一个模型版本,当当前版本异常时可以款式切换到上一个版本的模型参数。 本文介绍了我们在在线深度学习(ODL)实时流式样本构建、模型实时训练和在线 实时更新,以及在线深度学习质量保障工作上的探索与实践。 大规模深度学习模型小时级在线学习最早在首页商品信息流CTR模型上全量,日常CTR +2.2%,成交金额 +1.7%; 2020年双十一期间(11.01~11.11)CTR +5.2%,成交金额 +2.9%。 2020年我们升级到分钟级在线深度学习,在小时级在线深度学习的基础上,CTR +1.1%,成交金额 +0.4%。 在视频信息流推荐场景,在线深度学习带来日常 CTR +3%,PV +0.7%;7天内新视频 PV +22%,CTR +10%。我们负责阿里电商的核心推荐算法,包括淘宝/天猫首页、购物链路等多个核心场景的信息流推荐业务。 我们致力于每天为上亿用户提供数十亿精准个性化的信息推送服务,打造极致的购物体验。 团队在人工智能多个领域深耕多年,研究领域包括大规模在线深度学习、深度强化学习、图嵌入学习、边缘计算、智能交互、自然语言理解、因果推断、商业化机制等。 欢迎加入我们,一起探索人工智能在电商领域的无限可能。 欢迎投递简历:[email protected]
✿ 拓展阅读
作者|陈启伟(陆轺)、葛均锋(北黎)
编辑|橙子君
出品|阿里巴巴新零售淘系技术


本文分享自微信公众号 - 淘系技术(AlibabaMTT)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
Recommend
-
83
-
56
今年来深度学习中的 卷积神经网络 (上图是一个卷积神经网络形态)技术开始显现威力,通过简单的几行代码就能实现对图...
-
17
60分钟入门深度学习工具-PyTorch 作者:Soumith Chintala 原文翻译自: https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html 中文翻译、注释制作:黄海广 github下...
-
47
导读 在互联网商业变现场景中,广告变现占有主导地位。2012年随着深度学习网络AlexNet在ImageNet夺冠开始,深度学习迅速席卷图像、语音、NLP等领域,并逐步在互联网商业化最成功的搜索、推荐和广告领域获得突破并成...
-
9
导读 深度学习得益于良好的深层特征表达性,目前在视觉、文本、语音等领域获得了广泛的应用。搜索领域紧贴用户需求,作为深度学习商业变现最成功的路径之一,众多头部企业发展出了许多优秀的应用。58同城是国内最大...
-
5
分享嘉宾: 崔凌云,58同城TEG搜索排序部算法架构师整理出品: 张劲,AICUG人工智能社区
-
9
AI架构 via Mac OS ht...
-
7
分享嘉宾: 王连臣,58同城TEG搜索推荐部高级算法工程师整理出品: 张劲,AICUG人工智能社区 系列分享:
-
2
百度信息流拓词玩法,意图词分分钟搞定! 2019-04-22来源:woshizmt.cn 编辑:boss浏览量:3322
-
7
首页世界网站工具在线logo制作 免费标志制造商,在 5 分钟内创建漂亮的徽标
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK