《Graph Attention Networks》(GAT)记录

Abstract

  1. 输入的训练数据是图结构数据,使用masked self-attentional层解决先前图卷积的缺点
  2. 通过叠加层扩展邻居的范围(我记得GCN也有这个特性)
  3. 在邻居范围内,可以隐式地赋予不同节点不同权重,代表了他们的重要性。
  4. 不需要知道矩阵操作或者知道图的结构
  5. 主要是解决了图的谱方法的缺点,适用于inductive和transductive问题。

Introduction

  1. 前面主要是说CNN在图像等结构化数据上表现良好,但是针对图这样的非结构化数据目前没有什么好的解决方案,于是有了很多相关工作。
  2. 然后分别介绍了谱方法(spectral)和非谱方法,这里没有看得很明白,主要是有太多的相关工作。
  3. 介绍了注意力机制attention。有几点好处:

    3.1 可并行
    3.2 可处理不同度的点,通过赋予邻居不同的权重
    3.3 可直接用于处理inductive问题
    

GAT architecture

  1. 只介绍一层,通过堆叠该层可以展示任意结构。GAT只使用了这一个结构。
  2. 自己归纳一下整体流程(其实论文里很清晰):

    2.1 通过一个全连接层,是一个W矩阵
    2.2 首先确定该点的邻居节点(只有直接相连的才是邻居),然后通过一个attention机制,最后计算一下softmax(是为了normalize化)。此时每个点都有自己的alpha。
    2.3 再次汇聚邻居节点,将综合后的结果通过一个激活函数。
    
  3. 为了稳定效果,还使用了multi-head机制。就是独立进行上述进程,然后进行拼接或者求平均。(最后一层肯定是求平均)

比较相关工作

  1. 可并行计算,没有高代价的矩阵操作。
  2. 和GCN不同,可以为邻居节点隐式设置不同权重(这里没有想明白,是如何设置的?)
  3. attention机制使得我们不必关注整个图,只需要看局部结构就可以
  4. 最新的inductive工作是固定邻居数目,看不到所有邻居,并且对节点顺序有要求。GAT没有这些问题
  5. GAT可以被看作是MoNet的一个特例

问题和未来工作

  1. 他们应该是基于tensorflow写的,TensorFlow只支持rank=2的tensor进行稀疏矩阵乘法,这限制了batching的能力,比如针对多图结构。
  2. 由于是稀疏的,因此GPU不能显著加速。
  3. receptive field的上限就是层的深度
  4. 并行计算可能涉及到冗余计算,因为邻居可能是高度重叠的。(这个也没有看懂)

实验

没有细看。结论就是要么和最先进的技术持平,要么就是超过了最先进的技术。

结论

本文标题:《Graph Attention Networks》(GAT)记录

文章作者:Alfred

发布时间:2019年01月29日 - 23:01

最后更新:2019年01月29日 - 23:01

原始链接:http://blog.hbsun.top/2019/01/29/Graph-Attention-Networks/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。