跳转到内容

GIN — 把图神经网络的表达力顶到理论天花板

是什么

GIN(Graph Isomorphism Network)是一篇先证明再设计的图神经网络论文。它先回答一个理论问题:

一类常见的 GNN(每个节点反复看邻居、把信息聚合一下、再更新)究竟能区分多少种不同的图?

答案是:最多和 1968 年的 Weisfeiler-Lehman 图同构测试(简称 1-WL)一样强,再多也不行

然后论文设计了一种叫 GIN 的 GNN,证明它正好达到了这个上限

日常类比:把图神经网络比作一群围圈的人,每个人手里有一张颜色卡片。每一轮,每个人把”我自己的颜色 + 邻居的颜色清单”交给一台机器,机器吐出一张新颜色卡片。重复多轮后,看两张图最终的颜色分布是否一样,来判断它们是不是”同一张图”。GIN 证明了:这台机器能做的事,最多不超过 1-WL 这个老算法;而 GIN 自己刚好能做到那么多。

为什么重要

不理解 GIN,下面这些事都没法解释:

  • 为什么 GraphSAGE / GCN 在某些图上怎么训都区分不开两个明显不同的结构——它们用 mean / max 聚合,理论上严格弱于 1-WL
  • 为什么 2019 年之后所有”新 GNN”论文都要先报告”我比 1-WL 强”——GIN 把 1-WL 立成了基准线
  • 为什么有些化学分子的分类任务所有主流 GNN 都败在同一类例子上——那类例子 1-WL 就分不开(比如正则图)
  • 为什么 GNN 理论这条线后来分裂成 k-WL GNN / subgraph GNN / 等变 GNN——它们都在试图突破 GIN 划下的天花板

核心要点

GIN 的论证可以拆成 三步

  1. GNN 的能力 ≤ 1-WL:任何”看邻居、聚合、更新”形式的 GNN,区分两张图的能力绝不超过 1-WL 测试。这是上界。

  2. 要达到上界,聚合必须是单射函数:聚合函数收到的是一个多重集(multiset,邻居颜色的清单,可重复),它必须做到”不同的清单 → 不同的输出”,否则信息就丢了。mean / max 聚合在很多多重集上撞结果,所以严格弱。sum 不会撞——加起来的向量唯一对应一个多重集(前提是元素来自可数空间)。

  3. GIN 用 sum + MLP 实现单射:更新规则 h_v ← MLP((1 + ε) · h_v + Σ_{u∈邻居} h_u) sum 保证多重集信息不丢,MLP(万能近似器)把求和后的向量再映射到一个单射输出。ε 是可学习的小标量,让”中心节点本身”和”邻居和”能被区分开。

实践案例

案例 1:mean 聚合为什么会”撞”

考虑两个节点 v 和 w:

  • v 的邻居颜色多重集是 {red, red, blue, blue}
  • w 的邻居颜色多重集是 {red, blue}

mean 聚合给两个节点输出完全一样的均值(颜色编码取平均,比例相同)。GIN 的 sum 则会输出 2·red + 2·blue vs 1·red + 1·blue不一样

这就是为什么论文说 mean / max 严格弱于 sum。

案例 2:GIN 的 PyTorch 一行实现

class GINLayer(nn.Module):
def __init__(self, dim):
super().__init__()
self.mlp = nn.Sequential(nn.Linear(dim, dim), nn.ReLU(), nn.Linear(dim, dim))
self.eps = nn.Parameter(torch.zeros(1))
def forward(self, h, edge_index):
# 邻居和:把每个节点收到的邻居特征加起来
neigh_sum = scatter_add(h[edge_index[0]], edge_index[1], dim=0)
return self.mlp((1 + self.eps) * h + neigh_sum)

整个论文的核心可以压缩进 10 行代码。

案例 3:图级 readout 为什么要每层都拼

图分类任务要把”一堆节点向量”压成”一个图向量”。GIN 建议:

graph_repr = torch.cat([scatter_sum(h[k], batch, dim=0) for k in range(K)], dim=-1)

每一层的 sum-readout 都拼起来,而不是只取最后一层。理由:浅层捕捉局部子结构,深层捕捉大范围结构,两者对最终分类都有用——只取最后一层会丢信息。

案例 4:用 1-WL 这把尺子怎么量一个 GNN

想自己验证某个 GNN 是否达到 1-WL 上界,可以用一对经典反例图:两个 6 节点的正则图(CSL 图),一个圈成单环,一个圈成两个三角形。1-WL 区分不了它们,所有 message-passing GNN 也都区分不了。如果你的 GNN 在这对图上 100% 准确,要么实现有 bug,要么它已经超出 1-WL(比如加了节点编号或子图特征)。这是 GIN 论文之后社区共享的”判官题”。

