SortPool (DGCNN) - An End-to-End Deep Learning Architecture for Graph Classification AAAI 2018

论文:SortPool (DGCNN) - An End-to-End Deep Learning Architecture for Graph Classification

作者:Muhan Zhang, Zhicheng Cui, Marion Neumann, Yixin Chen (华盛顿大学)

来源:AAAI 2018

论文链接:https://muhanzhang.github.io/papers/AAAI_2018_DGCNN.pdf

github链接(Pytorch版):https://github.com/muhanzhang/pytorch_DGCNN

本文提出了一种接受任意结构图的新型神经网络结构,主要解决了图分类问题中的两个挑战:
(1)如何提取有用的特征来描述那些编码在图中的丰富信息,以达到分类的目的;
(2)如何以有意义且一致的顺序读取图。
从实际的操作来看,这两个challenge分别对应图卷积以及图池化。对此,为了解决第一个挑战,文中设计了一个局部图卷积模型,并给出了它与两个图核的关系;为了解决第二个挑战,设计了一个新的SortPooling层,以一致的顺序对图顶点进行排序,这样传统的神经网络就可以在图上进行训练;并通过top-k选取对卷积之后的图进行池化。

本文的贡献如下:
(1)提出了一种新颖的端到端深度学习结构用于图分类。它直接接受图作为输入,不需要任何预处理。
(2)提出了一种新的空域图卷积层来提取多尺度的顶点特征,并与目前流行的图核进行了类比来解释其工作原理。
(3)提出了一个新的SortPooling层来对顶点特征进行排序,而不是对它们进行汇总,这样可以保留更多的信息,并允许我们更够从全局图的拓扑结构中学习。
(4)在基准图分类数据集上的实验结果表明,深度图卷积神经网络(DGCNN)与先进的图核相比具有很强的竞争力,并且在图分类方面明显优于许多其他深度学习方法。

1 背景介绍

图核方法

机器学习里的核函数可以理解为一种变换,以SVM中常提到的核函数举例,SVM通过超平面将数据分类,而对于一些不可分的数据,通过核函数将其变换到另一个空间,再进行分类。

图核(Graph Kernel)从名字上来说,应该可以理解为“对图上的特征的一种变换方式”。图核就是一个在图上计算内积的核函数,图核方法可以理解为度量图之间相似性的函数。这些方法直接运行使用核函数的学习算法(如SVM)直接在图上工作而不必提取特征然后转化成固定长度的特征向量(GNN的过程)。

中科院沈华伟老师把Kernel function描述为:Characterizing the similarity or distance among nodes,其本质也与图核一致。我们都知道图卷积分为两种:Spectral methods和Spatial Methods。现在的研究达成共识,谱方法就是空间方法的特例,而二者在实际操作中的不同则被归纳为:空间方法需要直接定义核函数,而谱方法不必。而对于谱方法,也可以在推导的时候看到卷积核:

Spectral CNN:
y = U g θ U T x = ( θ 1 u 1 u 1 T + θ 2 u 2 u 2 T + ⋯ + θ n u n u n T ) x y=U g_{\theta} U^{T} x=\left(\theta_{1} u_{1} u_{1}^{T}+\theta_{2} u_{2} u_{2}^{T}+\cdots+\theta_{n} u_{n} u_{n}^{T}\right) x y=UgθUTx=(θ1u1u1T+θ2u2u2T++θnununT)x
ChebNet:

y = ( θ 0 I + θ 1 L + θ 2 L 2 + ⋯ + θ K − 1 L K − 1 ) x y=\left(\theta_{0} I+\theta_{1} L+\theta_{2} L^{2}+\cdots+\theta_{K-1} L^{K-1}\right) x y=(θ0I+θ1L+θ2L2++θK1LK1)x
GCN:

y = θ ( I − L ) x y=\theta(I-L) x y=θ(IL)x
对于这三种不同的GNN,以最原始的谱方法为例,核参数为θ,卷积核为 u n u n T u_{n} u_{n}^{T} ununT。而GCN则要简单很多了, I − L I-L IL为核。

