根据知乎文章所述,GSAPool是Top-k的收官之作,今来拜读。
Structure-Feature based Graph Self-adaptive Pooling(WWW2020)
Abstract
近年来,人们提出了各种各样处理图数据的方法。然而,这些方法大多集中于图特征的aggregation而不是图池化。此外,现有的top-k选择图池化方法存在一些问题。First,为了构造池化图拓扑,现有的top-k选择方法仅仅是从单一观点(perspective)评估节点的重要性,这种方法简单且不客观。Second,并没有被选择节点的特征信息在池化过程中直接丢失,不可避免的失去大量的图特征信息。为了解决上述这些问题,作者提出了一种新的图自适应池化方法,其目标是:(1)构造合理的图池化拓扑结构,同时考虑图的结构和特征信息,为节点选择提供额外的准确性和客观性;(2)为了池化节点包含足够(sufficiently)有效的图信息,在丢弃不重要的节点之前,先对节点特征信息进行聚合。因此,被选择的节点包含从相邻节点的信息,能够提高未选择节点特征的利用率。在四个不同的数据集上的实验结果表明,GSAPool在图分类上是有效的,并由于最新的图池化方法。
Introduce
图池化采用节点簇生成图池化拓扑,如DiffPool和EigenPooling,其中几个节点通过分配矩阵组合已生成新节点。然而其他几种选择top-k选择方法,如gPool和SAGPool。其中节点特征和局部结构信息用于计算节点的重要性,然后选择top-k节点作为池化结果。图池化拓扑由选定的top-k图节点决定。
然而,现有的top-k选择图池化方法面临两个问题。first,在生成图池化拓扑时,这些方法没有将图结构和节点特征表示明确地考虑在一起;second,对于集合节点的特征表示,将所选节点的原始特征作为新的特征,丢弃未选节点的特征。因此在参数共享过程中丢失了大量的图信息,这可能是图上的重要信息。
本文提出了一种图自适应池化(GSAPool)方法来解决上述问题。在图拓扑生成方面,根据节点的局部结构和特征信息,对节点的重要性进行多方面的评估。对于选择池化节点后的特征生成,使用特征聚合过程,来确保池化节点的特征表示包含足够的有效图信息。
Related work
当前的池方法可以分为两类:cluster和top-k选择池。
Cluster Pooling: DiffPool and EigenPooling 利用分配矩阵生成节点簇,在分配矩阵中,每一列对应于池之前的图节点,行表示节点池化的结果。邻接矩阵和特征矩阵的更新过程如下(此处不具体说明):
其中S表示assignment矩阵,A表示邻接矩阵,X表示特征矩阵。
类似地,在特征池中,assignment矩阵用于更新图信息。不同之处在于,使用池运算符来细化特征矩阵。首先,根据分配矩阵将图划分为若干个子图。然后,利用拉普拉斯矩阵作为合并算子计算子图的特征向量。
Top-k Selection Pooling: SAGPool是一种top-k选择池方法,其中池化图拓扑由所选节点决定。在SAGPool中,gcncov用于评估节点的重要性。虽然GCNConv同时考虑了结构和特征信息,但它隐式地使用了这些信息。在得到每个节点的重要度值时,选择多个得分高的节点作为集合图。在gPool中,学习向量将节点特征映射到重要性得分中。然后,根据得分选择节点。以下方程式描述了分数的计算:
y
=
x
l
p
l
∥
p
l
∥
y=\frac{x^lp^l}{\|p^l\|}
y=∥pl∥xlpl其中
y
y
y是保存所有节点特征得分的得分向量。
x
l
x^l
xl是节点特征矩阵和
p
l
p^l
pl是
l
l
l层的学习向量。与SAGPool相比,gPool没有将图的结构信息作为重要度得分的一部分。
在cluster池算法中,在生成分配矩阵时,隐式地使用了结构和特征信息,从而导致了分配矩阵的不合理性。在top-k选择池方法中,节点的重要性是从单一的角度考虑的,这是简单的。此外,合并节点的特征仍然是原始特征,未选择节点的特征信息直接丢失。为了解决这些问题,我们认为在生成池图拓扑时,节点选择方法应该是多样的,池节点的特征信息应该包含相邻节点的特征。因此,我们对每个节点使用额外的评估标准来生成高精度的池图拓扑。此外,我们使用特征融合的方法来提升集合图的特征表示能力。因此,我们的集合图生成方法是多样化的,客观和准确的。
PROPOSED METHODS
该方法包括基于结构的拓扑学习(SBTL)、基于特征的拓扑学习(FBTL)和基于结构特征的拓扑学习(SFTL)。学习方法的细节如图1所示
图1:所提出的GSAPool的说明,包括两部分:池拓扑学习和节点特征融合。第一部分中的基于结构的拓扑学习(SBTL)和基于特征的拓扑学习(FBTL)分别根据结构和特征信息计算重要性得分。structure feature topology learning(SFTL)组件融合得分,生成最终的池拓扑。第二部分采用基于GAT的节点特征融合方法,将未选节点的特征集合到所选节点周围。
SBTL:一般来说,一个图包含许多节点和边,这些节点和边表示了丰富的结构信息。因此,根据节点的结构信息来评价节点的重要性是有效的。考虑到GCNConv考虑了结构信息,该方法适合于评估节点的重要性。GCNConv的表达式如下所示:
S
1
=
σ
(
D
~
−
1
2
A
~
D
~
−
1
2
X
W
)
(4)
S_1=\sigma \left(\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}XW\right) \tag4
S1=σ(D~−21A~D~−21XW)(4)其中
S
1
S_1
S1是由GCNConv计算出的节点的结构信息得分,D是图的度矩阵和单位矩阵之和,
A
~
\tilde{A}
A~是由邻接矩阵和单位矩阵组成,
X
X
X是特征矩阵,
W
W
W是权向量。
σ
\sigma
σ是神经网络中常用的激活函数,如tanh和sigmoid。
作为补充,得分函数核可以很容易地被其他gnn替代,如ChebConv、GraphSAGE和GAT,可以表示如下:
S
1
=
σ
(
G
N
N
(
A
,
X
)
)
(5)
S_1=\sigma(GNN(A,X))\tag5
S1=σ(GNN(A,X))(5)
FBTL:在图数据中节点通常包含特征信息。利用节点特征信息进行评价是非常重要的,因为一个节点在很大程度上由其特征来表示,不能忽略节点特征的影响。
作者采用MLP作为节点特征提取方法,因为它能够自适应地聚集特征信息。表达式如下:
S
2
=
σ
(
M
L
P
(
X
)
)
(6)
S_2=\sigma(MLP(X))\tag6
S2=σ(MLP(X))(6)其中X是节点特征矩阵,
σ
\sigma
σ是激活函数。
S
2
S_2
S2是节点特征的集合,可以看做节点evaluation value。根据聚合结果,它可以保留附加的重要节点。
SFTL:GCNConv在细化图的局部结构信息方面是有效的。此外,MLP关注节点的特征信息。为了使节点评价标准具有较高的客观性和鲁棒性,采用这两种方法计算节点的重要度得分。综合考虑两种不同的节点评价方法,有效地增加了评价的多样性,增强了最终节点选择的客观性。组合表示如下:
S
f
i
n
a
l
=
α
S
1
+
(
1
−
α
)
S
2
(7)
S_{final}=\alpha S_1+(1-\alpha)S_2\tag7
Sfinal=αS1+(1−α)S2(7)权重
α
\alpha
α是用户定义的超参数,我们根据节点的得分对节点进行排序,并使用top-k节点作为池化结果。
池节点特征表示
在top-k选择池方法中,仅选择部分节点作为池结果。要使用未选中节点的信息,我们必须在丢弃节点之前聚合节点的特征。充分利用节点的特征信息,使最终的图嵌入向量更具代表性。图2显示了特征融合的细节。
图2:不同的节点特征融合策略:(a)池化后的节点只保留自己的特征(b)汇聚节点在1-hop内的特征©汇聚节点在n-hop邻居节点的特征。带箭头的边缘表示融合过程中特征信息的流向。本实验中的两个聚合函数:即GCNConv和GAT。GAT表示如下:
h
i
′
=
σ
(
∑
j
∈
N
i
a
i
,
j
k
W
k
h
j
)
h_i'=\sigma \left( \sum_{j\in N_i} a_{i,j}^kW^kh_j\right)
hi′=σ⎝⎛j∈Ni∑ai,jkWkhj⎠⎞其中
h
i
h_i
hi是node
i
i
i的特征向量,
h
j
h_j
hj表示node
i
i
i的邻居节点。
N
i
N_i
Ni是节点
i
i
i的相邻节点个数,
a
i
j
k
a^k_{ij}
aijk是
h
i
h_i
hi和
h
j
h_j
hj之间的注意力值,
W
W
W是权重矩阵。
在这些融合方法的帮助下,选择的节点可以从相邻节点携带特征信息。通过这种方式,池结果可以很好地表示整个图,作者的实验结果证明了这一点。
Model Architecture (模型结构)
为了便于比较,在实验中采用了SAGPool的模型结构。所有的比较方法和我们的方法使用相同的架构。图3显示了模型架构的详细信息。
图3 所提出的GSAPool中使用的模型架构说明
Experiment
表6显示,图池拓扑生成和节点特征融合度量在组合时的性能优于单独使用每种方法时的性能。此外,我们提出的方法在DD、NCI-109和Mutagenicity方面均高于目前最好的方法。我们的方法只有NCI-1上没有DiffPool和EigenPooling好。然而,我们的方法具有最高的平均精度。表6表明我们的方法达到了SOTA。图4显示了SAGPool和GSAPool在图分类任务中的t-SNE视觉比较结果。图可以很容易地被水平线或垂直线分开,这两类之间的差距在GSAPool中非常明显。
与DiffPool和特征池相比,GSAPool同时利用了结构和特征信息。因此,GSAPool可以使用额外的图信息来构造图池化。GSAPool综合考虑了节点的信息,采用特征融合机制,使得融合后的图能够合理、准确地表示原始图,因而优于gPool和SAGPool。因此,GSAPool可以获得更好的性能。
Conclusion
在本研究中,我们提出GSAPool来解决topk选择图池中的问题。一方面,我们的方法使用了三种图池拓扑生成策略。另一方面,在不重要的节点被丢弃之前,采用了节点特征融合的方法,有效地利用了节点信息。最后,我们将这两种方法结合起来,并与现有方法进行了比较。实验结果表明,该方法在基准数据集上取得了最新的图分类性能。我们的GSAPool方法可以很容易地集成到其他deep GNN架构中。