TransGNN论文阅读笔记

TransGNN: Harnessing the Collaborative Power of Transformers and Graph Neural Networks for Recommender Systems论文阅读笔记

Abstract

存在的问题:

​ 目前基于 GNN 的方法仍面临着感受野有限和存在 "兴趣无关 "连接噪声的挑战。相比之下,基于Transformer的方法在自适应和全局性聚合信息方面表现出色。然而,它们在大规模交互图中的应用却受到了固有的复杂性和捕捉错综复杂的纠缠结构信息的挑战的阻碍。

解决方案:

​ 在本文中,我们提出了一种新的TransGNN模型,它交替地集成了Transformer层和GNN层,以相互增强它们的能力。具体来说,TransGNN 利用 Transformer 层来拓宽感受野,并将信息聚合与边缘分离,从而聚合来自更多相关节点的信息,从而增强 GNN 的信息传递能力。此外,为了有效捕捉图结构信息,还精心设计了位置编码,并将其集成到 GNN 层中,将此类结构知识编码为节点属性,从而提高 Transformer 在图上的性能。此外,我们还提出了针对变换器的最相关节点采样以及两种高效的采样更新策略,以降低复杂性,从而缓解了效率方面的考虑。此外,理论分析表明,与 GNN 相比,TransGNN 的表达能力更强,而线性复杂度仅略有增加。

Introduction

​ 尽管现有的基于图的 CF 模型非常有效,但仍有几个基本挑战没有得到充分解决。首先,信息传递机制依赖于边缘来融合图结构和节点属性,这会导致强烈的偏差和潜在的噪音。例如,最近关于眼动跟踪的研究表明,用户不太可能浏览推荐列表中排名靠后的项目,而倾向于与列表顶部的前几个项目进行交互,而不管项目的实际相关性如何。因此,交互图内的拓扑连接会受到上述位置偏差的阻碍,导致信息传递的说服力降低。

​ 此外,由于对流行项目的过度推荐,用户可能会与他们不感兴趣的产品进行交互,从而导致在用户-项目交互图中形成“与兴趣无关的连接”。因此,从用户对推荐列表的反馈中生成的图形可能不能忠实地反映用户的偏好。更糟糕的是,嵌入沿着边缘的传播可能会加剧噪声效应,潜在地扭曲了基于gnn的模型中潜在用户兴趣的编码。

​ 其次,gnn的接受域也受到过平滑的挑战的限制。已经证明,随着gnn体系结构的深入并达到一定程度,模型不会对训练数据产生响应,这种深度模型获得的节点表现往往过于平滑,也变得难以区分的。因此,GNN模型的最优层数通常被限制在不超过3个,其中模型最多只能捕获3个跳的关系。 然而,在实际应用中,项目序列的长度往往超过 3,这表明存在超出这一限制的重要序列模式。由于网络结构的固有限制,基于 GNN 的模型很难捕捉到这种较长期的序列信息。

​ 幸运的是,Transformer 架构似乎为解决这些固有的局限性提供了一条途径。由于自关注机制,每个项目都能汇总用户-项目交互序列中所有项目的信息。因此,Transformer 可以捕捉序列数据中的长期依赖关系,并取代卷积神经网络和递归神经网络。然而,虽然Transformer具有全局和自适应聚合信息的能力,但其有效利用图结构信息的能力却受到了限制。这种限制源于Transformer的聚合过程不依赖于边,从而导致对关键历史交互的低估。

​ 在本文中,我们将探究Transformer和 GNNs 的整合是否能利用它们各自的优势来共同提高性能。通过利用变形器,GNN 的接收领域可以扩大,以涵盖更多相关节点,甚至是那些距离中心节点较远的节点。反过来,GNN 也能帮助 Transformers 捕捉复杂的图拓扑信息,并有效地聚合邻近区域的相关节点。尽管如此,将 GNN 和 Transformers 集成到图结构 CF 数据建模中仍面临巨大挑战,主要包括以下三个核心方面。

(1) 如何在注意力采样模块中采样最相关的节点?由于用户-物品交互图可能包含 "感兴趣-不相关 "的连接,直接汇总所有交互边的信息会影响对用户的准确呈现。同时,考虑最相关的节点不仅能降低计算复杂度,还能过滤掉来自噪声节点的无关信息。