不过,在我看来,核也决定了特征聚合的方式,因此为了方便理解,核被看做是一系列操作,这个操作规定了如何从邻居结点聚合特征。

DGCNN和WL和PK的关系

DGCNN与一类基于结构传播的图核方法密切相关,特别是Weisfeiler-Lehman(WL)subtree kernel 和propagation kernel (PK)。为了对图的结构信息进行编码,WL和PK根据相邻节点的特征迭代地更新节点的特征。WL作用于硬顶点标签,而PK作用于软顶点分布。这些操作可以作为一种随机游走有效地实现,所以这些核方法在大型图上是有效的。与WL和PK相比,DGCNN在传播过程中增加了参数W,并通过端到端优化进行训练。这允许从标签信息学习有监督的特征,这使得它不同于这些图核方法两阶段的框架。

2 Deep Graph Convolutional Neural Network (DGCNN) 深度图卷积神经网络

DGCNN有三个不同步骤:
(1)图卷积层提取顶点的局部子结构特征,定义一致的顶点排序;
(2)SortPooling层按照前面定义的顺序对顶点特征进行排序,并统一输入大小;
(3)传统的卷积稠密层读取已排序的图表示并进行预测。

对于具有顶点标签或属性的图, X ∈ R n × c X \in \mathbb{R}^{n \times c} XRn×c可以是顶点标签的一个热编码矩阵或多维顶点属性的矩阵。对于没有顶点标签的图, X X X可以定义为规范化的节点度数的列向量。称 X X X中的列为图的特征通道,因此该图有 c c c个初始通道。定义: P i P_i Pi为矩阵 P P P的第i行, Γ ( v ) \Gamma(v) Γ(v)表示节点v的邻居节点。

图卷积层

图卷积公式:
Z = f ( D ~ − 1 A ~ X W ) (1) \mathbf{Z}=f\left(\tilde{\mathbf{D}}^{-1} \tilde{\mathbf{A}} \mathbf{X} \mathbf{W}\right) \tag{1} Z=f(D~1A~XW)(1)
其中, A ~ = A + I \tilde{\mathbf{A}}=\mathbf{A}+\mathbf{I} A~=A+I表示加了自环的图的邻接矩阵, D ~ \tilde{\mathbf{D}} D~是对角的度矩阵, D ~ i i = ∑ j A ~ i j , W ∈ R c × c ′ \tilde{\mathbf{D}}_{i i}=\sum_{j} \tilde{\mathbf{A}}_{i j}, \mathbf{W} \in \mathbb{R}^{c \times c^{\prime}} D~ii=jA~ij,WRc×c是可学习的图卷积参数, f f f是激活函数, Z ∈ R n × c ′ \mathbf{Z} \in \mathbb{R}^{n \times c^{\prime}} ZRn×c是输出的激活矩阵。

图卷积可以分解成四步:

  • 第一步: X W \mathbf{X} \mathbf{W} XW表示应用于节点信息矩阵的的线性特征转换,将 c c c通道的特征映射为下一层 c ′ c' c通道的特征,核权重矩阵 W \mathbf{W} W
  • 第二步: A ~ Y \tilde{\mathbf{A}} \mathbf{Y} A~Y,其中 Y : = X W \mathbf{Y}:=\mathbf{X W} Y:=XW将节点信息传播到相邻顶点以及节点本身。 ( A ~ Y ) i = ∑ j A ~ i j Y j = Y i + ∑ j ∈ Γ ( i ) Y j (\tilde{\mathbf{A}} \mathbf{Y})_{i}=\sum_{j} \tilde{\mathbf{A}}_{i j} \mathbf{Y}_{j}=\mathbf{Y}_{i}+\sum_{j \in \Gamma(i)} \mathbf{Y}_{j} (A~Y)i=jA~ijYj=Yi+jΓ(i)Yj,也就是结果矩阵的第 i i i行等于 Y i \mathbf{Y}_{i} Yi和节点 i i i的邻居节点的 Y j \mathbf{Y}_{j} Yj之和。
  • 第三步:通过乘 D ~ i i − 1 \tilde{\mathbf{D}}_{i i}^{-1} D~ii1来正则化第 i i i行。这样的目的是为了在图卷积后保持一个固定的特征尺度。
  • 第四步:使用非线性激活函数进行非线性变换。

