Abstract
- 输入的训练数据是图结构数据,使用masked self-attentional层解决先前图卷积的缺点
- 通过叠加层扩展邻居的范围(我记得GCN也有这个特性)
- 在邻居范围内,可以隐式地赋予不同节点不同权重,代表了他们的重要性。
- 不需要知道矩阵操作或者知道图的结构
- 主要是解决了图的谱方法的缺点,适用于inductive和transductive问题。
Introduction
前面主要是说CNN在图像等结构化数据上表现良好,但是针对图这样的非结构化数据目前没有什么好的解决方案,于是有了很多相关工作。
然后分别介绍了谱方法(spectral)和非谱方法,这里没有看得很明白,主要是有太多的相关工作。
介绍了注意力机制attention。有几点好处:
3.1 可并行 3.2 可处理不同度的点,通过赋予邻居不同的权重 3.3 可直接用于处理inductive问题
GAT architecture
只介绍一层,通过堆叠该层可以展示任意结构。GAT只使用了这一个结构。
自己归纳一下整体流程(其实论文里很清晰):
2.1 通过一个全连接层,是一个W矩阵 2.2 首先确定该点的邻居节点(只有直接相连的才是邻居),然后通过一个attention机制,最后计算一下softmax(是为了normalize化)。此时每个点都有自己的alpha。 2.3 再次汇聚邻居节点,将综合后的结果通过一个激活函数。
为了稳定效果,还使用了multi-head机制。就是独立进行上述进程,然后进行拼接或者求平均。(最后一层肯定是求平均)
比较相关工作
- 可并行计算,没有高代价的矩阵操作。
- 和GCN不同,可以为邻居节点隐式设置不同权重(这里没有想明白,是如何设置的?)
- attention机制使得我们不必关注整个图,只需要看局部结构就可以
- 最新的inductive工作是固定邻居数目,看不到所有邻居,并且对节点顺序有要求。GAT没有这些问题
- GAT可以被看作是MoNet的一个特例
问题和未来工作
- 他们应该是基于tensorflow写的,TensorFlow只支持rank=2的tensor进行稀疏矩阵乘法,这限制了batching的能力,比如针对多图结构。
- 由于是稀疏的,因此GPU不能显著加速。
- receptive field的上限就是层的深度
- 并行计算可能涉及到冗余计算,因为邻居可能是高度重叠的。(这个也没有看懂)
实验
没有细看。结论就是要么和最先进的技术持平,要么就是超过了最先进的技术。