跳转至

Deep Neural Sheaf Diffusion

会议: ICML2026
arXiv: 2605.19021
代码: https://github.com/remibourgerie/deep-neural-sheaf-diffusion
领域: graph_learning
关键词: 神经 sheaf 扩散, 深度 GNN, sheaf 邻接算子, 过平滑, 图基础模型

一句话总结

本文指出 Neural Sheaf Diffusion (NSD) 在深层会因 sheaf Laplacian 的"分歧信号"随扩散收敛而消失,从而失去理论上保证的抗坍缩能力;DNSD 用 sheaf 邻接算子替代 Laplacian,并配合 LayerNorm、奇函数激活与逐 stalk 门控,使 sheaf 架构第一次能稳定堆叠到 16 层,在合成长程任务上比 GNN/NSD 基线最多提升 30 pp,在真实异质图基准上也一致领先。

研究背景与动机

领域现状:标准 GNN(GCN / GAT 等)通过逐层的"邻居加权平均"传递信息,理论上层数越深感受野越大;但实践中深层 GNN 普遍训练失败,文献用 oversmoothing(节点表征趋同)与 oversquashing(远距离信号被压缩)来概括这一困境。其根源在于:消息传递本质上是"凸组合",反复迭代必然抹平差异。

现有痛点:Bodnar 等 (2022) 提出的 Neural Sheaf Diffusion (NSD) 用 cellular sheaf 把每条边赋予一个可学习的线性映射 \(\mathcal{F}_{v\trianglelefteq e}\),由此构造 sheaf Laplacian \(\Delta_\mathcal{F}\) 替代普通图 Laplacian;其理论上证明:在合适的 restriction maps 下,sheaf 扩散的稳态可以分离几乎任意标签配置,从而不会因深度而坍缩。然而本文实证发现:这一保证在实践中失效——NSD 同样会在层数变深时性能崩塌。

核心矛盾:sheaf Laplacian 的本质是"测量相邻 stalk 之间的分歧",即 \(\Delta_\mathcal{F}\mathbf{X}\) 衡量"还没对齐多少"。扩散过程的目标恰恰就是消除分歧,于是 \(\Delta_\mathcal{F}\mathbf{X}\) 会随层数增长而单调趋于 0,深层网络只能在越来越微弱的残差上做更新,损失对深层参数也变得几乎不敏感;再加上 ReLU 的非对称截断、跨层尺度漂移、噪声成分被均匀传播,理论与实践之间被撕开一道大口子。

本文目标:把 NSD 的"理论可深"真正落实成"实践可深",让 sheaf 架构成为图基础模型 (graph foundation model) 的可堆叠骨干。

切入角度:既然问题出在"用分歧量驱动更新",那就把 update operator 换成"用依赖量驱动更新"——即用 sheaf adjacency 算子 \(A_\mathcal{F}\) 替代 Laplacian \(\Delta_\mathcal{F}\)。Bodnar 等的原始推导里其实就出现过这个 sheaf 卷积算子(他们的 Eq. 4),但最终架构里却只把非线性套在 Laplacian 项上、丢掉了 identity 分量,因而把"信号会随深度消失"的副作用引了进来。DNSD 正是把这条被丢弃的路径补回去,再叠上深度训练的标准组件(LayerNorm + 奇激活 + gating),形成一套连贯的"深度可用 sheaf 网络"配方。

核心 idea:把 sheaf 扩散从 "subtract a vanishing disagreement" 改为 "aggregate matrix-valued dependency",并用 LayerNorm/odd activation/per-stalk gating 稳住深层动力学。

方法详解

整体框架

输入是普通图 \(\mathcal{G}=(\mathcal{V},\mathcal{E})\) 及节点特征。模型为每个节点构造一组 \(d\times f\) 的 stalk 表征 \(\mathbf{X}_v^{(l)}\),每层都做三件事:(a) 由两端节点表征学习该层的 restriction maps \(\mathcal{F}^{(l)}_{v\trianglelefteq e}\),得到当前层的 sheaf 算子;(b) 用 sheaf adjacency 算子 \(A_\mathcal{F}^{(l)}\) 而非 Laplacian 聚合邻居;(c) 残差相加后做 LayerNorm,并由门控 \(\mathbf{G}^{(l)}\) 选择性地过滤聚合分量。最终的更新规则为

