目录
- 利用多模态表示提升淘宝展示广告效果:挑战、方法与洞察
- 摘要
- 1 引言
- 2 预备知识
- 推荐模型中的ID特征
- 基于ID的模型结构
- 3 多模态表示的预训练
- 3.1 语义感知对比学习
- 3.2 预训练数据集的构建
- 3.3 优化
- 4 与推荐模型的集成
- 4.1 观察和见解
- 4.2 方法一:SimTier
- 4.3 方法二:多模态知识提取器(MAKE)
- 多模态相关参数的多轮训练
- 知识利用
- 5 在线部署的工业设计
- 6 实验
- 6.1 实验设置
- 6.1.1 数据集
- 6.1.2 对比预训练方法
- 6.1.3 对比推荐方法
- 6.1.4 评估指标
- 6.2 预训练数据集上的性能
- 6.2.1 使用准确率评估预训练表示有效性的基本原理
- 6.2.2 语义感知对比学习的重要性
- 6.3 CTR预测数据集上的性能
- 6.3.1 不同集成策略的性能
- 6.3.2 MAKE不同训练轮次的性能
- 6.3.3 罕见物品的性能
- 6.4 在线性能
- 7 相关工作
- 8 结论与讨论
利用多模态表示提升淘宝展示广告效果:挑战、方法与洞察
Sheng Xiang-Rong, Yang Feifan, Gong Litong, Wang Biao, Chan Zhangming, Zhang Yujing, Cheng Yueyao, Zhu Yong-Nan, Ge Tiezheng, Zhu Han, Jiang Yuning, Xu Jian, Zheng Bo
摘要
尽管多模态数据在提升模型准确性方面的潜力已得到认可,但包括淘宝展示广告系统在内的许多大规模工业推荐系统,仍主要依赖模型中的稀疏ID特征。在这项工作中,我们探索了利用多模态数据提升推荐准确性的方法。我们首先确定了在工业系统中高效且经济地采用多模态数据的关键挑战。为应对这些挑战,我们引入了一个两阶段框架,包括:1)预训练多模态表示以捕捉语义相似性,2)将这些表示与现有基于ID的模型集成。此外,我们详细介绍了生产系统的架构,该架构旨在促进多模态表示的部署。自2023年中期集成多模态表示以来,淘宝展示广告系统的性能显著提升。我们相信,我们收集到的见解将为寻求在其系统中利用多模态数据的从业者提供宝贵的资源。
1 引言
传统上,淘宝展示广告系统中使用的推荐模型,与许多其他工业系统一样,主要依赖离散的ID作为特征。尽管基于ID的模型被广泛使用,但它们存在固有缺陷,例如无法捕捉多模态数据中包含的语义信息。
为解决这些问题,某些工业系统已尝试将多模态数据纳入基于ID的模型中[26,29]。通常,这些方法采用两阶段框架,包括:1)通过通用或特定场景的预训练获取多模态表示,2)将这些表示集成到推荐模型中。
尽管取得了这些进展,但许多工业系统仍然完全依赖ID特征。这通常是因为担心多模态数据带来的性能提升可能无法补偿其部署成本。这些成本包括预训练多模态编码器、为新物品增量生成表示,以及对在线服务器和近线训练系统进行其他必要升级。因此,多模态表示的成功集成取决于能否在提升性能优势的同时,最大限度地降低部署成本。
为实现这两个关键目标,需要解决三个实际挑战:
- 预训练任务的设计:多模态表示在提升性能方面的有效性取决于它们能否提供有意义的语义信息,而这是ID特征难以捕捉的。设计预训练任务以确保多模态表示能够封装此类语义信息至关重要。
- 多模态表示的集成:ID特征与多模态表示之间的固有差异(例如训练轮次的不同),需要采用能够有效将多模态表示纳入基于ID的模型的方法。这些方法应利用每种特征类型的优势,以提升模型的整体性能。
- 生产系统的设计:整个生产工作流程,包括为新物品生成多模态表示并将其最新应用于下游任务,都应设计为高效的。
为应对这些挑战,我们采用了如图1所示的两阶段框架。具体而言,在预训练阶段,我们提出了语义感知对比学习(SCL)方法。在此阶段,我们利用用户的搜索查询和后续的购买行为来构建语义相似的样本对,捕捉电子商务场景中与用户最相关的语义相似维度。对于负样本,我们从一个大型内存库中提取。SCL方法使多模态表示能够有效衡量物品之间的语义相似性。
在获得高质量的多模态表示后,我们提出了两种将这些表示纳入现有基于ID的模型的方法。首先,我们开发了一种名为SimTier的方法,用于衡量目标物品与用户先前交互过的物品之间的相似程度。生成的SimTier向量随后与其他嵌入连接,并输入到后续层中。此外,为解决多模态表示与ID嵌入之间训练轮次的差异,我们引入了多模态知识提取器(MAKE)模块。MAKE模块将与多模态表示相关的参数优化与基于ID的模型的参数优化分离,从而能够更有效地学习与多模态表示相关的参数。
我们还介绍了便于多模态表示部署的生产系统设计。具体而言,该系统为新引入的物品实时生成多模态表示,并确保这些表示可立即用于训练基础设施和在线预测服务器。这种设计实现了极短的延迟——从物品引入到模型使用其多模态表示仅需几秒钟。自2023年中期以来,多模态表示已在淘宝展示广告系统中部署,带来了显著的性能提升。
2 预备知识
在深入探讨细节之前,我们首先介绍工业系统不同阶段(包括检索[15,38]、预排序[27,34]和排序阶段[1,3,7,10,36])中使用的典型基于ID的模型结构。
推荐模型中的ID特征
常见的推荐模型在包含数十亿ID特征的大规模数据集上进行训练[16,32]。这些ID特征用于表示用户画像、用户历史交互物品、目标物品(待预测)和上下文信息。例如,我们可以用物品ID和类别ID表示目标物品,用一系列对应的物品ID和类别ID表示用户历史交互物品。
基于ID的模型结构
基于ID的推荐模型采用嵌入和多层感知机(MLP)架构,通常包含历史行为建模模块[35,36]。首先,所有ID特征都转换为嵌入。然后,历史行为建模模块通过分析目标物品嵌入与用户历史交互物品嵌入之间的相关性,衡量用户对目标物品的兴趣。具体而言,这些模块通过聚合目标物品和历史交互物品的嵌入生成固定长度的向量。这些向量随后与其他ID嵌入连接,形成后续MLP的输入,MLP产生最终预测。
3 多模态表示的预训练
关于多模态数据,其利用可以改善历史行为建模。具体而言,多模态数据可用于衡量目标物品与用户历史交互物品之间的语义相似性。以物品图像为例,它们可用于衡量目标物品图像与历史交互物品图像之间的视觉相似性。直观地说,语义相似性越高,表明目标物品与用户历史行为的相似性越强,用户感兴趣的可能性就越高。这一见解强调了设计预训练任务以确保多模态表示能够有效辨别物品对之间语义相似性的重要性。
3.1 语义感知对比学习
为了获得能够辨别语义相似性的表示,我们提出了语义感知对比学习(SCL)方法,该方法吸引语义相似的样本对,排斥不相似的样本对。为此,必须定义用于监督的语义相似和不相似对。为了理解这一点的重要性,考虑图5所示的示例,三个枕头几乎相同,但存在细微差异,如图案不同或外观略有不同。如果语义相似对的定义不充分,表示可能无法捕捉到这些细微差异。事实上,这些细微差别经常被专注于捕捉一般概念的表示所忽略。
下面,我们将详细阐述针对电子商务场景的预训练数据集构建和对比学习过程的优化策略。
3.2 预训练数据集的构建
在电子商务环境中,用户的搜索查询和后续的购买行为通常表明查询与购买物品之间存在很强的语义相似性。例如,如果用户搜索枕头的图像并随后购买了一个枕头,这一系列动作表明两个图像(查询图像和购买物品的图像)在语义上足够相似,能够满足用户的购买意图。因此,如表1所示,在训练文本编码器时,我们将用户搜索查询的文本与他们最终购买物品的标题配对,作为语义相似对。同样,对于图像模态,用户的图像查询(从淘宝的图像搜索场景获得)与后续购买物品的图像配对。这种配对策略自然捕捉了电子商务场景中与用户最相关的语义相似维度,反映了影响他们购买决策的因素。
对于每个语义相似对,我们将所有其他样本视为潜在的不相似样本,这可以通过使用当前小批量中的样本作为负样本来实现。为了进一步提高模型性能,我们旨在增加训练期间可用的负样本数量。具体而言,我们从MoCo[12]中获得灵感,采用一种通过动量更新模型的技术,便于从更大的内存库中采样更多负样本。构建负对的更复杂策略,例如识别硬负样本[23],将在6.1.2节中详细阐述。
3.3 优化
我们使用备受认可的InfoNCE损失[19]作为损失函数。给定一个编码后的查询q及其对应的编码正样本k,以及表示内存库中编码样本表示集合的 k 0 , k 1 , . . . , k K k_{0}, k_{1}, ..., k_{K} k0,k1,...,kK (其中K表示内存库大小[12]),InfoNCE损失使用点积来衡量相似性(所有表示均进行L2归一化)。如公式1所示,当查询q与指定的正样本k紧密匹配且与内存库中的所有其他样本不同时,损失值会降低。
L InfoNCE = − log exp ( q ⋅ k + ) / τ ∑ i = 0 K exp ( q ⋅ k i ) / τ L_{\text{InfoNCE}} = -\log \frac{\exp \left( q \cdot k_+ \right) / \tau}{\sum_{i=0}^{K} \exp \left( q \cdot k_i \right) / \tau} LInfoNCE=−log∑i=0Kexp(q⋅ki)/τexp(q⋅k+)/τ
通过这种方式,SCL方法使表示能够辨别可比物品之间的细微差异,这对于推荐模型至关重要。
4 与推荐模型的集成
将多模态表示集成到基于ID的推荐模型中的一种直接方法是将这些多模态表示与目标物品和用户过去交互物品的ID嵌入连接[9,29]。连接后,使用用户行为建模模块,随后将其输入MLP进行最终预测。尽管这种方法简单,但我们发现性能提升有限。为了调查这一问题,我们分享了我们的观察和见解。
4.1 观察和见解
我们首先分享关于纳入多模态表示的观察和见解。
观察1:简化多模态表示的使用可提高性能。我们的研究表明,将多模态表示直接集成到基于ID的模型中并未获得最佳性能,6.3节将对此进行更详细的解释。出现此问题的原因是,在与ID嵌入联合训练期间,与多模态表示相关的参数(例如与多模态表示连接的MLP参数)未得到充分学习[29]。相比之下,简化多模态表示使用的策略(例如将其转换为语义ID(从而用ID表示嵌入向量))[26,29]似乎能提供更好的性能。
多模态信息整合的方式
- 直接整合:将多模态信息作为特征直接输入推荐模型。此方法操作简单,但因多模态信息的embedding空间与推荐模型学习的参数空间存在一致性差异,往往效果不佳。
- 间接整合:先通过小模型对多模态信息进行微调,再将微调后的embedding信息输入推荐模型。该方式借助小模型对齐多模态信息的embedding空间与推荐模型的学习空间,提升了两者的一致性,非常重要,优化了整合效果。
通过对比可见,间接整合在协调空间一致性上更具优势,为多模态信息与推荐模型的融合提供了更有效的路径。
观察2:基于ID的模型和基于多模态的模型存在训练轮次差异。在工业场景中,基于ID的模型通常仅训练一个轮次以避免过拟合[33]。相比之下,计算机视觉和自然语言处理领域的模型通常经过多个轮次的训练。一个自然的问题是:基于多模态的推荐模型的理想训练轮次是多少?为了回答这个问题,我们开发了一个仅使用多模态表示作为输入特征(不使用任何ID特征)的推荐模型,并分析了其性能随训练轮次的变化情况。
详细的收敛曲线如图3所示。我们发现,利用多模态数据的模型在同一数据集上进行多个轮次的训练时受益,其性能随着轮次的增加而显著提升。相比之下,基于ID的模型存在单轮过拟合现象,模型性能在第二轮训练开始时急剧下降[33]。结果表明,与多模态表示相关的参数需要更多轮次才能正确收敛,这与基于ID的模型的行为形成对比。因此,当将多模态表示纳入基于ID的模型并仅训练一个轮次时,存在与多模态相关的参数可能未得到充分训练的风险。
4.2 方法一:SimTier
观察1表明需要简化多模态表示的使用。为此,我们提出了一种简单而有效的方法SimTier。如图2(a)所示,SimTier首先计算目标候选物品的多模态表示 v c v_{c} vc 与用户历史交互物品的多模态表示 { v i } i = 1 L \{v_{i}\}_{i=1}^{L} {vi}i=1L 之间的点积相似性:
s i = v i ⋅ v c , ∀ i ∈ { 1 , … , L } . (2) s_{i} = v_{i} \cdot v_{c}, \quad \forall i \in \{1, \ldots, L\} \,. \tag{2} si=vi⋅vc,∀i∈{1,…,L}.(2)
在计算相似性分数后,我们将[-1.0,1.0]的分数范围划分为N个预定义的层级。在每个层级中,我们计算落入该对应范围的相似性分数的数量。因此,我们获得一个N维向量,每个维度表示对应层级中相似性分数的数量。这样,SimTier有效地将一组高维多模态表示转换为一个N维向量,该向量封装了目标物品与用户历史交互之间的相似程度。获得的N维向量随后与其他嵌入连接,并输入到后续的MLP中。我们在算法1中提供了SimTier的伪代码。
4.3 方法二:多模态知识提取器(MAKE)
为解决ID特征与多模态表示所需训练轮次的差异,我们引入了多模态知识提取器(MAKE)模块,将与多模态相关的参数优化与ID特征的参数优化分离。
多模态相关参数的多轮训练
MAKE模块的目标是通过多个轮次的训练对与多模态表示相关的参数进行预训练,以确保其收敛。在实践中,我们利用CTR预测任务作为推荐预训练任务。如图2(b)所示,我们首先开发了一个基于DIN的用户行为建模模块[36]。该模块处理目标物品和历史交互物品的预训练多模态表示,生成输出 v M A K E v_{MAKE} vMAKE :
v MAKE = DIN ( { v i } i = 0 L , v c ) . (3) v_{\text{MAKE}} = \text{DIN}\left( \left\{ v_i \right\}_{i=0}^{L}, v_c \right) \,. \tag{3} vMAKE=DIN({vi}i=0L,vc).(3)
然后, v M A K E v_{MAKE} vMAKE 被输入到一个四层多层感知机( M L P M M A K E MLP M_{MAKE} MLPMMAKE )中,并生成对数几率 v ^ \hat{v} v^ :
v ^ = MLP MAKE ( v MAKE ) . (4) \hat{v} = \text{MLP}_{\text{MAKE}}\left( v_{\text{MAKE}} \right) \,. \tag{4} v^=MLPMAKE(vMAKE).(4)
知识利用
获取向量 v M A K E v_{MAKE} vMAKE 后,后续步骤是将其集成到下游推荐任务中。实际上,我们将 v M A K E v_{MAKE} vMAKE 和 M L P M A K E MLP_{MAKE} MLPMAKE 的中间输出与其他嵌入连接,并将此组合数据输入到后续层中。MAKE模块多轮训练的实现调和了ID嵌入和多模态表示所需的训练轮次差异,从而实现了更好的性能。
5 在线部署的工业设计
在工业环境中,新物品(包括广告)不断创建。为了维持对这些新物品的预测准确性,推荐模型实时获取新物品的多模态表示至关重要。这需要能够持续为新物品生成多模态表示,并由近线训练器和在线服务器实时利用。我们的在线系统示意图如图4所示。
为了实现多模态表示的实时生成,在引入新物品后,系统会自动向预训练的多模态编码器发起请求,以计算这些新物品的多模态表示。一旦推断完成,这些表示将被发送到多模态索引表。在此步骤之后,下游训练系统和推理服务器能够从索引表中检索多模态表示,从而实现近线训练和实时在线预测功能。这一过程确保了从物品引入到模型使用其多模态表示之间的延迟极小——仅需几秒钟。
6 实验
在本节中,我们深入研究了一个将图像表示集成到CTR预测模型中的案例研究,旨在提供全面的分析。值得注意的是,我们的方法具有通用性,能够容纳多种模态类型(如文本和视频),并可应用于推荐系统的不同阶段。
6.1 实验设置
6.1.1 数据集
我们首先详细介绍预训练阶段和下游集成阶段使用的数据集。
- 预训练数据集:在预训练数据集中,每个样本包含一个查询(用户的图像查询)和一个正样本(购买物品的图像)。为了进一步提高性能,我们还添加了一个硬负样本(由正样本触发的点击物品的图像)。预训练数据集的一个案例如图5所示。
- CTR预测数据集:CTR预测数据集来自淘宝展示广告系统,使用一周的展示日志。
6.1.2 对比预训练方法
我们采用了一系列广泛使用的预训练方法进行比较。
- CLIP-O:CLIP-O指的是使用通用数据集预训练的CLIP视觉编码器(CLIP-ViTB/16)[21]。
- CLIP-E:CLIP-E是基于CLIP-O模型在电子商务场景中使用对齐的物品描述和物品图像进行微调的版本。
- SCL:提出的语义感知预训练方法。SCL方法采用动量对比(MoCo)来扩展负样本集。此外,SCL对每个<查询,正样本,负样本>三元组应用三元组损失[23],以有效辨别硬负样本。我们的实验分析调查了排除三元组损失和MoCo的影响,以评估它们对整体性能的贡献。
6.1.3 对比推荐方法
我们采用了一系列广泛使用的集成方法进行比较。
- 基于ID的模型(生产基线):基线是支撑我们在线系统的基于ID的模型。
- Vector:Vector方法将预训练的多模态表示用作每个物品的辅助信息,并在模型中将其与其他ID嵌入连接。
- SimScore:相似性分数(SimScore)可以视为Vector方法的简化版本。每个历史交互物品与目标物品的语义相似性分数用作辅助信息。
- SimTier和MAKE:提出的SimTier和MAKE方法。
6.1.4 评估指标
我们评估了所提出方法的预训练性能和CTR预测性能。
- 评估预训练方法:在我们的大量实验中,我们发现Top-N准确率(Acc@N)与下游推荐模型的性能密切相关。具体而言,Acc@N指标量化了表示识别语义相似物品的能力:
其中,D表示测试集的大小。术语 q i q_{i} qi 和 p i p_{i} pi 分别对应第i个样本的查询和正样本。 S = { p o s i } i = 1 D S = \{pos_{i}\}_{i=1}^{D} S={posi}i=1D 表示包含所有正样本的集合, T o p N Top_{N} TopN 是一个函数,利用集合S中的多模态表示为每个查询检索前N个结果。符号 I ( ⋅ ) I(\cdot) I(⋅) 表示指示函数,当第i个 p i p_{i} pi 在 q i q_{i} qi 的检索结果中时,其值为1,否则为0。
- 评估推荐方法:我们使用AUC和组AUC(GAUC)指标评估CTR预测模型的有效性,其中更高的AUC/GAUC值表示更好的排名能力[25,36,37]。
6.2 预训练数据集上的性能
6.2.1 使用准确率评估预训练表示有效性的基本原理
衡量预训练表示有效性的最精确方法是测量集成多模态表示后推荐准确性的提升。然而,这种评估过程对于预训练方法的迭代可能很漫长,因此需要一个中间指标来快速评估预训练的多模态表示。
在我们的研究中,我们观察到预训练准确率的提升与推荐性能的提升之间存在很强的相关性。我们在图6(a)中说明了这种关系,从中可以看出,Acc@1的提升与GAUC的提升一致。因此,我们主要依靠预训练准确率来确定多模态表示的质量。探索其他潜在的中间指标来评估预训练的多模态表示仍然是未来工作的一个有趣课题。
6.2.2 语义感知对比学习的重要性
为了研究不同预训练任务如何影响多模态表示的质量,我们进行了一系列实验。结果如表2所示,提供了两个重要观察结果。首先,提出的SCL预训练方法优于其他语义相似性不可知的方法,强调了语义感知学习的必要性。其次,结合动量对比(MoCo)[12]和三元组损失[23]等技术进一步提升了多模态表示的质量,表明负样本的选择对性能有重大影响。
6.3 CTR预测数据集上的性能
6.3.1 不同集成策略的性能
在CTR预测数据集上,我们将提出的SimTier和MAKE与其他方法进行了评估。总体结果如表3所示,从中可以注意到两个观察结果。首先,SimTier和MAKE显著优于其他方法。其次,SimTier和MAKE的组合可以进一步提升性能,与基于ID的模型相比,GAUC提高1.25%,AUC提高0.75%。上述结果证明了所提出方法在将多模态表示集成到基于ID的模型中的有效性。
6.3.2 MAKE不同训练轮次的性能
为了探索MAKE的多轮预训练对最终推荐性能的影响,我们进行了实验,其中MAKE在集成到推荐模型之前进行了不同轮次的预训练。结果如图6(c)所示。请注意,0轮表示MAKE不进行预训练,而是与下游任务联合优化。结果表明,随着MAKE预训练轮次的增加,最终推荐模型的性能也随之提高。这表明MAKE的多轮训练有效地提升了模型性能。
6.3.3 罕见物品的性能
为了检验多模态表示对长尾物品的泛化能力,我们评估了按出现频率分类的物品组的相对提升。我们将所有物品分为八组,第1组包含训练数据中频率最低的物品,第8组包含频率最高的物品。然后,我们计算每组的AUC相对提升为 ∣ A U C M M − A U C I D ∣ / A U C I D |AUC_{MM} - AUC_{ID}| / AUC_{ID} ∣AUCMM−AUCID∣/AUCID ,其中MM表示SimTier和MAKE方法的组合,ID表示基于ID的生产基线模型。我们还计算LogLoss的相对提升为 ∣ L o g L o s s M M − L o g L o s s I D ∣ / L o g L o s s I D |LogLoss_{MM} - LogLoss_{ID}| / LogLoss_{ID} ∣LogLossMM−LogLossID∣/LogLossID 以衡量校准能力[11,24]。图6(b)中的结果表明,多模态表示在所有组中均表现出显著提升,证明了我们的模型对不同类型物品的有效性。同时,我们看到低频物品的提升更为显著。结果表明,多模态表示可以解决基于ID的模型在长尾物品上的不足,提高预测准确性。
6.4 在线性能
自2023年中期以来,多模态表示已集成到淘宝展示广告系统的预排序、排序和重排序模型中,带来了显著的性能提升。例如,在CTR预测模型中纳入图像表示后,整体CTR提高了3.5%,RPM提高了1.5%,ROI提高了2.9%。值得注意的是,对新广告(最近24小时内创建的)的影响更为显著,CTR提高了6.9%,RPM提高了3.7%,ROI提高了7.7%。新广告的显著提升也验证了多模态数据在缓解冷启动问题方面的有效性。
7 相关工作
目前,ID特征构成了工业推荐模型的核心[2,5,7,14,31,33,35,36]。尽管它们被广泛采用,但ID特征存在显著局限性,包括捕捉语义信息的挑战和持续存在的冷启动问题[9,18,22,28]。相比之下,多模态数据提供了丰富的语义信息,促使许多研究探索将其纳入推荐模型。一些研究调查了在推荐模型训练的同时以端到端方式学习多模态表示的潜力[4,8,30]。然而,此类过程所需的大量计算资源通常使其无法在工业系统中采用。因此,我们的重点是两阶段范式[6,9,13,17,20,26,29],并旨在分享我们的方法和宝贵见解。
8 结论与讨论
基于多模态的推荐已引起关注数十年。然而,将多模态表示集成到工业系统中面临许多艰巨挑战,尤其是在表示质量、集成方法和系统实现领域——这些挑战在大规模工业系统的背景下更为突出。
在本研究中,我们深入探讨了这些挑战,并分享了我们用于预训练和纳入多模态表示的方法。此外,我们提供了在线部署阶段的经验见解。我们相信,我们在这一过程中积累的策略和见解将为那些旨在加速工业系统中基于多模态推荐采用的人士提供宝贵的资源。