今天学习了图神经网络论文《ASAP: Adaptive Structure Aware Pooling for Learning Hierarchical Graph Representations》提出的自适应结构感知池化方法(Adaptive Structure Aware Pooling, ASAP),发表于AAAI,2020.

前言

这篇论文回顾近年图神经网络中的池化方法并提出了(1)一种能够分层捕获局部子图信息的稀疏池化算子,该池化方法能够根据池化图的边连接更好的学习全局特征;(2)一种新的更适合与像池化这种全局任务的自注意力机制;(3)一种新的图卷积方法LEConv,用来自适应的学习图子结构中的局部极值(local extremas)。

该论文着重回顾了一些典型的non-spectral的池化方法并将此类方法划分为了全局池化方法(Global pooling)和层次化池化方法(Hierarchical pooling)。

全局池化方法可以一步完成池化,该论文列举了3种基于注意力机制的全局池化方法:

  1. 通过迭代的基于内容的注意力方法找到图中每个节点的重要性的自适应式实例分割模型 自适应结构_聚类。(https://arxiv.org/abs/1511.06391)
  2. 使用全局注意力机制聚合图中节点的Global-Attention方法。(https://arxiv.org/abs/1511.05493)
  3. 根据节点特征排序再将几个节点拼接来表述图结构的SortPool。(https://chyson.net/papers/AAAI_2018_DGCNN.pdf)

相比之下,层次化池化方法侧重于捕捉图的拓扑结构信息。

  1. DiffPool通过聚合节点形成了若干个簇,簇个数为固定的(超参数)。其中聚类所用的矩阵为通过一层GNN计算的软分配矩阵,该矩阵是一个稠密矩阵,导致其对大图计算效率较低。(http://papers.nips.cc/paper/7729-hierarchical-graph-representation-learning-with-differe)
  2. TopK基于一个可学习的投影向量对节点进行评分,并保留部分高分节点。它避免了节点聚类和软分配矩阵的计算,以保持图计算的稀疏性。(https://arxiv.org/abs/1905.05178)
  3. SAGPool通过自注意力机制改进了TopK,使用GNN为节点打分的同时能够考虑图结构。(https://arxiv.org/abs/1904.08082)

该论文提到:由于TopK和SAGPool不聚合节点,也不计算软边权值,无法有效保存节点和边信息。该论文提出的ASAP具有层次化池化方法的所有优良特性的同时不影响图操作的稀疏性。

方法

Cluster Formation using Master2Token

稀疏的聚类分配矩阵通过local clustering方法构建,具体可参考 http://yalma.fime.uanl.mx/~roger/ftp/MM17_removed/cites/evidence/2007%20CSR%20Schaeffer.pdf。

每一个簇表示为自适应式实例分割模型 自适应结构_深度学习_02。获得簇的第二步为学习该簇的整体表征。该论文首先回顾了两种典型的自注意力方法:Token2TokenSource2Token

Token2Token
自适应式实例分割模型 自适应结构_自适应式实例分割模型_03
其中自适应式实例分割模型 自适应结构_池化_04自适应式实例分割模型 自适应结构_深度学习_05分别为输入集合自适应式实例分割模型 自适应结构_池化_06中的target和candidate。我最近看到的一篇应用这种注意力的图网络文章推荐给大家:Attributed Graph Clustering: A Deep Attentional Embedding Approach (https://arxiv.org/pdf/1906.06532.pdf)。

Source2Token:
自适应式实例分割模型 自适应结构_深度学习_07
上述两种自注意力方法都没有考虑簇内的信息,就此动机,该论文提出了考虑簇内信息的自注意力方法Master2Token。首先通过对簇内所有节点特征取最大值的方式获取一个自注意力机制中的master query。进一步通过结合所有附加节点计算自适应式实例分割模型 自适应结构_Graph_08
自适应式实例分割模型 自适应结构_池化_09
自适应式实例分割模型 自适应结构_Graph_08表达着节点自适应式实例分割模型 自适应结构_池化_11在簇自适应式实例分割模型 自适应结构_Graph_12中的隶属度。该文使用这个自适应式实例分割模型 自适应结构_Graph_08作为类似于其他层次化池化方法中的聚类分配矩阵,即自适应式实例分割模型 自适应结构_自适应式实例分割模型_14。于是,簇自适应式实例分割模型 自适应结构_Graph_12的特征向量的每一维度特征可通过如下计算:
自适应式实例分割模型 自适应结构_池化_16
这个自适应式实例分割模型 自适应结构_Graph_08融合了簇内的结构信息。

Cluster Selection using LEConv

该论文也用到了TopK方法,但是对簇进行打分而不是节点,然后也会根据池化率pooling ratio淘汰得分较低的簇。对簇进行打分的函数,就是这部分设计的GCN的变体(Local Extrema Convolution, LEConv)。簇自适应式实例分割模型 自适应结构_自适应式实例分割模型_18的得分自适应式实例分割模型 自适应结构_聚类_19由如下LEConv计算:
自适应式实例分割模型 自适应结构_聚类_20
注意这里的簇自适应式实例分割模型 自适应结构_聚类_21在上文已经通过Master2Token方法映射成向量表示了。上式第一项是对自身的评价,第二项是考虑了其与邻簇的关系的评价,二者综合得到最终的分数。类似于SAGPool方法,该得分也同样被点乘到了簇特征上,以保证上式参数的可学习性。LEConv可以同时考虑簇的全局和局部重要性来学习给簇打分。

实验

类似于SAGPool中的层次化网络结构,该论文也同样基于此结构设计的网络模型,如下图。

自适应式实例分割模型 自适应结构_深度学习_22


图分类实验所使用数据集如下:

自适应式实例分割模型 自适应结构_池化_23


该论文对比了我们上面提到的几种典型的全局池化方法和层次化池化方法,从外部比较结果来看,ASAP方法具有明显的效果提升。结果如下表:

自适应式实例分割模型 自适应结构_深度学习_24


此外,该论文也分别设计了消融实验来分析其设计的自注意力方法Master2Token和GCN方法LEConv的有效性,结果分别如下面两表。

自适应式实例分割模型 自适应结构_池化_25


自适应式实例分割模型 自适应结构_Graph_26

总结:

该论文是对层次化池化方法的综合和优化,它解决了DiffPool中非稀疏的问题,同时利用聚类的思想进行了采样。该方法实际上利用了两次自注意力机制打分,一次作用在簇内,一次作用在簇间,是一个非常值得学习的层次化池化方法。