Deep Dynamic Network Embedding for Link Prediction 笔记

Another url:https://bulihanjie.github.io/2019/04/08/Deep-Dynamic-Network-Embedding-for-Link-Prediction-笔记/#more

摘要

通过考虑网络的历史演变过程,把各个时刻的网络快照映射到一个低维空间中,用以捕捉网络的时序演变以及网络结构。论文中,的DDNE算法,通过循环神经网络GRU反映节点嵌入的历史变化,使用类似SDNE算法中的loss进行优化,得到有效的节点嵌入。

参考资料

Li T, Zhang J, Philip S Y, et al. Deep dynamic network embedding for link prediction[J]. IEEE Access, 2018, 6: 29219-29230.
Wang D, Cui P, Zhu W. Structural deep network embedding[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016: 1225-1234.

介绍

与静态网络相比,动态网络的节点嵌入需要同时考虑网络的时间信息以及网络的空间结构。因此,网络中不是时刻的快照都映射到一个低维空间中,节点在空间中的位置关系能够反映网络结构,不同时刻的节点嵌入差异也能反映网络的时序信息。论文中的DDNE算法框架图如下所示,主要包括encoder和decoder两部分,其中encoder利用GRU考虑节点的历史状态得到未来网络的节点嵌入,而decoder通过考虑网络的一阶和二阶邻近来进行优化。
Deep Dynamic Network Embedding for Link Prediction 笔记
论文中,输入的Xt(i,:)X^t(i,:)表示节点xxtt时刻与邻居节点连接情况。把历史的NN个时刻连接状态输入到GRU中,得到的隐藏层状态拼接作为decoder的cic_i。decoder中采用MLP的方式,非线性变换得到节点在tt时刻的节点嵌入,然后再经过MLP的方式得到X^t(i,:)\widehat{X}^{t}(i, :),预测节点与邻居节点的链接方式。最后通过损失函数进行优化:
Deep Dynamic Network Embedding for Link Prediction 笔记

其中,LcL_{c}计算的是一阶邻近,最小化连边节点的节点嵌入距离。LsL_{s}计算的是二阶邻近,极大化节点与邻居节点的连边概率,其中ZZ是用来平衡稀疏网络中0、1元素不平衡的问题。LregL_{reg}是正则化项。

在静态网络的SDNE算法中,也有类似的框架,如下图所示。SDNE中也是先编码到节点嵌入然后再反编码预测节点与邻居的连接状态。损失函数也是一样的,通过节点嵌入的差异考虑一阶邻近,通过节点与邻居的连接关系考虑二阶邻近。DDNE算法中,不同的可能只是在于加入了GRU把历史状态进行编码。

Deep Dynamic Network Embedding for Link Prediction 笔记

感想

DDNE模型中,可以看出来总的是没什么创新的,只是基于SDNE算法上加入了GRU对历史状态进行编码。
而且在论文中它提到自己是第一个学习动态网络的节点嵌入,据我了解的动态网络的节点嵌入研究虽然并不是很多,但网上一搜还是能搜到很多的,如TNE(2016)、DynamicTriad(2017)、LIST(2018)、DynGraphGan(2019),因此论文中也没有和相关的动态网络算法相比,emmm。。。好吧。总的来说,这篇论文没什么太大的借鉴意义的。