中文精炼导读

核心观点

  • 这篇 Distill 交互式图解文章系统拆解了图神经网络(GNN)的构建模块与设计选择:许多系统(社交网络、分子、组织、引用、物理模型、交易)都能自然地表示成图,而传统神经网络只能处理固定大小、规则结构的输入(句子、图像、视频),GNN 是能天然处理图结构数据的神经网络家族。
  • 在图上计算有三大挑战:图缺乏一致结构(分子原子数、原子类型、连接数各异)、节点没有内在顺序(算法必须是"节点顺序等变的"——重排节点,表示也随之重排)、图可能非常大(好在自然图大多稀疏,边数随顶点数线性增长)。
  • 扩展卷积的两条路线:谱方法从图拉普拉斯 L=D-A 出发构造多项式滤波器(如 ChebNet),再演进到一阶近似的 GCN;空间方法直接在邻居上做聚合——GraphSAGE、GAT(注意力加权)、GIN(图同构)等,它们大多由相似构建块组合而成。
  • 许多 GNN 更新方程可以重写成稀疏矩阵-向量积(邻接矩阵对真实图通常稀疏),这让 GNN 能在 GPU 上高效向量化实现;正则化方面除了常规 Dropout,还有图特有的 DropEdge(随机删除整条边)。
  • 面向图级任务时,简单做法是聚合所有最终节点嵌入再过一个网络;更强大的池化技术包括 SortPool(顶点排序得到定长表示)、DiffPool(学习聚类、在粗化图上再跑 GNN)、SAGPool(按学习分数保留顶点)。
图上的典型任务
图上的典型任务

内容精讲

文章开篇说明动机:社交网络、分子、组织、引用网络、物理模型、交易——许多系统都能自然地用图表示。如何在其中推理和预测?一个思路是借鉴在其他领域表现良好的工具:神经网络在多种学习任务上展示了强大预测力,但传统神经网络处理的是固定大小和/或规则结构的输入(句子、图像、视频),无法优雅地处理图结构数据。GNN 则能天然地在图结构数据上运作:通过提取和利用底层的图特征,GNN 能比"孤立看待每个实体"的模型做出更明智的预测。文中也提到,图内核与随机游走曾是建模图数据最流行的方法,但 GNN 凭借更灵活地建模底层系统的能力,如今已基本取代了这些技术。

在深入模型之前,文章先讲清图带来的计算挑战。第一,图缺乏一致结构:以"预测分子是否有毒"为例,分子可能有不同数量的原子、不同类型的原子、每个原子有不同数量的连接、连接强度也不同——把图表示成可计算格式并非易事,最终表示常高度依赖具体问题。第二,节点顺序等变性:与图像中每个像素由绝对位置唯一确定不同,图的节点没有内在顺序;把图表示成向量需要固定节点顺序,但算法不应依赖这个顺序——若以某种方式重排节点,算法算出的节点表示也应相应重排。第三,可扩展性:Facebook、Twitter 这类社交网络有超过十亿用户;好在大多数自然图是稀疏的(边数随顶点数线性增长),这允许用巧妙的方法高效计算节点表示,且这些方法的参数量远小于它们处理的图。

图拉普拉斯矩阵 L = D - A
图拉普拉斯矩阵 L = D - A

问题设定部分给出了图的常用记号:节点分类、图分类、节点聚类、链接预测、影响力最大化等任务,而解决这些任务的常见前置步骤是"节点表示学习"——把每个节点映射为定长实值向量(表示/嵌入)。GNN 通常用迭代过程计算节点表示:h_v^(k) 表示节点 v 在第 k 次迭代后的表示,每次迭代相当于标准神经网络的一层。图 G 定义为节点集 V 加边集 E,每个节点可有个体特征 x_v(如彩色图像的像素特征就是 RGB 值)。

"把卷积扩展到图"是文章的核心章节。CNN 之所以强大,是因为图像本身可看作具有规则网格结构的图(像素是节点、RGB 值是节点特征);但普通卷积不是节点顺序不变的——它依赖像素的绝对位置。一种思路是对图做填充和排序来保证邻居结构一致(有人试过、有一定成功),但文章聚焦更通用强大的技术。谱方法从图拉普拉斯出发:给定图 G,先固定 n 个节点的任意顺序,构造 0-1 邻接矩阵 A 和度矩阵 D(D_v = Σ_u A_vu),则图拉普拉斯 L = D - A。拉普拉斯是微积分中拉普拉斯算子的离散对应物,只依赖图结构而非节点特征,出现在随机游走、谱聚类、扩散等许多图数学问题中。用拉普拉斯可以构造节点邻域上的多项式滤波器,正如 CNN 计算相邻像素上的局部滤波器——这就是 ChebNet 等谱卷积的源头;文章用一个"模拟元胞自动机(Game of Life)"的实验对比了谱方法与空间方法。

文章随后进入"现代 GNN":从谱方法的一阶近似得到 GCN(图卷积网络),再到更灵活的空间方法——GraphSAGE(采样并聚合邻居)、GAT(图注意力网络,用注意力机制给邻居加权)、GIN(图同构网络,与 WL 图同构测试相关)。这些变体看似多样,但都由相似的构建块组成:聚合邻居特征、变换特征、非线性激活。不同图类型(有向图聚合入/出邻居、时序图聚合过去/未来特征、异质图为每种节点/边类型学习不同聚合函数)只需在这些构建块上做简单变体。

面向图级任务(如预测分子毒性)时,简单方案是聚合所有最终节点嵌入再过另一个神经网络(PREDICT_G)。更强的池化技术包括:SortPool——对图的顶点排序得到定长、节点顺序不变的表示,然后应用任何标准网络;DiffPool——学习把顶点聚类、在簇的粗化图上再跑 GNN,直到只剩一个簇;SAGPool——用 GNN 学习节点分数、只保留分数最高的节点,迭代直到只剩一个。文章还给出实践要点:GNN 更新方程可重写为稀疏矩阵-向量积以在 GPU 上高效实现(如 GCN 可写为 h^(k) = D⁻¹A·h^(k-1)W^(k)ᵀ + h^(k-1)B^(k)ᵀ);正则化除了 Dropout(如把 W^(k) 的整行清零)还有图特有的 DropEdge(从图中随机移除整条边)能提升许多 GNN 的性能。

阅读价值

适合图神经网络入门者、NLP/推荐系统等会用图建模的应用工程师,以及想系统理解 GNN 设计空间的研究者:这篇 Distill 文章用交互式可视化和清晰推导,把"图的挑战、拉普拉斯谱方法、GCN/GraphSAGE/GAT/GIN 的演进、池化技术"串成一条完整脉络,并附可复现的 Colab 实验;与其他 Distill GNN 文章(Gentle Introduction)互为补充,是理解 GNN 构建块的理想读物。

阅读英文原文 → 返回 AI 技术文档

本文为中文精炼导读,由 AI 基于原文整理,内容与图片版权归原作者所有。原文: https://distill.pub/2021/understanding-gnns