Press "Enter" to skip to content

腾讯图神经网络与推荐预训练模型

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

 

分享嘉宾 :宋重钢 博士 腾讯 高级研究员

 

编辑整理:罗锦波 澳门科技大学

 

出品平台:DataFunTalk

 

导读: 今天分享的主题为图神经网络与推荐预训练模型。主要包括以下几部分内容:

 

预训练模型目标与核心问题

 

推荐系统场景中的预训练模型

 

预训练模型的服务模式

 

图神经网络预训练案例分享

 

01

 

预训练模型⽬标与核⼼问题

 

1. 预训练模型的发展历程

 

随着深度学习在各领域的快速发展,我们逐渐发现,基于监督信息的深度学习⽅法对标注样本有极强的依赖性,这⼀定程度地限制了模型从海量的⽆标注数据中提取信息的能⼒。在学术界中,从⾃然语⾔处理(NLP)到计算机视觉(CV)的领域,为了充分地利⽤海量的语料和图⽚中所蕴含的信息,基于神经⽹络的预训练模型从2003年的NNLM提出的word embedding的概念开始,就迎来了能够取得良好效果的预训练框架,包括2019年的BERT,2021年的MAE等。这些都是在学术界极具影响⼒的模型。

 

⽽在图神经⽹络⽅⾯,最早期的⽅法主要是基于路径重构的⽅法,包括Node2Vec,Methpath2Vec等⼀类⾃监督模型。⽽后诞⽣了⼀些基于AutoEncoder和对⽐学习(CL)的⽅法。这些都为图⽹络预训练提供了更多的技术选择。

 

 

在⼯业场景下,预训练模型同样有着许多的优势和应⽤。

 

2. 预训练⽬标

 

预训练的⽬标主要有以下三点:

 

①打通数据孤岛 ,充分利⽤全域信息有效帮助下游任务。

 

② 整合不同任务信息到同⼀通⽤表征空间, 减少过拟合⻛险 。

 

③ 为新⽤户/新场景/⻓尾情景带来丰富信息, 解决稀疏标注样本的问题 。

 

 

以上图⽚展示了预训练模型通⽤的模式:在获取到海量的全域数据后,通过⾃监督学习的⽅式去提取user 和item等多种实体的表征;同时,利⽤跨域的辅助样本对模型参数进⾏预训练;最后通过⽬标域样本对模型进⾏Fine-tuning的操作得到⽬标模型,达到提升⽬标任务的⽬的。

 

3. 预训练核⼼问题

 

在选择预训练模型的过程中,需要考虑以下的三个核⼼问题:

 

①如何利⽤全域数据⾃监督学习?

 

诸如⽣成模型,对⽐模型,对抗模型都是⼗分出⾊的技术,如何选择合适的模型进⾏学习是值得思考的问题。

 

②如何找到最契合⽬标任务的⽹络结构?

 

从针对⾃然语⾔处理任务的BERT模型,到针对社交⽹络、⾏为⽹络的GNN及其变体,当拥有具体的业务需求之后,应当根据具体任务去选择最契合的⽹络结构。

 

③如何找到通⽤的迁移泛化结构?

 

考虑到⼯业中需求,将预训练模型中的参数泛化到通⽤模型中,也有着如Meta learning,Contrative learning等⽅法。

 

02

 

推荐系统场景中的预训练模型

 

1. 推荐场景中的预训练模型分类

 

在推荐场景中的预训练模型分类中,根据数据的组织形式及跨域信息迁移⽅式可以分为很多⼦类别。

 

在基于数据的组织形式分类中,可以根据⾏为序列及⾏为⽹络进⾏进⼀步的划分。根据跨域信息迁移⽅式进⾏分类,则可以根据元学习与多⽬标学习分为两⼤类别。

 

 

2. 图神经⽹络在推荐场景的优势

 

为什幺我们选择在推荐场景中运⽤图神经⽹络的⽅式?源于图神经⽹络在其中有着⾮常明显的优势:

 

