图注意力网络-Graph Attention Network (GAT)

图注意力网络-Graph Attention Network (GAT)

GAT(graph attention networks)网络,处理的是图结构数据。它与先前方法不同的是,它使用了masked self-attention层。原来的图卷积网络所存在的问题需要使用预先构建好的图。而在本文模型中,图中的每个节点可以根据邻域节点的特征,为其分配不同的权值。GAT结构很简单,功能很强大,模型易于解释。文章的实验证明,GAT模型可以有效地适用于基于图的归纳学习问题与转导学习问题。

1. 图注意力层-Graph Attentional Layer

1.1 图注意力层要做什么

对于一个\(N\)节点的图,我们一共会构造\(N\)个图注意力网络,因为每一个节点都需要对于其邻域节点训练相应的注意力。而图注意力网络的层数\(K\)则根据需要决定。我们在这里先分析\(K=1\),即一个单层图注意力网络的工作原理。

单层图注意力网络的输入为一个向量集\(h = \{\vec{h_1},\vec{h_2},...,\vec{h_N}\},\vec{h_i}\in \R^F\),输出为一个向量集\(h'=\{\vec{h_1'},\vec{h_2}',...,\vec{h_N'}\},\vec{h_i'}\in \R^{F'}\)。即,通过图注意力层后,原本的节点信息\(\vec{h_i}\)被更新为了\(\vec{h_i'}\)。为了使得网络能够从原始输入中提取更加深层次的信息,通常而言,\(F' > F\),即图注意力层是一个将信号升维的网络。

1.2 图注意力层是如何工作的

下图为节点\(i\)单的单层图注意力网络的其中一个邻域节点\(j\)的结构表示。
截屏2021-02-06 下午9.10.08

对于节点\(i\),考虑其邻域节点\(j\)对其的注意力权重的计算过程。

输入为两个向量\(\vec{h_i},\vec{h_j}\in \R^F\),为了将它们变换到\(\R^{F'}\),我们引入一个待学习的权重矩阵\(W\in\R^{F'\times F}\),以及一个待学习的向量\(\vec{a}\in \R^{2F'}\)

  • 做两个运算: \(W * \vec{h_i}\)\(W * \vec{h_j}\),得到两个\(\R^{F'}\)维向量。
  • 计算节点\(i\)在节点\(j\)上的注意力值\(e_{ij} = \alpha(W\vec{h_i},W\vec{h_j})\)\(\alpha\)是一个\(\R^{F'}\times\R^{F'}\to R\)的映射。
  • 最后对于节点\(i\)的所有邻域节点求得\(e\)后,利用\(softmax\)完成注意力权重的归一化操作。

具体到计算过程即为

\[\begin{align} &e_{ij} = LeakyReLU(\vec{a}^T [W\vec{h_i}||W\vec{h_j}]) \\ &\alpha_{ij} = softmax(e_{ij}) = \frac{\exp{(LeakyReLU(\vec{a}^T [W\vec{h_i}||W\vec{h_j}])})}{\sum_{j\in N_i}\exp{(LeakyReLU(\vec{a}^T [W\vec{h_i}||W\vec{h_j}]))}} \end{align} \]

在归一化所有节点的注意力权重后,就可以通过图注意力层进行节点的信息提取了。整个网络的输出值\(\vec{h_i'}\)计算公式如下(其中\(\sigma\)表示激活函数):

\[\vec{h_i'} = \sigma(\sum_{j\in N_i}\alpha_{ij}W\vec{h_j}) \]

2. 多层图注意力网络(Multi-head Attention)

截屏2021-02-06 下午9.43.48

上图为一个三层图注意力网络。多层注意力机制存在的意义在于:不同的特征可能需要分配不同的注意力权重,如果仅仅用单层注意力层,则对于该邻域节点的所有属性都采用了相同的注意力权重,这样将会减弱模型的学习能力。

在引入了多层注意力网络后,进一步调整公式为

\[\vec{h_i'} = {||}_{k=1}^K \ \ \sigma(\sum_{j\in N_i}\alpha_{ij}^k W^k\vec{h_j}) \]

特殊情况:如果我们将多层注意力网络应用到最后一层(输出层),应该将公式改为

\[\vec{h_i'} = \sigma(\frac{1}{K} \sum_{k=1}^K\sum_{j\in N_i}\alpha_{ij}^k W^k\vec{h_j}) \]

posted @ 2021-02-06 22:21  popozyl  阅读(6767)  评论(0编辑  收藏  举报