(2) Transformers 和 GNN 如何在协作框架中有效结合?鉴于 Transformers 和 GNNs 各自固有的优点,设想一个协作框架,让这两个模块在用户建模中相互促进,是一个合乎逻辑的发展过程。

(3) 如何有效更新注意力样本,避免复杂性耗尽?计算每个中心节点在整个图数据集上的自我关注权重需要𝑂(𝑁 2 )的时间和空间复杂度,这给我们带来了挑战,例如在图越来越大的情况下会出现内存不足的问题。因此,设计更新注意力样本的高效策略势在必行。

​ 为了应对上述挑战,我们引入了一种名为 TransGNN 的新型框架,它融合了 GNN 和 Transformers 的优势。为了降低复杂性并减轻无关节点的影响,我们首先建议根据语义和结构信息为每个中心节点抽取注意力节点。之后,我们引入了三种位置编码方式:

(i)基于最短路径的位置编码

(ii)基于度的位置编码

(iii)基于pagerank的位置编码。

​ 这种位置编码将不同粒度的结构拓扑信息嵌入到节点嵌入中,便于为Transformer提取简化的图结构信息。然后,我们设计了 TransGNN 模块,在该模块中,Transformer和 GNN 交替使用,以相互提高性能。

​ 在 GNN 层中,Transformers 汇聚复杂度较低的注意力样本信息,以扩大 GNN 的感受野,重点关注最相关的节点。相反,在 Transformers 中,GNN 的信息传递机制有助于融合表示法和图结构,从而捕捉丰富的拓扑信息。信息传递过程还有助于从邻域中高效检索更多相关节点信息。此外,我们还提出了两种更新注意力样本的高效方法,这些方法很容易推广到大规模图中。最后,对 TransGNN 的表达能力和复杂性进行了理论分析,证明它比 GNN 的表达能力更强,而线性复杂性仅略有增加。

​ 我们的贡献可以总结如下:

  • 我们引入了一个新模型--TransGNN,在这个模型中,Transformer和 GNN 协同合作。Transformer 可拓宽 GNN 的接收范围,而 GNN 则可捕捉重要的结构信息,从而提高 Transformer 的性能。
  • 为了减轻复杂性的挑战,我们引入了一种采样策略和两种有效的方法来有效地更新相关的样本。
  • 我们对TransGNN的表达能力和计算复杂度进行了理论分析,发现TransGNN比gnn表现出更大的效力,且额外的计算开销较小。

Method

模型框架

​ TransGNN的框架如图所示,它由三个重要的组成部分组成:

​ (1)注意采样模块,

​ (2)位置编码模块,

​ (3) TransGNN模块。

​ 首先通过考虑注意采样模块中的语义相似度和图结构信息,对每个中心节点最相关的节点进行采样。然后在位置编码模块中,我们计算位置编码,以帮助Transformer获取图的拓扑信息。在这两个模块之后,我们使用TransGNN模块,它按顺序包含三个子模块:(i)Transformer层,(ii)GNN层,(iii)样本更新子模块。

​ 其中,变压器层用于扩展GNN层的接受域,有效地聚合注意样本信息,而GNN层有助于变压器层感知图的结构信息,获得更多的相邻节点的相关信息。集成了样本更新子模块,从而有效地更新了注意样本。

pkJBSW6.png

​ TransGNN 框架。我们首先对中心节点的相关节点进行采样,然后结合结构信息计算位置编码以增强原始属性。在 TransGNN 模块中,变换层和 GNN 层相互促进,然后是样本更新子模块。

注意力采样模块

​ 这里说的主要的挑战就是计算复杂度高,而且全局注意力机制不相关的用户和物品也会被纳入。

​ 这里认为没有必要计算每个节点的整个图的注意力。相反,对最相关的节点进行优先排序就足够了。为了降低计算复杂度,这里提议对给定用户或物品节点进行最相关的节点抽样。首先计算语义相似度矩阵

\(S=XX^T\)

​ X表示节点的属性,但是这样会忽略用户偏好的结构复杂性,所以我们通过在抽样前考虑邻居节点的偏好来细化我们的相似性度量。

\(\mathbf{S}=\mathbf{S}+\alpha\mathbf{\hat{A}S},\)

