图神经网络是专为处理图结构数据而设计的深度学习模型,在这种数据结构中,信息以节点和边的形式表示。与处理固定大小输入的传统神经网络不同,GNN 能够捕捉实体之间的关系、依赖性和相互作用。
- 它们运行于由节点和边构成的图之上。
- 信息通过消息传递步骤在连接的节点(邻居)之间传递。
- 适用于社交网络分析、分子预测和推荐系统等任务。
- 它们既能学习节点级模式,也能学习图级模式。
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251119120702417973/graphconvolutions.webp">graphconvolutionsGNN
这张图展示了 GNN 如何处理图:节点特征经过带有正则化的堆叠图卷积层,逐步细化表示形式,直到模型输出预测结果(例如节点之间连接的概率)。
GNN 架构
我们可以通过不同的方式来构建图神经网络,具体取决于它们如何聚合信息和更新节点表示。其中最常用的架构之一是 图卷积网络,它将卷积的概念从图像扩展到了图结构数据。
图卷积网络 (GCN)
用于图分类的基础 GCN 通常包含三个主要层:
- 卷积层: 从每个节点的邻居聚合特征。
- 激活层: 应用 ReLU 等非线性函数。
- 输出层: 生成图的最终预测结果。
GCN 易于实现且对大图非常高效,但它们无法使用边特征,且不执行完整的消息传递,这限制了它们对复杂图关系进行建模的能力。
消息传递神经网络 (MPNNs)
MPNNs 通过同时支持节点和边特征克服了这些局限性。在每次迭代中:
- 节点从其邻居收集消息。
- 聚合后的信息更新每个节点的嵌入。
- 该过程重复进行多轮。
MPNNs 提供了更丰富的表示形式,并支持节点分类、边分类和链接预测,使其比基础 GCN 更加灵活和具有表现力。
> GCNs 和 MPNNs 代表了处理图数据的两种核心方式,它们共同构成了 GNN 的架构。
GNN 如何工作
图神经网络通过允许图中的节点通过一种称为 消息传递 的过程与邻居共享信息来工作。由于图是不规则的且非结构化的,GNN 会对这些数据进行组织,以便深度学习模型能够提取有意义的模式。
- 初始化: 每个节点从一个描述其属性(例如用户属性或原子特征)的特征向量开始。
- 消息传递: 节点在层之间与邻居共享信息,允许每个节点从周围的图结构中学习上下文。
- 更新: 在聚合之后,节点使用神经网络层更新其特征向量。
GNNs 使用稀疏运算,通常只需要几层,这使得它们在处理关系型和互连性数据时非常高效。
图神经网络的类型
图神经网络有多种形式,每种都旨在以独特的方式处理图结构数据。不同的 GNN 架构侧重于如何在节点和边之间聚合、传播或转换信息。
1. 图卷积网络 (GCN)
!420046983GCN
- 将卷积的概念从网格数据扩展到图。
- 通过聚合邻居的特征来更新节点的表示。
- 通过多个堆叠层捕捉局部和全局图信息。
- 广泛用于节点分类和标签预测等半监督任务。
2. 图注意力网络 (GAT)
- 在消息传递过程中引入了注意力机制。
- 根据相关性为相邻节点分配不同的重要性权重。
- 更好地处理连接不均匀或复杂的图。
- 适用于社交网络、引用图和推荐系统。
3. 图循环网络 (GRN)
- 将图结构与循环神经网络概念相结合。
- 旨在处理时间序列或演化的图数据。
- 维护和更新隐藏状态以跟踪随时间的变化。
- 适用于动态图,如交通流量、通信模式或社交互动。
4. 基于空间的 GNN
- 直接在空间域中对图的拓扑结构进行操作。
- 基于每个节点的物理或结构邻域传递消息。
- 对于大型现实世界的图来说直观且高效。
5. 基于频谱的 GNN
- 使用谱图理论和图傅里叶变换进行卷积。
–