①契合数据:图⽹络结构是推荐系统数据的天然组织形式社交⽹络

 

⾏为⽹络

 

知识图谱

 

②信息丰富:结合图论知识,提取⾼阶关系信息

 

PPR-based sampling

 

k-Clique/Centrality measures

 

③包罗万象:兼容传统深度神经⽹络结构,融合节点特征表达

 

3. 团队算法演进⽅向:技术与业务相辅相成

 

从2016-2019年,团队⼀直着⼒研究⼴告召回的业务,其中2016-2018注重于⾃监督模型的构建与落地;⾃2018 年起,团队跟进了在学界与业界中⽐较成功的图神经⽹络技术模型。从2019年下半年开始,团队深度参与到视频         号,直播号的召回,及订阅号召回与⼴告特征提取的业务中,在直接加⼊到推荐系统场景的背景下,团队在GNN     模型上有着出⾊的改进与落地。再往后的发展中,团队更多关注⼤规模图神经⽹络预训练的技术发展上,并且希望能够为更多业务提供应⽤。

 

 

03

 

预训练模型的服务模式

 

预训练模型主要的服务模式分为三种:

 

①特征 :为下游模型补充特征,通过预训练模型提取多域信息,丰富⽤户特征表达。

 

②召回 :直接将预训练所产⽣的user和item的embeddings通过计算的⽅式来进⾏召回。召回过程中可以适配多种业务形态和⽬标,融合域外信息激活新⽤户/场景。

 

③⼦模型 :将预训练模型作为⼦模型的结构,直接加⼊下游模型,保留预训练模型的模型参数和对特征的抽象能⼒。

 

1. 预训练结果作为下游模型特征

 

⽅案⼀:离散/连续特征分别建模,最终层concat。

 

 

⽅案⼆:把embedding特征转换为⼀个离散特征,与其他离散特征交叉。

 

 

⽅案三:根据embedding产出topK的ID list作为离散特征。

 

 

2. 预训练结果作为召回

 

①形式⼀:兴趣召回

 

在获取users与items的embeddings后,直接计算两套embeddings的相似度进⾏兴趣召回。

 

②形式⼆:跨域兴趣召回

 

在特定场景中,⽬标⽤户在⼴告域的⾏为⾮常少,但该⽤户会实时地点进公众号,从⽽产⽣与公众号界⾯的交互 ⾏为,这体现了⽤户对公众号的实时兴趣。因此我们可以通过公众号的embeddings与⼴告的embeddings做⼀个 SimSvr近邻查找,将与其交互过⼴告召回给⽤户。

 

③形式三:作者冷启动召回

 

在⼀些成熟的推荐系统中,新加⼊的作者发布的作品⽐较难以被⽤户发现,⽐如在视频号⾥⾯,已经存在⼀批头部的视频号作者,相⽐较之下,冷启动的作者作品就⽐较难被⼈看到,这会⼀定程度损伤这些作者的创作积极  性。⽽在作者冷启动召回的做法当中,基于作者的创作与消费的作品具有相似性的原则,当⽬标⽤户进⼊系统中后,我们会根据⽤户与冷启动作者的消费兴趣计算出作者的embeddings,从⽽查找出与该⽤户具有相似消费兴趣的同好作者,当这类作者有发表作品的⾏为后,则会将其作品召回给⽬标⽤户。

 

 

04

 

图神经⽹络预训练案例分享

 

1. 案例⼀:跨域兴趣召回GNN

 

在微信直播业务起步阶段,每天会有⼤量的新⽤户通过微信发现⻚的红点进⼊到直播推荐⻚⾯,但是这些⽤户中,有观看或点击主播⾏为的占⽐⾮常少。然⽽我们观察到,这些⽤户在其他域⾥⾯是有⾮常丰富的兴趣⾏为,⽐如他可能看过⾮常多的公众号的⽂章或有看过⾮常多的短视频。同时,在微信中,我们也注意到⽤户好友和好友之间是具有社交同质性的,在社交关系中,蕴藏着⽤户和⽤户之间的相似兴趣。基于以上的观察,我们就提出了想要通过GNN去实现跨越兴趣和社交信息的建模,来为新⽤户做补充召回。

 