\(\mathbf{X}^{(l+1)} = \mathrm{LN}\!\big((1+\epsilon^{(l)})\mathbf{X}^{(l)} - (\mathbf{G}^{(l)}\otimes \mathbf{1}_f^\top)\odot \sigma_{\mathrm{odd}}(A_\mathcal{F}^{(l)}\mathbf{X}^{(l)} W_1^{(l)}) W_2^{(l)}\big)\)

输出再投回任务空间做节点分类。把它和 NSD 原始更新对比:NSD 用 \(\Delta_\mathcal{F}\)、用 ReLU、无 LayerNorm、无门控;DNSD 把四处全部换掉,其中 adjacency 替换被实验验证为最关键的因子。

关键设计

  1. Sheaf 邻接算子替代 Laplacian:

    • 功能:把每层的聚合算子从 \(\Delta_\mathcal{F}=D_\mathcal{F}^{-1/2} L_\mathcal{F} D_\mathcal{F}^{-1/2}\) 换成 sheaf adjacency \(A_\mathcal{F}\),其块矩阵元为 \((A_\mathcal{F})_{uv}=\mathcal{F}_{u\trianglelefteq e}^\top \mathcal{F}_{v\trianglelefteq e}\)
    • 核心思路:Laplacian 度量"邻居之间还有多少没对齐的分量",扩散迭代会把它推向 0,因此 \(\sigma(\Delta_\mathcal{F}\mathbf{X} W_1)W_2\) 在深层等价于把"接近零的小信号"喂给非线性,导致深层参数几乎收不到梯度。换成邻接算子后,更新项变成 \(\sigma(A_\mathcal{F}\mathbf{X} W_1)W_2\),即"用矩阵值边函数聚合邻居整体表征"——这是一个不随扩散消失的"依赖信号",无论在初始化阶段还是深层都保持有信息含量。
    • 设计动机:直接修复"理论保证 ↔ 实践崩塌"的根因;同时在 Section 4 中作者用 graph attention 的视角解释——GAT 同样是 adjacency-based,但用标量 softmax;DNSD 等于"把 GAT 的 scalar attention scores 换成 matrix-valued 边映射,并把归一化从 attention scores 挪到节点表征上"。
  2. LayerNorm + 奇激活的稳定化组合:

    • 功能:用 row-wise LayerNorm 把每个 stalk \(\tilde{\mathbf{X}}_u^{(l)}\in\mathbb{R}^{d\times f}\) 按特征维 \(f\) 标准化(\(\mu_u,\sigma_u\in\mathbb{R}^d\)),并把 ReLU 换成有界奇函数 \(\sigma_\mathrm{odd}=\tanh\)
    • 核心思路:换 adjacency 后信号不再消失,但深层会出现两个新问题。(i) 跨层表征尺度漂移:连续残差与非线性堆叠下,不同层的 magnitude 不一致,优化变得不稳;LayerNorm 把每个 stalk 独立标准化、再用可学习仿射参数 \(\gamma^{(l)},\beta^{(l)}\in\mathbb{R}^f\) 重新拉伸,前向与反向都被稳住。(ii) ReLU 的非对称截断在"残差 − message"的减法结构里会变成"只能往一个方向调整",叠多层后让特征几何持续漂移;奇函数 \(\tanh\) 既保住正负对称、又通过有界性控制更新幅度。
    • 设计动机:这两条都直接抄自深度 Transformer/ResNet 的经验,但要小心地按 stalk 维度组织——不能把所有节点拉成一个长向量做 BatchNorm,否则 sheaf 结构信息会被打散。
  3. 逐节点逐 stalk 门控 (per-stalk gating):

    • 功能:为每个节点 \(u\)、每个 stalk 维 \(s\) 学一个标量门 \([(\mathbf{G}^{(l)})_u]_s\in[0,1]\),按 \((\mathbf{G}^{(l)}\otimes \mathbf{1}_f^\top)\odot(\cdot)\) 把"聚合并经非线性后的更新项"做逐通道筛选。
    • 核心思路:门由当前 stalk 表征 \(\mathbf{X}_{u,s}^{(l)}\) 和"聚合但未过激活"的中间量 \(\bar{\mathbf{X}}_{u,s}^{(l)}\) 拼接后通过 \(\mathrm{sigmoid}(w_g^{(l)}[\cdot;\cdot]+b_g^{(l)})\) 得到,其中 \(w_g^{(l)}\in\mathbb{R}^{1\times 2f}\) 全 stalk 共享,参数极少。
    • 设计动机:即使有了 LN + adjacency,反复加权聚合仍会让某些噪声分量(类似 attention sink 现象)随深度累积。逐 stalk 门控让模型可以有选择地让该层的某些维度"少更新一点"或"完全过门",从而限制噪声沿深度的累积,保护表征质量。

