GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,

时间:2024-03-29 17:19:21

本文的作者来自An-Institut Technische Universität München,本文至今好像还未正式发表。
本文提出了EdgePool,其能够学习一个局部和稀疏的硬池变换,并自然地考虑到图结构,确保不会完全删除节点。EdgePool优于其他的池化方法,可以很容易地集成到大多数GNN模型中,并且在节点分类和图分类方面都提高了性能。

EdgePool

Edge contraction

为了实现边池,提出了一种Edge contraction的策略。引入新节点vev_e和新边,使vev_e与所有viv_ivjv_j相邻的节点都相邻,viv_ivjv_j及其所有边都从图中删除。直观地说,Edge contraction选择一条边合并它的节点至一个新节点,然后,这个新节点连接到合并节点已经连接到的所有节点。我们多次重复这个过程,但是新节点并不包含在Edge contraction的过程中。如图:
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019

Choosing edges

计算每条边的得分来选择边,然后为得分最高的边(注意这个边必须是在pool之前的原图中存在的,Edge contraction得到的新边并不参与其中)进行Edge contraction。边的score借助对边的节点特征的线性变换得到:
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019
当然,在计算这分数的时候也可以将边的特征整合进去,也就是做了一个简单的拼接:
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019

不过,为了使得不同边之间的分数可以相互比较,紧接着做了一个softmax(类似于GAT),然后加了常数0.5:
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019
这样,sijs_{ij}就是最终的边得分。池化的结果总是大概50%的结点,因此池化比例是不必调节的,不像是topK的池化方法。文中举例一个例子来说明这个过程:
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019
首先,图(1)中边的分数应该是e(rij)e(r_{ij}),为了方便说明就直接给出了,并且所有方向的边的评分都相同(就是无向图呗)。图(2)开始计算每条边的分数的exp,然后节点的得分是输入的分数的exp的和。比如节点AAscore(A)=e1+e210.1score(A)=e^1+e^2≈10.1。图(3)是对得分进行归一化,然后选择值最大的边进行缩减,得到了图(4),作为池化之后的结果。

Computing new node features

新节点是由两个不同的节点合并而成的,因此新节点的特征就更新为:
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019
这样是为了把边的分数信息也考虑进去。

Unpooling EdgePool

对于节点分类来说,还是需要一个解池的操作,因此每个EdgePool层还需要将上一个图的每个节点映射到新池的图的节点。对于解池的操作,结构是已知的了,只需要对新增的节点特征进行还原即可:
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019
我十分怀疑如此弱智的操作的效果,但是从后续的试验里发现其实还行。

实验

具体的参数如果大家有兴趣复现论文就看一看原文吧,这里直接给出不同的试验结果。
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019
Table1 中是与其他不同的池化操作的对比,看起来还行哦。
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019
Table2 是将edgepool技术和其他GNN框架融合之后的效果(图分类),效果也不错。
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019
Table3 是与其他GNN模型在节点分类任务上结合的效果。
最后是可视化:
GNN Pooling(十一):Edge Contraction Pooling for Graph Neural Networks,2019