Revisiting Node Affinity Prediction in Temporal Graphs¶
会议: ICLR 2026
arXiv: 2510.06940
代码: https://github.com/orfeld415/NAVIS
领域: 图学习 / 时序图
关键词: 时序图神经网络, 节点亲和力预测, 状态空间模型, 排序损失, 全局状态
一句话总结¶
分析为什么简单启发式(持续预测、移动平均)在时序图节点亲和力预测上优于复杂 TGNN,证明启发式是线性 SSM 的特例且标准 RNN/LSTM/GRU 无法表达最基本的持续预测,据此提出 NAViS——基于虚拟全局状态的线性 SSM 架构配合排序损失,在 TGB 上超越所有基线。
研究背景与动机¶
领域现状:时序图(CTDG)节点亲和力预测要求给定查询节点 \(u\),预测其与所有其他节点在未来时间的亲和力排名。TGN、TGAT、DyGFormer 等 TGNN 在链路预测上表现优异。
现有痛点:简单启发式(持续预测、移动平均)在亲和力预测上一致优于所有 SOTA TGNN——这是一个令人困惑且少有解释的现象。
核心矛盾:复杂的 TGNN 模型为什么连最简单的启发式都打不过?问题出在表达能力(非线性更新无法保持线性记忆)、损失函数不匹配(交叉熵不适合排序)、局部采样丢失全局时序动态、以及批处理导致信息丢失。
本文目标:(a) 理论解释 TGNN 的不足;(b) 设计能泛化启发式的更强架构;(c) 解决损失函数不匹配。
切入角度:证明启发式(PF/EMA/SMA)是线性 SSM 的特例(Theorem 1),而标准 RNN/LSTM/GRU 连 PF 都表达不了(Theorem 2, 因为有界输出 \(\in (-1,1)\)),因此需要设计能维持线性输入输出的架构。
核心 idea:NAViS = 可学习线性 SSM + 虚拟全局状态 + Lambda 排序损失。门控机制确保输出是输入的凸组合(线性),同时允许门控值根据当前事件自适应。
方法详解¶
整体框架¶
NAViS 把每个查询节点的亲和力预测当作一个线性状态空间模型来跑:为每个节点维护一份状态 \(\mathbf{h} \in \mathbb{R}^d\),再维护一份所有节点共享的虚拟全局状态 \(\mathbf{g} \in \mathbb{R}^d\)(这里 \(d = |\mathcal{V}|\),即状态的每一维对应一个潜在目标节点)。每来一个新事件,模型先用一个状态更新门把"上一时刻的节点状态"和"当前观测到的亲和力向量"做凸组合,更新出新的节点状态 \(\mathbf{h}_i\);与此同时,一个全局 buffer 缓存最近若干个亲和力向量并聚合成全局状态 \(\mathbf{g}\);最后读出门把 \(\mathbf{h}_i\)、\(\mathbf{g}\) 和当前输入再做一次凸组合,读出当前的亲和力排名向量 \(\mathbf{s}\)。整个流程刻意让输出保持为输入的线性组合,这样才能复现启发式、又比启发式更灵活;训练时则用排序损失对齐"排名"这一真正的下游目标。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
X["上一时刻亲和力向量 x<br/>+ 上一节点状态 h(i-1)"] --> GATE
subgraph GATE["门控线性 SSM"]
direction TB
UH["状态更新门 z_h<br/>h_i = z_h·h(i-1) + (1-z_h)·x"] --> RD["读出门 z_s<br/>s = z_s·h_i + (1-z_s)·x"]
end
subgraph VS["虚拟全局状态"]
direction TB
BUF["全局 buffer:最近<br/>若干亲和力向量"] --> G["聚合 → 全局状态 g"]
end
G --> RD
RD --> S["预测亲和力向量 s<br/>(节点亲和力排名)"]
S --> LOSS["Lambda 排序损失<br/>+ 配对边距正则"]
关键设计¶
1. 门控线性 SSM:用可学习的衰减系数泛化 EMA,同时不破坏线性记忆
理论分析(Theorem 2)指出标准 RNN/LSTM/GRU 连最基本的持续预测都表达不了,根因是它们的 tanh/sigmoid 输出被压在 \((-1,1)\) 内、无法维持线性的输入-输出关系;而启发式(持续预测、EMA、SMA)恰恰是线性 SSM 的特例(Theorem 1,EMA 对应转移矩阵 \(\mathbf{A}=\alpha\mathbf{I}\)、SMA 对应 \(\mathbf{A}=\frac{w-1}{w}\mathbf{I}\))。NAViS 的状态更新写成门控形式 \(\mathbf{z}_h = \sigma(W_{xh}\mathbf{x} + W_{hh}\mathbf{h}_{i-1} + \mathbf{b}_h)\),\(\mathbf{h}_i = \mathbf{z}_h \odot \mathbf{h}_{i-1} + (1-\mathbf{z}_h) \odot \mathbf{x}\),读出同样用凸组合 \(\mathbf{s} = \mathbf{z}_s \odot \mathbf{h}_i + (1-\mathbf{z}_s) \odot \mathbf{x}\)。sigmoid 把门控值约束在 \([0,1]\),因此输出永远是历史状态与当前输入的凸组合(线性组合),EMA 只是把 \(\mathbf{z}\) 取成常数的退化情形;而门控值随当前事件自适应变化,让模型能学到比固定衰减更细的记忆策略。这套设计还天然兼容 t-Batch,批内的连续更新不会被丢掉。
2. 虚拟全局状态:补上局部采样 TGNN 看不到的网络级趋势
亲和力经常被全局事件整体推动——一首新歌发布、一次政权更替会同时改变大量节点的亲和力,但靠局部邻居采样的 TGNN 根本观测不到这种宏观信号。NAViS 用一个 buffer 缓存最近若干个亲和力向量并聚合成全局状态 \(\mathbf{g}\),再把 \(\mathbf{g}\) 喂进读出门控 \(\mathbf{z}_s\) 的计算里,使每次预测都带上"当前整张图往哪个方向漂"的上下文。合成实验里加上全局状态后误差大幅下降,说明这条全局通路确实承担了局部状态补不上的那部分动态。
3. Lambda 排序损失 + 配对边距正则:把训练目标对齐到排名而非绝对值
下游真正关心的是亲和力排名,而非分数的绝对大小,但交叉熵对排序是次优的——Theorem 3 给出反例:一个排序正确的预测可能比排序错误的预测有更高的 CE loss,优化 CE 并不保证排名变好。NAViS 改用 Lambda Loss,通过配对的 "lambda" 系数直接近似不可微排序指标(如 NDCG)的梯度。但只用排序损失会让模型偷懒地把所有分数压缩到一起,于是再加一项配对边距正则 \(\ell_{Reg} = \sum \max(0,\,-(s_{\pi_i} - s_{\pi_j}) + \Delta)\),强制相邻排名之间留出边距 \(\Delta\),防止亲和力分数塌缩。
损失函数 / 训练策略¶
总损失为 \(\ell = \ell_{Lambda} + \ell_{Reg}\)。训练 50 个 epoch,batch size 取 200,数据按时间做 70/15/15 划分。面对极大规模图时用稀疏化只保留候选目标节点对应的状态维度,因此 tgbn-token 这种 60000+ 节点的数据集也只需约 5000 个参数。
实验关键数据¶
主实验¶
| 方法 | tgbn-trade (Test) | tgbn-genre (Test) | tgbn-reddit (Test) | tgbn-token (Test) |
|---|---|---|---|---|
| Moving Avg | 0.777 | 0.497 | 0.480 | 0.414 |
| TGNv2 | ~0.68 | ~0.50 | ~0.38 | ~0.39 |
| DyGFormer | 0.388 | 0.365 | 0.316 | - |
| NAViS | 0.874 | 0.553 | 0.503 | 0.416 |
NAViS 比 TGNv2(最佳 TGNN)在 tgbn-trade 上提升 +12.8%。
消融实验¶
| 配置 | tgbn-trade | tgbn-genre | 说明 |
|---|---|---|---|
| NAViS (完整) | 0.874 | 0.553 | full model |
| w/o 全局状态 | ~0.84 | ~0.52 | 全局状态有贡献 |
| w/o Lambda Loss | ~0.82 | ~0.50 | 排序损失关键 |
| 标准 CE loss | ~0.79 | ~0.48 | CE 次优 |
关键发现¶
- 标准 RNN/LSTM/GRU 无法表达持续预测(Theorem 2):因输出被 tanh/sigmoid 限制在 \((-1,1)\)
- 启发式是 SSM 特例(Theorem 1):EMA 对应 \(\mathbf{A}=\alpha\mathbf{I}\), SMA 对应 \(\mathbf{A}=\frac{w-1}{w}\mathbf{I}\)
- 交叉熵对排序次优(Theorem 3):正确排序可能有更高 CE loss
- 全局趋势重要:虚拟全局状态在合成实验中大幅降低误差
- NAViS 在所有 TGB 数据集上 SOTA,且首次超越启发式
亮点与洞察¶
- 理论驱动设计:三个定理精确定位了 TGNN 的不足(表达力、损失函数、信息利用),并直接指导架构设计
- 极简高效:NAViS 参数量极少(tgbn-token 仅~5000),远小于标准 TGNN
- SSM 视角统一启发式:将看似 ad-hoc 的启发式纳入统一的动态系统框架
局限与展望¶
- 仅捕获局部/全局线性趋势,复杂多跳依赖仍未解决
- 全局状态通过简单 buffer 聚合,更复杂的全局建模可能更好
- 未探索非线性 SSM(如 Mamba 风格)的扩展
- 参数随节点数线性增长,极大规模图需要稀疏化
相关工作与启发¶
- vs TGNv2:TGNv2 使用 GRU 更新节点状态,但 GRU 无法表达 PF。NAViS 的门控线性设计更合适
- vs DyGMamba / DyGFormer:非记忆方法依赖固定大小 buffer,截断长期历史。NAViS 的 EMA 式衰减保留无限记忆
- vs Mamba/S4:SSM 在序列建模中已成功,本文首次将其理论分析应用于时序图
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 三个理论结果精准定位问题,SSM-TGNN 连接新颖
- 实验充分度: ⭐⭐⭐⭐ TGB 标准 benchmark + 合成实验 + 消融,但数据集数量有限
- 写作质量: ⭐⭐⭐⭐⭐ 理论推导清晰,问题设置精确,动机逻辑严密
- 价值: ⭐⭐⭐⭐⭐ 解决了时序图中长期存在的"启发式优于 TGNN"之谜