图卷积神经网络传播规则:

Z t + 1 = f ( D ~ − 1 A ~ Z t W t ) (2) \mathbf{Z}^{t+1}=f\left(\tilde{\mathbf{D}}^{-1} \tilde{\mathbf{A}} \mathbf{Z}^{t} \mathbf{W}^{t}\right) \tag{2} Zt+1=f(D~1A~ZtWt)(2)
其中, Z 0 = X , Z t ∈ R n × c t \mathbf{Z}^{0}=\mathbf{X}, \mathbf{Z}^{t} \in \mathbb{R}^{n \times c_{t}} Z0=X,ZtRn×ct W t ∈ R c t × c t + 1 \mathbf{W}^{t} \in \mathbb{R}^{c_{t} \times c_{t+1}} WtRct×ct+1 c t c_t ct通道映射到 c t + 1 c_{t+1} ct+1通道。将 h h h个卷积层的输出 Z t , t = 1 , … , h \mathbf{Z}^{t}, t=1, \ldots, h Zt,t=1,,h水平地concatenate(串联,增加列数): Z 1 : h : = [ Z 1 , … , Z h ] \mathbf{Z}^{1: h}:=\left[\mathbf{Z}^{1}, \ldots, \mathbf{Z}^{h}\right] Z1:h:=[Z1,,Zh] Z 1 : h ∈ R n × ∑ 1 h c t \mathbf{Z}^{1: h} \in \mathbb{R}^{n \times \sum_{1}^{h} c_{t}} Z1:hRn×1hct Z 1 : h \mathbf{Z}^{1: h} Z1:h每一行可以看作一个顶点的“特征描述器”,编码了其多尺度的局部子结构信息。

文中使用的图卷积形式(1)和Kipf提出的谱过滤器是相似的,除了使用不同的传播矩阵外,它也将邻近节点的信息传播到中心节点。事实上,我们的图卷积形式(1)也有一个谱公式。我们将在补充材料中详细讨论它们的关系和区别,并说明我们的图卷积形式在理论上更接近于Weisfeiler-Lehman算法(Weisfeiler and Lehman 1968)。但首先,让我们看看为什么(1)可以用于图分类。下面,我们展示Z
通过类比两个流行的图核,包含了丰富的图的结构信息。此外,我们将展示最后一个图卷积层的输出Z可以用于根据顶点的结构角色以一致的顺序对图顶点进行排序。

与Weisfeiler-Lehman subtree kernel的联系

Weisfeiler-Lehman subtree kernel(WL)是一个使用了Weisfeiler-Lehman (WL)算法的图核算法,属于图同构算法,为图分类任务提取多尺度的子树特征。

Weisfeiler-Lehman subtree kernel(WL)基本思想是将顶点的颜色与其1跳邻居的颜色连接起来作为顶点的WL signature,然后按字典顺序对签名字符串进行排序,以分配新的颜色;具有相同signature的顶点被赋予相同的新颜色。一个WL signature刻画了顶点为根的height-1的子树。 重复这个过程,直到颜色收敛或达到某个最大迭代次数h,这些具有相同颜色的结点就代表在图中具有相同的结构。任何一次迭代t上的顶点颜色唯一地对应于以顶点为根的height-t子树。相当于迭代次数越大,那么比较的子树深度越深。

在如下图所示的例子中,abcde按照顺序给出了WL的计算步骤。
首先,每一个结点获取邻居结点的信息构成一个新的点集。然后每个不同的点集都被映射成新的结点signature,并分配不同的颜色。比如,图c中的1,4→6。如此一来带有全新signature的图就形成了,每个signature实际上浓缩了图的拓扑结构信息。然后,用颜色以及signature就可以获取到图的表示。图d中,每一位表示一个颜色,数字注意表示signature出现的次数。这样就可以通过比较两个特征向量之间的相似性决定两个图的相似程度了。图e中G图的向量的计算只需看图a和d,计算signature从1到13出现的次数。

