图神经网络GCN,GraphSAGE,GAT简述

图的两大要素:node(顶点),edge(边,即顶点与顶点之间的连接)
GCN,GraphSAGE,GAT均是在Weisfeiler-Lehman (WL-1)算法的基础上修改了每个iteration顶点更新的方程,都是通过使用与某个顶点相连的顶点来不断更新该顶点的特征向量

Weisfeiler-Lehman (WL-1)算法
图神经网络GCN,GraphSAGE,GAT简述_第1张图片

GCN
SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS
GCN将for循环的hash函数换成了其他的函数,用来聚合与正在更新的该顶点相连的顶点们的信息,具体的函数如下
图神经网络GCN,GraphSAGE,GAT简述_第2张图片
参数解释
(W:时间点l时权重,在时间l时对于所有顶点的更新使用的该权重都相同,且该权重为可训练,训练的方法是保持图中的边(edge)不变,不断更新图中的顶点(node),使得最后一次更新的各顶点输出根据边(edge),将相连的两个顶点的特征向量越来越相似,即欧式距离越来越接近于0,这样损失函数构建出来了
Ni为与图中第i个视频特征hi相连的顶点,在优化过程中图中的顶点与顶点之间的连接保存不变
cij为 与顶点hi相连顶点的个数 乘以 与顶点hj相连顶点的个数 的根号
sigma为可微分的非线性函数(如sigmoid)
上面的式子意思就是使用与某个顶点相连的顶点来更新某个顶点,GraphSAGE,GAT的总体思想也是这样)
PS:上面更新顶点的式子中只是聚合了与正在更新的该顶点相连的顶点,不包括该顶点本身,文章的最后也把该顶点也加进了式子的计算,发现在增加图更新的次数时,加了自己本身的顶点的GCN训练图数据集的时候准确率不会骤降,相反不加会随着更新次数的增加准确率会骤降

GAT
GRAPH ATTENTION NETWORKS
GAT在GCN上添加了一个注意力系数然后再使用了多头注意力机制(multi-head attention),效果优于GCN和下面的GraphSAGE;GAT替换hash函数的函数如下
在这里插入图片描述
在这里插入图片描述
参数解释
(αij: 顶点特征hi与顶点特征hj的相关系数
||: concat
a: 可训练权重,左上角T为转置的意思)

GraphSAGE
GraphSAGE总体的话就是使用其他方法聚合周围的顶点(如pooling,lstm,average),再与正在更新的该顶点进行concat,再做一个tranform;替换hash函数的函数如下
在这里插入图片描述

(AGGREGATE为聚合与hi相连顶点的特征的函数,可为池化,LSTM,求平均)

你可能感兴趣的:(图神经网络)