[Blog : Paper Notes sorted out by paper]
About This Paper
Keyulu Xu, Weihua Hu, Jure Leskovec, Stefanie Jegelka
MIT and Stanford University
https://arxiv.org/pdf/1810.00826.pdf
GNNs
一个图神经网络的更新准则一般可以归纳为这样:
a v ( k ) = A G G R E G A T E ( k ) ( { h u ( k − 1 ) : u ∈ N ( v ) } ) , h v ( k ) = COMBINE ( k ) ( h v ( k − 1 ) , a v ( k ) ) a_{v}^{(k)}= AGGREGATE ^{(k)}\left(\left\{h_{u}^{(k-1)}: u \in \mathcal{N}(v)\right\}\right), \quad h_{v}^{(k)}=\operatorname{COMBINE}^{(k)}\left(h_{v}^{(k-1)}, a_{v}^{(k)}\right) av(k)=AGGREGATE(k)({hu(k−1):u∈N(v)}),hv(k)=COMBINE(k)(hv(k−1),av(k))
例如,对于 GraphSAGE:
A G G R E G A T E : a v ( k ) = M A X ( { R e L U ( W h u ( k − 1 ) ) , ∀ u ∈ N ( v ) } ) AGGREGATE: a_{v}^{(k)}=MAX(\{ReLU(Wh_u^{(k-1)}), \forall u\in \mathcal{N}(v) \}) AGGREGATE:av(k)=MAX({ReLU(Whu(k−1)),∀u∈N(v)})
C O M B I N E : h v ( k ) = W [ h v ( k − 1 ) , a v ( k ) ] COMBINE:h_{v}^{(k)}=W[h_v^{(k-1)},a_v^{(k)}] COMBINE:hv(k)=W[hv(k−1),av(k)]
对于 GCN:
A G G R E G A T E + C O M B I N E : h v ( k ) = R e L u ( W ⋅ M E A N { h u ( k − 1 ) , ∀ u ∈ N ( v ) ∪ { v } } ) AGGREGATE+COMBINE: h_{v}^{(k)}=ReLu(W\cdot MEAN\{h_u^{(k-1)},\forall u\in\mathcal{N}(v)\cup\{v\} \}) AGGREGATE+COMBINE:hv(k)=ReLu(W⋅MEAN{hu(k−1),∀u∈N(v)∪{v}})
对于 node classification :用最后一次迭代的每个节点的特征向量作为 hidden state 来计算输出。
对于 graph classification :用 h G = R E A D O U T ( { h v ( K ) ∣ v ∈ G } ) h_G=READOUT(\{h_v^{(K)}\mid v\in G\}) hG=READOUT({hv(K)∣v∈G})
WL test
即 Weisfeiler-Lehman test,用来判断两个图是否是同构的,即是否是 topologically identical.
其实这个问题没有多项式时间的解法,WL test 只是提供了一个 heuristic 的算法来解决,称为 WL 算法.
WL test 主要是交替地执行这两个操作:
(1) 聚合自己以及邻居节点地信息
(2) 通过 hash 函数将聚合后的信息转换为唯一的新的 label
这个算法比较好理解,详细参看:https://zhuanlan.zhihu.com/p/90645716
或者通过这两个例子去理解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AiOCakk9-1632319729209)(https://static01.imgkr.com/temp/d124e23fe2ef4eff9d8cf54d2213db92.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nNh7YBPn-1632319729215)(https://static01.imgkr.com/temp/3ba39d401e9c45a68bcac7eea14424da.png)]
值得注意的是,一维的 WL test,称为 naive vertex refinement, 和 GNN 的聚合是类似的
但是 WL test 本质上是 onehot 特征,因此无法计算出两个图之间的相似度,这个问题由 WL subtree kernel 来解决,详情参考:https://dl.acm.org/doi/10.5555/1953048.2078187;或者 WL-ET kernel 来解决,详情参考:https://arxiv.org/abs/2109.02027
Multiset
就是集合概念的泛化,允许一个元素出现多次。例如:{1, 1, 2, 3, 4}
可以表示为 X = ( S , m ) X=(S,m) X=(S,m), 其中 S = { 1 , 2 , 3 , 4 } S=\{1, 2, 3, 4\} S={1,2,3,4}, 称为 underlying set
m m m 表示 S S S 中各元素的重数(即出现次数)
Intuition
基于此,我们可以给出一些判定 GNN 表达能力的 intuition :
第一种直觉是:一个表达能力强的 GNN 把两个节点映射到同一个点当且仅当这两个节点的 WL subtree 全等(结构相等,对应节点的特征也相等)
根据 WL subtree 的生成过程,不难得出第二种直觉:
一个好的 GNN 永远不会将两个不同的特征向量的 multisets (即两个不同的节点)映射为同一种表示。
也就是说,这个 GNN 的聚合方式必须是单射的 (injective).
WL graph isomorphism test
现在,给出一些有用的定理、引理等作为我们设计 GIN 的理论依据,详细的证明请参见原论文附录。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nrjwzFiM-1632319729220)(https://static01.imgkr.com/temp/0c3b55e2444844738792d77c8885a90f.png)]
值得注意的是,我们只关注输入空间为可列集的情况。
GIN : Graph Isomorphism Network
正如 Lemma 5 和 Corollary 6 给出的形式,我们把 f ( k + 1 ) ∘ ψ ( k ) f^{(k+1)}\circ\psi^{(k)} f(k+1)∘ψ(k) 通过一个 MLP 来计算。
于是有 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)}) hv(k)=MLP(k)((1+ϵ(k))⋅hv(k−1)+∑u∈N(v)hu(k−1))
其中, ϵ \epsilon ϵ 可以作为 trainable 的参数。
当需要进行输出的时候,一个关键的问题是,我们需要迭代几轮?这需要经验地调参。
假设迭代了 K K K 轮,则: 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)}\mid v\in G\})\mid k=0,1,...,K) hG=CONCAT(READOUT({hv(k)∣v∈G})∣k=0,1,...,K)
通过这个最终的代表全图的隐变量来计算输出。
Analysis of GNNs
GIN 中使用 1-layer perceptron 是不够的,因为它不满足通用近似定理。
sum 是单射的,但是 mean 和 max-pooling 不是,原论文中有例子。
一般的,sum/mean/max-pooling 各有所强
sum 有更强的表达能力,就像前面分析的那样,它是唯一一个单射的函数。
mean 可以更好的表达分布(distribution)
max-pooling 可以更好的表达显著特征,即 skeleton,或者理解为 underlying set.
Experiment
实验结果中的三个发现比较有意思:
More
WL subtree kernel
WL-ET kernel