- 论文地址:https://arxiv.org/abs/1810.00826
- 源码地址:powerful-gnns
- 关键词:GNN, WL graph isomorphism test, GCN
1. 前言
论文对以往的GNN模型的表现能力(区分能力)进行了理论上的分析,主要针对不同aggregation 的特点进行了分析,并针对以往的GNNs的弱点,设计了GIN(graph isomorphism network),达到了与WL sub tree相匹配的性能。论文中使用两种分类任务对以往的GNNs和GIN, WL sub tree 进行了测试:结点分类、图分类。
2. GNNs的区分能力
论文由一个问题开始讨论GNNs的区分能力。
给定两个图
G
1
,
G
2
G_1, G_2
G1,G2,不同的GNNs可能会将它们(或者两图中的某两个结点)嵌入到相同的表示。这是为什么呢?这就要讨论GNNs是如何来获得结点/图的embeddings了。考虑一个通用的GNN模型:
h
v
(
k
)
=
C
O
M
B
I
N
E
(
h
v
(
k
−
1
)
,
A
G
G
R
E
G
A
T
E
(
h
u
(
k
−
1
)
∣
u
∈
N
v
)
)
h_v^{(k)} = COMBINE(h_v^{(k-1)}, AGGREGATE({h_u^{(k-1)} | u \in \mathcal{N}_v } ) )
hv(k)=COMBINE(hv(k−1),AGGREGATE(hu(k−1)∣u∈Nv))
上式中的
A
G
G
R
E
G
A
T
E
AGGREGATE
AGGREGATE用来聚集邻居结点的信息(如mean, max, GRU, LSTM, GAT等),
C
O
M
B
I
N
E
COMBINE
COMBINE则用来将聚集后的邻居结点的信息与结点自身的信息进行组合(如拼接。其实这很像一个图中的消息传播模型,现有的很多GNN模型也是基于消息传播的方法来汇聚邻居结点的信息,k层的GNN 相当与汇聚了来自k-hop的邻居的信息。({\color{red}{能否使用其他的框架来构建GNN模型呢?}})对于图
G
G
G的embedding,是由
G
G
G中的所有结点形成的(这涉及graph embedding的问题,参见其他论文)。
h
G
=
R
E
A
D
O
U
T
(
h
v
(
K
)
∣
v
∈
G
)
h_G = READOUT(h_v^{(K)} | v \in G)
hG=READOUT(hv(K)∣v∈G)
再回到论文中的问题:以往的GNN可能无法区分某些结点/图,即对不同的结点/图不能生成唯一的embeddin,不是injective的!。根据结点/图的embedding生成的方法可以看出,关键在于
A
G
G
R
E
G
A
T
E
,
C
O
M
B
I
N
E
,
R
E
A
D
O
U
T
AGGREGATE, COMBINE, READOUT
AGGREGATE,COMBINE,READOUT,论文中将这些定义为multi-set function,multi-set是一个可以有重复元素的集合,multi-set function就是定义在multi-set上的函数。问题就出在了GNNs使用的某些multi-set function上!
论文主要对不同的AGGREGATE进行了分析,且主要分析了mean, max两种方法。
如上图所示,展示了mean, max 无法区分两个图中不同结点的邻居情况(neighborhood,即AGGREGATE后的结果是一样的)。论文中分别对mean, max的特性进行了阐述。
先给一个形式化的定义,假设
X
X
X为某个结点的邻居结点集,
h
(
X
)
h(X)
h(X)就是AGGREGATE。
2.1 MEAN Learns Distributions
当 h ( X ) = 1 ∣ X ∣ ∑ x ∈ X f ( x ) h(X) = \frac{1}{|X|}\sum_{x\in X} f(x) h(X)=∣X∣1∑x∈Xf(x) 时,若对于不同的邻居结点集 X 1 , X 2 X_1, X_2 X1,X2,若 h ( X 1 ) = h ( X 2 ) h(X_1) = h(X_2) h(X1)=h(X2),则 X 1 X_1 X1和 X 2 X_2 X2有着相同的分布。从统计意义上来理解,相当于两个分布的均值(mean)相同。所以,当我们更需要捕捉图中某种信息的分布或者信息重复较少时,mean会有不错的效果。
2.2 MAX Identity “Skeleton”
妙! 当 h ( X ) = m a x x ∈ X f ( x ) h(X) = max_{x\in X}f(x) h(X)=maxx∈Xf(x)时,若对于不同的 X 1 , X 2 X_1, X_2 X1,X2有 h ( X 1 ) = h ( X 2 ) h(X_1) = h(X_2) h(X1)=h(X2),则 X 1 X_1 X1和 X 2 X_2 X2有着相同的underlying set。当使用max作为AGGREGATE时,相当于对multi-set中的“重点”元素进行关注,当放在整个图中看时,相当于抽取了图中某种意义上比较“强”的结点。
接下来就是重头戏 — GIN了。
论文中对结点和图的GIN定义如下:
h
v
(
k
)
=
M
L
P
(
k
)
(
(
1
+
ϵ
(
k
)
)
⋅
h
v
(
k
−
1
)
+
∑
u
∈
N
(
v
)
h
u
(
k
−
1
)
)
)
h_v^{(k)} = MLP^{(k)} ((1+\epsilon^{(k)} ) \cdot h_v^{(k-1)}+\sum_{u \in \mathcal{N}(v)} h_u^{(k-1)} )) \newline
hv(k)=MLP(k)((1+ϵ(k))⋅hv(k−1)+u∈N(v)∑hu(k−1)))
h
G
=
C
O
N
C
A
T
(
R
E
A
D
O
U
T
(
h
v
(
k
)
∣
v
∈
G
)
∣
k
=
0
,
1
,
.
.
.
,
K
)
h_G = CONCAT(READOUT({h_v^{(k)} | v \in G}) | k = 0,1,...,K)
hG=CONCAT(READOUT(hv(k)∣v∈G)∣k=0,1,...,K)
看到上面的定义,你可能会疑惑,为什么GIN就比其他的GNNs好呢?这和以往的GNNs有什么区别呢?论文中对GIN使用的AGGREGATE进行了理论上的证明,证明GIN是injective的。
论文中通过两个结论证明了GIN的injective性。说了几次injective了,那什么是injective呢?
injective function:定义域中的每个不同的原像在值域中的像都是唯一的。
那么,为了让GNN有足够powerful的表现/识别能力,GNN需要尽可能精确地区分每个不同的结点/图(GNN作为以一种主要的embedding方法,高精度的表示能力能为下游任务打好基础),所以应尽量使AGGREGATE, COMMBINE, READOUT 是injective的。
再来谈一下 Weisfeiler-Lehman (WL) graph isomorphism test 。WL isomorphism test 是用来比较两个图是否是同构的。先解释一下同构的概念。
抛开图同构,把同构概念单独拎出来看。对于两个系统中的对象,同构映射能够保持两个系统中的对象一一对应,且对象之间的关系也能够一一对应。图同构中,
v
1
=
f
(
u
1
)
,
v
2
=
f
(
u
2
)
,
u
1
,
u
2
∈
G
1
,
v
1
,
v
2
∈
G
2
v_1 = f(u_1), v_2 = f(u_2),u_1, u_2 \in G_1, v_1, v_2 \in G_2
v1=f(u1),v2=f(u2),u1,u2∈G1,v1,v2∈G2,若
u
1
,
u
2
u_1, u_2
u1,u2之间有边,则
(
v
1
,
v
2
)
=
g
(
(
u
1
,
u
2
)
)
(v_1, v_2) = g((u_1, u_2))
(v1,v2)=g((u1,u2))。
WL test 是通过迭代的聚集邻居的标签,每次迭代后将自己的标签和邻居们的标签映射成一个新的标签(相当于AGGREGATE后在COMBINE),迭代完成后比较两个图的标签分布(简单来说即各个标签分别有几个)是否一致(结点的标签能否收敛呢?为什么标签的分布能用来判定是否同构呢?),如果标签分布一致,则两个图可能是同构的。
WL subtree kernel1 是基于 WL test的。我并没有通读论文,但是粗略看了一下图,感觉 WL subtree kernel和现在的GNN已经很像了, 对于每个结点,WL subtree kernel构建以该结点为root的树,子节点为其邻居结点,子节点的子节点是邻居结点,如此循环定义,最后以这颗树作为结点标签的依据。WL subtree kernel是目前基于聚合方式的GNNs的性能上界(证明见论文appendix)。但是WL subtree kernel并不能结合结点的信息,对于现在图中结点丰富的信息来说,这不免是有点浪费的,而且,个人认为WL subtree kernel捕捉的是图的结构(毕竟是衍生于图同构算法),或许图中的其他信息它是没有捕捉到的(是什么信息呢?)
关于未来的研究方向。有没有比基于聚集邻居结点信息(信息传递)方法更好的一个GNN框架呢?
关于WL test可参考的博客/非文献资料:
欢迎访问我的个人博客~~~
References
Nino Shervashidze, Pascal Schweitzer, Erik Jan van Leeuwen, Kurt Mehlhorn, and Karsten M. Borgwardt.
Weisfeiler-lehman graph kernels. Journal of Machine Learning Research, 12(77):2539–2561, 2011. ↩︎