前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >他山之石 | 腾讯图神经网络与推荐预训练模型

他山之石 | 腾讯图神经网络与推荐预训练模型

作者头像
NewBeeNLP
发布2022-11-11 11:16:09
6350
发布2022-11-11 11:16:09
举报
文章被收录于专栏:NewBeeNLPNewBeeNLP

作者 | 宋重钢@腾讯 整理 | DataFunTalk

大家好,这里是NewBeeNLP。今天分享腾讯图神经网络与推荐预训练模型。主要包括以下几部分内容:

  • 预训练模型目标与核心问题
  • 推荐系统场景中的预训练模型
  • 预训练模型的服务模式
  • 图神经网络预训练案例分享

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层,则会产⽣出对应的user或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侧共享底层的embeddings和卷积参数,从⽽使得⽤户底层的embeddings和卷积的参数可以通过丰富的公众号域的样本去进⾏提取和优化。

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

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NewBeeNLP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档