1. 项目背景与核心挑战
GraphKeeper是2025年NeurIPS会议上提出的创新性解决方案,专门针对图神经网络(GNN)在增量学习场景中的灾难性遗忘问题。这个问题的本质在于:当模型在新图数据上训练时,会不可逆地丢失对先前学习过的图模式的记忆能力。想象一下,一个城市交通预测系统在适应新区域的路网结构时,突然忘记了如何预测原有城区的拥堵情况——这就是典型的图域灾难性遗忘现象。
与传统计算机视觉或NLP领域的增量学习不同,图数据的增量学习面临三个独特挑战:
- 拓扑结构记忆:图数据中的节点连接模式(如社交网络中的社区结构)需要被稳定保存
- 跨图泛化:新旧图域之间可能存在完全不同的节点特征分布
- 动态关系保持:边权重随时间演化的规律不能被新数据覆盖
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构解析
2.1 双记忆系统设计
GraphKeeper的核心创新在于其双记忆机制:
-
结构记忆库:采用图对比编码器持续提取并压缩历史图的拓扑特征,存储形式为可微的图原型(Graph Prototypes)。每个原型本质上是一个带权邻接矩阵,通过以下损失函数保持稳定性:
code复制L_proto = Σ||fθ(G_old) - P_old||² + λ·tr(P_old·L·P_old^T)其中L是图拉普拉斯矩阵,tr表示矩阵迹,λ控制平滑度。
-
特征蒸馏通道:在节点层面,设计跨图特征对齐模块。具体实现时,对每一层GNN都添加额外的KL散度约束:
code复制L_kd = D_KL(σ(h_new/τ) || σ(h_old/τ))τ是温度系数,h表示节点隐层表示。
2.2 动态回放策略
不同于简单的数据回放,GraphKeeper提出结构感知回放(Structure-Aware Replay):
- 基于图聚类识别历史图中的关键子结构(如频繁子图模式)
- 使用图压缩技术生成代表性子图样本
- 在训练新任务时,将这些子图以对抗方式插入批次:
python复制def generate_replay_batch(new_graphs, old_prototypes): # 新图采样 batch_new = sa
