赞
踩
论文:Graph U-Nets
作者:Hongyang Gao , Shuiwang Ji
美国德克萨斯A&M大学计算机科学与工程系
来源:ICML 2019
论文链接:
Arxiv: https://arxiv.org/abs/1905.05178
github链接:https://github.com/HongyangGao/gunet
此文研究了图数据的表示学习问题。卷积神经网络可以很自然地对图像进行操作,但在处理图数据方面存在很大的挑战。图像可以看作是是二维格上有节点的图,所以图的节点分类任务与如图像分割这样的像素级预测任务具有天然的对应关系。具体来说,这两项任务的目标都是对每个输入单元(对应图像上的一个像素或图上的一个节点)进行预测。在计算机视觉领域,像素级预测任务近年来取得了很大的进展。像U-Net这样的编码器-解码器架构是实现这些任务的最先进的方法,并且已经成功地应用于许多像素级的预测任务,但类似的方法在图数据上还很缺乏。因此,开发类似于U-Nets的图数据架构是非常有趣的。除了卷积之外,池化和上采样操作也是这些体系结构中的基本构件。然而,将这些操作扩展到图数据非常具有挑战性,因为与图像和文本之类的网格数据不同,图数据中的节点没有空间局部性和顺序信息,即节点的邻居数量不固定,并且没有顺序。所以池化和上采样(up-sampling)不能很自然地对图数据进行操作。
为了解决这些挑战,文中提出了新的graph pooling(gPool)和graph unpooling(gUnpool)层:
(1)Kipf的GCN
X ℓ + 1 = σ ( D ^ − 1 2 A ^ D ^ − 1 2 X ℓ W ℓ ) (1) \tag{1} X_{\ell+1}=\sigma\left(\hat{D}^{-\frac{1}{2}} \hat{A} \hat{D}^{-\frac{1}{2}} X_{\ell} W_{\ell}\right) Xℓ+1=σ(D^−21A^D^−21XℓWℓ)(1)
参考:GCN - Semi-Supervised Classification with Graph Convolutional Networks 用图卷积进行半监督节点分类 ICLR 2017
(2)GraphSAGE
采样固定数量的相邻节点,以保持计算内存占用的一致性。
参考:GraphSAGE:Inductive Representation Learning on Large Graphs 论文详解 NIPS 2017
(3)GAT
利用注意力机制使相邻节点的权值不同。
参考:GAT - Graph Attention Network 图注意力网络 ICLR 2018
(4)RGCN
使用关系图卷积网络进行链接预测和实体分类任务。
参考:RGCN - Modeling Relational Data with Graph Convolutional Networks 使用图卷积网络对关系数据进行建模 ESWC 2018
卷积在图分类上的一些工作:
下面介绍graph pooling(gPool)层和graph unpooling(gUnpool)层。基于这两个新层,提出了进行节点分类任务的graph U-Nets。
符号定义:
池化层在CNNs中对网格状数据起着重要的作用,可以减小feature map的大小,扩大感受域,从而产生更好的性能,泛化能力也增强。在图像等网格数据上,将特征图分割成不重叠的矩形,并对其使用非线性下采样函数,例如max,mean pooling。除了局部池化之外,还有全局池化,全局池化层(Self-adaptive hierarchical sentence model,IJCAI 2015)还对所有输入单元执行下采样操作,从而将每个feature map为一个数字。k-max池化层(A
convolutional neural network for modelling sentences, 2014)从每个特征图中选择k-max的单元。
但是,不能将这些池化操作直接应用到图数据上,特别是因为图中节点之间没有局部性信息。因此,分区操作不适用于图。全局池化操作将所有节点映射为一个节点,限制了网络的灵活性。k-max池化操作输出可能来自图中不同节点的k个最大单元,导致所选节点的连接性不一致。
文中使用图池化层(gPool)来对图数据进行向下采样。在图池化层中,自适应地选择节点的一个子集来形成一个新的但是更小的图。为此,使用了一个可训练的投影向量 p \mathbf{p} p,将所有节点特征投影到1D,然后执行k-max池化来选择节点。因为这种选择是基于每个节点的一维footprint,所以新图中的连接在节点之间是一致的。给定一个具有特征向量 x i x_i xi的节点 i i i, x i x_i xi在 p \mathbf{p} p上的标量投影为:
y i = x i p / ∥ p ∥ y_{i}=\mathbf{x}_{\mathbf{i}} \mathbf{p} /\|\mathbf{p}\| yi=xip/∥p∥
图池化传播规则为:
y = X ℓ p ℓ / ∥ p ℓ ∥ i d x = rank ( y , k ) y ~ = sigmoid ( y ( i d x ) ) X ~ ℓ = X ℓ ( i d x , : ) A ℓ + 1 = A ℓ ( i d x , i d x ) X ℓ + 1 = X ~ ℓ ⊙ ( y ~ 1 C T ) (2) \tag{2} y=Xℓpℓ/‖pℓ‖idx=rank(y,k)˜y=sigmoid(y(idx))˜Xℓ=Xℓ(idx,:)Aℓ+1=Aℓ(idx,idx)Xℓ+1=˜Xℓ⊙(˜y1TC) yidxy~X~ℓAℓ+1Xℓ+1=Xℓpℓ/∥∥pℓ∥∥=rank(y,k)=sigmoid(y(idx))=Xℓ(idx,:)=Aℓ(idx,idx)=X~ℓ⊙(y~1CT)(2)
gate operation(sigmoid)使得投影向量 p \mathbf{p} p可以通过反向传播进行训练。在没有gate operation的情况下,投影向量 p \mathbf{p} p会产生离散的输出,这使得它无法通过反向传播进行训练。
上采样操作对于U-Net这样的编码器-解码器网络非常重要。网络的编码器通常采用池化操作来减小feature map的大小,增加感受野。而在解码器中,需要对feature map进行上采样以恢复其原始分辨率。对于像图像这样的网格数据,有几种上采样操作,如deconvolution层( Image-to-image translation with conditional adversarial networks,2015 CVPR;Stacked what-where auto-encoders 2015)和unpooling层(Fully convolutional networks for semantic segmentation,2015 CVPR)。但是,目前在图数据上还没有这种操作。
为了在图数据上使用上采样操作,文中提出了graph unpooling(gUnpool)层,它执行gPool层的相反操作,将图恢复到原始结构:记录在相应的gPool层中选择的节点的位置,并使用这些信息将节点放回图中的原始位置。
graph unpooling层的逐层传播规则为:
X ℓ + 1 = distribute ( 0 N × C , X ℓ , id x ) (3) \tag{3} X^{\ell+1}=\text { distribute }\left(0_{N \times C}, X^{\ell}, \text { id } \mathrm{x}\right) Xℓ+1= distribute (0N×C,Xℓ, id x)(3)
U-Net这样的编译码器网络在像素级预测任务上有很好的性能,因为它们可以在保持局部空间信息的同时对高层特征进行编码和解码。文中在gPool和gUnpool层的基础上提出了用于节点分类任务的。
在graph U-Nets (g-U-Nets)架构中,首先应用一个图的embedding层将节点转换成低维表示,因为一些数据集的原始输入,如Cora通常有非常高维的特征向量。在图embedding层之后,通过堆叠几个编码块来构建编码器,每个编码块包含一个gPool层和一个GCN层。gPool层通过减少图的大小来编码高维特征,而GCN层负责从每个节点的一阶邻居聚合信息。在解码器部分,堆叠了与编码器部分数量相同的解码块。每个解码器块由一个gUnpool层和一个GCN层组成。gUnpool层将图恢复到更高分辨率的结构,而GCN层则聚合来自邻居的信息。在编码器和解码器层对应的块之间存在 skip-connections,这些连接将空间信息传输给解码器以获得更好的性能。skip-connections可以是feature map addition或concatenation。最后,使用一个GCN层和softmax函数进行最后的预测。
在gPool层中,对一些重要节点进行采样,以形成一个新的用于高级特征编码的图。由于在删除gPool中的节点删除了相关的边,因此图中的节点可能会变得相互隔离,这可能会影响后续层中的信息传播。当使用GCN层用于聚合来自邻居节点的信息的时,信息可能存在丢失。因此,需要增加池化了的图中节点之间的连接性。
为了解决上述问题,使用第 k k k个图的幂 G k \mathbb{G}^{k} Gk来增加图的连通性。该操作在距离最多 k k k跳的节点之间建立链接(Subsampling for graph power spectrum estimation, 2016)。文中使用 k = 2 k = 2 k=2,因为在每个gPool层之前有一个GCN层来聚合一阶邻居节点的信息。将公式(2)中的第5个公式替换为:
A 2 = A ℓ A ℓ , A ℓ + 1 = A 2 ( idx , idx ) (4) \tag{4} A^{2}=A^{\ell} A^{\ell}, \quad A^{\ell+1}=A^{2}(\text { idx } , \text { idx } ) A2=AℓAℓ,Aℓ+1=A2( idx , idx )(4)
接下来,就可以对连通性较好的增广图进行图采样。
在公式(1)中,使用的是添加了自循环的“renormalization”邻接矩阵
A
^
=
A
+
I
\hat{A}=A+I
A^=A+I
X
ℓ
+
1
=
σ
(
D
^
−
1
2
A
^
D
^
−
1
2
X
ℓ
W
ℓ
)
(1)
\tag{1} X_{\ell+1}=\sigma\left(\hat{D}^{-\frac{1}{2}} \hat{A} \hat{D}^{-\frac{1}{2}} X_{\ell} W_{\ell}\right)
Xℓ+1=σ(D^−21A^D^−21XℓWℓ)(1)
考虑到节点自身的特征向量应该有更高的权重,因此将邻接矩阵改为
A
^
=
A
+
2
I
\hat{A}=A+2I
A^=A+2I。
研究内容
任务
transductive learning的节点分类任务的数据集
inductive learning的图分类任务的数据集
transductive learning的节点分类任务
inductive learning的图分类任务
transductive learning的节点分类任务性能研究
inductive learning的图分类任务性能研究
在g-U-Nets中,编码器和解码器部分的块数是一个重要的超参数,因此通过实验研究了网络深度与节点分类精度之间的关系。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。