​ 最后进行注意力采样\(\mathrm{Smp}(v_i)=\left\{v_j|v_j\in V\operatorname{and}S(i,j)\in\operatorname{top-k}(S(i,:))\right\}\)

位置编码模块

​ 这里说可以利用图提供的拓扑只是来丰富Transformer。提出了三种不同的位置编码,分别是:

  • 基于最短路径跳的位置编码
  • 基于度的位置编码
  • 基于pagerank的位置编码

​ 前两种编码表示用户和项目之间的接近性,强调用户交互的多样性和频率或项目的流行程度。同时,最后一个编码表示由图的拓扑结构所决定的显著性。

基于最短路径跳的位置编码

​ 这里就是获取每个节点及其注意样本节点的最短路径跳,然后计算这个节点的基于最短路径跳的位置编码

\(\mathrm{SPE}(v_i,v_j)=\mathrm{MLP}(P(i,j)),\)

基于度的位置编码

​ 顾名思义,就是基于节点的度来计算节点的编码

\(\mathrm{DE}(v_i)=\mathrm{MLP}(\mathrm{deg}_i).\)

基于PageRank的位置编码

​ 这个说是为了获取结构重要性的影响,然后根据节点的pagerank计算位置编码

\(\mathrm{PRE}(v_i)=\mathrm{MLP}(\mathrm{Pr}(v_i)).\)

编码聚合

​ 然后将这三种编码与原始的用户/物品节点的属性进行聚合:

\(\begin{aligned}&\mathbf{h}_{i}=\mathrm{COMB}(\mathrm{AGG}(\mathbf{x}_i,\mathrm{SPE}(v_i,v_i),\mathrm{DE}(v_i),\mathrm{PRE}(v_i)))\\&\mathbf{h}_{j}=\mathrm{COMB}(\mathrm{AGG}(\mathbf{x}_j,\mathrm{SPE}(v_i,v_j),\mathrm{DE}(v_j),\mathrm{PRE}(v_j)))v_j\in\mathrm{Smp}(v_i)\end{aligned}\)

TransGNN模块

​ 这里介绍了一下TransGNN模块的组成部分,包括Transformer层、GNN层和采样更新子模块

Transformer层

​ 这里是将节点的嵌入和对应的注意力采样的节点的嵌入作为输入,后面就是常规的Transformer层了

GNN层

​ 就是正常的过一层GNN,不过输入是Transformer输出的

采样更新子模块

​ 说是经过了Transformer和GNN层之后,注意样本应该在新的表示形式上更新。但是因为计算复杂度的原因,于是就提出了两种更新注意样本的策略

基于random walk的更新

​ 这种方法认识到用户往往会表现出一致的品味特征,因此会深入研究每个采样项目的本地邻域,以发现潜在的相关项目。我们采用随机漫步策略来探索每个采样节点的本地邻域。具体来说,随机行走的过渡概率是根据相似度确定的,如下所示:

\(p_{i\to j}=\begin{cases}\frac{\mathbf{h}_i\mathbf{h}_j^T}{\sum_{l\in\mathcal{N}(v_i)}\mathbf{h}_i\mathbf{h}_l^\top},&\text{if}v_j\in\mathcal{N}(v_i)\\0,&\text{if}v_j\notin\mathcal{N}(v_i)\end{cases}\)

​ 根据转移概率,我们为每个注意力样本走过一个长度为 𝐿 的节点序列,然后根据新的表征在已探索的节点中选择新的注意力样本。

基于消息传递的更新

​ 基于随机行走的更新策略有额外的开销。我们提出了另一种更新策略,利用GNN层的消息传递来更新样本,而没有额外的开销。具体来说,我们在GNN层的消息传递过程中聚合来自每个中心节点的邻居节点的注意样本。这背后的直觉是,相邻节点的注意样本也可能是中心节点的相关注意样本。我们将邻居节点的注意样本集表示为注意消息,其定义如下:

\(\operatorname{Attn_Msg}(v_i)=\bigcup\operatorname{Smp}(v_j)\forall v_j\in\mathcal{N}(v_i),\)

​ 因此,我们基于新的表示,在节点𝑣𝑖的Attn_Msg(𝑣𝑖)中选择新的注意样本

模型优化

\(\mathcal{L}=\Sigma_{\sqcap\in\mathcal{U}}\Sigma_{t=1}^n\log(\sigma(P(i_{t+1})-P(i_{t+1}^-))),\)

