图神经网络(六)--GAT神经网络

GRAPH ATTENTION NETWORKS

图注意力神经网络是既GCN神经网络后,有一个图结构深度学习的网络,本节我们来学习。原文地址可以点击GRAPH ATTENTION NETWORKS下载。

在原来的GCN神经网络中,我们能够理解到GCN是存在一定的局限性的,在如下的场景下。

  • GCN无法完成处理动态图的任务,既训练和测试在不同的图网络中。
  • 处理有向图是有瓶颈的,不容易实现分配不同的学习权重给不同的neighbor。

针对这样的问题,本文提出了一种新的网络机构就是基于注意力的图网络。

graph attentional layer

首先我们需要看一层graph attentional layer 是如何计算的。

对于单个的graph attentional layer的输入是一个节点特征向量集合。

h={h1,h2,h3,..,hn}(1.1)h=\{\vec{h_1},\vec{h_2},\vec{h_3},..,\vec{h_n}\} \tag{1.1}

其中hiRF\vec{h_i} \in R^F,NN表示节点邻居节点的个数,FF表示相应的特征向量的维度,就是每个节点的特征。每一层的输出是一个新的节点特征向量集。

h={h1,h2,h3,..,hn}(1.2)h'=\{\vec{h_1'},\vec{h_2'},\vec{h_3'},..,\vec{h_n'}\} \tag{1.2}

其中,FF'表示新的节点特征向量的维度。

gat_0.png

具体的graph attentional layer首先根据输入节点的特征,进行self-attention处理

eij=a(Whi,Whj)(1.3)e_{ij}=a(W\vec{h_i},W\vec{h_j}) \tag{1.3}

其中aa表示一个RF×RFRR^{F'} \times R^{F'} \rightarrow R 的映射。WRF×FW \in R^{F' \times F}是一个权值矩阵,一般来讲self-attention将注意力分配到图中所有节点,这种做法是会丢掉信息的。本身使用了masked attention的方式将注意力分配到邻居节点上。jNij\in N_i.

aij=softmax(eij)=exp(eij)kNiexp(eik)(1.4)a_{ij}=softmax(e_{ij})=\frac{exp(e_{ij})}{\sum_{k \in N_i}exp(e_{ik})} \tag{1.4}

本文中,aa是单层前馈神经网络,总共的计算过程是

aij=exp(LeakyRelu(aT[WhiWhj]))k inNiexp(LeakyRelu(aT[whiWhk]))(1.5)a_{ij}=\frac{exp(LeakyRelu(\vec{a}^T[Wh_i || Wh_j]))}{\sum_{k \ inN_i}exp(LeakyRelu(\vec{a}^T [wh_i||Wh_k]))} \tag{1.5}

其中aTR2F\vec{a}^T \in R^{2F'}为前馈神经网络的aa的参数。

hi=σ(jNiaijkWkhj)(1.6)h_i'=\sigma(\sum_{j \in N_i}a_{ij}^{k}W^kh_j) \tag{1.6}

为了提高模型的拟合能力,在本文中还引入了多抽头的self-attention。

hi=σ(jNiaijkWkhj)(1.7)h_i'=|| \sigma(\sum_{j \in N_i}a_{ij}^{k}W^kh_j) \tag{1.7}

其中||表示连接,aijka_{ij}^{k}WKW^K表示k个抽头的计算结果。由于WkRF×FW^k \in R^{F' \times F},因此这里的hiRKF\vec{h_i}' \in R^{KF'}。同样可以采取求和的方式得到hi\vec{h_i}'

hi=σ(1Kk=1KjNiaijkWkhj)(1.8)h_i'=\sigma(\frac{1}{K} \sum^{K}_{k=1}\sum_{j \in N_i}a_{ij}^{k}W^kh_j) \tag{1.8}

总结

  1. 与GCN的联系与区别?

GCN与GAT都是将邻居顶点的特征聚合到中心顶点上(一种aggregate运算),利用graph上的local stationary学习新的顶点特征表达。不同的是GCN利用了拉普拉斯矩阵,GAT利用attention系数。一定程度上而言,GAT会更强,因为 顶点特征之间的相关性被更好地融入到模型中。

2.为什么GAT适用于有向图?

我认为最根本的原因是GAT的运算方式是逐顶点的运算(node-wise),这一点可从公式(1.3)—公式(1.6)中很明显地看出。每一次运算都需要循环遍历图上的所有顶点来完成。逐顶点运算意味着,摆脱了拉普利矩阵的束缚,使得有向图问题迎刃而解。

其核心问题就是,GCN使用拉普拉斯矩阵的缘故,将图的结构合并成一个度矩阵然后计算,所以对每个节点不会特殊学习。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×