注意力模型(GAT)

Graph数据结构的两种特征:
当我们提到Graph或者网络的时候,通常是包含顶点和边的关系,那么我们的研究目标就聚焦在顶点之上。而除了结构之外,每个顶点还有着自己的特征,因此我们图上的深度学习,无外乎就是希望学习上面两种特征。

GCN的局限性:
GCN是处理transductive任务的利器,这也导致了其有着较为致命的两大局限性:

首先GCN无法完成inductive任务,也即它无法完成动态图的问题。
其次,GCN无法处理有向图,它不容易实现分配不同的学习权重给不同的邻域。

接下来说一下GAT:
2018年的GAT,说明白点就是对于每个顶点都计算其与邻域节点的注意力系数,通过注意力系数来聚合节点的特征,然而此处注意力系数说白了其实是局部图注意力,还有一种注意力系数是全局注意力系数,其具体思路就是对每一个节点计算其与其它所有节点的注意力系数。

全局注意力系数的优点很明显,它可以完全不依赖于图的结构信息,对于处理inductive任务无压力,但是其缺点也很明显,其面临着高昂的计算代价,并且图结构信息对于整个Graph是非常重要的,其可能面临着较差的效果。

多头注意力的提出更加加固了注意力这个理论成果!

深入理解GAT:

1、与GCN的联系与区别

我们可以发现就本质而言,GCN和GAT都是将邻居节点的特征聚合到中心节点上,其实就是一种聚合运算。不同的是GCN用的是拉普拉斯矩阵,而GAT用的是注意力系数,在一定程度上来说,GAT会更强,因为GAT很好的将顶点的特征之间的相关性融入到了模型之中。

2、为什么GAT适用于有向图

GAT的运算是逐顶点的运算,每次运算都需要遍历图上的所有节点,因此摆脱了拉普拉斯矩阵的束缚。

3、为什么GAT适用于inductive任务

GAT中重要的学习参数是W和a(),这两个参数仅与顶点的特征有关,与图结构无关,因此改变图的结构对GAT的影响不大,只需改变邻域,重新计算即可。

与此相反的是,GCN是一种全图计算,一次计算就更新全图的节点特征,学习的参数很大程度上和图结构是相关的。

总结一下:
GCN本质上是谱域卷积,一次处理全部顶点,所以用到了包含图结构的拉普拉斯矩阵,但这也限制了其无法完成inductive任务;而GAT和GraphSAGE等属于空域卷积,逐点处理,虽然在计算过程中舍弃了整体的图结构,但这也使得其可以为完成inductive任务。

本文参考:知乎superbrother的一篇文章

你可能感兴趣的:(图神经网络,GAT,GCN)