Closed jasperzhong closed 2 years ago
Dynamic Graphs
显然相比CTDG,DTDG是lose information,但研究DTDG模型比较简单. 而survey说为CTDG开发的模型也可以用于DTDG,反之不成立. (感觉需要考证下)
Prediction Tasks
任务基本还是常规的任务:node classification, edge prediction, graph classification.
但Dynamic Graph又有不一样的地方,分两种interpolation和extrapolation. 如果给定的图信息是[t_0, t_T],
还有一个场景是streaming. 新的events不断地stream到模型,模型需要real-time更新,这样它能在每个event达到后立刻做出predictions. 对于这种场景,模型是没有办法立刻就retrain的. 这个场景一般适合CTDG,并且适合extrapolation problems.
encoder-decoder framework
graph -> encoder -> node embeddings -> decoder -> prediction
感觉没什么...只不过这里的node embedding除了node representation之外,还可以包括其他的东西.
sequence models
dynamic环境下,数据总是包括变长的sequence of events. 所以一般用RNN或者self-attention方法.
temporal point processes
给定一系列发生过的事件发生在t_1, t_2, ...for t_i <= T,TPP一般表示为用一个条件密度函数\lambda(t),\lambda(t)dt表示下一个事件发生在[t, t+dt]发生的概率.
传统上intensity functions有很多hand-designed model. 后来流行用ML方法来学习. 在dynamic graphs的context下,TPP的intensity function用node representations来parameterized,被用来构建预测什么时候某件事会发生在某个节点或者一对节点上.
models for DTDG
GNN对每个snapshot G_i对每个节点v生成一个表示h,然后对[h_1, h_2, ..., h_T]做一个RNN/self-attention.
GNN用来学习structural information而RNN/self-attention用于学习temporal information. 这两个模块是独立的.
embedded approach:
GNN embed into RNN: 把RNN里面的一些操作换成GNN. GCRN #273
RNN embed into GNN: #269
Model for CTDG
看了一圈下来 #289 #286 #276 感觉确实如survey所说. 首先每个node会有一个embedding,然后定义了在node u和v出现interaction的时候,如何用RNN更新这个embedding. 他们的主要不同点是如何定义RNN更新embedding. 这里面甚至可能都不会涉及到GNN,如果单纯考虑temporal interactions的话 #289 #286 ,当考虑到了图拓扑结构的时候,才会考虑GNN #276 .
而 #274 和上面几篇不一样的是还会propagate information. 上面几篇工作在u和v有一个interaction的时候,只会更新u和v的node embedding,但 #274 argue说把这个信息propagate到u和v的邻居也很重要.
这些RNN方法都很适合streaming scenario. 训练完成后,RNN的参数就可以freeze,因为RNN已经学到了如何更新node embedding. 当然,当积累了一定的新events后,模型还是需要重新训练.
https://arxiv.org/pdf/1905.11485.pdf
引用量87