基础图卷积神经网络与GraphSage的区别及相关技术问题咨询
1. 基础GCN与GraphSage的核心区别
二者的核心差异可以分为3个核心维度:
- 学习范式差异:基础GCN是*直推式(transductive)学习,训练阶段需要用到全图所有节点、边的结构信息,无法直接泛化到训练阶段未见过的新节点;GraphSage是归纳式(inductive)*学习,训练阶段只学习邻居节点的聚合规则,不需要提前获取全图信息,可直接对新增节点生成表征。
- 聚合逻辑差异:基础GCN基于图拉普拉斯矩阵做归一化的加权平均聚合,聚合权重是基于节点度固定计算的,没有可学习参数;GraphSage支持自定义可学习的聚合函数,可选均值聚合、池化聚合、LSTM聚合等多种实现,灵活性更高。
- 大图适配性差异:基础GCN需要遍历目标节点的所有邻居节点计算表征,节点度较高时极易出现显存溢出问题,仅适合小规模图;GraphSage采用固定大小的邻居采样策略,不管节点原始度数多少,每次仅采样固定数量的邻居参与计算,可适配大规模工业级图场景。
2. 无监督学习场景的适用性与对应损失函数
GraphSage更适配无监督学习场景。基础GCN的无监督实现通常依赖全图邻接矩阵重构损失,必须用到全图结构信息,无法扩展到大图,也不能处理训练阶段未出现的新节点,无监督场景的落地限制极多。
GraphSage的无监督损失基于图结构的邻近性设计,核心逻辑是让图上相邻的节点表征相似度更高,不相邻的节点表征相似度更低,具体采用带负采样的交叉熵损失,定义如下:
对于任意目标节点u,其正样本为随机游走采样得到的邻近节点v,负样本为k个与u无连接的随机采样节点u_n,损失函数表达式为:
L(u, v) = -log(σ(z_u^T z_v)) - k·E_{u_n ~ P_n(u)} log(σ(-z_u^T z_{u_n}))
其中z_u为节点u经过GraphSage编码器输出的表征向量,σ为sigmoid激活函数,P_n(u)为负样本采样分布,工业实现中通常按节点度的幂律分布做负采样。
3. 两种方法的原始基础论文信息
- 基础GCN原始论文:
标题:Semi-Supervised Classification with Graph Convolutional Networks
发表会议:ICLR 2017
作者:Thomas N. Kipf, Max Welling - GraphSage原始论文:
标题:Inductive Representation Learning on Large Graphs
发表会议:NeurIPS 2017
作者:William L. Hamilton, Rex Ying, Jure Leskovec
内容的提问来源于stack exchange,提问作者Omar Rafique
相关产品推荐
相关产品推荐

