本文探讨了如何在工业界的连续学习的框架下实现跨域推荐模型,提出了连续迁移学习这一新的跨域推荐范式,利用连续预训练的源域模型的中间层表征结果作为目标域模型的额外知识,设计了一个轻量级的Adapter模块实现跨域知识的迁移,并在有好货推荐排序上取得了显著业务效果。
背景
近些年随着深度模型的应用,工业界的推荐系统的推荐效果取得了显著的提升,随着模型的持续优化,使得仅依赖场景内数据优化模型结构和特征变得较为困难。在淘宝这样的大规模电商平台上,为了满足不同用户的多样化需求,存在一系列不同规模大小的推荐场景,如信息流推荐(首页猜你喜欢)、有好货、购后推荐、聚划算等,这些场景共享淘宝商品体系,但在具体的选品池、核心用户和业务目标等方面存在显著差异,且不同场景的规模差异极大。我们的场景有好货是淘宝精选商品的导购场景,和信息流推荐、主搜索等场景相比规模相对较小,因此如何利用迁移学习、跨域推荐等方法提升模型效果一直以来是有好货排序模型优化的重点之一。
淘宝不同业务场景的商品和用户虽有重合,但由于场景差异显著,信息流推荐等大场景的排序模型直接应用于有好货场景上效果不佳。因此,团队在跨域推荐方向做了相当多的尝试,包括利用预训练-微调、多场景联合训练、全域学习等一系列已有方法。这些方法要么效果不够明显,要么在实际上线应用中存在相当多的问题。连续迁移学习项目就是针对这些方法在业务中应用的一系列问题,提出的简单有效的新的跨域推荐方法。该方法利用连续预训练的源域模型的中间层表征结果作为目标域模型的额外知识,并在淘宝有好货推荐排序上取得了显著业务效果。
本文详细版本Continual Transfer Learning for Cross-Domain Click-Through Rate Prediction at Taobao已发布在ArXiv https://arxiv.org/abs/2208.05728。
方法
▐ 现有工作及其不足
分析现有的学术界和工业界的跨域推荐(Cross-Domain Recommendation, CDR)的相关工作,主要可分为两大类:联合训练(Joint Learning)和预训练-微调(Pre-training & Fine-tuning)。其中,联合训练方法同时优化源域(Source Domain)和目标域(Target Domain)模型。然而,这一类方法需要在训练中引入源域的数据,而源域样本通常规模很大,从而消耗巨大的计算和存储资源,很多较小业务难以承担如此大的资源开销。另一方面,这一类方法需同时优化多个场景目标,场景之间的差异也可能带来目标冲突的负面影响,因此预训练-微调类方法在工业界很多场景有着更广泛的应用。
工业界推荐系统一个重要的特点是模型训练遵循连续学习(Continual Learning)范式,即模型需要使用最新的样本,利用离线增量更新(Incremental Learning)或在线学习(Online Learning)等方式学习最新的数据分布。对于本文研究的跨域推荐任务而言,源域和目标域的模型都是遵循连续学习的训练方式。我们由此提出了一个学术和工业上将有广泛应用的新问题:连续迁移学习(Continual Transfer Learning),定义为从一个随时间变化的领域到另一个也随时间变化的领域的知识迁移。我们认为,现有的跨域推荐和迁移学习方法在工业推荐系统、搜索引擎、计算广告等的应用应当遵循连续迁移学习范式,即迁移的过程应当是持续的、多次的。原因在于数据分布变化较快,只有通过连续的迁移才可以保证稳定的迁移效果。结合这一工业推荐系统的特点,我们可以发现预训练-微调在实际应用上的问题。由于源域和目标域的场景差异,通常需要用大量样本才可以利用源域模型微调得到一个效果较好的结果。而为了实现连续迁移学习,我们需要每隔一段时间都利用最新的源域模型重新微调,造成了非常巨大的训练代价,这样的训练方式也是难以上线的。此外,利用这些大量样本微调也可能使得源域模型遗忘掉保留的有用知识,避免模型出现灾难性遗忘(Catastrophic Forgetting)问题;利用源域模型参数去替换掉原有的目标域已经学好的参数也丢弃了原有模型历史上获得的有用知识。因此,我们需要设计一个更加高效,适用于工业推荐场景的连续迁移学习模型。
本文提出了一个简单有效的模型CTNet(Continual Transfer Network,连续迁移网络)解决了上述问题。不同于传统的预训练-微调类方法,CTNet的核心思想是不能遗忘和丢弃所有模型在历史上获取的知识, 保留了原有的源域模型和目标域模型的所有参数。这些参数中保存了通过非常久的历史数据学习得到的知识(例如淘宝有好货的精排模型已经连续增量训练两年以上)。CTNet采用了简单的双塔结构,利用了一个轻量级的Adapter层将连续预训练(Continually Pre-trained)的源域模型中间层表示结果映射并作为目标域模型的额外知识。不同于预训练-微调类方法需回溯数据以实现连续迁移学习,CTNet只需要增量数据进行更新,从而实现了高效的连续迁移学习。
方法 | 无需利用大量的源域样本 | 不受源域场景目标影响 | 只需要增量数据即可实现连续迁移学习 |
联合训练 | 否 | 否 | 是 |
预训练-微调 | 是 | 是 | 否 |
本文提出的CTNet | 是 | 是 | 是 |
表1:CTNet和现有的跨域推荐模型的对比
▐ 问题定义
本文探讨的是连续迁移学习这一新问题:
给定随时间持续变化的源域和目标域,连续迁移学习(Continual Transfer Learning)希望能够利用历史或者当前获得的源域和目标域知识提升在未来目标域上的预测准确率。
我们将连续迁移学习这一问题应用在淘宝的跨域推荐任务上。该任务具有如下特点:
- 不同推荐场景规模相差很大,可以利用较大的源域训练的模型的知识提升目标域的推荐效果。
- 不同场景的用户和商品共享同一个大底池。但不同场景由于精选商品池、核心用户、图文等展示效果不同存在较为明显的领域差异。
- 所有推荐场景的模型都是基于最新数据持续增量训练的。
图1:模型部署示意图
上图展示了我们的方法部署上线的情景。在时刻之前源域模型和目标域模型都是只利用各自场景的监督数据单独连续增量训练的。从时刻开始,我们在目标域上部署了跨域推荐模型CTNet,该模型将在不能遗忘历史上获取的知识的情况下,继续在目标域数据上持续增量训练,同时连续不断地从最新的源域模型中迁移知识。
▐ 连续迁移网络模型(CTNet)
图2:连续迁移网络CTNet
如图2所示,我们提出的连续迁移网络(Continual Transfer Network, CTNet)模型在原有的目标域的精排模型中嵌入了源域模型的全部特征及其网络参数,形成一个双塔的结构,其中CTNet的左塔为源塔(Source Tower),右塔为目标塔(Target Tower)。不同于常见的只利用源域模型最终打分分数或只利用一些浅层表示(如Embedding)的方法,我们通过一个轻量化的Adapter网络将源域模型MLP的所有中间隐藏层(特别是源域MLP深层蕴含的user和item的高阶特征交互信息)的表示结果映射到目标推荐域,并将结果加入到Target Tower的对应层中(下面公式表示了的情况)。
CTNet效果提升的关键就是利用了MLP中深层表征信息的迁移。借鉴Gated Linear Units(GLU)的思想,Adapter网络采用了门控的线性层,可以有效实现对源域特征的自适应特征选择,模型里有用的知识会做迁移,而与场景特点不符的的信息可被过滤掉。由于源域模型持续不断的使用最新的源域监督数据进行连续预训练,在我们的训练过程中,Source Tower也将持续不断的加载最新更新的源域模型参数并在反向传播过程中保持固定,保证了连续迁移学习的高效进行。因此,CTNet模型非常适用于连续学习范式,使得目标域模型持续的学习到源域模型提供的最新知识以适应最新的数据分布变化。同时由于模型仅在目标域数据上进行训练,保证了模型不受源域训练目标的影响,且完全不需要源域数据训练,避免了大量的存储和计算开销。此外,这样的网络结构采用了加法的设计方法,使得迁移过程中无需改变原始模型MLP层的维数,Target Tower完全由原有的目标域线上模型初始化,避免MLP层重新随机初始化,可以在最大程度上保证原有模型的效果不受损害,仅需较少增量数据就可得到很好的效果,实现了模型的热启动。
我们定义源域模型为,原有的单域推荐的目标域模型为,新部署的目标域跨域推荐模型为,为跨域推荐模型部署上线时间,该模型连续增量更新至时刻。Adapter、Source Tower和Target Tower的参数分别为、和。CTNet训练的流程如下所示:
图3:CTNet的训练
实验
▐ 离线效果
表2:离线实验结果
如上表所示,我们在有好货业务的两个子场景(表中Domain B和C)的对应的生产数据集上进行了一系列离线实验,其中源域(表中Domain A)为首页信息流推荐场景。可以看出,直接利用信息流推荐(首页猜你喜欢)排序模型打分结果(表中的Source Domain Model)在有好货业务上效果并不好,对比线上全量模型分别有绝对值GAUC-5.88%和GAUC-9.06%的显著差距,证明了场景之间存在的差异。
我们还对比了一系列传统的跨域推荐的Baseline方法,包括常见的预训练-微调类方法和联合训练的方法(如MLP++、PLE、MiNet、DDTCDR、DASL等),提出的CTNet在两个数据集上均明显优于已有方法。对比线上全量主模型,CTNet在两个数据集上分别取得GAUC+1.0%和+3.6%的显著提升。我们进一步通过实验分析了连续迁移(Continual Transfer)相比单次迁移的优势。在CTNet的框架下,单次迁移带来的效果提升会随着模型的增量更新有所衰减,而连续迁移学习可以保证模型效果的稳定提升。
图4: 连续迁移学习相比单次迁移的优势
下表展示了传统的预训练-微调的效果,我们使用完整的源域模型在目标域数据上训练。由于领域之间的差异,需要非常多的样本(如120天样本)才可以将模型的效果调到一个和线上全量Base模型相当的水平。为了实现连续迁移学习,我们需要每隔一段时间都利用最新的源域模型重新调整,每一次调整带来的巨大代价也使得该方法不适用于连续迁移学习。此外,该方法并没有在效果上超越无迁移的Base模型,主要原因是使用海量的目标域样本训练也使得模型遗忘掉了原有的源域的知识,最终训练得到的模型效果也近似于一个只在目标域数据训练的效果。在预训练-微调的范式下,只加载一些Embedding参数的效果反而比复用所有参数更好(如表2所示)。
表3: 使用预训练的源域模型在目标域上训练的效果
▐ 线上效果
CTNet最早在2021年底完成,于2022年2月在有好货推荐业务全量上线。在两个推荐场景上相比上一代全量模型分别取得显著业务指标提升:B场景:CTR+2.5%,加购+6.7%,成交笔数 +3.4%,GMV+7.7%C场景:CTR+12.3%, 停留时长+8.8%,加购+10.9%,成交笔数+30.9%,GMV+31.9%
CTNet采用了并行的网络结构,为了节省计算资源我们共享了部分Attention层的参数和结果,使得Source Tower和Target Tower相同部分的Attention层只需计算一次。和Base模型相比,CTNet的线上响应时间(RT)基本持平。
总结和展望
本文探讨了如何在工业界的连续学习的框架下实现跨域推荐模型,提出了连续迁移学习这一新的跨域推荐范式,利用连续预训练的源域模型的中间层表征结果作为目标域模型的额外知识,设计了一个轻量级的Adapter模块实现跨域知识的迁移,并在有好货推荐排序上取得了显著业务效果。这一方法虽针对有好货的业务特点实现,但也是较为通用的建模方式,相关的建模方式和思想可以应用于诸多其他类似业务场景的优化。由于现有的CTNet的连续预训练的源域模型仅利用信息流推荐场景,未来我们考虑将连续预训练的源域模型升级为包括推荐、搜索、私域等更多场景在内的全域学习预训练模型。
团队介绍
我们是大淘宝技术-内容算法-有好货算法团队。有好货是淘宝基于口碑推荐的,旨在帮助消费者发现好物的导购场景。团队负责有好货商品推荐和短视频内容推荐业务的全链路算法优化,以提高优势商品挖掘能力和频道导购能力。目前主要的技术方向为连续迁移学习跨域推荐、无偏学习,推荐系统全链路建模、序列建模等。在创造业务价值的同时,我们还在SIGIR等国际会议上发表数篇论文,主要成果有PDN,UMI,CDAN等。