图注意力网络(Graph Attention Network)
一、简介
CNN只能用来解决grid-like结构的数据。有很多任务的数据无法表示成grid-like结构,但可以表示成为图结构。GAT(Graph Attention Networks)就是一种处理图结构数据的神经网络。该网络是基于注意力机制实现的。
二、GAT结构
1.图注意力层的输入与输出
图注意力层(Graph Attentional Layer)是构成整个GAT的唯一种类的层。
该层的输入是多个节点的特征,,其中是节点数量,是每个节点的特征数量。
该层的输出是这些节点的新特征,,其中是新特征的维度。
2.注意力系数的计算
注意力机制的核心是计算各个部分对最终目标的贡献程度,这个贡献程度就是注意力系数。在图结构中,注意力系数是指某个节点对当前节点的贡献程度。具体来说,在GAT中节点的特征对节点特征的贡献程度表示为,其计算公式为
其中,是计算两个向量相似度的函数。在论文的实验中函数使用单层前馈网络,即
其中,是激活函数,,表示向量拼接。
3.Masked Attention机制
在GAT中,注意力机制只作用在一阶相邻节点(当然,也可以作用在更高阶),为了统一量纲这里使用函数对注意力系数进行标准化
其中,,表示节点的邻居节点。
这里将计算的所有部分展开,
得到标准化的注意力系统后,使用这些系数进行线性合并,得到节点的新特征,即
图1. 注意力系数的计算
4. 多头机制与输出层
为了能够更稳定的学习新特征,引入了多头机制。这里假设有个独立的注意力机制,那么多头注意力机制就是将各个注意力特征进行合并
在网络的最终层执行多头注意力机制,不再使用拼接,而使用平均,并且延期使用激活函数(softmax、sigmoid等)
图2. 多头注意力机制
三、GAT的优势
- 计算高效。自注意力层可以并行化,计算输出特征也可以并行化。
- 为不同的节点分配不同的重要度。
- 图不必是无向的。
- 直接适用于归纳学习(inductive learning)。
- 直接作用于领域,且不做任何顺序假设。