Thomas N. Kipf,SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS
公式
核心公式
1、带有正则项的损失函数公式:,其中
表示针对图中有标签部分的监督损失,
为正则化项,
是权重因子,
可为类神经网络的可微函数,
表示无向图
的非归一化图拉普拉斯矩阵,其中 V 为含 N 个节点
的节点集,E 为边集
,
为邻接矩阵(二值或加权),
为度矩阵。好像这里f(X)是一个数而不是向量。
2、层间传播规则的公式:,其中,
为添加自连接的无向图邻接矩阵(
为单位矩阵),
,
为层专属可训练权重矩阵,
为激活函数,
为第
层激活矩阵,且
。这个公式的推导需要看参考文献。
3、谱卷积公式:,U 为归一化图拉普拉斯矩阵
的特征向量矩阵,
为特征值对角矩阵,
为信号 x 的图傅里叶变换。
可视为关于 L 特征值的函数
。
Petar Veliˇckovi´c,GRAPH ATTENTION NETWORKS
公式
核心公式
1、注意力系数:,其中
为一个实数,它表示节点j的特征对节点i的重要性,
被称为注意力系数,文章中提到
,
为节点i的一阶邻域(包含节点i自身),也就是说j只能是图结构中与i直接相连的节点以及i自身;
表示图中节点i的特征向量它的长度为F,即有F个特征,
同理;W为矩阵,它的目的是为节点的特征向量做线性变换让特征向量的长度变为
,文章中提到对所有的节点共享相同的线性变换即共享相同的W;
和
是形状为
的列向量;a是一个函数。
2、为使不同节点的注意力系数具有可比性,通过 softmax 函数对所有邻域节点j的系数进行归一化:
,其中是归一化后的值,它是一个实数。
3、这里将式子1和2合在了一起表达,式子1的a是一个单隐层的前馈神经网络,输入的特征数为,输入经过一个线性层后再经过激活函数后直接输出,合并的式子如下:
,其中,上标T表示转置,∥表示拼接操作。
4、注意力机制的步骤:根据3式得到归一化的注意力系数后,通过对对应特征进行线性组合,然后再应用非线性激活函数σ,便可以得到每个节点的最终输出特征:,其中
是列向量,长度为
。
5、将式子4的注意力机制扩展为多头注意力:,其中,∥表示拼接操作,
是由第k个注意力机制
计算得到的归一化注意力系数,
是对应输入线性变换的权重矩阵。需注意,在该设置下,模型最终输出的每个节点特征维度为KxF′(而非F′)。
6、若在网络的最终(预测)层使用多头注意力,拼接操作不再适用。此时,我们对各注意力头的输出进行平均,并延迟应用最终的非线性激活函数(分类任务中通常为 softmax 或逻辑 sigmoid 函数):
论文整体流程
注意:1、GAT模型,只需输入图结构(邻接矩阵)以及图中每个节点的特征向量,便可以进行做分类任务。
1、注意力系数的计算。根据核心公式3可以得到与i节点相邻节点和i节点自身对i节点的注意力系数,只需要输入i节点和其他节点便可以得到其他节点对i节点的注意力系数。
2、聚合特征。有了注意力系数后,就要对每个节点进行聚合特征,对于i节点聚合后的特征根据核心公式5得到,需要输入注意力系数和与i节点相邻的节点以及i节点的特征。聚合特征完成之后每个节点都有了新的特征,但是特征变成了KxF′的形状,注意特征要写为列向量的形式而不是矩阵的形式,此时的特征向量的长度为K乘以F′。
3、输出层。根据公式6得到分类结果,公式6中的F′要等于任务的类别数,这样输出就是类别数长度的向量。
草稿:
为了以后方便描述图神经网络的网络结构,可以借鉴下图的描述方法。