图神经网络:从原理到计算的全部过程+
图是由顶点和边组成的一种数据结构,可分为无向图和有向图(不过在一般的图神经网络中无向图用的会多)图包含顶点和边无向图:边没有方向的图称为无向图有向图:边有方向的图称为有向图。
一、图神经网络:
图神经网络(Graph Neural Networks,GNNs)是一类专门设计用于处理图结构数据的深度学习模型。它的目标是学习图中节点(Node)、边(Edge)或整个图(Graph)的低维向量表示。它的核心机制: 消息传递(Message Passing) 或 邻居聚合(Neighbor Aggregation)。节点通过迭代地聚合来自其邻居节点的信息来更新自身的表示。
什么是图?
图是由顶点和边组成的一种数据结构,可分为无向图和有向图(不过在一般的图神经网络中无向图用的会多)

图包含顶点和边

无向图:边没有方向的图称为无向图

有向图:边有方向的图称为有向图
二、背景:
为什么在有其他深度学习模型之后,还需要GNN
1、图数据的普遍性: 现实世界中许多问题本质上具有图结构
社交网络: 用户是节点,关注/好友关系是边。
分子化学: 原子是节点,化学键是边。
推荐系统: 用户和商品是节点,交互(购买、点击)是边。
知识图谱: 实体是节点,关系是边。
交通网络: 车站/路口是节点,道路/线路是边。
计算机网络: 设备是节点,连接是边。
2、传统神经网络的局限性:
卷积神经网络(CNN): 在规则网格结构(如图像像素)上表现出色,但无法直接处理不规则、大小可变、非欧几里得结构的图数据。图节点没有固定的邻域顺序和大小。
循环神经网络(RNN): 擅长处理序列数据,但难以有效建模图中复杂的、多对多的依赖关系和拓扑结构。
总结:传统的神经网络主要用于处理向量或矩阵形式的数据,无法直接处理图数据。
3、图嵌入方法的局限性:
传统的图嵌入方法(如 DeepWalk, node2vec)通常是无监督的,学习到的嵌入是固定的(Transductive),难以融入节点特征,且不易适应不同的下游任务。
因此,GNN 应运而生,旨在克服这些限制,提供一种端到端的、可学习的、能够有效利用图结构和节点/边特征信息的深度学习框架。GNN通过将每个节点的特征信息和节点之间的关系结合起来,利用节点之间的连接信息来推断节点的特征,从而实现对图数据的学习和预测。
三、GNN 的核心思想与工作原理
一、图神经网络通常包括以下几个核心组件:
1. 节点表示学习:学习每个节点的特征表示,通常通过聚合节点的邻居节点特征来更新节点自身的特征表示。
2. 图结构传播:利用节点之间的连接信息来传播节点特征,从而实现信息的传递和聚合。
3. 图卷积层(GCN):是图神经网络中最常用的一种层结构,能有效地在图数据上进行特征提取和学习。
4. 池化层和输出层:用于最终的节点分类或图级别的任务输出。
二、图神经网络的整个流程:
我们把图想象成一个社交网络:每个人是一个“节点”,朋友之间的关系是“边”。在这个网络中,一个人的性格、兴趣、行为往往不仅取决于他自己,也受到他朋友的影响。GNN 就是模拟这种“人以群分”的思维方式,来学习每个节点的特征表示。
一、节点表示学习:从邻居那里“借智慧”
在传统的机器学习中,我们通常用一组数字(比如年龄、职业、收入等)来描述一个人。但在图结构中,除了这些信息,我们还可以利用一个人的朋友圈来更好地了解他。
GNN 做的事情就是:
- 每个节点先有一个初始特征(比如用户的年龄、性别等)。
- 然后它会去查看自己的邻居节点有什么样的特征。
- 把这些邻居的信息“汇总”起来,结合自己的原始信息,更新自己的新特征。
这个过程有点像你在学校里认识新同学:你不仅看他自己怎么说,还会打听他的朋友都是什么样的人,从而更全面地了解他。
二、图结构传播:让信息在整个图中流动
光看直接的朋友还不够,有时候我们也想知道朋友的朋友、朋友的朋友的朋友是什么样的人。GNN 通过多层网络结构,一层一层地向外扩散,让每个节点都能“看到”更远的地方。
这就像在社交网络中,信息会通过朋友传给朋友的朋友,最终传遍整个网络。GNN 利用这种“消息传递”的机制,让图中每个节点都能吸收周围环境的信息,形成更加丰富的特征表示。
三、图卷积层(GCN):GNN 中的“大脑”
图卷积层(Graph Convolutional Layer)是 GNN 中最常用的一种结构,你可以把它理解为 GNN 的“大脑”,负责做最关键的决策:如何聚合邻居的信息,如何更新自己的特征。
它的工作流程大致如下:
- 收集邻居信息:找出当前节点的所有邻居。
- 加权平均或求和:对邻居的信息进行加权或平均,有时也会使用注意力机制来判断哪些邻居更重要。
- 加上自己的信息:把邻居的信息和自己的原始特征结合起来。
- 经过非线性变换:使用激活函数(如 ReLU),让模型能够捕捉更复杂的模式。
这个过程会在多个图卷积层中不断重复,每一层都让节点学到更深层次、更有意义的特征。然而实际上这个层一般都在2-5层,如果多了反倒效果不好,因为你可以想象,一个节点聚合了5层后,那可以聚合到特别远的节点特征了,所有的节点都这样操作后,基本上所有特征都会很相似了,没什么区分性,导致过平滑。
四、池化层与输出层:从节点到整体
当我们已经通过图卷积层学到了每个节点的高级特征之后,下一步就是根据任务目标来做输出了:
- 如果是节点级别的任务(比如预测某个用户是否会购买某商品),我们可以直接对每个节点的特征进行分类或回归。
- 如果是图级别的任务(比如判断一个分子是否有毒),我们需要把所有节点的信息“压缩”成一个图的整体表示。这时候就会用到图池化层(Graph Pooling Layer),它类似于图像中的池化操作,但适用于不规则的图结构。
常见的图池化方法包括:
- 对所有节点特征取平均(Global Average Pooling)
- 取最大值(Global Max Pooling)
- 使用可学习的图粗化方法(Graph Coarsening)
最终,我们会把这些信息输入一个普通的全连接网络,输出我们的预测结果,比如类别标签或者数值预测。
四、GNN的不足之处
1、高阶关系建模能力不足
传统 GNNs 的邻域聚合机制本质上局限于一阶或二阶局部结构建模,难以捕捉节点间通过多跳路径或复杂子图形成的高阶依赖关系,具体表现如下:
结构表达能力受限:
传统 GNNs 的表达能力受限于图同构检验的阶数。一阶 GNN(如 GCN、GAT)对应 1-WL 检验,仅能区分节点邻域的一阶统计特征,无法辨别具有相同1 - 跳邻居分布但高阶结构不同的图。例如,环状图与链状图的节点度数分布可能相同,但环的拓扑结构(高阶特征)无法通过一阶聚合捕获。从数学本质看,GNN 的聚合操作等价于节点标签的迭代更新,而高阶结构(如三角形、子图同构)需要更高阶的标签传播机制。
计算复杂度指数增长:
显式建模 k 阶关系需构建 k 阶邻接矩阵,其存储与计算复杂度为 O(Nk)(N 为节点数),这在大规模图(如社交网络 N≈109)中不可行。尽管子图采样(如 GraphSAGE 的随机游走采样)可近似高阶邻域,但会引入偏差并丢失全局结构信息。
异构图与超图建模缺陷:
在异构图(含多类型节点 / 边)或超图(含高阶超边)中,传统 GNN 的统一聚合函数无法区分不同类型的交互。例如,知识图谱中 “作者 - 论文 - 机构” 的三元关系需结合领域知识进行权重分配,而 GAT 的注意力机制无法显式编码这种高阶语义关联。
2、图级表示学习的低效性
图分类任务要求将节点嵌入聚合为图级特征,传统 GNN 的池化策略存在以下核心缺陷:
结构信息丢失:
常用池化方法(如均值池化、Top-K 池化)仅对节点嵌入进行全局统计,忽略节点间的空间关系,导致图的全局结构特征(如连通性、社区划分)被严重稀释。例如,分子图的三维空间结构对药物活性至关重要,但均值池化无法捕捉原子间的空间排列关系。
层次化结构建模不足:
层次化池化方法(如 DiffPool)通过学习聚类分配矩阵生成粗粒度图,但聚类过程依赖启发式假设(如节点嵌入相似性),可能破坏图的层次语义。例如,社交网络中社区的多尺度特性(家庭→城市→国家)难以通过单一聚类矩阵准确建模。
过平滑问题:
深层 GNN 的多层聚合会导致节点嵌入趋同,即 “过平滑”(Over-Smoothing)现象。当图中存在长距离依赖时,深层网络的节点嵌入逐渐失去区分度,最终导致图级表示的判别力显著下降。
3、异质性与动态性处理缺陷
异质图建模偏差:
传统 GNN 假设图结构同构,对异质图(如节点特征维度不一致、边类型多样)的处理依赖特征对齐技巧(如跨类型权重矩阵),但无法解决根本的语义鸿沟。例如,在电商图中,用户点击行为(二值特征)与商品属性(高维文本特征)的融合缺乏理论框架,导致信息融合不充分。
动态图演化建模缺失:
传统 GNN 为静态模型,无法捕捉图结构随时间的动态变化(如边的增删、节点特征更新)。在时序图分类中,现有方法(如 GNN+LSTM)仅将时间视为额外维度,忽略了结构演化与节点动态的交互作用。例如,疫情传播网络中,节点流动性(特征动态)与接触网络(结构动态)的协同建模需要显式的时序依赖建模机制。
4、理论完备性与泛化能力瓶颈
归纳偏置不明确:
传统 GNN 的聚合函数设计(如均值、注意力)依赖经验启发,缺乏严格的理论支撑。例如,GCN 的归一化操作 虽被广泛使用,但其对模型泛化性的影响仍未得到充分理论分析。
分布外泛化失效:
传统 GNN 依赖独立同分布(IID)假设,当测试图的结构或节点特征分布与训练数据存在差异时(如小样本图、对抗扰动图),性能显著下降。例如,在对抗攻击下,通过微小扰动修改节点连接即可导致 GNN 分类错误。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)