本文主要是介绍PyG将同构模型转化为异构网络模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对于同构图来讲,我们可以使用通用的 GCN
、GAT
等图神经网络作为消息传递函数来更新每个节点特征,但是对于异构图来讲,他有不同的节点类型以及边类型,所以使用同构网络模型显然是不能够处理异构数据的。
对于这种问题,一般有两种解决方式:
- 将同构网络模型转化为异构网络模型
- 将异构图数据转化为同构图数据
关于这两种解决方式都有论文给出了详细证明以及操作,对于本文,我们只谈第一种策略,就是如何使用 PyG
将我们的同构网络模型转化为可以处理异构图数据的异构网络。
PyG中
to_hetero() 函数介绍:
该函数可以将同构网络转化为异构网络
这里给出了异构网络的通用消息传递函数,其实和同构网络的消息传递机制差不多,对于同构网络它是将所有邻居节点的特征信息进行聚合映射,但是异构图同一节点存在很多种不同类型边,也就是不同种类的邻居,他会基于同一种边(也就是一类节点类型邻居)执行一种消息聚合方式,这样最终就会得到边的类型个不同的特征向量,然后对不同边关系得到的特征向量做特征聚合。
这篇关于PyG将同构模型转化为异构网络模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!