WL在图同构检验中得到了广泛的应用:如果两个图是同构的,那么它们在任何迭代中都将具有相同的WL颜色集。WL子树核使用这种思想来度量两个图 G , G ′ G, G^{\prime} G,G之间的相似性,如下所示:
k ( G , G ′ ) = ∑ t = 0 h ∑ v ∈ V ∑ v ′ ∈ V ′ δ ( c t ( v ) , c t ( v ′ ) ) (3) k\left(G, G^{\prime}\right)=\sum_{t=0}^{h} \sum_{v \in V} \sum_{v^{\prime} \in V^{\prime}} \delta\left(\mathrm{c}^{t}(v), \mathrm{c}^{t}\left(v^{\prime}\right)\right) \tag{3} k(G,G)=t=0hvVvVδ(ct(v),ct(v))(3)
c t ( v ) \mathrm{c}^{t}(v) ct(v)表示结点 v v v在第 t t t次迭代的颜色,遍历每次迭代的每个结点,如果 x = y , δ ( x , y ) = 1 x=y,δ(x,y)=1 x=yδxy=1,否则为0。
也就是说,式(3)计算两个图在所有迭代中的公共颜色。直觉是,如果两个图的顶点有许多公共子树,它们的特征是颜色(相同颜色⇔相同的WL签名⇔相同的根子树)。WL子树核计算公共颜色直到迭代h,以便在多个尺度上(不同深度的子树)比较两个图。

然后本文作者为了说明WL subtree kernel与本文的图卷积之间的联系,把卷积的公式改写为:

Z i = f ( [ D ~ − 1 A ~ ] i Y ) = f ( D ~ i i − 1 ( Y i + ∑ j ∈ Γ ( i ) Y j ) ) (4) \mathbf{Z}_{i}=f\left(\left[\tilde{\mathbf{D}}^{-1} \tilde{\mathbf{A}}\right]_{i} \mathbf{Y}\right)=f (\tilde{\mathbf{D}}_{i i}^{-1}(\mathbf{Y}_{i}+\sum_{j \in \Gamma(i)} \mathbf{Y}_{j})) \tag{4} Zi=f([D~1A~]iY)=f(D~ii1(Yi+jΓ(i)Yj))(4)
文中认为,可以把 Y i \mathbf{Y}_{i} Yi视为节点 i i i的颜色,那么和WL算法相似,式(4)把 Y i \mathbf{Y}_{i} Yi和其邻居节点的颜色 Y j \mathbf{Y}_{j} Yj聚合到了一个WL signature向量 D ~ i i − 1 ( Y i + ∑ j ∈ Γ ( i ) Y j ) \tilde{\mathbf{D}}_{i i}^{-1}(\mathbf{Y}_{i}+\sum_{j \in \Gamma(i)} \mathbf{Y}_{j}) D~ii1(Yi+jΓ(i)Yj)中。如果非线性函数 f f f是单射的,那么它将各不相同的WL signature向量映射到各不相同的新的颜色中。因此,卷积公式(1)可以视作是WL算法的一个“soft”的版本。个人认为这么解释太过牵强。

卷积层的第输出的第i行 Z i t \mathbf{Z}_{i}^t Zit对应于WL迭代后节点i的颜色 c t ( v ) c^t(v) ct(v)。DGCNN不同于WL subtree kernel的地方在于如何使用颜色。DGCNN水平地将这些颜色 Z t \mathbf{Z}^t Zt串联起来,得到 Z 1 : h \mathbf{Z}^{1: h} Z1:h,并基于这些输出的特征矩阵训练模型,而WL算法需要根据式(3)的核函数计算。

这种“soft”版本的WL算法相比WL算法有两个好处:

  • 首先,卷积参数W允许对节点的原始信息矩阵X进行层次化特征提取,并且可以通过反向传播进行训练,比WL子树核具有更好的表达能力。
  • 第二种方法是这种“soft”WL易于使用稀疏矩阵乘法来计算,而WL算法中对很长的signature字符串进行读取和排序的开销较大。

