【图神经网络论文整理】(五)—— Self-Attention Graph Pooling:SAGPool

【图神经网络论文整理】(五)—— Self-Attention Graph Pooling:SAGPool_第1张图片


  • ICML 2019
  • Junhyun Lee, Inyeop Lee, Jaewoo Kang
  • Machine Learning (cs.LG); Machine Learning (stat.ML)
  • 论文地址

本文介绍的论文是《Self-Attention Graph Pooling》。

该篇文章提出了一种新的图池化方式,该池化方式是基于自注意力机制来计算得分,同时考虑了节点特征和图的拓扑结构,能够实现端到端方式学习图的层次表示。


一、背景

近几年图神经网络已被广泛应用于各个领域,并且表现出了很好的性能,但是对于图进行采样操作仍是难以实现,对于图像领域,CNNs已经被广泛应用,主要是对图像的卷积以及池化操作,目前卷积操作已被迁移到了图上,但是池化还是较难。

为了改进池化效果,本文提出了一种新的池化方式,基于自注意力机制方式,这种方式可以同时考虑节点特征以及图拓扑结构。

二、模型方法

目前图池化方式主要有三类:

  • 拓扑池化:主要使用特征分解,会导致计算复杂度过大
  • 全局池化:全局池化一般是会考虑所有节点的特征表示,有些方式是使用均值聚合器,有些可能是按照嵌入进行排序
  • 分层池化:建立一个端到端的学习模型,能够基于节点特征进行池化

Cangea等人提出了gPool方法,该方法就是一个分层池化方法,利用节点特征进行池化操作,该方法内部有一个可学习的向量 p p p,这个向量会与每个节点特征进行点乘计算得分,然后这样每个节点就会得到一个得分,之后会根据这个得分对所有节点进行排序,然后会根据给定的超参数选择需要保留的节点,其余的节点会使用掩码机制遮盖掉。

在这里插入图片描述
但是上面做法也会存在局限性,它单单只考虑了图节点特征,并没有考虑图的拓扑结构,为了进一步改进,作者提出了SAGPool,该方法可以同时使用节点特征和图的拓扑结构产生更加合理的图的层次表示。

【图神经网络论文整理】(五)—— Self-Attention Graph Pooling:SAGPool_第2张图片

1.自注意力掩码

作者采用了下面公式来计算节点的注意力分数,这个公式很容易理解,和GCN的传播公式很像,只不过其中的可学习参数 θ \theta θ 是一个列向量,维度为【F,1】,最终的 Z Z Z 的维度为【N,1】,代表每个节点的注意力得分, X X X 代表节点特征, D D D 代表图的度矩阵, A A A 是图的邻接矩阵,这种做法就同时考虑了节点特征 X X X 和图的拓扑结构利用度矩阵。

在这里插入图片描述
之后会根据学习出的Z也就是注意力分数矩阵进行池化操作,这时会定义一个超参数k,代表保留节点的比率,那么【kN】就是最终需要保存节点的个数,我们会根据注意力分数进行排序,保留分数最大的前【kN】个节点。

在这里插入图片描述

2.图池化

下面就会根据索引产生掩码,以及进行保留节点处理,下面公式可以参考上面SAGPool层次图进行观看。
在这里插入图片描述

3.SAGPool的变体

上面我们使用的是GCN经典架构,其实可以使用其它的图网络结构进而达到更好的效果,下面提出几种方式不仅可以使用邻居节点还可以使用多跳邻居节点来计算注意力得分。

  • 使用邻居和两跳邻居特征
    在这里插入图片描述
  • 使用多个GNN进行堆叠
    在这里插入图片描述
  • 使用多重注意力分数的平均值
    在这里插入图片描述

模型结构
【图神经网络论文整理】(五)—— Self-Attention Graph Pooling:SAGPool_第3张图片

  • 全局池化架构:上图左为全局池化架构,该架构由三个图卷积层表示,它会将每层的输出拼接在一起后,然后进行图池化,然后传入读出层,最终将读出层获得的图表示传递给线性层进行分类操作。
  • 分层池化架构:右侧为分层架构,该架构主要由三个块组成,每个块都是由一个图卷积层和一个图池化层组成,会将每个块的图进行读出然后进行汇总,将读出层输出的总和送到线形层进行分类操作。
三、实验结果

作者将以下四种池化方法作为基线:Set2Set、SortPool、DiffPool和gPool。比较DiffPool、gPool和SAGPoolh采用分级池结构,比较Set2Set、SortPool和SAGPoolg采用全局池结构。

【图神经网络论文整理】(五)—— Self-Attention Graph Pooling:SAGPool_第4张图片
根据图节点的数量增加参数的数量。x轴标签表示输入图节点数,y轴标签表示分层池模型的参数数:输入节点特征数为128,隐藏特征大小为128,类数为2。式(3)作为SAGPool的图卷积。K为池化比,K = 1.0表示池化后保留整个节点。无论输入图的大小和池化比例如何,gPool和SAGPool的参数数量都是一致的。

【图神经网络论文整理】(五)—— Self-Attention Graph Pooling:SAGPool_第5张图片

四、总结

本文提出了一种新的基于自注意的图像池方法SAGPool。

该方法具有以下特点:

  • 分层池化
  • 同时考虑节点特征和图拓扑结构
  • 合理的复杂度
  • 端到端表示学习

SAGPool使用一致数量的参数,而不考虑输入图的大小。

你可能感兴趣的:(图神经网络,神经网络,深度学习,人工智能)