抱着这样的⽬的,我们起始的模型设计如下图,红⾊虚线框⾥是我们底图,该底图包括的节点有⽤户直播间和⽤户或items的属性,其边信息包括⽤户对直播间的观看⾏为或好友关系等。

 

基于该底图,我们对于每⼀个节点就可以进⾏图卷积的操作来提取其特征,这⾥设计了多个Metapath来做进⾏多路图卷积。

 

此处设计的Metapath,我们为⽤户和items分别设计了三路的Metapath。

 

⽤户侧有基于⽤户⾃身对于直播间的观看⾏为的Metapath,⽤户看过的直播间特征可以聚合到⽤户上。另外,有基于社交关系的协同信息提取,⽐如⽤户的好友观看的items,我们可以把这些items的信息聚合到该⽤户上。还有基于静态属性的协同,跟⽤户具备相同属性的其他⽤户特征,也可以聚合到⽤户上,如年龄、性别等基础属性。

 

在items侧也是类似的,我们提出了三路的卷积路径设计。⾸先第⼀路是直接把⽐较相似的items信息直接进⾏传播,聚合到⽬标的items上。或通过⽤户⾏为来进⾏协同过滤,即看过当前⽬标item的⽤户还看过哪些其他直播间,这些直播间的信息也可以通过这⼀路卷积到当前⽬标item上。第三路同样是通过静态属性的协同,即具备相同的属性,⽐如直播间的类⽬相同,如皆为购物的直播间,直播间两两之间的信息则能够通过静态属性进 ⾏扩散。

 

 

具备多路图卷积后,每⼀路会产⽣出来⼀个embedding,把embeddings进⾏pooling之后送⼊dense层,则会产 ⽣出对应的us er或item的embeddings。 此处的user和item的embedding则会计算相似度,与⽤户在直播领域的 ⾏为作⽐对,最终计算 出⼀个U-I loss,也叫recommend loss。 在打分阶段,我们会直接把产⽣的⽤户和items的embeddings作为⼀个embedding的输出,去提供给下游的业务使⽤。

 

但在这个模型设计⾥,其实并没有使⽤到⽤户的域外⾏为。基于这样的考虑,我们会把side-item加⼊到底图的构造中,直接通过 item到⽤户的⾏为,将item的信息卷积到当前的⽤户身上,增加⼀路图卷积的embeddings。

 

但在这个模型设计中,训练的样本⼤部分是在直播间已经是⽐较活跃的⽤户,这会导致整个模型过度拟合⽬标域,对新⽤户并不友好。

 

因此,我们提出了以下优化⽅向。

 

 

思路: 通过其他⾏为来对⽤户和items的embeddings进⾏监督,如果两个⽤户在域外的⾏为是⾮常接近,那幺我们认为这两个⽤户的embeddings是⾮常接近的,同理对于items来说也如此。

 

⽅案: 我们把连接了⾜够多共同Side-item或共同属性的⽤户节点,直接构造出邻接矩阵,构造重构loss。这种⽅         式把⽤户在其他域的⾏为作为监督信息加⼊到整个模型的训练当中,使得模型不再仅仅是拟合⽬标域的⾏为,从 ⽽可以解决过度拟合⽬标域⾏为的问题。

 

在重构的loss的权重分配中,借鉴了多⽬标模型的思想,为每⼀个重构loss都赋予了可以学习的权重进⾏⾃动调节。

 

 

优势 :使得新⽤户也可以通过其他域的⾏为收到监督信息,使得其user embeddings提取的信息更加⾃信。也在新⽤户召回中取得了显着收益。

 

2. 案例⼆:多⽬标GNN特征提取

 