和propagation kernel的联系

propagation kernel(PK)不是在整数节点标签上操作,而是比较了两个图之间的标签分布。PK是具有扩散更新的方案:

L t + 1 = T L t ,  where  T = D − 1 A (5) \mathbf{L}^{t+1}=\mathbf{T} \mathbf{L}^{t}, \text { where } \mathbf{T}=\mathbf{D}^{-1} \mathbf{A} \tag{5} Lt+1=TLt, where T=D1A(5)
T = D − 1 A \mathbf{T}=\mathbf{D}^{-1} \mathbf{A} T=D1A是一个在图$\mathbf{A} 上 随 机 游 走 的 转 换 矩 阵 。 上随机游走的转换矩阵。 \mathbf{L}^{t} \in \mathbb{R}^{n \times c}$包含了n个顶点在第t次迭代时的c维的标签分布向量。在PK中,初始标签在迭代中扩散。最终的相似度是通过基于位置敏感哈希将所有迭代的分布向量映射到离散箱中,并计算公共整数箱。PK的图分类性能与WL相似,效率更高。

文中的卷积和PK的相比,采用了与PK非常相似的传播矩阵 D ~ − 1 A ~ \tilde{\mathbf{D}}^{-1} \tilde{\mathbf{A}} D~1A~,只是在迭代过程中保留了节点自己的信息。

总的来说,文中认为,文中的图卷积模型(1)有效地模拟了两个graph kernel的行为,这有助于解释它的图级分类性能。另外,离散WL、连续优化和随机游动之间的联系也在Kipf的GCN,Global weisfeilerlehman graph kernels(2014),Graph
fibrations, graph isomorphism, and pagerank(2006)等文章中有讨论。

2.2 SortPooling 层

SortPooling层的主要功能是对feature descriptor进行排序,每一个feature descriptor表示一个顶点,在将它们喂进卷积层前,需要排序。问题的关键就是如何排序,在图像分类中,像素是按照某种顺序在空间有序的。在文本分类中,可以使用字典序对单词进行排序。在图中,则可以根据顶点在图结构中的角色对顶点进行排序。WL算法通过预处理的方式使用顶点颜色来定义顶点基于图的拓扑结构的顺序,因此颜色相同的点具有相似的拓扑结构。

在DGCNN中,也使用类似地WL颜色排序的方式对顶点进行排序。文中认为,图卷积的输出和连续的WL colors Z t , t = 1 , … , h \mathbf{Z}^{t}, t=1, \ldots, h Zt,t=1,,h是等价的,用这个来对结点进行排序。它是几个不同的卷积层的输出拼接而成的,因此行表示结点,列表示特征通道。

因此,文中提出了一个新的池化层:SortPooling层。它的输入是一个 n × ∑ 1 h c t n \times \sum_{1}^{h} c_{t} n×1hct的张量 Z 1 : h \mathbf{Z}^{1: h} Z1:h,其中每一行是一个顶点的特征描述器(feature descriptor),每一列是一个特征通道。SortPooling层的输出是一个 k × ∑ 1 h c t k \times \sum_{1}^{h} c_{t} k×1hct的张量,其中 k k k是一个可调的整数参数,相当于池化后,有 n n n个顶点变成了 k k k个顶点。在SortPooling层中,输入 Z 1 : h \mathbf{Z}^{1: h} Z1:h是根据GCN最后的一层的输出 Z h \mathbf{Z}^{h} Zh开始比较,因为,这个输出是由最多次卷积得到的,因此其特征更细粒度。假如两个结点的 Z h \mathbf{Z}^{h} Zh相同,那就再去比较 Z h − 1 \mathbf{Z}^{h-1} Zh1,直到先后顺序确定为止。由于论文中为了与WL靠拢把这个类比成为颜色的比较,个人觉得这个属实有点没必要,因为本质上就是按照大小进行的排序。

