跳转至

Adaptive Mixture of Disentangled Experts for Dynamic Graph Out-of-Distribution Generalization

会议: ICLR 2026
OpenReview: q0O5LO7X4I
代码: https://github.com/haibo12/AdaMix (论文承诺开源)
领域: 图学习 / 动态图 / OOD 泛化 / 专家混合
关键词: 动态图、分布偏移、自适应架构、专家混合(MoE)、解耦原型

一句话总结

针对动态图上"分布偏移本身会随时间演化"这一现象,本文提出 AdaMix:用一个时空分布探测器实时感知每个时刻的偏移,再用原型引导的解耦专家混合(多种 GNN 架构当专家)按偏移自适应路由,最后用分布感知干预机制挖掘不变模式,在真实与合成动态图数据集上显著超过固定架构的 SOTA。

研究背景与动机

领域现状:动态图 OOD 泛化(dynamic graph OOD generalization)的目标,是在图结构和节点特征随时间演化、训练/测试分布不一致的情况下仍能稳定预测。主流做法是"提取不变模式(invariant pattern)"——找出预测能力跨分布稳定的那部分结构与特征。代表方法 DIDA 用解耦的时空图注意力网络把节点轨迹拆成不变与可变两部分,再对可变部分做随机干预,逼模型只依赖不变模式;SILD 则进一步把不变模式建模搬到谱域。

现有痛点:这些方法清一色用固定架构(fixed-architecture)去抽不变模式。作者观察到一个被忽视的事实:动态图里的分布偏移不是静止的,而是持续演化的。比如学术合作网络里,论文数在涨(图变大)、引用关系在变密(节点度上升)、研究领域在分化(特征多样性增加)——偏移的"形态"本身在随时间改变(图 1 在 Collab 数据集上实测了节点数和平均度随时间单调上升)。

核心矛盾:最优架构和底层数据分布是绑定的。作者在 SILD 上换 GAT / GATv2 两种骨干跑(图 2),发现两者在不同时间段交替领先——说明不同时刻可能需要不同架构。那么一个一成不变的固定架构,注定在演化偏移的某些时刻是次优的。这是固定架构设计的根本天花板。

本文目标:分解为三个子问题——(1) 如何探测并刻画演化中的分布偏移,给架构决策提供信号;(2) 如何按不同的偏移特性动态路由不同的专家架构;(3) 如何保证这套自适应专家混合真能挖到不变模式。

切入角度:既然不同时刻要不同架构,那就别再固定架构,而是引入一个自适应架构(adaptive-architecture)——用专家混合(MoE)随时间动态调整模型架构。作者还给了理论命题:在不变性约束下,若存在两个时刻其最优架构不同,则自适应架构能比任何固定架构更有效地捕获不变/可变模式(命题 1)。

核心 idea:用"随分布偏移自适应路由的解耦专家"代替"固定架构",来挖动态图上的时空不变模式——据作者所知,这是第一个从架构视角处理动态图分布偏移的工作。

方法详解

整体框架

AdaMix 处理的是动态图 \(\mathcal{G}=\{G_t\}_{t=1}^T\),每个快照 \(G_t=(X_t, A_t)\) 含特征矩阵和邻接矩阵,任务是用历史轨迹预测未来(链路预测或节点分类)。一个时刻 \(t\) 的数据流是:先把当前快照喂给时空分布探测器,它结合当前 ego-graph 和记忆里的历史分布信息,为每个节点产出一个路由向量 \(r_v^t\),刻画"此刻这个节点处在什么分布偏移下";这个路由向量进入原型引导的解耦专家混合,通过和各专家原型做相似度匹配算出专家权重,把多种 GNN 架构专家的输出按权重加权,得到 MoE 节点嵌入 \(z_v^t\);最后分布感知干预机制把所有 MoE 嵌入拆成不变模式和可变模式,并依据每个节点的主导专家,挑来自不同分布的节点互相做干预,强迫模型依赖不变模式做预测。三个模块依次串联,记忆库则在每一步用门控更新、把当前信息回写供下一时刻使用。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入快照<br/>G_t = (X_t, A_t)"] --> B["时空分布探测器<br/>Router GNN + 记忆库<br/>→ 路由向量 r_v^t"]
    B --> C["原型引导的解耦专家混合<br/>多 GNN 专家 + 解耦原型<br/>相似度路由 → z_v^t"]
    C --> D["分布感知干预机制<br/>FFT 拆不变/可变 + 按主导专家跨分布干预"]
    C -->|门控回写 m_v^t| B
    D --> E["不变模式预测<br/>L = L_I + λL_inv + αL_dis"]

