Closed jasperzhong closed 2 years ago
本文讨论了如何在CTDG上学习node embeddings,其实就是DeepWalk的CTDG版本.
注意CTDG,或者叫temporal graphs,保存的是一个一个的events(用边表示). 比如某人向某人发送了邮件. 所以是完全允许两个node之间存在multiedges的,因为得按照event的角度来考虑.
就是采样的path加了一个时序条件,其他都一样,还是用skip-gram来训练. 采样时许path又有两个地方可以考虑
这两个都可以按照平均概率来选择,或者按照时间关系来选择. 比如对于起始边,可以考虑离现在时间比较近的边开始,因为时间较近的事件对现在影响更大. 在比如对于如何选择边,可以考虑选择时间增量最小的那个边,这样可以避免把不同时间段的关系group在一起.
最后采样的path需要有一个最短长度和一个最长长度,对于超过最短长度的path,可以进一步枚举得到更多samples.
实验表明比不考虑时间的方法相比,CTDNE的效果要提高11.9%左右.
这个方法对于unseen nodes或者new timepoint是需要进行重新采样和训练的. 所以这个方法适用于transductive tasks. 确实. 就没法说,来了一个新的node,如何直接给它一个embedding.
https://dl.acm.org/doi/pdf/10.1145/3184558.3191526
中的是workshop