本文来源:支付宝体验科技公众号
🙋🏻♀️ 编者按:本文作者是支付宝算法工程师李阳(素数),过去一年,支付宝商业化广告算法做了从全场景统一建模到场景内单独建模的探索,主要包括新场景冷启问题优化、知识迁移学习以及系统实时性优化等工作,取得了明显业务收益。本文将介绍背后的算法优化细节,欢迎查阅~
1. 背景
随着支付宝广告业务发展,一些新的流量场景也不断接入,下图为 APP 端内某个广告场景的产品样式。
图1:支付宝某商业化广告产品样式
新的流量场景接入,面临较大业务挑战:a) 上线初期,缺乏场景内用户反馈样本数据,面临新场景冷启问题;b) 中期,广告点击率低,面临进一步扩量难题(CTR 满足一定阈值条件后,推荐展位才允许进一步放量);c) 后期,面临广告 CPM 提升以及业务收益压力问题。针对不同阶段的业务问题挑战,我们分别做了相应的算法优化,主要包括三方面:基于样本增强的新场景冷启问题优化;基于跨场景知识迁移以及用户分层知识迁移的广告点击率提升优化;提升广告系统时效性的算法优化。
经历多轮技术迭代升级,场景内 CTR 模型技术指标 AUC 绝对量提升0.10。业务效果 CTR3 相对提升超过 +100%,CPM3 相对提升超过 +200%,是运营、产品、技术团队共同努力的结果。技术指标和业务指标变化曲线分别如图2、图3所示。为保障数据安全需要,本文业务数据指标都已做脱敏处理,隐去其绝对量数值情况。
图2:商业化广告技术指标 AUC & PCOC
图3:商业化广告业务指标 CTR3 & CPM3
2. 新场景冷启问题优化
2023.06 月份以前,支付宝某个推荐卡片还是纯推荐流量;6 月份以后,推荐卡片坑位开始接入广告物料,广告定坑与推荐物料混合展示。上线初期,由于该场景缺乏广告样本数据,面临新场景冷启问题。
推荐已积累大量样本数据,很自然的想法是将展位内的自然推荐样本引入到广告样本中,通过推荐域样本增强以缓解新广告场景冷启问题。基于推荐 & 广告线上系统埋点日志,采用 trace_id 关联两个系统样本数据,将 user 侧特征与广告系统特征对齐,增强样本加工逻辑见图4。需要说明的是,推荐物料和广告物料是异构的,二者不存在交集,即推荐物料无法映射到广告物料。由于广告 ad 侧特征与推荐 content 侧特征目前还无法对齐,广告 ad_id 取推荐 content_id,ad 侧其它特征补0。
该样本增强策略上线初期,离线技术指标提升显著:AUC +0.01,作为该场景 baseline 模型。
随着场景内广告样本数据的不断累积,基于自然推荐样本增强策略效果逐渐减弱。进一步打通广告单元和推荐物料的内容理解,深入挖掘广告单元与推荐物料可迁移的泛化特征,比如图片/文本多模态特征、行业类目体系特征、实体特征等,推荐 & 广告场景联合建模,也是我们未来优化方向之一,还有很大挖掘空间。
图4:自然推荐样本增强加工逻辑
3. 知识迁移学习
3.1 跨场景知识迁移
支付宝广告投放场景较多,较长一段时间我们基于多场景/多任务统一建模。工业界,多场景/多任务统一建模代表性技术方案有:SharedBottom、MMOE、PLE、ESSM、STAR、PPNet、M2M、APG 等 [1-4],如图5所示。其优点是:多场景数据增强、缓解小场景样本稀疏问题,提高模型泛化能力;统一建模,便于模型维护、统一优化。不过统一建模也有明显缺点:场景间数据分布差异性大,不同场景可能存在梯度冲突、跷跷板现象;尤其是样本量丰富的大场景,单独建模场景模型效果可能优于统一建模。
图5:工业界多场景/多任务建模代表性方案[4]
新场景上线一段时间后积累了大量样本数据(每天千万级曝光 PV 样本数据),成为支付宝广告的 top 流量入口,为场景单独建模提供了可能性。另一方面,该场景与其它场景的广告供给以及用户行为差异性明显,这也是我们考虑将该场景单独建模的原因。
单场景建模,我们探索了如下方案:
V0:多场景统一建模,作为 baseline。
V1: 只使用场景内样本数据,网络参数随机初始化训练。
V2:基于 pretrain—>finetune 范式,训练好的统一模型作为预训练模型,finetune 加载预训练模型网络参数且部分参数可 train(part finetune,fix embedding 层、只训练 MLP 层);finetune 阶段也只使用场景内样本数据。
V3:基于 pretrain—>finetune 范式,训练好的统一模型作为预训练模型,finetune 加载预训练模型网络参数且全部参数可 train(full finetune);finetune 阶段也只使用场景内样本数据。
离线评估技术指标 AUC 提升情况见图6:a) v1版本只使用场景内样本训练单场景模型,较多场景统一建模 auc +0.004;b) 基于 pretrain—>finetune 范式的多场景知识迁移,finetune 阶段全参数训练要好于(fix embedding 层)部分参数训练。我们的实验得到如下结论:多场景统一建模并不是万能的,大场景单独建模更能匹配场内样本数据分布,有可能优于统一建模;场景间知识迁移,加载多场景统一建模 pretrain 参数,让单场景模型也学习到了多场景间的共享知识,有助于单场景模型效果提升。
我们采用 V3 全参数 Tune 技术方案,如下图7所示。线上ab实验,广告业务效果:CPM3 +2.31%,CPM1 +1.76%, CTR3 +1.99%。
图6:跨场景知识迁移技术指标提升情况
图7:跨场景知识迁移 (Full Fine-tune)
3.2 用户分层知识迁移
在精排 CVR 模型中,为解决冷启广告单元预估性能差的问题,我们较早地基于 MAML(Model-Agnostic Meta-Learning)[5] 元学习框架,有效利用了非冷启动单元上学到的知识,迁移到冷启单元上来,取得了较好的业务收益。Meta Learning(元学习)是以任务维度(task)为训练样本,在不同任务上学习先验信息,即使在样本量较少的情况下,也能够利用先验信息获得较好的结果。元学习又分为基于度量、基于模型和基于优化的范式。其中基于度量学习的元学习需要为每个类别学习一个表征,通过和该类别距离度量来决定分类,但是在搜广推中大多特征都是高维稀疏的,基于距离度量的方式并不能简单归纳点击或非点击为一类;基于模型的元学习主要利用深度网络模拟一个优化器,但需要额外学习网络参数,训练难度大;基于优化的算法(MAML)因其模型无关、易于实现等优点成为了广泛应用的元学习范式,许多基于元学习的算法也都是应用了 MAML,为新任务学习一个较好的初始化网络参数。
从数学推导以及贝叶斯概率论角度来看,基于 meta-train 得到的初始化参数可以作为新任务较好的一个初始化先验知识。其灵活性较高,能够解决 task 不平衡性问题;对于分布外(OOD)的任务解决能力较强,这是由于二阶段模式带来的好处:内循环解决任务参数私有性问题,外部循环 pooling 操作学习所有任务的 common 知识。所以,目前在搜广推领域基于MAML 的路线也是比较主流的。
场景(Task)划分方式直接影响基于MAML的模型效果,良好的场景划分方式应该具有如下特点:a)同场景样本的内聚性,如果样本分布差异过大会加大学习难度,影响模型泛化性;b)场景间的关联性,如果老场景与新场景不具有关联性或可迁移性,会导致新场景的个性化模型难以快速收敛。早期 CVR 模型中,我们分别探索了基于广告单元粒度、广告行业类目粒度以及基于聚类的 MAML Task 划分;CTR 模型中,人群数据分布差异性更为明显。因此我们优先尝试了基于人群分层粒度的 MAML Task 划分,其样本组织方式如图8;MAML 内、外循环两阶段参数更新方式如图9。
基于人群分层粒度的 MAML 建模,考虑了人群数据分布的差异性,同时引入了人群的公共知识,商业化广告场景 CTR 模型 auc+0.003。线上业务效果:CPM1 +2.28%,CPM3 +2.20%,CTR3 +3.68%。
图8:MAML 基于 Task 的样本组织方式(one batch)
图9:MAML 内外循环模型参数更新方式
4. 系统时效性优化
我们做了特征实时性以及模型实时性升级优化,使得场景内精排 CTR 模型 auc 累计提升+0.012,CPM3 累积提升 +7.94%,CTR3 累积提升 +8.89%。
4.1 特征实时性
实时特征能够反映用户即时兴趣偏好。实时特征引入面临三个问题:a) 哪些特征需要实时化,如何识别出这些特征?b) 实时特征有效性如何评估?c) 实时特征开发上线 pipline。
基于离线特征重要性评估的实时特征筛选。离线user侧序列特征众多,我们需要决策哪些离线特征进行实时化有可能带来增量价值。因此我们首先对离线特征重要性评估。树模型根据信息增益计算比较方便评估特征重要性,但 DNN 模型特征重要性评估就没有这么直接。一种方法是,在 infer 阶段,每次随机 shuffer test input data 某一维度特征,观察 loss 或 auc 变化情况,变化越小说明该特征越不重要。另一种方法,观察 input 时连接特征输入的第一层网络权重大小,权重越大则重要性越高(最好是对 input 增加 batchnorm 消除不同 feature 之间量纲影响)。第一种方法计算量大,我们选择第二种方法,相对简单地计算特征重要性,部分特征重要性排序如图10。项目初期,我们评估圈定了部分离线特征进行实时化。
图10:部分特征重要性排序
基于仿真数据的实时特征有效性评估。实时特征引入模型后的效果评估,是一个繁琐的过程,未上线前缺乏真实特征数据,如果每次迭代都先要对实时特征上线 —> 线上日志收集 —> 离线样本构造 —>离线评估,整个评估链路耗时耗力。为解决实时特征有效性评估问题,实时数据合作团队借助蚂蚁集团内 AI Studio 特征仿真能力进行实时特征快照的模拟,帮我们实现了一套实时数据仿真系统,能够获取某次 request 请求时刻对应的实时特征数据,解决了实时特征有效性评估难题。
广告实时数据开发链路如图11所示。实时特征开发上线 pipline,依赖蚂蚁集团内 Frigate & Arec 完善的工程系统支撑。特征回流、样本加工、模型训练、线上服务多个系统间交互流程如图12所示。
图11:广告实时数据链路 图12:广告多系统交互情况(特征、样本、模型、线上服务)
对广告系统实时特征的挖掘与升级,取得较大业务收益。
- i) 精排 CTR 模型收益情况
大盘整体效果:CPM1 +1.53%,CPM3 +1.61%,CTR3 +3.09%。
- ii)粗排模型收益情况
大盘整体效果:CPM1 +1.50%,CPM3 +1.24%。
4.2 模型实时性:Online Learning
4.2.1 问题背景
在大型搜索和推荐系统中,流量结构、用户行为数据分布以及供给会时刻发生变化,如图13所示。天级别训练的离线模型难以应对线上动态环境变化。因此我们希望线上模型预估不仅能很好地利用过去数据做预测,更能对系统变化快速做出反应,利用好每一个用户反馈样本。
- 每天不同时段,场景内流量结构分布变化。
- 每天不同时段,用户行为数据分布变化。
- 每天不同时段,供给分布变化。
为应对场景内动态变化的线上环境,我们将场景 CTR 模型升级为在线学习,利用实时用户反馈数据,实时更新模型参数。
图13:场景内流量结构、用户行为以及广告供给随时间变化情况
4.2.2 ODL 模型优化
在线学习任务训练数据以 Streaming 样本流的形式实时地输入到训练框架中。其优势是保证了样本数据的时效性,使在线模型能够快速捕捉场景数据分布变化;其劣势也可能导致模型受当前数据分布波动的影响而损失稳定性,是把双刃剑。
广告在线学习模型实验经历了一段时间优化,初期模型效果并不理想,CTR、CPM 等业务指标均负向。数据分析发现 ODL 在场景内存在过拟合、知识遗忘现象,ODL 泛化能力不如离线模型,这也是本次模型优化的挑战。该现象在手淘、阿里妈妈、支付宝等业务场景的在线学习实践中也经常遇到。文献[6]针对持续学习遇到的灾难遗忘问题做了分析综述。场景内具体 Case 分析:2023.12.03 号 14 点,用当前时刻 Stream 样本流评估发现 Stream AUC 较离线模型有 +0.01 较大提升,模型被导出部署至线上;之后时间段(ODL 模型更新后)发现线上 AUC 比离线模型还低1个百分点,且在线模型 PCOC 增大,存在模型过拟合、泛化能力下降问题,如图14所示。
说明:i. 基于 stream AUC 在线模型优于离线0.01,但模型部署上线后,线上 AUC 比离线模型低0.01;ii. ODL 模型偏差pcoc 持续高于离线模型
图14:ODL 模型上线初期遇到泛化性能下降问题
针对 ODL 上线初期遇到模型泛化能力差的问题,我们调整了如下优化策略:
- ODL fix emb 层参数:在线模型只学习MLP层参数,一定程度上制约了 ODL 模型学习能力,但也能有效缓解模型知识遗忘现象,避免在线模型"学飞"。在线只更新部分网络参数,该策略对于在线模型的泛化性能有增强效果。
- 样本回放策略 [7, 8]:解决 Out of Distribution (OOD) 问题。机器学习都有独立同分布假设。由于流式训练特点,样本实时顺序到达,context 特征(例如 hour, week)无法被充分shuffle,以及不同时间段线上流量结构的变化,流式样本数据不满足独立同分布假设。同样也会导致训练样本与预测样本分布不同(OOD),导致模型泛化能力下降。为缓解该问题,在构建在线样本时,我们采取样本回放策略,从历史离线数据中1:7比例随机采样过去7天离线样本数据并与流数据融合,保证训练样本与预测样本分布一致性。另外调研了腾讯的策略:用过去一天当前小时以后的样本进行采样,与实时样本按照一定比例混合。比如现在是13点,实时样本都是13点左右的样本,而13点之前的样本模型已经训练过了,但是模型不知道13点之后数据分布,所以就从昨天样本中选取13点之后样本加入进去。该回放策略当前平台框架暂不支持。
- 模型热启动: 解决训练过程数据漂移问题。长时间的在线学习会导致参数漂移[7]。除了在初始阶段通过加载预训练离线模型加速在线模型收敛外,训练过程中还可以通过定时 restore离线周期训练模型进行在线链路热启动。我们加大了热启动频率,将每周热启动改为每天热启,发现该策略对降低 pcoc 有较大帮助。
- ODL 学习率调整:和离线训练相比,减小学习率也能有效缓解模型过拟合。
场景 ODL 模型开发上线流程如15所示。
图15:场景 ODL 模型开发上线流程
4.2.3 效果
技术指标:ODL auc +0.0076。其中,冷启广告单元 auc +0.013,pcoc -22.6%;稳定期广告单元 auc +0.004,pcoc -33.9%。另外,在线学习模型性能监控平台也可查看 Streaming 技术指标如图16所示,可以看到在线学习 pcoc 有明显降低。
ODL 对于业务效果也有明显提升:在线学习模型 CPM3 +3.55%,CTR3 +4.0%。其中,冷启广告单元 CTR3 +10.7%,在线学习对于冷启广告单元效果提升更为明显。
图16:在线学习 Streaming AUC、PCOC 技术指标监控
5. 总结
过去一年,我们做了从全场景统一建模到场景内单独建模的探索,主要包括新场景冷启问题优化、知识迁移学习以及系统实时性优化等工作,取得了明显业务收益。
当前算法模型还存在许多问题和优化空间,例如:a) 广告和推荐域异构场景的联合建模,当前探索还很薄弱,内容理解还有很多问题尚未解决,LLM 大模型在其中的应用落地还有很大探索空间;b) 知识迁移学习,针对场景化建模还缺失;c) 在线学习,灾难遗忘问题还没有很好地解决。未来,我们将重点围绕以上问题继续探索。
参考资料
[1] Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts, KDD'18.
[2] Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations, RecSys'20.
[3] One model to serve all: Star topology adaptive recommender for multi-domain ctr prediction, CIKM’21.
[4] AdaSparse: Learning Adaptively Sparse Structures for Multi-Domain Click-Through Rate Prediction, CIKM’22.
[5] Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks, PMLR'17.
[6] A Comprehensive Survey of Forgetting in Deep Learning Beyond Continual Learning,2023.
[7] Experience Replay for Continual Learning, NeurIPS'19.
[8] Out-of-Distribution Generalization via Risk Extrapolation (REx) , ICLR’21.