SortPooling作为图卷积层和传统层之间的桥梁,还有一个很大的好处,就是它可以通过记住输入的排序顺序,将损失梯度返回到前一层,使前一层参数的训练变得可行。相比之下,由于WL算法在预处理步骤中对顶点进行排序,因此在排序之前不能进行参数训练。

2.3 Remaining layers

在SortPooling层之后,可以得到一个 k × ∑ 1 h c t k \times \sum_{1}^{h} c_{t} k×1hct的张量,然后先把池化之后的 k k k个结点的向量展开成行向量,之后进行1-D卷积,然后再给全连接层,最后输出分类数,就可以预测了。最终的模型架构长这样:

过程:

  • 输入任意一个图,经过几层图卷积计算连续的WL colors,从而提取子结构特征
  • 将多次迭代后的WL colors进行拼接,然后再使用SortPooling层从卷积层的最后一层的输出开始往前开始排序
  • 将排序后的结果选前k个展开排列成一行输入到1-D的CNN中进行训练
  • 然后是两层稠密的全连接层
  • 最后输出分类数进行预测

DGCNN和PATCHY-SAN的对比

  • 对于基于分类的方法DGCNN和PATCHY-SAN:同构图应该得到相同的表示
  • 为了保证同构图预处理为相同的张量,PATCHY-SAN首先使用WL算法,然后利用了图的规范化工具NAUTY。尽管NAUTY对于小图来说足够有效,但图规范化问题在理论上至少与图同构检查一样难以计算。
  • DGCNN中可以避免这样的图规范化过程。DGCNN使用最后一个图卷积层的输出对顶点进行排序,文中将其视为“soft”WL输出的连续颜色。因此,DGCNN能够在使用图卷积后就可以得到顶点排序,从而避免了像PATCHY-SAN那样显式地运行WL算法
    。此外,由于SortPooling中的排序方案,不再需要使用工具NAUTY进行图规范化

3 实验

(1)和图核方法的对比
数据集

  • MUTAG
  • PTC
  • NCI1
  • PROTEINS
  • D&D

baselines

  • graphlet kernel (GK)
  • propagation kernel (PK)
  • random walk kernel (RW)
  • Weisfeiler-Lehman subtree kernel (WL)

(1)和深度学习的图分类方法的对比
数据集

  • 三个生物信息数据集:MUTAG,PROTEINS,D&D (排除了两个最小的生物信息学数据集:MUTAG和PTC,这两个数据集只有几百个例子,因为深度学习方法容易过度拟合,有文献报告了在两个数据集上有高方差)
  • 社交网络数据集:COLLAB, IMDB-B,IMDB-M(这些社会网络数据集中的图没有顶点标签,因此是纯结构。)

baselines

  • PATCHY-SAN (PSCN)
  • DiffusionCNN (DCNN)
  • ECC
  • Deep Graphlet Kernel (DGK)

DGCNN比PATCHY-SAN效果更好的原因:
1) 通过让梯度信息通过SortPooling反向传播,DGCNN甚至在排序开始之前就可以进行参数训练,从而获得更好的表达能力
2) 通过动态排序节点,DGCNN不太可能由于节点排序而过拟合。相比之下,PATCHY-SAN采用预定义的节点顺序,更容易过拟合。DGCNN的另一个巨大优势是它提供了一种将预处理集成到神经网络结构中的方法。这使得我们不必使用任何外部软件。

4 小结

文中提出了一种新的用于图分类的神经网络结构——DGCNN。DGCNN与现有的图形神经网络相比有许多优势:

  • 首先,直接接受图数据作为输入,不需要先将图转换为张量,使得基于梯度的端到端训练成为可能。
  • 其次,它通过对顶点特征进行排序而不是将它们相加,从而从全局图的拓扑结构中学习,这种方法得到了新的SortPooling层的支持。
  • 在许多基准数据集上,该方法取得了比现有方法更好的性能。

有错误的地方还望不吝指出,欢迎进群交流GNNs(入群备注信息!!!,格式:姓名(或网名) -(学校或其他机构信息)- 研究方向)。

猜你喜欢

转载自blog.csdn.net/yyl424525/article/details/112340706