GraphSAGE与GCN对比
GraphSAGE(Graph Sample and Aggregated)相对于传统的GCN(Graph Convolutional Network)在图卷积网络领域引入了一些创新,主要集中在节点采样和信息聚合方面:
一方面是通过采样邻居的策略将GCN由全图(full batch)的训练方式改造成以节点为中心的小批量(mini batch)训练方式,这使得大规模图数据的分布式训练成为可能;
另一方面是该算法对聚合邻居的操作进行了拓展,提出了替换GCN操作的几种新的方式。
朴素GraphSAGE
K:遍历的深度
v ∈V 表示遍历所有的节点
u∈N(v)表示v的neighbor。将v所有的邻居u的向量表示hk-1u做一个聚合,得到第k层聚合的邻居的特征向量:hkN(v)。
然后将得到的第k层的邻居的特征的向量hkN(v)与当前节点v的第k-1层的特征向量拼接在一起,乘一个权重,乘激活函数,得到当前节点v在第k层的特征向量表示。
第7行表示对节点的特征向量做一个归一化处理。
MiniBatch版本
GCN是使用全图的信息。小批量就是使用子图而不是全部的图。
第k层:最终选择的minibatch版本
B迭代的过程和正常理解相反:如果一共K的深度为2,则初始状态为B2, 然后为B1, 最后为B0。
1行将初始状态赋值为Bk
2行遍历所有的深度。遍历完一层少一层
3行将Bk赋值给Bk-1,方便后续B^k-1操作。
4行将Bk-1聚合自己的邻居信息(如果又),得到新的Bk-1。
采用minibatch版本
train_mask:训练集的mask向量,标识哪些节点属于训练集。