Graph-Neural-Network 图神经网络


1. 图数据结构

1.1 Graph结构的两种特征

图数据结构由顶点和边组成,顶点为目标研究的实体,边则表示顶点之间的联系。
图数据结构包含两种特征:

  1. 顶点自己的特征,其通常是一个高维向量,也就是研究目标的特征。
  2. 对于任意一个节点 i ,它在图上的相邻节点 Ni 构成图的结构关系(特征)

任何图神经网络的目的,就是试图更好的学习Graph结构的这两种特征。

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

  • 注意力机制认为,对于中心节点来说,相邻节点对它而言重要程度不一样,要量化这一指标。
  • 图注意力机制的本质,是给边赋予权重,即给 节点及其相邻节点 构成的边 赋予不同的注意力系数
  • 边的注意力系数是通过计算得到的,这也是GAT理论的根本点。
  • 图注意力机制是从图的 结构关系特征 入手的。

2.1 计算注意力系数(attention coefficient)##

①计算节点的相关系数
对于节点i,逐个计算它的相邻节点(j∈Ni)和它自己之间的相似系数
计算公式如下:

其中:

  • $ W $为共享参数矩阵,其用于对节点特征增维,是一种常见的 特征增强 的方法。
  • [·||·]表示对于节点 \(i, j\) 变换之后的 特征进行拼接(concatenate)。
  • 最后$ a(·) $把拼接后的高维特征映射到一个实数上,作为该公式的输出。这是通过 single-layer feedforward neural network实现的。

显然,节点 \(i, j\) 之间的相关性是通过可学习参数$ W \(和\) a(·) $完成的。
②计算注意力系数
相关系数 的基础上,进行归一化处理得到注意力系数,这是通过softmax函数完成的。
计算公式如下:

此式输出 $ aij $ 即为两节点的边的注意力系数。

2.2 加权求和

根据计算好的注意力系数,把特征加权求和(aggregate)一下。公式如下:

其中,$ hi' $ 就是GAT输出的节点 \(i\) 的新特征(这是融合了领域信息得到的)。
这就是基本的,图注意力机制。

2.3 多通道注意力机制

常见的,使用multi-head机制增强注意力机制。
其类似于CNN的多维卷积,有多个卷积核且每个卷积核相互独立,使得输出的特征图也具有更多的通道数。
公式如下:

其中** \(K\) 为通道数**,下图中的曲线数表示了这一点。

这3条波浪线就代表3个独立的attention系数,独立学习,并且有着独立的注意力系数矩阵。
这在代码中是使用for循环实现的。

2.4 最终的输出

多头注意力机制输出层最终的输出如下:

这里的激活函数为softmax。

3. Graph Convolutional Network 图卷积网络

相关