关键设计

1. 时空分布探测器:把"此刻是什么偏移"显式编码成路由向量

要按偏移自适应选架构,前提是先知道"现在处于什么偏移"。作者用一个 router GNN(记作 \(\text{GNN}_r\))从节点的 ego-graph 轨迹学一个节点级路由嵌入 \(r_v^t\)。但只看当前快照会丢掉演化趋势,所以引入一个记忆库 \(M=\{m_v\}\),每个节点维护一个累积历史分布信息的记忆向量。生成路由向量时把当前特征和上一步记忆拼接再投影:\(r_v^t = \text{GNN}_r(\tilde{x}_v^t, A_t)\),其中 \(\tilde{x}_v^t = \text{Linear}([x_v^t \| m_v^{t-1}])\)。算完该时刻的专家权重和 MoE 嵌入后,再用门控机制更新记忆:\(m_v^t = g_v^t \odot z_v^t + (1-g_v^t)\odot m_v^{t-1}\),门 \(g_v^t = \sigma(\text{Linear}_{gate}([z_v^t \| m_v^{t-1}]))\)。这套"当前 + 历史"的设计正好呼应了动机里的观察——偏移有趋势性,历史轨迹携带推断当前分布的有用信号;门控让记忆既能纳新又能留旧,使路由向量真正能从过去和现在共同推断出此刻的偏移。

2. 原型引导的解耦专家混合:让每个专家专精一种"变化因子"并据此路由

