【GNN】ASAP:自适应结构感知池化方法

今天学习了图神经网络论文《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. 通过迭代的基于内容的注意力方法找到图中每个节点的重要性的 S e t 2 S e t Set2Set Set2Set。(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。

每一个簇表示为 c v ( v i ) c_v(v_i) cv(vi)。获得簇的第二步为学习该簇的整体表征。该论文首先回顾了两种典型的自注意力方法:Token2TokenSource2Token

Token2Token
α i , j = s o f t m a x ( v → T σ ( W h i ∣ ∣ W h j ) ) {\alpha _{i,j}} = softmax ({\overrightarrow v ^T}\sigma (W{h_i}||W{h_j})) αi,j=softmax(v Tσ(Whi∣∣Whj))
其中 h i h_i hi h j h_j hj分别为输入集合 h h h中的target和candidate。我最近看到的一篇应用这种注意力的图网络文章推荐给大家:Attributed Graph Clustering: A Deep Attentional Embedding Approach (https://arxiv.org/pdf/1906.06532.pdf)。

Source2Token:
α i , j = s o f t m a x ( v → T σ ( W h j ) ) {\alpha _{i,j}} = softmax ({\overrightarrow v ^T}\sigma (W{h_j})) αi,j=softmax(v Tσ(Whj))
上述两种自注意力方法都没有考虑簇内的信息,就此动机,该论文提出了考虑簇内信息的自注意力方法Master2Token。首先通过对簇内所有节点特征取最大值的方式获取一个自注意力机制中的master query。进一步通过结合所有附加节点计算 α i , j \alpha_{i,j} αi,j
α i , j = s o f t m a x ( w → T σ ( W m i ∣ ∣ x j ′ ) ) {\alpha _{i,j}} = softmax ({\overrightarrow w ^T}\sigma (W{m_i}||x_j^{'})) αi,j=softmax(w Tσ(Wmi∣∣xj))
α i , j \alpha_{i,j} αi,j表达着节点 v j v_j vj在簇 c h ( v i ) c_h(v_i) ch(vi)中的隶属度。该文使用这个 α i , j \alpha_{i,j} αi,j作为类似于其他层次化池化方法中的聚类分配矩阵,即 S i , j = α i , j S_{i,j}=\alpha_{i,j} Si,j=αi,j。于是,簇 c h ( v i ) c_h(v_i) ch(vi)的特征向量的每一维度特征可通过如下计算:
x i c = ∑ j = 1 ∣ c h ( v i ) ∣ α i , j x j x_i^c = \sum\limits_{j = 1}^{\left| {{c_h}({v_i})} \right|} {{\alpha _{i,j}}{x_j}} xic=j=1ch(vi)αi,jxj
这个 α i , j \alpha_{i,j} αi,j融合了簇内的结构信息。

Cluster Selection using LEConv

该论文也用到了TopK方法,但是对簇进行打分而不是节点,然后也会根据池化率pooling ratio淘汰得分较低的簇。对簇进行打分的函数,就是这部分设计的GCN的变体(Local Extrema Convolution, LEConv)。簇 i i i的得分 ϕ i \phi _i ϕi由如下LEConv计算:
ϕ i = σ ( x i c W 1 + ∑ j ∈ N ( i ) A i , j c ( x i c W 2 − x j c W 3 ) {\phi _i} = \sigma (x_i^c{W_1} + \sum\limits_{j \in {\rm N}(i)} {A_{i,j}^c(x_i^c{W_2} - x_j^c{W_3})} ϕi=σ(xicW1+jN(i)Ai,jc(xicW2xjcW3)
注意这里的簇 x i c x_i^c xic在上文已经通过Master2Token方法映射成向量表示了。上式第一项是对自身的评价,第二项是考虑了其与邻簇的关系的评价,二者综合得到最终的分数。类似于SAGPool方法,该得分也同样被点乘到了簇特征上,以保证上式参数的可学习性。LEConv可以同时考虑簇的全局和局部重要性来学习给簇打分。

实验

类似于SAGPool中的层次化网络结构,该论文也同样基于此结构设计的网络模型,如下图。
在这里插入图片描述
图分类实验所使用数据集如下:
在这里插入图片描述
该论文对比了我们上面提到的几种典型的全局池化方法和层次化池化方法,从外部比较结果来看,ASAP方法具有明显的效果提升。结果如下表:
在这里插入图片描述
此外,该论文也分别设计了消融实验来分析其设计的自注意力方法Master2Token和GCN方法LEConv的有效性,结果分别如下面两表。
在这里插入图片描述
在这里插入图片描述

总结:

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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值