在订阅号信息流的⼴告推荐的模型中进⾏特征补充,在⼴告的⽬标域⾥⾯,⼴告的样本⾮常稀疏,⼤量的⽤户缺少⼴告点击和⼴告转化⾏为,但是这些⽤户的阅读⾏为⾮常丰富。

 

基于这⼀产品形态,我们希望⼴告卡⽚和订阅号⽂章的内容是紧密关联的。因此我们提出GNN提取⽤户在订阅号的⾏为作为特征,来补充到⼴告的精排模型⾥,为⼴告的精排模型提供额外的信息。

 

基础的模型设计如下。

 

 

在底图上,我们构造了⼴告和公众号共同存在的异构⽹络,节点就包括了⽤户⼴告和公众号的⽂章,⽽边则是⽤户的⼴告点击和⼴告转化的⾏为,以及⽤户之间的好友关系。

 

该模型的卷积路径设计,在user侧有三路不同的Metapath,分别是⽤户在⼴告域的⾏为,其点击或者转化过的⼴告的信息聚合到⽤户上,其好友的信息亦然。公众号跨域的信息,也可以把⽤户在公众号域的消费的 ⽂章对应的信息聚合到⽤户上。

 

⽽在⼴告侧的items,有着两路的卷积设计,⼀个是⼴告可以通过其相似的⼴告来做聚合。⼆是通过⽤户⾏为来做协同,可以把其他⼴告的信息聚合到当前的⼴告上⾯。

 

当拥有图卷积产⽣出来的embeddings之后,将embeddings concat起来进⼊⼀个dense层,再分别为user和item 建模了user embeddings和item embeddings,并通过相似度计算和⽤户在⼴告域的⾏为进⾏⽐对,计算出ui loss,构成了最简单的模型设计。

 

但在模型设计中,存在着以下问题:

 

①⼴告的⾏为⾮常稀疏 ,⼤部分⽤户并没有⼴告⾏为,则⽆法进⼊样本参与训练。

 

②⼴告投放具备季节性和周期性 。⽤户在特定时间可能选择到的⼴告,并不代表⽤户他在其他时间段仍然会对 这类内容感兴趣。

 

基于以上观察,我们做了这样的 优化:

 

 

将公众号的跨域样本给补充到模型当中,进⾏同步的训练,使得公众号域和⼴告域的特征提取模块,在item侧各 ⾃提取特征⽽在user侧 共享底层的embe ddings和卷积参数,从⽽使得⽤户底层的embeddings和卷积的参数可以通过丰富的公众号域的 样本去进⾏提取和优化。

 

但同时也存在着新的问题:⽤户特征的分布差异⾮常⼤,⽤户在⼴告域⾏为⾮常稀疏,⽽⽤户在公众号域⾏为则是⾮常稠密,提取出的分布差异⽐较⼤。在这样的情况下,共享⼀个底层的卷积参数,可能会导致稀疏域的特征的提取能⼒受限。

 

基于这样的分析,我们提出了进⼀步优化, 这⾥的优化主要分为两点:

 

 

在卷积层⾯,将⽤户的特征拆分出来,将提取出来的特征送进两个dense层,从⽽产⽣出⽤户的两个share embeddings。除此之外,把⽤户在各个域的对应⾏为单独拎出来做⼀路卷积,产⽣出⽤户在当前域的private embedding。从⽽可以强化两个域对于⽤户的特征的提取。

 

把两边User的share embedding通过MMD loss进⾏平滑,使得两边的embeddings的分布⽐较⼀致。

 

这个模式的设计帮助⼴告推荐取得了离线和线上效果的提升。

 

宋重钢 博士

 

腾讯  高级研究员

 

博士毕业于新加坡国立大学,2017年入职腾讯,主要负责社交网络分析与社交推荐方面的业务,重点支持的项目包括朋友圈广告、微信视频号与直播等等。目前主要的工作中心在于建立通用的图数据预训练平台,为下游业务提供可信任的图数据嵌入表达。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。