标准 MoE 里各专家彼此独立、缺乏关系建模,没法保证每个专家对应一个有意义的、解耦的变化因子。作者用 \(K\) 个独立 GNN 架构当专家(如 GCN/GAT/GIN/GATv2),每个专家独立编码 \(H_k^t = \text{GNN}_k(X_t, A_t)\),并给每个专家配一个可学习原型 \(p_k\) 代表一种独特的变化因子。为让原型互相解耦,加一个相似度损失 \(L_{dis}=\sum_k \sum_{k'\neq k} \frac{p_k\cdot p_{k'}}{\|p_k\|_2\|p_{k'}\|_2}\),最小化它就是逼各原型方向尽量两两正交,从而把专家推向不同的专精领域。路由时不直接学一个映射,而是让路由向量 \(r_v^t\) 去和各原型算相似度再 softmax:\(\alpha_{v,k}^t = \text{softmax}_k\big(\frac{r_v^t \cdot p_k}{\|p_k\|_2}\big)\),最后按权重聚合 \(z_v^t = \sum_k \alpha_{v,k}^t h_{v,k}^t\)。原型在这里既是解耦的锚点、又是路由的标尺:路由向量越像哪个专家的原型,就越多用那个专家——这正是"按当前偏移挑最合适架构"的落地方式。

3. 分布感知干预机制:用主导专家区分分布,跨分布干预挖不变模式

以往动态图 OOD 方法靠随机采样别的节点的可变模式来替换,从而逼出不变模式;但如果被采来干预的节点恰好和当前节点同分布,这次干预就没意义、效率低。作者的改进是借助专家权重来识别"谁和谁不同分布"。先把 MoE 嵌入 \(Z\) 用 FFT 投到谱域(因为有些偏移在时域看不见、谱域才显形),用一个 MLP 算谱掩码 \(m_I=\sigma(m/\tau)\)\(m_V=\sigma(-m/\tau)\),再 IFFT 回去得到不变模式 \(Z_I\) 和可变模式 \(Z_V\)。然后定义每个节点的主导专家 \(e_v^t = \arg\max_k \alpha_{v,k}^t\)——两个节点主导专家差很多,强烈暗示它们分属不同分布。干预时只挑主导专家不同的节点 \(u\) 来替换 \(v\) 的可变模式,不变性损失写成 \(L_{inv}=\text{Var}(\mathcal{L}|_{z_{u,V}^{t'}})\),其中替换项只在 \(e_v^t \neq e_u^{t'}\) 时生效(同主导专家则不替换)。这样保证"被不同分布的节点干预",比随机干预更有的放矢。

损失函数 / 训练策略

总损失把三项加权合并:\(L = L_I + \lambda L_{inv} + \alpha L_{dis}\),其中 \(L_I\) 是基于不变模式的经验风险(用不变分类器 \(f_I\) 配交叉熵),\(L_{inv}\) 是上面的不变性方差损失,\(L_{dis}\) 是原型解耦损失,\(\lambda\)\(\alpha\) 是平衡系数。整体时间复杂度随节点数和边数线性增长,与现有动态图 OOD 方法(SILD、EAGLE)相当。

实验关键数据

主实验

真实数据集:链路预测用 Collab(1990–2006 学术合作网,AUC%)、Yelp(24 个月商家评论,AUC%);节点分类用 Aminer 引文网(2001–2015,ACC%,按测试年份分 15/16/17)。测试集刻意取与训练不同的领域来模拟分布偏移。

任务 / 数据集 Collab Yelp Aminer15 Aminer16 Aminer17 Avg.
DIDA 81.87 75.92 50.34 51.43 44.69 68.87
EAGLE 84.41 77.26 51.48 54.87 45.97 70.81
SILD 84.09 78.65 52.35 54.11 45.54 71.14
SILD-GIN 75.18 81.55 49.04 51.15 23.68 66.01
AdaMix 84.85 82.65 52.95 54.58 46.50 72.95

AdaMix 在多数数据集上拿到最优或次优,平均分 72.95 领先所有基线。一个有意思的细节支撑了动机:SILD 换 GATv2 在 Aminer15 最好、但到 Aminer17 反被 GAT 超过——同一方法不同架构在不同时刻互有胜负,正说明"不同时刻需要不同架构"。

合成数据集(不同偏移强度 0.4/0.6/0.8)上对比更悬殊:

数据集 Link-syn 0.4 0.6 0.8 Node-syn 0.4 0.6 0.8 Avg.
EAGLE 88.32 87.29 82.30 47.03 35.84 28.50 61.55
SILD 85.95 84.69 78.01 43.62 39.78 38.64 61.78
GraphMETRO 59.53 59.28 58.72 75.82 78.19 75.25 67.80
AdaMix 90.21 89.64 88.86 83.63 81.50 76.19 85.00

平均 85.00,大幅领先(次优 GraphMETRO 67.80)。更关键的是随偏移强度从 0.4 增到 0.8,基线普遍大幅掉点,AdaMix 掉幅最小(如 Link-syn 仅从 90.21 降到 88.86),印证其对强偏移的鲁棒性。

消融实验

作者在 Collab/Yelp/Aminer 及 Link-syn 三档偏移上对比八个消融版本(图 4):

配置 说明与现象
Full 完整 AdaMix
w/o dis 去掉原型解耦损失(\(\alpha=0\)):部分数据集明显下降且不稳定
rep rou 把原型路由换成简单线性 router:同样下降、不稳
w/o mem 记忆向量恒置零:明显掉点
w/o mem&rou 同时去记忆 + 换深层线性 router:明显掉点
rep inv 把不变性干预换成随机干预:次优
w/o inv 去掉不变性损失(\(\lambda=0\)):次优
w/o fft 去掉 FFT/IFFT,只用时域:相比完整模型明显下降

关键发现

  • 解耦原型是路由质量的关键:w/o dis 和 rep rou 都掉点且不稳,说明解耦原型帮 router 更好地区分不同分布、选对专家。
  • 历史记忆有用:w/o mem 和 w/o mem&rou 显著下降,证明记忆里的历史分布信息确实帮助推断当前偏移。
  • 跨分布干预优于随机干预:rep inv 和 w/o inv 都次优,验证了基于专家的有的放矢干预对挖不变模式有效。
  • 谱域建模捕到时域看不见的偏移:w/o fft 明显下降,说明谱域不变模式建模能抓住时域观测不到的偏移。

亮点与洞察

  • 把"架构本身"当成可路由的自由度:以往 OOD 工作都在固定架构里抠不变表示,本文第一个指出"演化偏移需要演化架构",用 MoE 让不同 GNN 架构在不同时刻/节点接管——这个视角转换很巧,且有理论命题撑腰(命题 1)。
  • 原型一物两用:可学习原型既当解耦锚点(互相正交逼专家专精),又当路由标尺(路由向量和它算相似度),把"专家分工"和"如何选专家"统一在同一组向量上,比黑盒线性 router 更可解释也更稳。
  • 用主导专家定义"分布差异":把干预从"随机采样"升级成"采主导专家不同的节点",等于用 MoE 的副产物(专家权重)免费换来一个分布判别器,思路可迁移到任何带 MoE 的 OOD 干预场景。
  • 谱域 + 门控记忆的组合:记忆门控负责沿时间累积趋势,FFT 负责暴露时域隐藏的偏移,两条正交的"看见偏移"的路子叠在一起。

局限与展望

  • 专家是预设的若干 GNN 架构:候选架构集合(GCN/GAT/GIN/GATv2)是人工选的,专家数量 \(K\) 和具体架构种类如何影响表现、能否自动扩展专家池,文中未深入探讨。
  • 多损失多超参\(\lambda\)\(\alpha\)、温度 \(\tau\)、记忆门控等需要调,三项损失的平衡对结果可能敏感,调参成本和稳定性是落地隐忧。
  • 快照式动态图假设:方法建立在离散快照序列上,对连续时间事件流(continuous-time)的动态图是否直接适用、记忆更新如何细化,留待后续。
  • 理论命题较弱:命题 1 只论证"存在两时刻最优架构不同 → 自适应更优",但何时真出现这种情形、自适应的收益边界,缺乏更定量的刻画。

相关工作与启发

  • vs DIDA:DIDA 用固定的解耦时空注意力网络 + 随机干预抽不变模式;AdaMix 把架构本身做成自适应 MoE,并用主导专家做定向干预。区别在于 DIDA 一套架构走到底,AdaMix 按偏移换架构。
  • vs SILD:SILD 把不变模式建模搬到谱域、但仍是固定架构;AdaMix 复用了谱域思想(FFT 拆不变/可变),但在其之上加了自适应架构路由。论文还做了公平对比——把 SILD 的骨干换成 AdaMix 用的同款专家架构(SILD-GCN/GAT/GIN/GATv2),结果这些固定单架构版本随数据集波动很大(如 SILD-GIN 在 Aminer17 只有 23.68),说明 AdaMix 的增益不是"引入了更强架构",而是"会动态选架构"。
  • vs 静态图 MoE(GMoE / GraphMETRO):它们在静态图上用 MoE,但不处理时间演化的偏移、也没有记忆机制;AdaMix 把 MoE 和时空探测、跨分布干预耦合进动态图 OOD 框架。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次从"架构自适应"视角处理动态图演化偏移,视角转换清晰且有理论支撑
  • 实验充分度: ⭐⭐⭐⭐ 真实 + 合成数据齐全,消融覆盖八个变体,但专家数/架构选择的敏感性分析略缺
  • 写作质量: ⭐⭐⭐⭐ 动机→挑战→方法三段递进清楚,图 3 框架图信息密度高
  • 价值: ⭐⭐⭐⭐ "用 MoE 让架构随分布走"的思路对动态图乃至更一般的演化偏移问题有借鉴意义