GNN-Transformer新突破!全局与局部的完美融合

图神经网络(GNN)和Transformer的结合是近年来的研究热点。这类结合不仅能够让两者发挥各自的优势,还能推动模型的创新,提高处理图数据的效率和性能。

具体点讲,通过利用Transformer,我们可以扩展GNN的感受野,包括那些距离中心节点较远的相关节点。相对的,GNN也可以帮助Transformer捕捉复杂的图拓扑信息,并从相邻区域高效地聚合相关节点。

目前,基于Transformer的GNN和图Transformer是GNN+Transformer的两大关键结合方式,这其中有不少个人认为很值得学习的成果。比如GNN 嵌套 Transformer 模型GraphFormers、仅使用一层全局注意力的简化图Transformer模型SGFormer

TransGNN

TransGNN: Harnessing the Collaborative Power of Transformers and Graph Neural Networks for Recommender Systems

方法:论文提出了TransGNN模型,通过交替使用Transformer和GNN层来相互增强它们的能力。TransGNN利用Transformer层扩大了接受野,并将信息聚合从边缘中解耦,从而增强了GNN的信息传递能力。

为了有效捕捉图结构信息,作者们设计了细致的位置编码,并将其集成到GNN层中,以将结构知识编码到节点属性中,从而提高了Transformer在图上的性能。

为了提高效率,作者们提出了对Transformer进行最相关节点的采样,并提出了两种高效的样本更新策略,以减少复杂性。

创新点:

  • 引入了一种新颖的模型TransGNN,其中Transformer和GNN协同合作。Transformer扩大了GNN的感受野,而GNN捕捉关键的结构信息以增强Transformer的性能。

  • 为了解决复杂性的挑战,作者引入了一种采样策略以及两种更新相关样本的高效方法。

  • 对TransGNN的表达能力和计算复杂度进行了理论分析,揭示了TransGNN相对于具有小额外计算开销的GNN来说具有更大的潜力。

图片

GraphFormers

GraphFormers: GNN-nested Transformers for Representation Learning on Textual Graph

方法:论文提出了一种名为GraphFormers的模型架构,用于文本图的表示学习。该模型将GNN和预训练语言模型相结合,通过将GNN嵌入到语言模型的Transformer层中,将文本编码和图聚合融合为一个迭代的流程,从而更准确地理解每个节点的语义。此外,还引入了渐进学习策略,通过对操纵过的数据和原始数据进行逐步训练,增强了模型整合图信息的能力。

创新点:

  • 图神经网络嵌套Transformer(GraphFormers):它结合了图神经网络(GNNs)和语言模型。在GraphFormers中,GNN组件与语言模型的Transformer层并行设置,允许文本编码和图聚合的融合。这种架构能够从全局角度精确理解每个节点的语义,从而产生高质量的文本图表示。

  • 两阶段渐进学习:为了增强模型整合来自图的信息的能力,作者引入了一种两阶段渐进学习策略。在第一阶段,模型在被操纵的数据上进行训练,其中节点被随机污染,迫使模型利用全部输入节点。在第二阶段,模型在原始数据上训练以适应目标分布。这种渐进学习策略提高了GraphFormers的表示质量。

  • 单向图注意力:为了减少不必要的计算,作者引入了单向图注意力。只需要中心节点参考其邻居,而邻居节点保持独立编码。这允许缓存和重用现有邻居的编码结果,显著节省了计算成本。

图片

Exphormer

EXPHORMER: Sparse Transformers for Graphs

方法:本文介绍了一种名为EXPHORMER的框架,用于构建强大且可扩展的图变换器。EXPHORMER采用两种机制:虚拟全局节点和扩展图,这些数学特性使得图变换器的复杂度仅与图的大小成线性关系,并且能够证明所得到的变换器模型具有理想的理论特性。

创新点:

  • EXPHORMER是一种新的稀疏图转换器架构,具有可扩展性和竞争力的准确性。

  • EXPHORMER基于两种机制,即虚拟全局节点和扩展图,实现了稀疏注意机制。

  • EXPHORMER的数学特性包括谱扩展、伪随机性和稀疏性,使得图转换器具有与图规模线性复杂度和理想的理论特性。

  • 在GraphGPS框架中使用EXPHORMER可以产生在各种图数据集上具有竞争力的实证结果,包括在三个数据集上的最新结果。

  • EXPHORMER可以扩展到比以前的图转换器架构更大的图数据集。

