关注我们,一起学习
来源 | 腾讯广告技术
文章来源:公众号 机器学习算法与Python学习
最近阅读了其中一篇来自腾讯广告推荐团队的工作:Ads Recommendation in a Collapsed and Entangled World,详细介绍了腾讯广告推荐模型最近几年来的技术沉淀和实践经验,探索特征编码保留先验信息,维度坍塌,兴趣纠缠等问题,干货不少,分享给大家。
1. 摘要
推荐模型是计算广告的核心基础,腾讯广告升级了广告推荐大模型的能力,以支持广告产品的快速升级。本文总结了腾讯广告推荐模型在特征编码、维度坍塌和兴趣纠缠等几个方向的探索成果:
- 广告推荐模型需要充分使用不同类型的特征,包括序列特征、数值特征、嵌入(embedding)特征等。如何在广告推荐模型中更好地保留不同特征的先验信息?
- 广告推荐模型使用的特征通常会先被表达成K维的嵌入向量,并会随着模型训练进行更新。但我们观察到,很多特征的嵌入在某些维度上发生了坍塌。如何去缓解这种维度坍塌?
- 用户的商业兴趣在不同场景下可能会不一致,甚至相互冲突。如何在训练多任务推荐模型时解纠用户的兴趣,缓解兴趣冲突带来的负迁移问题?
接下来我们将围绕这三大问题,介绍腾讯广告推荐算法的技术创新和优化实践。目前这些探索已经应用在腾讯广告新广告投放(3.0)当中,助力广告主的竞价投放。该工作已经被数据挖掘顶级会议SIGKDD 2024录用,希望与大家一起讨论交流。
论文标题: Ads Recommendation in a Collapsed and Entangled World
2. 整体架构
我们以单任务为例来介绍腾讯广告推荐模型的整体架构,关于多任务的模型架构详见第5章节。在广告推荐空间里,如何保留来自不同空间的异构特征的先验信息是不小的挑战。我们的单任务广告推荐模型的架构如图1所示。该模型架构采用常见的基于嵌入的特征交叉结构,包含四个关键模块:特征编码、多嵌入查询、专家网络以及分类塔。在特征编码模块中,我们根据特征的类型选用相应的编码方法。接下来,根据特征编码模块得到的编码ID,为每个特征从多个嵌入表(embedding table)中查询出多个嵌入表征。在专家网络内,来自同一个表的嵌入表征会进行显式交叉。专家网络的输出在经过门控机制后输入到分类塔中,后者由多层神经网络和最终的激活函数构成。
图1:腾讯广告推荐模型整体架构图
3. 特征编码
在腾讯广告推荐系统中,用户和广告特征来源多样且属于不同类型,如用户对广告的点击/转化序列特征,包含偏序关系的数值特征,来自其他外部模型的预训练embedding特征等等。我们希望在广告推荐模型的学习中尽可能保留它们原有的时序、偏序、embedding相似度等先验信息。
3.1 序列特征
图2:时序兴趣模块
用户的历史行为序列反映了他们的兴趣。在建模序列特征时,不仅需要考虑到这些行为与目标广告之间的语义相关性,还要考虑它们之间的时序相关性对点击、转化的影响。为此我们提出了时序兴趣模块(Temporal Interest Module, TIM)[3] 来学习<行为语义,目标语义,行为时序,目标时序>四元组上的语义-时序相关性。具体来说,对于每个行为,除了对其语义信息如广告ID,类目ID等进行编码,我们还会基于每个行为与目标之间的时间相对位置或时间间隔进行目标感知的时序编码(Target-aware Temporal Encoding)。此外,为了捕捉历史行为和目标之间四阶的语义-时序相关性,TIM同时采用目标感知的注意力机制(Target-aware Attention)和目标感知的表征(Target-aware Representation),在注意力机制和表征中同时对历史行为和目标进行二阶交互,从而得到显式的四阶交互。
图3:事实上的语义-时序相关性(a),以及DIN, SASRec和TIM学到的语义-时序相关性(b, c, d)
上图展示了在Amazon开源数据集上给定某个目标物品的类目(ID=674),和各个位置下(X轴)的Top-5类目(Y轴)的历史行为之间的:事实上的语义-时序互信息(a),以及DIN, SASRec和TIM分别学到的相关性(b, c, d)。可以看到DIN和SASRec学到的相关性与互信息差异很大,而TIM可以非常好的学习到互信息,这验证了我们的方法可以更好的捕获历史行为和目标之间的语义-时序相关性。
部署细节
在腾讯广告场景落地TIM时,我们同时采用相对位置和时间间隔进行时序编码,将TIM的输出与特征交互模块的输出(例如DCN V2[7]或稍后讨论的GwPFM)拼接。基于TIM对用户的全域点击/转化行为序列进行建模在微信pCTR中带来了1.93%的GMV提升。我们观察到模型学到的时间间隔嵌入的时序衰减比相对位置嵌入更强,这是因为用户的广告点击行为非常稀疏,使时间间隔比相对位置更具信息量。
3.2 数值特征
图4:多进制编码方法
与独立的ID特征不同,数值特征之间天生存在偏序关系,比如年龄30 > 年龄20。为了保留这些先验的偏序信息,借鉴Nary-Dis方法[5],我们采用了一种多进制编码方法:首先根据多种进制(如二进制、三进制等)对数值特征进行编码,例如,特征值'51'在二进制中的代码为'110011',我们会得到如下编码结果:{6_1, 5_1, 4_0, 3_0, 2_1, 1_1}。然后我们为这些编码分配可学习的嵌入,之后进行求和池化以获得最终的编码结果。这些编码的可学习嵌入会和推荐系统的其他ID特征的嵌入一起进行训练。该方法一方面通过多进制编码保留数值特征本身的偏序关系,另外一方面通过将编码的可学习嵌入与推荐模型其他嵌入一起训练来将数值特征的表征对齐到推荐系统本身的表征空间。
部署细节
在广告系统中广告通常由独立的广告ID标识,这些ID是自增或随机的,包含的语义信息很少。然而,每个广告都有一个图片或视频创意,其包含丰富的视觉语义信息。所以,我们采用全新的视觉语义ID替换原有的广告ID,以保留广告之间的视觉相似信息。具体地,我们使用预训练视觉模型从广告图像中获取视觉嵌入,并应用局部敏感哈希(LSH)算法将其转化成一个保留视觉语义信息的数值,之后我们使用上述多进制编码方法得到最终的编码。这种替换在视频号pCVR中带来了1.13%的GMV提升,在新广告上的提升更高,达到了1.74%。此外,展示给同一用户的相似广告的预测分数的变异系数从2.44%显著降低到0.30%,这证实了我们的方法可以保留广告素材的视觉相似度先验信息。
3.3 嵌入特征
除了主推荐模型之外,我们也会额外训练一些独立的预训练模型,例如LLM或GNN,来学习用户或广告的嵌入表征。这些嵌入从一个不同于主推荐模型的视角建模用户和广告之间的关系,因此可能为主推荐模型提供额外的信息。但是,此类模型与推荐模型之间在嵌入空间上存在语义差异,直接将这些嵌入作为特征加入到推荐系统中难以带来效果提升。为了减少这种语义差距,我们提出了一种相似度编码嵌入方法SEE(Similarity Encoding Embedding)。以GNN为例,在训练了一个GNN模型并获得用户和广告的预训练嵌入的基础上,我们首先使用相应的相似度函数(例如GraphSage中的余弦相似度)来得到每个用户-广告对的相似度分数。注意到,相似度分数也是一个数值特征,因此我们可以使用前面提到的多进制编码方法将其转换为可学习的嵌入。之后,推荐模型会同时对编码后的嵌入和其他的推荐ID嵌入进行联合训练。通过该方法,我们一方面保留了原始预训练模型空间中的基于嵌入的相似度先验信息,同时也通过将相似度编码嵌入与推荐ID嵌入对齐,将这些先验迁移到了推荐模型中。
部署细节
我们在用户-广告/内容的二分图上训练了GraphSage模型。然后我们对GNN嵌入采用相似性编码嵌入,并将得到的表征与特征交叉层的表征拼接起来。GNN嵌入在朋友圈、视频号的pCTR上分别带来了1.21%、0.59%的GMV提升。
4. 应对维度坍塌
4.1 嵌入维度坍塌
在推荐模型中,嵌入通常占据模型参数的绝大部分。在将推荐模型做大做强的过程中,我们发现简单的增大嵌入的维度K,例如将维度K从64增加到192,并没有带来预期的效果提升。针对该现象,我们通过奇异谱(Singular Spectrum)来分析学习后的嵌入矩阵,并观察到很多特征域的嵌入发生了维度坍塌(Dimensional Collapse)。也就是说,部分特征域的奇异值非常小,表明这些特征域的嵌入最终只占据了一个低维的子空间,而不是整个可用的K维嵌入空间。由于许多特征域的嵌入已经坍塌,简单地增加维度尺寸来扩展模型不再可行。我们研究了维度坍塌的根本原因,发现在显式特征交互模块中,某些已经维度坍塌的嵌入会使得其他的嵌入的某些维度也逐渐坍塌。下图展示了随着将嵌入的维度增大到4倍和10倍后DCN V2的所有特征(Y轴)的维度坍塌的情况。
图5:不同嵌入维度下的奇异值。在维度增大到4倍或10倍时,嵌入发生了严重的维度坍塌。
4.2 多嵌入范式
我们提出了一种多嵌入范式(Multi-Embedding Paradigm)[2]来缓解在扩展广告推荐模型时出现的嵌入维度坍塌问题。具体来说,对于每个特征,我们没有如同现有的单嵌入范式那样只去查找一个嵌入,而是学习多个嵌入表,并为每个特征从这些表中查找多个嵌入。然后,来自同一嵌入表的所有特征嵌入在相应的专家网络中进行特征交叉。需要注意的是,我们需要在专家网络中引入非线性激活函数,否则其会退化为单嵌入范式。通过采用多嵌入范式,我们可以实现有效的推荐模型参数扩展:模型的效果随着参数量的增加而提高。下图展示了多种主流推荐模型在单嵌入范式和多嵌入范式下,前者的效果没有随着参数量的增加而显著提高,甚至大部分模型的效果会恶化,但多嵌入范式下所有模型的效果都会随着参数量增大而显著提升。
图6:单嵌入范式与多嵌入范式的scale-up效果对比
部署细节
我们平台上几乎所有pCTR模型都采用了多嵌入范式。具体来说,我们学习了多个不同的特征交互专家网络,例如GwPFM(FFM的一个变种,将在下面描述)、IPNN、DCN V2 [7] 或FlatDNN,以及多个嵌入表。一个或多个专家网络共享这些嵌入表。我们将这种架构命名为基于多嵌入的混合异构专家网络。具体地,朋友圈pCTR模型用到了GwPFM、IPNN和FlatDNN,以及两个嵌入表。其中,GwPFM和FlatDNN共享第一个嵌入表,而IPNN使用第二个嵌入表。从单一嵌入范式转换到上述基于多嵌入的混合异构专家网络,在朋友圈pCTR带来了3.9%的GMV提升。
4.3 GwPFM
经典的FFM模型也可以被视为多嵌入范式的另外一种实现方法,因为FFM也为每个特征学习多个嵌入。具体地,对于一个有M个特征域(field)的数据集,FFM为每个特征学习M -1个嵌入。当特征i与另一个特征j交互时,在特征i的多个嵌入中,FFM选择对应于j的特征域的那个嵌入。尽管FFM已被证明比FM更有效,但由于其巨大的空间复杂度而没有在工业界得到广泛运用。为此,我们提出将每个特征的嵌入数量与特征域数量解耦。具体来说,我们将特征域分组到 P个特征域part,并为每个特征学习P个嵌入,每个特征域part一个。我们通过选择较小的P来减少模型的总大小。此外,我们希望捕获特征域对之间的相关性以提升效果[9]。最直接的方法是为每个特征域对分配一个权重,但这将导致O(M^2)的计算复杂度。为了降低计算复杂度,我们将特征域分组为特征域组(field group),并为每一对特征域组学习一个权重。我们将这种方法命名GwPFM(Group-weighted Part-aware Factorization Machines)。其公式如下:
其中P(i)和G(i)分别指特征i的part和group。
部署细节
在实践中,我们将所有特征域分为两个part:第一个part包括所有与目标广告无关的特征域,包括所有用户和上下文特征域,而第二个part包括所有与目标广告相关的特征域。然后我们根据专家知识将第一部分的所有特征域分为G组,其中G通常小于50。我们不对第二部分的特征域进行进一步分组,以避免过高的在线推理复杂度。也就是说,第二个part的所有特征域属于一个特征域组。从2018年开始,GwPFM一直是我们的主力专家网络之一。
5. 应对兴趣纠缠
用户在不同场景下会有多元化的广告商业兴趣。为了刻画用户的多兴趣,业界倾向于基于这些任务训练一个通用的多任务模型,以充分利用所有任务的信息来提升预估准确性。然而,现有工作主要采用共享嵌入范式,为用户和广告学习单一的嵌入表征。这种做法可能导致不同任务或场景中本来相互矛盾的用户兴趣在共享嵌入中发生纠缠,从而产生负迁移。比如下图分析了在两个任务下(TikTok开源数据集下的Like和Finish任务)有强冲突的用户-物品对,亦即这些用户-物品对在Like单任务下学到的距离比较小,表示在该任务下用户偏好这些物品,而在Finish单任务下学到的距离比较大,表示在该任务下用户不偏好这些物品。然后我们分析了这些用户-物品对在经典的单嵌入模型PLE中学到的距离分布,可以看到PLE模型为这些用户-物品对普遍学习了一个偏大的距离,使其分布更接近Finish任务,而不像Like任务。这充分表明在PLE中用户对物品的兴趣发生了强烈的纠缠,使其更倾向于某一个任务(Finish)。
图7:多任务用户兴趣纠缠示意图
5.1 非对称多嵌入网络AME
为解决兴趣纠缠问题,我们提出了一种新的共享和任务特定嵌入范式STEM(Shared and Task-specific EMbeddings)[4],它通过同时学习一套共享的嵌入和每个任务的特定嵌入,来解纠用户在不同任务下的不同兴趣。任务特定嵌入能够在不同任务中解耦用户和物品的表征,使得模型可以在各个任务中保留用户在该任务下的独特兴趣。此外,我们也会去学习任务专属和共享的专家网络。我们通过特殊的All Forward Task-specific Backward门控网络来保证每个任务的特定嵌入只会被该任务的损失函数更新,但与此同时每个任务的任务塔又能接受来自所有任务的专家网络的输入。
然而,在现实世界的广告推荐系统中,任务的数量可能非常庞大。例如,在转化预估中,每种转化类型通常被视为一个任务。我们的系统中有超过一百种转化类型,为每个任务学习一个独立的嵌入表是不切实际的。因此,在实践中,一方面,我们将转化类型分组,将每个组视作一个任务。另一方面,我们将嵌入表的数量与转化分组的数量解耦,即无论任务组数量如何,我们都会去学习固定数量的嵌入表。然后,我们使用门控机制在嵌入表和转化任务组之间进行路由。然而,由于这些嵌入表之间是对称的,门控机制不容易收敛。为此,我们为这些嵌入表设置了不同的嵌入维度,以使其能够学到解耦的用户兴趣。例如,数据较少的小任务需要较小的模型容量,可以通过门控路由到低维度的嵌入表。而数据较多的大任务则需要较大的模型容量,可以被路由到高维度的嵌入表。我们将该方法称为非对称多嵌入范式AME(Asymmetric Multi-Embedding Paradigm),如下图所示。
图8:多种范式对比:ME, STEM, AME和STEM-AL
与多嵌入范式的联系
多嵌入(ME)范式主要用于单任务学习,以解决嵌入的维度坍塌问题,而共享和任务特定嵌入范式(STEM)及非对称多嵌入范式(AME)主要用于在多任务或多场景学习中解纠用户的兴趣。我们曾经尝试将AME用于单任务学习(例如点击预测),但在ME的基础上并未带来额外的效果提升。同样,将ME用于多任务学习(ME-MMoE)[4]也已在STEM论文中证明不如STEM和AME有效,因为其嵌入是对称的,因此可能仍然会发生兴趣纠缠。
部署细节
我们的转化预测模型同时学习100多种转化类型。我们将这些转化类型划分为20-40个塔,并采用具有三个嵌入表的非对称多嵌入范式(AME),三套嵌入表的嵌入维度分别为16、32和64。与单一嵌入基线PLE [8](嵌入大小为64)相比,AME在朋友圈和公众号pCVR模型分别带来了4.2%和3.9%的GMV提升。特别地,像支付这样的小型任务提升幅度高于其他大型任务,这也证明了我们的方法可以很好的缓解被主导任务上的负迁移。我们还训练了一个嵌入维度为128的PLE模型来研究模型容量的影响,但其效果甚至不如嵌入维度为64的基线PLE。
5.2 辅助学习中的STEM-AL
在腾讯广告推荐中,有时我们更关注某个主任务,并希望利用其他任务的信号来提高这个主任务的效果。例如,在点击预测中,主任务是预测可转化的点击,这将引导用户前往落地页进行进一步的转化。除了使用可转化点击作为标签之外,我们还会收集用户对广告的其他行为作为辅助标签。以视频广告为例,辅助标签包括点赞、收藏、评论、不喜欢和观看时长。我们希望通过辅助学习来利用这些额外任务来提升可转化点击预估任务的效果。为了防止这些辅助任务在主任务中纠缠用户的兴趣,我们参考STEM范式,提出了一种基于STEM的辅助学习架构,即STEM-AL(Shared and Task-specific EMbedding for Auxiliary Learning)。在以下讨论中,我们将任务A视为主任务,任务B视为辅助任务。如图8所示,STEM-AL包含两个嵌入表和两个相应的交互专家网络。第一个嵌入表,称为主嵌入表,仅由主任务A使用,并仅接受主任务的反向传播,从而在该嵌入表中保留主任务的独特性,不受其他任务的干扰。第二个嵌入表,称为共享嵌入表,被任务A和B同时使用和反向传播。这个共享嵌入表允许任务A从任务B获得的增益知识,从而进一步提升任务A的效果。在推理过程中,辅助任务的任务塔被移除,只有主任务的任务塔被保留。
部署细节
我们将STEM-AL用于某一场景的pCTR时,辅助信号可以采用其他场景的样本。例如,我们将微信小程序pCTR作为主任务,将朋友圈pCTR作为辅助任务。通过应用STEM-AL,主任务的CTR提高了1.16%。
总结与展望
在本文中,我们阶段性地总结了腾讯广告推荐算法在特征编码、应对维度坍塌、应对兴趣纠缠等方面近些年的优化实践。受篇幅所限,原论文中关于模型训练和分析工具的部分并没有在本文中呈现,感兴趣的读者可以去阅读论文。后续我们会持续分享腾讯广告推荐算法更多的技术突破与行业实践,与工业界、学术界朋友们一起探索广告技术的更多可能。
参考文献
1.Ads Recommendation in a Collapsed and Entangled World. KDD 2024. 【腾讯广告技术团队】
2.On the Embedding Collapse when Scaling up Recommendation Models. ICML 2024.【腾讯广告技术团队】
3.Temporal Interest Network for User Response Prediction. WWW 2024. 【腾讯广告技术团队】
4.STEM: Unleashing the Power of Embeddings for Multi-task Recommendation. AAAI 2024. 【腾讯广告技术团队】
5.Numerical Feature Representation with Hybrid N-ary Encoding. CIKM 2022.
6.FM^2: Field-matrixed Factorization Machines for CTR Prediction. WWW 2021
7.DCN-V2: Improved deep & cross network and practical lessons for web-scale learning to rank systems. WWW 2021.
8.Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations. RecSys 2020.
9.Field-weighted Factorization Machines for Click-through Rate Prediction in Display Advertising. WWW 2018.
交流群:点击“联系 作者”--备注“研究方向-公司或学校”
欢迎|论文宣传|合作交流
往期推荐
腾讯 | MTMT: 促进用户增长的多干预多任务uplift模型
长按关注,更多精彩
点个在看你最好看