今天的这篇论文是 MSRA 2015 年的工作——《LINE: Large-scale Information Network Embedding》,截至目前共有 1900 多引用,主要的是如何在大尺度网络中应用 Embedding 技术。
1. Introduction
之前介绍的 DeepWalk 采用分布式并行方式来训练模型,但如果在硬件资源有限的条件下该如何训练出一个拥有百万结点和数十亿条边的网络呢?针对这种情况,MSRA 的同学们提出了一种可以应用于这种大规模网络计算的新型算法——LINE。LINE 适用于任何类型的网络结构,无论是有向图还是无向图,以及是否加权(DeepWalk 只适用于有向网络)。LINE 能够在单台服务器上训练数小时即可完成数百万结点和数十亿条边的网络训练。
2. LINE
2.1 First-order
很多 NetWork Embedding 算法只观察到了节点的链路表示,这种关系只具有 first-order 相似性,并没有捕捉到节点间更多的关系。这篇论文将在 first-order 的基础上探讨节点的 second-order 相似性。
second-order 并不是通过节点间的连接强弱来判定的,而是通过节点的共享邻域结构来确定的。作者通过利用节点的共享邻居来评估节点的相似性,这个想法来源于社会学和语言学,比如说:拥有很多共同朋友的人很可能有共同的兴趣从而很有可能成为朋友(现在不是朋友不代表以后不是朋友),与很多相似的单词一起使用的两个单词更可能有相似的含义。
以下图为例:
- 节点 6 和 7 之间由于权值比较大, 所以具有较高的 first-order ,他们的 Embedding 向量距离会比较近;
- 另一方面节点 5 和 6 虽然没有联系,但他们有许多共同的邻居,所以较高的 second-order ,因此他们的 Embedding 向量也应该有较近的距离。
有了感性的认识后,我们给出具体定义。
first-order 是指网络中节点之间的局部连接,对每条无向边进行建模,我们给出联合概率:
p 1 ( v i , v j ) = 1 1 + e x p ( − u i T , u j ) p_1(v_i,v_j) = \frac{1}{1+exp(-u_i^T,u_j)} \\ p1(vi,vj)=1+exp(−uiT,uj)1
其中, v i v_i vi 表示节点 i, u i u_i ui 为节点 i 对应的 Embedding 向量。
根据网络权值,我们的也有经验分布为:
p 1 ^ ( i , j ) = w i j W \hat{p_1}(i,j) = \frac{w_{ij}}{W} \\ p1^(i,j)=Wwij
其中, w i j w_{ij} wij 为节点 i 和结点 j 之间的权值,W 为网络总权值之和。
为了保证一阶性,我们只需要让经验分布和联合概率分布的越相似越好,衡量两个分布差异的指标为 KL 散度,忽略常数后我们有代价函数:
m i n i m i z e O 1 = − ∑ ( i , j ) ∈ E w i j l o g ( p 1 ( v i , v j ) ) minimize \; O_1 = -\sum_{(i,j)\in E}w_{ij}log\big(p_1(v_i, v_j)\big) \\ minimizeO1=−(i,j)∈E∑wijlog(p1(