图注意力网络(GAT)

一、图数据结构知识

图是指一系列相互连接的节点,且每个节点自己也具有一定的特征。如下图所示即一个典型的图结构。图注意力网络(GAT)_第1张图片 该图一共有五个结点,每个结点有自己的特征Fi.另一方面,为了描述图的结构特点,常用邻接矩阵A和度矩阵D.其中,对于一个N个结点的图来说,邻接矩阵A为一个大小为N*N的对称矩阵,若两个结点i,j直接有连接,则Aij=Aji=1,否则为0.度矩阵D大小同样,除对角线上,其余位置的值均为0,Dii的值为与结点i直接连接的结点的数目。实际处理中还存在一种常见的矩阵拉普拉斯矩阵L,L=D-A。

二、图注意力机制

图注意力网络的关键即是图注意力层,图注意力层的处理对象即为整张图的每个结点,如对于N个结点,每个结点特征维度为F的一张图,通过图注意力层得到的输出即为N*F‘,其中F’为输出层的特征维度。

h={h1,h2,h3,…hN}表示输入数据,其中hi是大小为F的向量。h‘={h’1,h’2,…h’N}表示输出,hi’为大小为F‘的向量。论文提出了图注意力层从输入计算每个结点的输出,入上图所示,与结点3相邻的结点有2,4,因此我们仅考虑这两个结点对于结点3输出的影响。为此提出了注意力系数eij来表示结点j对于结点i的影响。(注:eji !=eij,其表示结点j对于结点i的影响).由此为得到h’i,我们需要考虑与结点i相邻的所有结点对于结点i的注意力系数。因此我们得到如下的关键公式:图注意力网络(GAT)_第2张图片
其中:sigmod表示一个非线性函数,Ni表示与结点i相邻的所有结点组成的域,hj表示结点j的特征向量,W为一个大小为F‘×F的权重矩阵。在这里插入图片描述
再将eij的计算公式带入上式可得:
图注意力网络(GAT)_第3张图片其中,LeakyReLU为非线性激活函数:y =x, x>=0 y=ax x<0
II表示将左右两个矩阵连接在一起,Whi形状为F’×1,连接后得到一个大小为2F‘×1的矩阵。a为一个大小为2F’的权重向量,因此两者相乘得到一个实数,最后得到一个数即注意力系数。

三、多头注意力机制

与RNN类似,图注意力层也可引入多头注意力机制这一方法
其计算公式稍微有点变化在这里插入图片描述其中K表示k重注意力机制,Wk表示第k重的权重矩阵,其大小为为F‘/K ×F。这一过程可以有如下图所示:
图注意力网络(GAT)_第4张图片不同的颜色表示不同的k值所对应的注意力系数。

四、个人总结

GAT网络主要是基于对邻接结点的处理而提出的注意力系数这一概念,不用对整个图进行遍历,比较容易理解。

你可能感兴趣的:(网络,矩阵,算法)