图神经网络的训练方式分类理解(Inductive learning VS Transductive learning)

一般在看paper的时候,论文里面实验部分会提到本文的模型采用的是Inductive还是Transductive,例如下图(JK-NET):

图神经网络的训练方式分类理解(Inductive learning VS Transductive learning)_第1张图片
那么具体什么是Inductive和Transductive?

图数据和其它数据不同,图数据中每个节点可以通过边的连接来利用其邻域节点的信息,这也就导致了一个问题:如果训练集上的节点通过边关联到了预测集或者验证集的节点,那么在训练的时候能否用它们的信息呢?

Transductive

如果训练时用到了测试集或验证集样本的信息(或者说,测试集和验证集在训练的时候是可见的), 那么这种学习方式就叫做transductive learning。我们经典的图卷积开篇之作中GCN使用的就是Transductive,他在训练的时候输入了整个邻接矩阵的信息,这也就保留了训练集和测试集以及验证集之间的边,聚合了这些节点的特征信息。

Inductive

如果训练时没有用到测试集或验证集样本的信息(或者说,测试集和验证集在训练的时候是不可见的), 那么这种学习方式就叫做Inductive learning。这其中的代表为GraphSAGE,在具体实现中,训练时它仅仅保留训练样本到训练样本的边,删除了训练样本和测试样本以及验证样本的边。inductive learning 的优点是可以利用已知节点的信息为未知节点生成Embedding。

下图为GAT模型实验部分设置:
图神经网络的训练方式分类理解(Inductive learning VS Transductive learning)_第2张图片
而有些论文则没有说明是不是inductive的,此时就需要我们自己分析,就以FastGCN来说,它是通过对训练集节点进行采样来进行聚合信息的,那么其在训练的时候就没有用到非训练集的节点,因此是Inductive的。

最后插一幅别人的很好的图,图中有错字影响不大:
在这里插入图片描述

参考来自DataWhale

你可能感兴趣的:(笔记,GNN)