前言
本篇继续我们的Graph Embedding之旅途。今天要聊的是SDNE(Structural Deep Network Embedding)。结合的论文为《Structural Deep Network Embedding》,这是2016年发表的一篇论文,与node2vec在同一年问世。总体上来,SDNE更像LINE,而不像Deepwalk。有了LINE的基础后,理解这篇文章会较快。
----广告时间,欢迎关注本人微信公众号
算法原理
让我们还是带着问题来理解该方法。
怎么刻画节点之间的相似性?
在图上,一阶相似度就是两点之间的边权重,二阶相似度的定义如下:
发现没有,与LINE一模一样!所以做事情可以先站在前人的肩膀上去发挥,只有有所创新,就能出价值。
从节点到向量,怎么生成?
先回忆一下LINE,它是分别通过最优化求解一阶、二阶相似度的损失函数,得到了两个向量表示,然后简单地把两个向量拼接到了一起作为节点最终的向量表示。SDNE在这一步上有所改进,它定义一个损失函数如下所示: