训练 - 测试拆分如何适用于图神经网络

数据挖掘 训练 图神经网络 推理
2022-02-14 00:10:21

我最近开始研究 GNN。到目前为止,我已经介绍了GCNGraphSage 。但是我对测试发生时的过程感到困惑。 现在假设在上图中,我使用节点作为训练集和测试集,如图所示。假设我将 GraphSage 模型用于监督节点分类任务,现在在训练期间,我为子图提供蓝色节点,权重(参数)使用该子图中节点的邻域信息(蓝色)。 但在测试期间,我想找到绿色节点的标签。因此,在这段时间内,GraphSage 的前向传播将使用训练期间计算的权重和测试节点的邻域信息来执行。
Graph Train - 测试集


我的疑问:所以我感到困惑的部分是,在测试期间,算法是否仅将绿色节点(测试集)视为邻域,或者它还考虑了蓝色节点的(因为它是连接的,如图所示)信息计算节点嵌入的前向传播步骤?
下面附上论文中提到的Graphsage的前向传播算法。这可能是一个愚蠢的问题,但由于我是新手,所以在训练和测试期间我很难理解邻域的定义。如果我错误地陈述了任何观点,请纠正我。
在此处输入图像描述

1个回答

该算法是否仅将绿色节点(测试集)视为邻域,还是也将蓝色节点视为邻域?

它确实同时考虑了蓝色节点和绿色节点。

请注意,GNN 处理转导学习,在训练期间可以看到测试数据(此处的节点)(不知道标签)。您可能想到的是归纳学习(训练集和测试集完全分离)。

假设我将 GraphSage 模型用于监督节点分类任务,现在在训练期间,我为子图提供蓝色节点,权重(参数)使用该子图中节点的邻域信息(蓝色)。

这是不对的,在训练期间,您提供了整个图(蓝色节点和绿色节点以及所有 egdes),但您只提供了训练集中节点的标签(训练期间测试集中节点的标签是未知的)