如何处理Pytorch Geometric中未标记的节点?

Kin*_*d57 5 pytorch pytorch-geometric

我自己有一个数据集,该数据集包含两个类,比方说0和1。此外,还有很大一部分类的节点未标记。我的目标是使用 GCN 预测这些未标记的节点。但我对如何处理 Pytorch Geometric 中这些未标记的节点感到困惑。

据我所知,我可以将节点标记为 3 类:0、1 和未知。但如果我这样做,这意味着我试图将数据集分为三类?(但这不是我想要的,因为未知不是一个类)。

处理这些节点的另一种方法是忽略它们,只需在标记的节点上运行 PyG 即可。但这样看来,这些未标记的节点(具有特征)在数据集中似乎没有用处?

sha*_*ala 2

这很大程度上取决于您的用例和数据!

案例 1 - 图自动编码器

对于本例,我们假设任务是查找相似的推文。实现此目的的一种方法是训练图自动编码器(参见示例)。这种方法是完全无监督的,因此不需要标记任何数据。

生成的模型应该能够为每个节点(在本例中为每条推文)生成嵌入,以便相似推文之间的距离低于非相似推文之间的距离(例如通过余弦距离测量)。

案例 2 - 半监督 GCN

另一种情况是将推文分类为advertisementvs. non-advertisement。由于 GCN 背后的想法是以半监督的方式进行训练,因此只为某些推文添加标签是没有问题的。

为了告诉 PYG 哪些有标签并且应该用于训练,您可以定义一个train_mask. 从技术上讲,所有缺少标签的节点仍然需要一个可以设置为 -1 的 y 值。

来源及制作人员