图片

SGFormer

SGFormer: Simplifying and Empowering Transformers for Large-Graph Representations

方法:本文提出了一种名为SGFormer的模型,通过一个简单的全局注意力模型来学习大图上的节点表示。该模型具有线性的时间和空间复杂度,能够高效地处理大规模图。

创新点:

  • SGFormer模型:

    • 提出了SGFormer模型,它是一种简化的图Transformer模型,只使用了单层单头的注意力机制。

    • SGFormer模型具有线性的时间和空间复杂度,能够有效地处理从数千到数十亿个节点的大规模图数据。

    • SGFormer模型在12个图数据集上取得了非常有竞争力的性能,比其他强大的图神经网络和最先进的图Transformer模型都要好。

  • 单层注意力模型的表达能力:

    • 通过将Transformer层与信号去噪问题相连接,证明了单层注意力模型可以产生与多层注意力相同的去噪效果。

    • 单层注意力模型可以实现最速下降,表明它具备足够的表达能力,能够学习全局信息。

图片

原文链接: GNN-Transformer新突破!全局与局部的完美融合

### GNNTransformer架构的结合或对比 #### 图神经网络GNN) 图神经网络是一种专门用于处理结构化数据的方法,特别是当这些数据可以被自然地表达成图形的时候。在图形中,实体被称为节点,而它们之间的交互则由边来表示。这种方法非常适合于那些具有复杂相互作用的数据集,比如社交网络、分子结构或是推荐系统的用户-项目互动矩阵。 对于物理系统的建模而言,通过将物体视为节点并将关系定义为边,能够实现一种简化却有效的基于GNN的对象间推理方式[^1]。这使得GNN成为解决涉及多体动力学预测等问题的理想工具。 #### Transformer架构 另一方面,Transformers最初是为了序列到序列的任务设计出来的,例如机器翻译,在这类任务里输入输出都是线性的符号串。然而,由于其强大的并行计算能力自注意力机制,transformer已经被广泛应用于各种类型的NLP其他领域的问题上。尽管如此,原始形式下的transformer并不直接适用于非欧几里得空间中的数据,如图表征学习所面临的那样。 #### 结合两者的优势 为了克服各自局限性的同时发挥两者的优点,研究者们探索了如何把GNNs同transfomers结合起来的可能性。这种组合可以在保持对结构性质敏感的基础上增强模型捕捉长期依赖性全局上下文的能力。具体来说: - **跨域特征融合**:利用GNN提取局部邻近区域内的拓扑特性;借助transformer捕获远距离节点间的潜在联系。 - **层次化的表征构建**:先用GNN生成初步的节点嵌入向量,再把这些低级描述传递给transformer层进一步加工提炼得到更高级别的抽象表述。 ```python import torch from torch_geometric.nn import GCNConv, global_mean_pool from transformers import BertModel class GNNTraformer(torch.nn.Module): def __init__(self, gnn_input_dim, transformer_hidden_size=768): super(GNNTraformer, self).__init__() # Define the GNN part of the network self.gcn_conv = GCNConv(gnn_input_dim, transformer_hidden_size) # Load pre-trained BERT model as an example for transformer component self.transformer = BertModel.from_pretrained('bert-base-uncased') def forward(self, data): x, edge_index, batch = data.x, data.edge_index, data.batch # Apply GNN layer to get node embeddings x = self.gcn_conv(x, edge_index) # Aggregate over all nodes within each graph instance pooled_output = global_mean_pool(x, batch) # Pass through transformer layers treating aggregated outputs like sentences tokens output = self.transformer(inputs_embeds=pooled_output.unsqueeze(0)) return output.last_hidden_state.squeeze() ``` 此代码片段展示了一个简单的GNNTraformer框架实例,其中包含了GCN卷积操作以获取初始节点表示,并随后将其送入BERT风格的变压器组件来进行最终的信息综合处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值