GNN图神经网络

GNN(graph neural network)

Graph:图,在计算机科学中,图是由节点V和边E两部分组成的一种数据结构。虽然图很简单,但如果我们赋予节点和边不同的含义的话,图就可以表达非常多信息;

GNN:图神经网络,是指使用神经网络来学习图结构数据,提取和发掘图结构数据中的特征和模式,满足聚类、分类、预测、分割、生成等图学习任务需求的算法总称。它是一种直接作用于图结构上的神经网络,我们可以把节点V当作个体,把边E当作某种关系,他们共同组成了图U;

GNN面向的输入对象其实都是结构不规则、不固定的数据结构,而CNN面向的图像数据和RNN面向的文本数据的格式都是固定的。因此,面对本身结构、彼此关系都不固定的节点特征,需要借助图结构来表征它们的内在联系。

Spatial-based convolution: generalize the concept of convolution to graph

aggregation: 用neighbor feature来更新下一层的hidden state;

Readout: 把所有的nodes的feature集合起来代表整个graph;

GNN图神经网络_第1张图片
Neural Network for Graphs(NN4G):

原文地址:LINK

对于输入层,假设有五个节点,其中,vi表示节点,xi表示每个节点对应的特征信息。

GNN图神经网络_第2张图片

随后通过隐藏层进行特征学习并更新每个节点的特征信息,更新过程如下:使用一个embedding matrix得到h;

GNN图神经网络_第3张图片

随后对于其他隐藏层,在第0层的基础上做Aggregation,先将节点邻居的特征加起来,乘上一个权重W,然后再加上节点本身的特征。

GNN图神经网络_第4张图片

在叠加了多层之后,就可以对节点特征信息进行Readout,来代表整个图的特征信息,做法如下:将每个节点对应每一层的特征信息相加求平均值,再乘上权重并相加,就得到最后的结果y。

GNN图神经网络_第5张图片
DCNN (Diffusion-convolution neural network):
GNN图神经网络_第6张图片

最底层为输入层,第0层统计了距离X3为1的点的特征,第1层统计了距离X3为2的点的特征,注意第2层的也采用了输入层的feature;最后将各层的feature进行叠加,经过transform得到y;

GNN图神经网络_第7张图片
GAT(Graph Attention Network):

原文地址:LINK

参考文章:LINK

图注意力网络,它是一种新颖的神经网络架构,可以在图结构数据上运行,利用掩蔽的自注意力层来解决基于图卷积或其近似的先验方法的缺点

GNN图神经网络_第8张图片
GNN图神经网络_第9张图片

h表示每个节点的特征信息,过一个隐藏层之后,得到一层新的节点特征h'

GNN图神经网络_第10张图片

特征信息的更新如下:

  1. 为了获得足够的表达能力,将输入特征通过至少一个可学习的线性变换,转换为更高层次的特征Wi

  1. 通过一个注意力机制,计算得到一个注意力系数:

GNN图神经网络_第11张图片

eij 表示节点j 的特征对节点i 的重要性。a表示注意力机制,是一个单层前馈神经网络。

  1. 对节点的每一个邻居计算一个注意力系数(邻居节点对该节点的重要性),然后使用softmax进行归一化处理。

  1. 得到归一化的注意力系数之后,再通过对邻接节点特征的线性组合经过一个非线性激活函数来更新节点自身的特征作为输出:

GNN图神经网络_第12张图片

Spectral based GNN:

这种思路就是希望借助图谱的理论来实现拓扑图上的卷积操作。从整个研究的时间进程来看:首先研究GSP(graph signal processing)的学者定义了graph上的Fourier Transformation,进而定义了graph上的Convolution,最后与深度学习结合提出了Graph Convolutional Network;

参考链接:LINK

过程:(1)定义graph上的Fourier Transformation傅里叶变换(利用Spectral graph theory,借助图的拉普拉斯矩阵的特征值和特征向量研究图的性质);(2)定义graph上的convolution卷积;

拉普拉斯矩阵:也叫做导纳矩阵、基尔霍夫矩阵或离散拉普拉斯算子,主要应用在图论中,作为一个图的矩阵表示。对于图 G=(V,E),其Laplacian 矩阵的定义为 L=D-A,其中 L 是Laplacian 矩阵, D=diag(d)是顶点的度矩阵(对角矩阵),d=rowSum(A),对角线上元素依次为各个顶点的度, A 是图的邻接矩阵;频域卷积的前提条件是图必须是无向图,只考虑无向图,那么L就是对称矩阵。

GNN图神经网络_第13张图片

因为拉普拉斯矩阵是对称矩阵,可以进行特征分解,而且由于卷积在傅里叶域的计算相对简单,为了在graph上做傅里叶变换,需要找到graph的连续的正交基对应于傅里叶变换的基,因此要使用拉普拉斯矩阵的特征向量。所以GCN要用拉普拉斯矩阵。

ChebNet是利用Chebyshev多项式拟合卷积核的方法,来降低计算复杂度。

GCN:

原文地址:LINK

GCN是一个神经网络层,它具有以下逐层传播规则:

GNN图神经网络_第14张图片

˜A = A + I,A为输入图的领接矩阵,I为单位矩阵;

˜D为˜A的度矩阵,˜Dii = ∑j ˜Aij;

H是每一层的特征,对于输入层H = X;

σ是非线性激活函数;

W为特定层的可训练权重矩阵;

经过多层GCN逐层传播,输入图的特征矩阵由X变为Z,如下图:

GNN图神经网络_第15张图片

最后关于GNN的roadmap和总结:

GNN图神经网络_第16张图片
GNN图神经网络_第17张图片

你可能感兴趣的:(人工智能)