iT⋅uj)1其中ui为顶点vi的低维向量表示。(可以视为一个内积模型用来计算两个顶点向量间的相似性)。
同时定义一个经验分布:p1^=Wwij,W=∑(i,j)∈Ewij。
优化目标为最小化两个分布间的距离:O1=d(p^1(⋅,⋅),p1(⋅,⋅))
d(⋅,⋅) 是两个分布的距离,常用的衡量两个概率分布差异的指标为KL散度,使用KL散度并忽略常数项后为
O1=−(i,j)∈E∑wijlogp1(vi,vj)
Second-order proximity
对于图中每个顶点维护两个embedding向量,一个是该顶点本身的表示向量,一个是该点作为其他顶点的上下文顶点时的表示向量。
对于有向边(i,j) ,定义给定顶点vi 条件下,产生上下文(邻居)顶点vj 的概率为
p2(vj∣vi)=∑k=1∣V∣exp(ukT⋅ui)exp(ujT⋅ui)
其中∣V∣ 为上下文顶点的个数。
同时定义经验分布为:p^2(vj∣vi)=diwij
其中wij表示边(i,j)的边权,di为顶点vi的出度,对于带权图,di=∑k∈N(i)wik。
优化目标为最小化两个分布间的距离:O2=∑i∈Vλid(p^2(⋅∣vi),p2(⋅∣vi))
其中λi 为控制节点重要性的因子,可以通过顶点的度数或者PageRank等方法估计得到。
使用KL散度并设λi=di ,忽略常数项,最终优化函数为
O2=−(i,j)∈E∑wijlogp2(vj∣vi)
结合一阶相似度和二阶相似度
采用分别训练一阶相似度模型和二阶相似度模型,然后将学习的两个向量表示连接成一个更长的向量。更适合的方法是共同训练一阶相似度和二阶相似度的目标函数,比较复杂,文章中没有实现。
模型优化
负采样 Negative sampling
由于计算二阶相似度时,softmax函数的分母计算需要遍历所有顶点,这是非常低效的,论文采用了负采样优化的技巧,目标函数变为:
logσ(uj′T⋅ui)+i=1∑KEvn∼Pn(v)[logσ(−un′T⋅ui)]
其中K是负边的数量。论文中使用Pn(v)∝dv3/4,其中dv是顶点v的出度。
边采样 Edge sampling
注意到我们的目标函数在log之前还有一个权重系数wij ,在使用梯度下降方法优化参数时,wij 会直接乘在梯度上。如果图中的边权方差很大,则很难选择一个合适的学习率。若使用较大的学习率那么对于较大的边权可能会引起梯度爆炸,较小的学习率对于较小的边权则会导致梯度过小。
对于上述问题,如果所有边权相同,那么选择一个合适的学习率会变得容易。这里采用了将带权边拆分为等权边的一种方法,假如一个权重为w 的边,则拆分后为w 个权重为1的边。这样可以解决学习率选择的问题,但是由于边数的增长,存储的需求也会增加。
另一种方法则是从原始的带权边中进行采样,每条边被采样的概率正比于原始图中边的权重,这样既解决了学习率的问题,又没有带来过多的存储开销。
这里的采样算法使用的是Alias算法,Alias是一种O(1) 时间复杂度的离散事件抽样算法。可以参考另一篇博客关于数学理论。
FAQ
度数很低的顶点如何处理?
这样的节点的邻居数量非常少,所以很难精确地推断它的表示,特别是基于二阶相似度的方法。解决方案是通过添加更高阶的邻居扩展这些顶点的邻居,例如将节点邻居的邻居作为节点的邻居。LINE中只考虑向每个顶点添加二阶邻居,即邻居的邻居。顶点i与其二阶邻居j之间的权重被测量为:
wij=k∈N(i)∑wikdkwkj
新加入的顶点如何处理?
对于新加入图的顶点vi ,若该顶点与图中顶点存在边相连,我们只需要固定模型的其他参数,优化如下两个目标之一即可:
−j∈N(i)∑wjilogp1(vj,vi)A或−j∈N(i)∑wjilogp1(vj∣vi)
若不存在边相连,则需要利用一些side information。
Experiments
实验中涉及到的数据集如下:
实验结果如下:
结果可视化如下:
Thoughts
本文提出了一种称为“LINE”的新型node embedding模型,它可以很容易地扩展到具有数百万个顶点和数十亿边缘的网络。它精心设计的目标函数保留了一阶和二阶的相似性,这些相似性是互补的。针对模型提出了一种有效的边抽样方法,解决了加权边缘随机梯度下降的局限性,同时又不影响效率。各种实际网络的实验结果证明了LINE的高效性和有效性。
联系作者
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦家博客! 打赏
wechat
alipay