ROLAND: Graph Learning Framework for Dynamic Graphs
介绍
对于动态图,现有的工作有以下局限:
- 静态图模型不能很好地迁移到动态图上
- 现有的评估方式都不考虑模型和数据的更新
- 现有的方法往往需要把所有或大部分数据读到GPU里,再把所有边用来信息传递,这导致模型不能跑太大的图。此外,很少有工作能让模型快速应用于新数据集上。
本工作提出的框架针对上述的三个局限:
- 模型:这个框架可以将静态图模型转化为动态图模型。基本思想是解决点的层次信息更新,用MLP和GRU就可以。
- 评估:不断输入新数据,不断训练+测试,不断更新
- 训练:使用了一个叫BPTT的训练策略,减少显存占用。此外,框架把时序边预测视为元学习,将不同时期的预测视为不同任务。
定义
图\(G=(V,E)\),\(V=\{v_1, \dots, v_n \}\),\(E \subseteq V \times V\)
点特征\(X = \{x_v | v \in V \}\),边特征\(F= \{F_{uv} | (u,v) \in E \}\)
点时间戳\(\tau_v\),边时间戳\(\tau_e\)
文章关注动态图的快照:\(\mathcal{G} = \{G_t\}^T_{t=1}\),其中每张图都可以看作是静态图\(G_t=(V_t, E_t)\),其中\(V_t = \{v \in V| \tau_v = t\}\),\(E_t = \{e \in E | \tau_e = t\}\)
模型
可以看到,这个框架的基本原理就是连通快照之间隐藏层的连接。
每层通过GNN后联合上一时间该层的隐藏特征,得到该层的结果。
其中的UPDATE为:
这个机制挺奇怪的,这样的话越到后面,新边的权重就会越小,这和越新的信息越重要相悖。
评估机制
可以看到,每层只有上层特征和本层训练需要放入GPU中。
此外,每层都会有一份单独的MRR,可以联合得到一个评价:
可以看到,其实最后就是求了个均值。
需要说明的是,模型没用AUC用了MRR,是因为文章觉得负标签要远比正标签重要。
这里其实也挺奇怪的,MRR本身是给推荐系统用的,随着顺序依次减小权重,也就是说前排和后排的负标签权重差距会很大。
训练策略
除了上面解释过的节约显存的方法(增量学习),还有一块实现快速适应的元学习。伪代码里可以看到,实际做法是把之前的GNN扔进去训练,然后把这层训练得到的模型叠加上未训练的模型参数。
实验
数据集
实验结果
第一组baseline全都是有类似层次结构的模型。
除了常规的baseline比较,文中还有一组比较,是给baseline提供了BPTT训练策略和文中提出的增量训练,也就是上一层的嵌入会接入下一层中,让模型能够记住历史嵌入。