踩过的坑

  1. 把 GIN 当 SOTA 通用模型用:它是表达力上界证明,不是工程最强解。在分子图回归、3D 几何、大图节点分类等任务上,MPNN / SchNet / GraphSAGE 仍然各有更适合的版本。

  2. 以为 1-WL 已经很强:1-WL 区分不了正则图(每个节点邻居数一样的图,比如所有节点都是 3 度)。GIN 同样区分不了。这是 GNN 理论的著名痛点,催生了 k-WL GNN 和 subgraph GNN 整条研究线。

  3. ε 直接设 0:很多实现偷懒把 ε 砍掉,结果 (a, [a, b])(b, [a, a]) 在 sum 后可能撞(前者是 2a + b,后者是 2a + b)。论文明确建议保留可学习 ε。

  4. MLP 太浅:单层线性 + ReLU 不一定够近似单射,论文实验用两层 MLP,是兼顾表达力和训练稳定性的折中。

  5. 特征是连续向量时 sum 不再保证单射:理论证明前提是节点特征来自可数空间(比如 one-hot 或离散类别)。当节点特征是连续浮点向量时,单射性只是”几乎处处”成立,工程上并不严格——但实务里影响有限,因为 MLP 会把表示重新拉开。

适用 vs 不适用场景

适用

  • 图级分类任务(分子毒性、社交网络分类)的小到中等数据集
  • 需要”理论保证我没漏信息”的研究 baseline
  • 教学:让人从零理解 GNN 表达力是什么意思

不适用

  • 节点分类的超大图(PinSAGE / GraphSAINT 这类工程方案更扛规模)
  • 需要区分正则图(必须上 k-WL GNN / subgraph GNN)
  • 几何 / 3D 分子任务(要 SE(3)-等变性,用 EGNN / SchNet)
  • 异质图(节点 / 边类型不同)——需要异质 GNN 框架

历史小故事(可跳过)

  • 1968 年:苏联两位数学家 Weisfeiler 和 Lehman 提出 WL 测试,用作图同构判定的启发式,发表在一份俄文期刊上。
  • 2009 年:Gärtner 等人把 WL 改造成图核(graph kernel),这是 GNN 之前的主流图分类方法。
  • 2017 年:GraphSAGE / GCN / MPNN 三波 GNN 爆发,效果好,但没人能说清它们究竟能做什么、不能做什么
  • 2018 年 10 月:MIT 的 Jegelka 组和 Stanford 的 Leskovec 组合作,把 1-WL 拉来当尺子量 GNN,发现 mean / max 都不够用,sum + MLP 刚好顶到上界。GIN 上传 arXiv。
  • 2019 年:ICLR 接收,立刻成为 GNN 理论必引文献。
  • 2020 年之后:‘突破 1-WL’ 成为 GNN 理论主流,PPGN / k-GNN / GNNML / Subgraph GNN 各显神通,全都把 GIN 当作起点参考。

学到什么

  1. 先证再设计 是工程更高的境界——不是先调参再讲故事,而是先把”能做到的天花板”证清楚,再把模型建到天花板。
  2. 多重集的单射性 这个看起来抽象的数学概念,决定了一个聚合函数的上限。sum 在工程里看起来平平无奇,但在表达力理论里是 mean / max 的”严格上位”。
  3. 理论上界 ≠ 工程最强:GIN 证明了能力上限,但不是说所有任务都该用它。理论保证只是下限的下限
  4. 拿老算法当尺子:1968 年的 WL 测试在 2019 年成为评估深度学习模型的标准——好的理论工具有跨时代的生命力。
  5. 聚合函数的选择不是工程口味,是表达力问题:换个聚合可能不是”调参”,而是把模型整体能力等级换了一档。这个视角把”模型选型”从经验问题升级成可推导的设计问题。

延伸阅读

一句话总结

GIN 的贡献不是又造了一个 GNN,而是把 GNN 这一整类模型的能力上限和它达到上限的充分条件都写下来了——以后所有 GNN 论文要么在这条线下做工程,要么必须明确论证自己怎样越过这条线。这是把一个野蛮生长的领域装进数学框架的标志性工作。

关联

  • graphsage-2017 —— 用 mean 聚合的前作;GIN 证明它严格弱于 1-WL
  • message-passing-nn —— GIN 是 MPNN 框架下的一个具体实例(待补)
  • universal-approximation —— GIN 用 MLP 当聚合后的单射映射器,依赖 MLP 的万能近似性质
  • graph-attention-networks —— 同期 GNN 思路,用注意力替代固定聚合(待补)
  • karp-21 —— 图同构问题的复杂度地位,与 1-WL 这种近似启发式形成对照