ICLR2020 | 图池化没有考虑图结构?一文带你了解最新图池化STRUCTPOOL

作者 | 程玉

审稿 | 俞琳荟

今天给大家介绍的是TAMU的Hao Yuan等人的一篇论文,该研究针对目前的大多数图池化技术忽略了图结构这一可能会引起重要特征丢失的信息,巧妙地利用可以捕获不同节点之间的关系的条件随机场,并进一步将能量函数和图拓扑信息结合起来完成结构化的预测问题。作者提出的StructPool在多个数据集上的实验结果显示了有效性

1

背景

学习图的高级表示形式对于图分析任务非常重要。面对很多大型图数据,除了图卷积之外,图池化也是一个很重要的研究领域。在卷积神经网络(CNN)中池化层夹在连续的卷积层中间,用于压缩数据和参数的量,并且,池化操作在许多图像和自然语言处理任务中都显示了其有效性,所以很自然地池化操作就被引入到了图数据处理中。一些性能比较好的图池化方法例如SORTPOOL,TOPKPOOL, DIFFPOOL和SAGPOOL都未明确地对不同节点之间的关系建模,因此可能会忽略重要的结构信息。

这篇文章的任务是图层面的表征学习。作者从Graph pooling的角度出发,指出现有的很多方法并没有显示的考虑图结构的信息,并将Graph pooling的过程转化为节点分类,从而其目标变为学习一个聚类分配矩阵(cluster assignment matrix)。对于一个节点的分类不仅与这个节点的特征有关,还与其他节点的分类有关,于是作者采用条件随机场的方法来建模这种关系,并结合图结构信息设计吉布斯(Gibbs)能量方程。

2

模型

引入图池化操作旨在减少图中节点的数量并且学习到新的图表示。给定含n个节点的图G,则图G可以由特征矩阵和其邻接矩阵表示,假设图池化后产生了一个含k个节点(k<n)的新图,则特征矩阵变为,邻接矩阵变成,所以图池化的目标是学习X,A和之间的关系。这里作者将继续沿用前人的想法,将图池化问题转为节点聚类问题,将图G中的n个节点分配给k个不同的cluster,每个cluster就是新图中的节点。在聚类过程中产生聚类分配矩阵,其中元素的取值视不同的任务而定,则新图可以被表示为,其中可以看成对其进行线性变换,为保证邻接矩阵为对称矩阵,多乘了一部分,最终经过函数后其中的元素为1(乘积大于0时)或0。而接下来的重点就在于分配矩阵的学习。在图中聚类分配不仅仅依赖于节点本身的特征,更取决于其他节点是如何分配的,所以文章中通过考虑节点自身的特征矩阵和不同节点的分配之间的关系来生成分配矩阵。在条件随机场(CRF)中,统计的是相关数据满足特征函数的频数,所以用CRF生成分配矩阵。因为作者考虑的不仅是节点自身的能量,并且考虑了图结构,所以CRF中的能量函数由两部分组成,第一部分考虑的是一元点,在原图中的节点i应该属于哪一类簇(cluster),即只考虑节点自身,第二部分考虑的是成对节点i,j之间的关系,即将图结构考虑进去,这样生成的分配矩阵就是带有图结构的分配矩阵。具体能量函数的形式如下:

当原图中节点i和j经过跳是可达的时候取值为1,其余情况为0,充分考虑了在图中的拓扑信息,即每个可达节点之间的关系。这两部分的特征函数都可以通过神经网络获得,其中一元关系可由GCN得到,在传统的图像处理任务中,高斯核可以得到两元关系,但是计算效率低下,所以作者引入注意力机制,注意力矩阵反映了不同向量之间的相似性,用注意力矩阵可以度量成对能量,并且计算量大大降低。理论上,在经过m次迭代,含有n个节点的大型图,并且设置i个层的GCN,STRUCTPOOL的时间复杂度约为

3

实验

实验是在八个数据集上进行评估STRUCTPOOL,包括五个生物信息学蛋白质数据集,ENZYMES,PTC,MUTAG,PROTEINS,D&D以及三个社交网络数据集,COLLAB,IMDB-B,IMDB-M。选取的大多数数据集规模较大,因此适合评估深图模型。

将STRUCTPOOL与通过学习节点表示和节点排序的PATCHYSAN、通过GCN并进行全局池化的DCNN,对子结构的潜在表示进行建模的DGK、节点特征和边缘信息执行GCN调节的ECC、通过采用和聚合进行节点嵌入以及采用全局池化的GRAPHSAGE、利用聚合方法来替代深图网络中的全局池化操作的SET2SET、利用SORTPOOL的池化策略的DGCNN、基于GRAPHSAGE体系结构构建的DIFFPOOL进行比较。此外,将STRUCTPOOL与三个图卷积核进行了比较:Graphlet,Shortest-path,WeisfeilerLehman subtree。比较结果如下图所示:

上表中STRUCTPOOL在6个数据集中的5个都获得了最佳性能。对于这5个数据集,文章提出的方法的分类结果明显优于所有比较方法。值得注意的是,STRUCTPOOL在这5个数据集上的表现均比第二好,平均高出3.58%。

为了证明STRUCTPOOL的有效性,将STRUCTPOOL与现有的几种图池化技术进行比较。

在六个数据集中的五个中达到了最佳性能,并且明显优于所有图池化池技术。

并且在实验中设置不同的迭代次数m观察其如何影响预测精度,

我们可以观察到性能通常随着m的增加而增加,尤其是对于大规模数据集D&D。我们还观察到m=5是时间复杂度和预测性能之间的良好折中。值得注意的是,当m=1时,STRUCTPOOL甚至可以胜过其他方法。此外, STRUCTPOOL的运行时间在大型数据集D&D对于m=1,m=3,m=5,花费时间分别为0.049秒,0.053秒和0.058秒。DIFFPOOL的时间成本为0.042秒,而即使STRUCTPOOL具有相对较高的计算成本,但鉴于其优越的性能,其时间成本可以忽略。

4

总结

作者提出了一种新的图池化技术,称为STRUCTPOOL,它是基于条件随机场而开发的。整体是将图池化视为一个节点聚类问题,并使用CRF在不同节点的分配之间建立关系。此外,通过结合图拓扑信息来推广这个方法,使得STRUCTPOOL可以控制CRF中的成对团集。

代码

https://github.com/Nate1874/StructPool

参考资料

https://openreview.net/pdf?id=BJxg_hVtwH

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章