\(P(\cdot)\)表示模型输出的预测得分

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720167.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型零售企业总部到分公司数据发放,有没有更优化的方案?

大型零售企业在市场经济中扮演重要角色,是保证基础商品生产、流通和供给的重要一环。随着企业发展,很多大型零售企业都会在全国、乃至全球各地开设分公司,用以降低生产和运营成本,更好地提供本地化服务。为了保证总部与分公司间信息通畅,同时,总部和分公司间的业务数据、…

UDP内网穿透和打洞原理的C语言代码实现

在典型的NAT穿透场景中,知道服务器端的公网IP和端口,但不知道客户端的公网IP,可以通过一些技巧来实现UDP打洞。可实现内网客户端与服务器相互UDP通信。v1.0 2024年6月5日 发布于博客园目录序言UDP打洞的原理应用场景基本理论代码实现udp_client_NAT.cudp_server_NAT.c结果参…

低代码智能通信:腾讯云短信助力,快速构建高效消息应用

前言 ​ 随着信息技术的飞速发展,现代社会对信息传达的及时性、准确性与便捷性要求越来越高。尤其在移动互联网时代,用户对于服务的体验要求不断提升,这促使各类网站、APP、小程序等服务平台必须持续优化其交互方式,以满足用户日益增长的需求。 ​ 在此背景下,短信作为一种…

.NET C# 程序自动更新组件

实现一个轻量级独立自动更新组件,可稍作修改集成到大家自己项目中,比如:WPF/Winform/Windows服务引言 本来博主想偷懒使用AutoUpdater.NET组件,但由于博主项目有些特殊性和它的功能过于多,于是博主自己实现一个轻量级独立自动更新组件,可稍作修改集成到大家自己项目中,比…

IC设计企业致力于解决的HPC数据防泄漏,到底该怎么做?

对于半导体IC设计企业来说,芯片设计、验证、仿真使用HPC环境现在已逐渐成为趋势,主要原因在于原来的工作流程存在较多的缺陷: 性能瓶颈:仿真、设计、验证、生产过程中,前端仿真需要小文件高并发低时延的读写和巨量元数据处理能力,后端仿真存储需要提供很大的读写带宽满足…

重写学习 localStorage 与 sessionStorage

localStorage 与 sessionStorage localStorage 与 sessionStorage 很多小伙伴对它们俩都很熟悉了;最熟悉的莫过下面这2条 1,localStorage 存储的数据没有时间限制,理论上永久有效;除非手动清除。sessionStorage 存储的数据在关闭当前页面后失效; 2,有存储大小限制,两者存储大…

ASP.NET Web应用程序升级最新的MSBuild格式后,Visual Studio 2022中如何调试?

摘要 把ASP.NET的Web应用程序,Project文件从 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">改为 <Project Sdk="Microsoft.NET.Sdk.Web">之后,升…

AI带你玩转音乐,使你成为真正音乐人(AI歌曲制作)

利用AI工具快速完成一首歌: 歌由词和曲组成。 词可以利用文心一言 输入:写一首赞扬国家繁华发展的歌词 这样一首歌的词部分已经出来。 曲部分: 利用https://suno.com/create生成: 拷贝文心一言生成的词 选择定制模式Custom Mode有更多的风格可以制作点击生成就可以完成曲制…

零基础写框架(2):故障排查和日志基础

关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.com/whuanle 故障排查和日志 .NET 程序进行故障排查的方式有很多,笔者个人总…

使用Visual Studio分析.NET Dump

前言 内存泄漏和高CPU使用率是在日常开发中经常遇到的问题,它们可能会导致应用程序性能下降甚至崩溃。今天我们来讲讲如何使用Visual Studio 2022分析.NET Dump,快速找到程序内存泄漏问题。 什么是Dump文件? Dump文件又叫内存转储文件或者叫内存快照文件。用于存储程序运行时…

springboot模块化开发项目搭建

1.New一个Project,命名,Next,Finish 2.根据需要修改Maven配置 3.初始化后,删除无用文件4.选中项目创建Module,命名,Next,一般模块包括common、dao、service、web、entrance(入口文件),也可以增加订单、会员等各种业务模块,各模块之间依赖引用即可5.删除无用文件,删…