Skip to content
知识

/knowledge/graph-neural-networks

图神经网络

神经网络喜欢网格——图像里的像素、序列里的词。但世界上有很多东西是图,根本没有网格。图神经网络通过让每个节点倾听它的邻居,直接在那种连接结构上学习。

学于
图神经网络进阶 · 图上的深度学习
时间
深度学习与图
应用于
在关系型数据上学习
阅读 / 复习
约 14 分钟阅读2026-06-26

深度学习靠利用结构征服了图像和文本——像素的网格、 词的序列。但有海量重要的数据既不是网格也不是序列;它是:人连着人、账户连着交易、分子、知识。图神经网络(GNN)正是为这个而生的深度学习架构——它们直接在图的连接结构上学习,靠一个 看似简单的想法:每个节点通过倾听它的邻居来更新对自己的理解,一遍又一遍。

它是这一节里已有的两页天然的交汇点——研究图结构的网络分析,与学习表示的深度学习——而且是一个真正现代的工具。这一页讲为什么 普通网络不适合图、核心处的消息传递机制、GNN 实际学到了什么,以及它在哪里见效。

01

在连接的数据上学习

其承诺是把深度学习的威力——自动学习有用的表示——用到意义存在于其连接之中的数据上。经典 的网络分析页用手工计算结构特征(度、 中心性、社群);而 GNN 从图中出每个节点正确的表示,把一个节点自己的特征与它连接的 模式结合起来。这是「手工特征 → 学习特征」的飞跃,用到了关系型数据上。

02

为什么网格与序列不适合

CNN 之所以奏效,是因为图像有固定的网格——每个像素 在相同的位置上有相同数量的邻居,所以一个滤波器可以在它上面滑动。RNN/Transformer 之所以奏效,是因为 文本是一个有序的序列。图两者都不是:节点的邻居数量千差万别,而且它们之间没有 自然的顺序。你没法在拥有任意、不规则连通性的东西上滑动一个固定的滤波器。

所以 GNN 需要一种置换不变的操作(答案不能取决于你列出一个节点邻居的任意顺序), 并且对任何数量的邻居都适用。那个操作就是消息传递。

03

消息传递:核心机制

(几乎)每个 GNN 的核心,是一个三步的循环,每一层重复一次:

节点消息 →聚合(求和/平均/取最大)+ 更新
消息传递,一层。中心节点从每个邻居收集一条「消息」(它当前的特征),用一个置换不变的操作(求和/平均/取最大)把它们聚合起来,再把它与自己之前的状态结合来更新自己的表示。堆叠层数,信息就从越来越远的地方流过来。
  1. 消息——每个邻居发出它当前的特征向量(可选地经过变换)。
  2. 聚合——节点用一个置换不变的函数(求和、平均或取最大——这样顺序无关、任何数量 都行)把所有进来的消息合起来。
  3. 更新——节点把聚合后的消息与自己之前的状态结合(经过一个小的神经网络),形成它 新的表示。
hv(k+1)=UPDATE(hv(k),  AGGREGATEuN(v)(hu(k)))h_v^{(k+1)} = \text{UPDATE}\Big(h_v^{(k)},\; \underset{u \in N(v)}{\text{AGGREGATE}}\big(h_u^{(k)}\big)\Big)

一层让每个节点看到它直接的邻居;堆叠层数,信息就传播得更远——经过 kk 层后,一个节点的表示反映了它的 kk 跳邻域。 信息在图上的这种扩散,就是整个诀窍。

04

GNN 学到了什么

输出是为每个节点学到的一个嵌入——一个同时捕捉节点自身特征它在图 结构中位置/角色的向量。两个特征相似邻域相似的节点,最终会得到相似的嵌入。这就是强大 之处:模型从数据中发现结构的哪些方面重要——而不是你去猜该用哪种手工的中心性度量。那些嵌入随后送进一个最终层,去做 你关心的任何任务。

05

GCN、GraphSAGE、GAT

流行的 GNN 变体都是同一个消息传递的想法,只是聚合那一步不同:

  • GCN(图卷积网络)——对邻居的消息求平均(一个归一化的均值)。简单、奠基性的版本。
  • GraphSAGE——使用可学习的聚合,而且关键地采样固定数量的邻居,所以它能 扩展到巨大的图,并能泛化到训练时未见过的节点。
  • GAT(图注意力网络)——施加注意力,让节点对某些邻居赋予比其他更高的 权重(不是所有邻居都同等相关)——就是那个驱动 Transformer 的注意力想法,用在图上。

那个统一的视角值得记住:每个 GNN 层都只是「让节点与它的邻居交谈」,而变体只在如何倾听上不同。

06

它用来做什么

GNN 处理图上三种自然的任务:

  • 节点分类——根据一个节点的特征和邻域给它打标签(这个账户是欺诈的吗?这篇论文是 什么主题?)。
  • 链接预测——预测缺失的或未来的边(这两个人会连上吗?——好友/商品推荐以及补全知识图谱背后的引擎)。
  • 图分类——给整张图打标签(这个分子有毒吗?)。

07

诚实的局限

GNN 很强大,但有特征性的失败模式:

08

它在我工作中的体现

09

60 秒回顾

消息传递框架、GCN/GraphSAGE/GAT 变体,以及过平滑的局限,反映了当前的 GNN 参考文献以及深度学习 课程。