↑↑↑关注后"星标"kaggle竞赛宝典
kaggle竞赛宝典 作者:Fareise 腾讯KDD‘24公开最新广告推荐系统建模方案
腾讯KDD‘24公开最新广告推荐系统建模方案
腾讯在KDD2024中发表了一篇广告推荐系统的工作,详细介绍了腾讯构建的新一代推荐系统模型,从Embedding构建、模型结构、优化方式等多个方面都进行了细致优化。今天这篇文章给大家介绍一下腾讯的这篇工作。
论文标题:Ads Recommendation in a Collapsed and Entangled World
下载地址:https://arxiv.org/pdf/2403.00793
本文介绍了腾讯的广告推荐系统模型结构。整体的模型结构如下图所示,核心包括以下几个方面。
基础Embedding:包括序列特征、数值特征、ID特征,各类特征有相应的处理方法;
多Embedding多Expert融合:每个特征使用多个Embedding,并使用多个Expert进行建模,实现模型Ensemble,缓解Embedding维度坍缩问题;
多任务多场景的兴趣解耦:提出两种建模方法,解决多任务或多场景建模中,用户兴趣的耦合对模型造成的负向影响;
优化技巧:进行样本加权、引入rank loss等模型训练优化方法。
推荐系统模型的Embedding可以分为4种类型:行为序列建模Embedding、数值型Embedding、ID类Embedding,以及从外部数据预训练的Embedding。
对于行为序列建模,文中采用了之前腾讯提出的Temporal Interest Module结构(论文Temporal Interest Network for Click-Through Rate Prediction),在用户历史行为序列建模中引入时间维度信息,并且和目标商品信息进行充分交叉。这篇文章的详细解析也在星球中更新过,感兴趣的同学可以进一步查看。
对于数值类型特征,由于其存在大小关系,文中提出了Multiple Numeral Systems Encoding (MNSE)的Embedding生成思路。其核心是将数值转换成不同进制的表示,再将这个表示转换成Embedding。比如将51这个数,可以转换成二进制111011,进一步可以转换成【6_1, 5_1, 4_0, 3_0, 2_1, 1_1】这6个Embedding。同时也可以将51转换成3进制、4进制等各种类型的表示,并转换成相应Embedding。
对于外部数据预训练的Embedding,例如使用User-Item构建的Graph训练的Embedding,文中使用user和item侧Embedding的相似度打分作为模型输入,并对这个相似度打分使用上述MNSE的方式构建数值Embedding输入模型。
本文进一步探索了Embedding中的维度坍缩问题。这里的维度坍缩问题指的是,对于一个K维的Embedding,模型只能有效利用其中较少量的维度,Embedding分布在一个很小的空间,进而无法有效利用Embedding信息。
文中提出,造成这个问题的核心原因是模型中的特征交叉模块。有一些特征,由于其取值较少,本来就用不了K维的Embedding,比如性别这个特征。而这个特征在和其他特征做交叉后,就会把其他特征也带向坍缩。
为了解决这个问题,文中提出将一个特征的Embedding拆成多份,每份内部分别做特征交叉,并过单独的Expert模型。进一步的,采用不同类型的特征交叉方式,实现了一种多Embedding、多类型特征交叉、多Expert融合的建模方法。
在特征交叉部分,为了避免直接计算两个Embedding内积出现的维度坍缩问题,文中借鉴前人的工作,先对一个特征的Embedding通过MLP映射后,再和另一个Embedding计算内积进行交叉,以此来有效缓解维度坍缩问题。
在多任务或者多场景建模中,不同的任务或场景下的用户兴趣是不同的,联合学习会造成互相的干扰,带来负迁移问题。为了解决上述问题,文中提出了两种建模方法,第一种方法面向多任务学习,同时关注多个目标的效果。核心在于将底层的Embedding进行不同维度的拆解,每种Embedding过一个专家模型,并通过Gate控制每个任务使用各个Embedding和专家的权重。相比传统的MoE做法,这里没有区分每个任务独立或者共享的Expert,而是直接使用独立模型+Gate的方法进行融合。
第二种方法面向单任务学习,这里只关注一个目标任务的效果,其他任务作为辅助任务,目的是提升目标任务的效果。这里采用了辅助Expert的方法,用一个辅助Expert学习辅助目标,并将辅助塔的表征作为主塔的输入,以提升主塔的预测效果。
在模型优化方法上,文中也提出了一些优化技巧。
首先是梯度消失问题,在腾讯的广告场景中,点击率很低,正样本很少,导致梯度跟小。文中指出,引入ranking loss和binary cross entropy进行联合训练,可以显著增大梯度,提升模型的收敛性。
其次,如果一个样本重复曝光,会带来用户体验的下降。为了缓解这个问题,文中对重复曝光的负样本进行加权,让模型减少重复曝光,且用户不感兴趣样本的打分。这样做之后,会改变样本打分的整体分布,因此文中对正样本进行纠偏加权缓解该问题。
此外,文中也进行了包括不确定度建模、在线学习、分析工具等一系列的优化和链路建设。