读论文《Temporal Graph Networks for Deep Learning on Dynamic Graphs》
该论文探讨了基于时间感知的图网络在深度学习中处理动态图数据的方法
具体位置:GitHub - twitter-research/tgn: TGN stands for Temporal Graph Networks
该研究者开发了一种称为Temporal Graph Networks(TGNs)的新式深度学习架构,并将其应用于分析动态图数据问题。这种特别适用于分析随着时间演变而变化的图结构的数据模型,在多个领域中展现出强大的应用潜力。例如,在社交网络分析中识别关键互动模式,在生物互作网络研究中追踪蛋白质间的作用关系等实例均可借助此方法获得深入洞察
1. 引言
- 图表示学习在多个应用领域得到了广泛的应用, 然而现有的许多技术都是基于静态图模型的前提假设。
- 真实世界的交互系统具有高度动态性的特征, 因此研究Dynamic Graph Learning分析技术仍处于新兴阶段。
2. 背景
- 静态图是由节点集合与边集合共同构成的数据结构。
- 基于消息传递机制的图神经网络(GNN)能够整合节点邻域信息以生成独特的节点嵌征。
- 该过程最终输出的是经过深度学习算法优化后的特征向量表示。
- 动态图按照时间维度划分的总体框架主要包括离散时间动态图(DTDG)与连续时间动态图(CTDG)。其中离散时间动态图(DTDG)是通过定期捕获静态图快照形成的序列。
- 连续时间dynamic graph (CTDG) 的特性更加广泛。
- 在实际应用中, 连续time dynamic graphs (CTDG)通常表现为一系列带有触发条件的时间戳事件序列。
- 我们的时态 (multi-time-scale) 图模型被设计为一系列具有时间节点标注的时间戳事件。
3. Temporal Graph Networks (TGNs)
TGNs旨在处理连续时间动态图(CTDGs)。这类图可被表示为带有时间标记的一系列事件序列。其主要组成部分包括以下几点:

顶部:该模块基于时态图及节点内存(1)进行生成。随后通过嵌入对批量交互进行预测并对损失进行计算(2,3)。
底部:这些相同的交互被用来更新内存(4,5,6)。这可被视为一种简化操作流程,并可防止在底部训练所有模块时出现梯度缺失问题……由于这些模块无法接收梯度,在第3.2节阐述了如何优化这一操作流程以解决上述问题。
3.1 核心模块

TGN在内存相关模块训练过程中所执行的操作流程如下所述:
系统会首先提取并保存用于计算当前批次的消息所需的基本信息,
这些信息我们统称为初始状态或基础数据。
这种设计特点使得模型能够在后续批次中延迟处理之前交互带来的内存更新,
从而避免当前批次过载的问题。
具体操作步骤如下:
第一步:利用前一批次(编号为1至3)存储的初始状态数据,
通过现有模型推理生成新的中间状态数据,
并将这些新生成的数据反馈至记忆空间中进行更新。
第二步:基于刚完成更新并标记为灰色链接的新中间状态数据,
结合当前输入的信息重新构建嵌入表示。
这一过程不仅直接影响损失函数(编号为5和6的位置)的变化,
还能够实时传递梯度信息供优化算法使用。
第三步:完成上述操作后,
此次批处理交互所提取出的原始信息将被存入到‘原始消息存储’中,
以便在未来的批处理任务中能够快速复用已有的记忆内容。
记忆(Memory) :
- 任何一个节点
i都具有一个状态变量si(t)(其中t代表当前时间步),该变量代表模型到目前为止所观察到的状态信息。 - 当某个节点发生事件(如与其他节点互动或自身特征变化)时,其状态向量会经历相应的变化。
- 记忆模块的目标是通过一种紧凑的方式来存储节点的历史信息。
消息函数(Message Function) :
- 对于每个涉及节点
i的事件而言,在节点间传递信息的同时完成状态更新。- 消息函数包括msgs(消息生成器)、msgd(消息传播器)以及msgn(消息分解器),它们均为可学习参数化的函数体系架构;其中一种常见的实现方式是采用多层感知机(MLPs)。
消息聚合器(Message Aggregator) :
- 基于批处理机制的作用,在同一批次中可能会出现同一个节点参与多个事件的情况。
- 通过聚合函数
agg将同一个节点发出的多条消息进行汇总。
- 通过聚合函数
记忆更新器(Memory Updater) :
- 每个节点在其触发的事件之后存储其信息。
- 其中更新函数
mem可由包括LSTM网络或GRU单元等类型的循环神经网络实现。
- 其中更新函数
嵌入模块(Embedding) :
- 嵌入模块负责生成节点在任何时间
t的时序嵌入表示zi(t)。- 嵌入模块旨在防止所谓的遗忘现象发生,在长时间未参与相关事件的情况下,节点的记忆可能会逐渐失效。
3.2 训练
TGN的训练策略应对那些记忆相关模块(如消息函数、消息聚合器及记忆更新器),这些机制无法直接影响损失函数而无法获取梯度。为此研究论文提出了一个训练框架具体来说该框架整合了多个关键组件实现了系统性优化过程。
- 主要依靠消息缓存机制记录处理过的交互记录。
- 在预测开始前利用缓存机制获取相关数据进行记忆状态更新。
- 从而使得记忆相关模块能够通过损失函数反向传播得到梯度信息。
4. 相关工作
- 论文总结了先前关于DTDGs的框架研究,并涵盖了聚合快照、张量分解以及RNNs等技术手段。
- 近期研究转向探讨CTDGs这一新方向,并利用RNNs来学习节点表示。
5. 实验
- 使用Wikipedia、Reddit和Twitter数据集进行实验,关注未来边缘预测和动态节点分类任务。
- 与现有的连续时间动态图学习方法和静态图方法进行比较。

6. 结论
- TGN是一种通用框架,在连续时间动态图学习中展现出卓越的表现,并且相比以往的方法更具效率性。*