损失函数 / 训练策略

任务沿用 NSD 的节点分类设置(合成 G0–G10 与 6 个真实异质图基准),交叉熵损失;restriction maps 取 diagonal 或 full 两种参数化(orthogonal 在深层难训练,作者放到 future work);层数扫 \(\{2,4,8,12,16\}\),公平地复现 NSD 在相同超参预算下的结果。

实验关键数据

主实验

合成长程任务 G0–G10(3 类社区识别,逐步把 10% 同质边重连成跨社区边):

数据集 (level) 指标 DNSD-diag (adj+odd+gate) NSD-diag 提升
G4 (L12) acc % 86.1 ± 1.8 51.2 ± 2.1 +34.9 pp
G5 (L12) acc % 81.5 ± 5.5 51.2 ± 0.7 +30.3 pp
G6 (L16) acc % 75.6 ± 4.7 49.1 ± 1.7 +26.5 pp
G7 (L12) acc % 63.4 ± 4.4 49.1 ± 1.2 +14.3 pp
G10 (L16) acc % 96.2 ± 1.3 85.5 ± 4.7 +10.7 pp

DNSD-full (adj+odd+gate) 在 G10 达到 97.5 ± 0.8(NSD-full 仅 84.0 ± 4.0),且最佳层数普遍出现在 L12–L16,而 NSD/MPNN/GAT 的最佳点几乎全部停留在 L2–L4——直接验证了"DNSD 能用深度,NSD 不能"。

消融实验

合成数据集上的"逐项加回"消融(diag, 最佳层深):

配置 (diag) G4 acc G6 acc 说明
仅原 NSD (无 adj/odd/gate) 51.2 49.1 基线,深层失效
+ adj 53.5 → 60+ 60.4 单加 adj 已经把 G5–G6 推到 60+,是主因
+ adj + odd 86.1(G4) 75.6 加 odd 激活补足深层稳定性
+ adj + gate (无 odd) 83.5 74.4 gate 单独次要,但有协同
+ adj + odd + gate (full) 75.0(G5,L16) 64.6(L16) full map 配齐三件套,G10 拿 97.5%

真实异质图基准(Roman Empire / Amazon Ratings / Minesweeper / Tolokers / Questions / Penn94,diag, L≤8):DNSD 在每个数据集上都跑出"第一/二/三名"中的前列;尽管层数被限制到 ≤8(受限于算力),趋势仍与合成实验一致。

关键发现

  • adjacency 替换是主因子:消融把 adj 单独加上去就能把深层精度从 ~50% 拉到 60–80%,odd activation 和 gating 是"锦上添花的稳定剂"。
  • DNSD 的最佳层数集中在 L12–L16,而 GNN/NSD 基线的最佳层数停在 L2–L4——这是论文最直接的"可深用"证据。
  • 理论保证 ≠ 工程可用:NSD 的反坍缩定理是真的,但因为信号衰减、ReLU 截断、尺度漂移、噪声累积四个"低层细节",整套架构在深层依然崩塌;这提示我们看任何"深度可扩展"的图模型理论时都要追问其在工程实现下的有效性。
  • DNSD ≈ matrix-valued GAT with representation normalization:Table 1 把 GAT / NSD / DNSD 沿"更新算子(依赖 vs 差分)、边变换(标量 vs 矩阵值)、归一化(attention scores vs 表征)、深层行为(平均化 vs 信号消失 vs 缓解衰减)"四轴对齐,是一个非常有启发的统一视角。

