大量的现实世界数据集以异构图(Heterogeneous Graph) 的形式存储,这促使了在PyG中引入专门的功能。例如,大多数推荐系统中的图(如社交图)都是异构图,它们存储着关于不同类型的实体及其不同类型关系的信息。本教程介绍了如何将异构图映射到PyG中,以及如何将其作为输入用于图神经网络模型。
异构图附带有不同类型的节点和边的信息。因此,单一的节点或边特征张量无法容纳整个图的所有节点或边特征,因为它们的类型和维度不同。相反,节点和边各自需要指定一组类型,每种类型都有自己的数据张量。由于数据结构的不同,消息传递的公式也相应发生了变化,从而允许根据节点或边的类型计算消息和更新函数。
1. 示例
作为一个指导示例,我们来看一下来自数据集套件的异构ogbn-mag网络:
给定的异构图有1,939,743个节点,分为四种节点类型:作者、论文、机构和学科领域。图中还有21,111,007条边,边的类型也有四种:
- writes: 作者写特定的论文
- affilia