论文解读-《How Powerful are Graph Neural Networks》

1. 论文介绍

论文题目:How Powerful are Graph Neural Networks
论文领域:图神经网络
论文发表:ICLR 2019
论文背景:
gin01

2. 论文摘要

图神经网络是一种有效的图表示学习框架。GNN遵循邻域聚合方案,通过递归聚合和变换相邻节点的表示向量来计算节点的表示向量。许多GNN变体已经被提出,并在节点和图分类任务上取得了最新的成果。然而,尽管GNNs革命性地改变了图形表示学习,但人们对其表示性质和局限性的理解还很有限。在这里,我们提出了一个理论框架,分析表达能力的GNNs捕捉不同的图形结构。我们的结果刻画了常见GNN变体(如图卷积网络和GraphSAGE)的区分能力,并表明它们不能学会区分某些简单的图结构。然后,我们开发了一个简单的体系结构,可以证明它是GNN类中最具表现力的,并且与Weisfeiler-Lehman图同构测试一样强大。我们在一些图分类基准上验证了我们的理论发现,并证明我们的模型达到了最先进的性能。

3. 本文贡献

  • 1,展示了GNN在图结构的分类上可与WL测试一样强
  • 2,结合邻域聚合和图readout函数,可以与WL测试一样强
  • 3,指出了一些常见GNN无法区分的图结构,并精确描述了基于GNN可以捕获的图结构类型
  • 4,提出了一种新的网络架构,图同构网络GIN,并证明了其判别表征能力等同于WL测试能力

4. 相关工作

许多GNN方法有着不同的邻居信息聚合方法和图级别的池化技术,目前的GNN设计主要是依赖于直觉,启发式设计和实验验证,对GNN的局限性和理论探讨较少。

一个核心的观察是GNN的聚合范式能够高度表达和模拟内部映射,那么GNN就可以获得和WL test一样强大的判别能力。

对于传统的GNN方法,在GNN的第k层,节点的特征表示可以为
gin02

对于图分类,Readout函数可以聚合节点特征来得到一个全局的图特征,表示为:
gin03

readout是一个简单的转置不变性的函数。

Weisfeiler-Lehman test介绍: WL测试可以区分各种各样的图同构问题,效果有效且计算快速。
目前WL test在图同构问题上的判别方法是目前最优的。
WL测试算法操作

  • 1,聚合方案:聚合每个节点邻域和自身标签
  • 2,更新节点标签:使用Hash映射节点聚合的标签,得到节点的新标签
    迭代操作,可以的节点新标签的以判断同构性。

更多的有,基于WL的子树核方法,衡量两个图的相似度,该核利用在不同WL测试迭代次数中的节点标签个数作为特征,所以图特征的基础是图中不同子树的根节点的计数。

5. 理论分析框架

整个理论分析框架如下
gin04

定义: 多重集:是一个包含同一元素有多个实例的集合。给出的定义区分了其的独例和多重例
gin05

为了解决图分类问题,对于同质图来说希望能提取到相同的特征,对于异质图则为不同的特征。可以使用WL测试来表征GNN的特征表征能力
gin06

WL测试的节点特征向量本质上是一种one-hot encoding热编码,因此不能捕获子树之间的相似性。
gin07

基于WL测试的学习子树的嵌入空间到低维空间,这个不仅让GNN可以判别不同的图结构,还可以学习映射相似图结构到相似嵌入空间的映射和捕获图结构之间的依赖。
特别是当子树在不同图中稀疏共存或存在噪声边和节点特征时,捕捉节点标签的结构相似性有助于泛化。

6. 图同构网络GIN

因为目前在图结构判别的上限是WL测试,所以将WL测试泛化到神经网络中,提出了一种基于WLtest的网络结构

为了模拟邻域的多重点单射问题,根据以下的引理,可以发现求和整合算子可以表示单射。
gin08

gin09

从上面的推论,可以使用MLP来学习其中的f 和 ϕ, 可以到GIN更新节点表征的公式为
gin10

对于图级别的任务来说,使用Readout来从节点级特征获得图级特征
gin11

7. 代码

# 简单的GIN的实现
class GINLayer(nn.Module):
	def __init__(self, input_dim, output_dim):
		super(GINLayer, self).__init__()
		self.mlp = nn.Sequential(
					nn.Linear(input_dim, output_dim),
					nn.ReLU(),
					nn.Linear(output_dim, output_dim)
		)
		self.eps = nn.Parameter(torch.zeros(1))
		
	def forward(self, x, adj):
		h = torch.spmm(adj, x)
		h = (1 + self.eps) * x + h
		return self.mlp(h)

8. 实验设置

使用了9个图级别分类benchmark,4个生物数据集,5个社交网络数据集。实验的要求是让模型主要去学习网络结构,而不是依赖于输入的节点特征。

比较基线
拿GNN和很多SOTA方法进行比较 ,基于C-SVN分类器的WL子树核方法;STOA深度学习架构 DCNN,PATCHY-SAN,DGCNN,AWL(Anonymous Walk Embedding)

实验数据:
gin12

从数据上看,GNN和MLP的变形相比于一层感知机对比有更高的训练准确率。GNN使用sum的聚合会比mean和max-pooling聚合的训练效果更好。

9. 结论

本文提出的从节点分类特征到全局图的特征转换,使用了WL测试算法来辅助说明。

posted @ 2025-06-30 20:06  zhang-yd  阅读(55)  评论(0)    收藏  举报