亮点与洞察

  • "被丢掉的项才是关键":DNSD 几乎没有发明新算子——sheaf 卷积 \(A_\mathcal{F}\) 早就出现在 Bodnar 等原文的离散化推导里,只是被原始 NSD 架构丢掉了。把"被丢的 identity 分量"补回去就能让深层 sheaf 网络可用,这一类"回到前一篇论文的中间步骤里寻找答案"的研究路径,对未来分析任何"理论强但实践差"的工作都极具借鉴价值。
  • 统一 GAT/NSD/DNSD 的对比表:用"依赖 vs 差分 + 标量 vs 矩阵 + 归一化位置"三轴对照,给"未来什么样的图层适合做基础模型骨干"提供了清晰坐标。
  • 可迁移的设计模式:把 LayerNorm + odd activation + gating 当作"深度可堆叠图模型的标准三件套"——这套配方在任何"层间反复加权聚合"的架构(不只 sheaf,普通 GNN、超图、simplicial complex 上的算子)里都值得一试。

局限与展望

  • 作者承认 orthogonal restriction maps 在深层难以稳定训练,被显式留到 future work;这其实是 sheaf 框架最具表达力的一类参数化,未来如能驯服可能进一步提升。
  • 真实数据实验受算力约束只跑到 L≤8,DNSD 在更深层(L12–L16)的真实图收益没被完全验证。
  • 合成 G 数据集的"deep receptive field requirement"是按"k-NN + 重连"构造的,比较人造;现实大图(如社交网络)的长程依赖结构可能更复杂,DNSD 是否还能保持优势仍需更多验证。
  • 计算开销:matrix-valued 边映射比 GAT 的 scalar attention 要贵,论文未深入分析 wall-clock,这是落地图基础模型时绕不开的工程问题。
  • 自然延伸:把 DNSD 的"adjacency + 三件套"理念迁回到 simplicial / cellular complex 上的更高阶扩散,或与 multi-hop sheaf (Bamberger 等) 结合,可能得到既深又宽的图骨干。

相关工作与启发

  • vs NSD (Bodnar et al., 2022):DNSD 与 NSD 共享 cellular sheaf 这一数学骨架,但把更新算子从 Laplacian 改成 adjacency,并叠加 LN/odd/gating。NSD 在 L2–L4 即停摆,DNSD 可稳定到 L16,二者本质差异在于"更新到底来自分歧还是依赖"。
  • vs GAT (Veličković et al., 2017; Brody et al., 2021):两者都是 adjacency-based,但 GAT 用 scalar 注意力 + softmax 归一化导致 convex aggregation,深层会平均化;DNSD 用 matrix-valued 边映射 + 表征级 LN,允许非凸聚合,因此在深层不会坍缩。可以把 DNSD 看作"GAT 的 matrix-valued、归一化错位版"。
  • vs 多跳 / 注意力型 sheaf 扩张 (Barbero 2022a/b, Zaghen 2024, Bamberger 2024):这些工作或预计算映射、或加注意力、或加多跳,但都没正面解决"深层信号消失"问题;DNSD 是第一个把"深度可堆叠"作为头号目标并系统给出方案的 sheaf 架构。
  • vs Transformer 深度训练技巧 (ResNet / LN / 残差):DNSD 的 LayerNorm 与残差结构思想直接来自深度网络通用经验,但作者强调"必须按 stalk 维度而非节点维度做归一化"——把通用技巧落到 sheaf 框架时仍需结构感知。

评分

  • 新颖性: ⭐⭐⭐⭐ 不是新构造一个数学对象,而是发现原文里"被遗弃的项"才是关键,并配齐深度训练标准件,洞察价值很高。
  • 实验充分度: ⭐⭐⭐⭐ 合成数据上系统扫了 5 个层深 × 11 个扰动等级 × 多种配置;真实数据覆盖 6 个异质图基准;唯一遗憾是真实图层数受限到 L≤8。
  • 写作质量: ⭐⭐⭐⭐⭐ 论证逻辑链非常清晰,从"理论保证 → 实践失效 → 四个机理 → 四点修复 → GAT 视角统一解释"层层推进,Table 1 的三轴对比堪称范例。
  • 价值: ⭐⭐⭐⭐ 直接给"图基础模型可深堆叠骨干"提供了一个有据可循的候选,并把"adj vs Laplacian"这一选择推到了所有 sheaf 后续工作必须正视的位置。