原文:LINE:Large-scale Information Network Embedding
本文提出一种新的network embedding model:LINE.能够处理大规模的各式各样的网络,比如:有向图、无向图、有权重图、无权重图.
文中指出对于network embedding问题,需要保留local structure和global structure,分别对应first-order proximity和second-order proximity.
first-order proximity:两个节点之间相连的边权重越大,这两个节点越相似.
second-order proximity:两个节点相同的neighbors越多,这两个节点越相似.
节点6和7应该是比较相似的,因为它们有权重较大的边相连(high first-order proximity).节点5和6也应该是比较相似的,因为它们share了很多共同的neighbors(high second-order proximity).
因此希望提出一种方式,通过考虑second-order proximity来弥补first-order proximity的稀疏,并且更好的保留network的global structure.本文提出了一种objective同时保留了first-order proximity和second-order proximity.
对于objective的优化也是困难的,比较常见的方式是通过SGD.然后在很多情况下,SGD是有问题的,因为带权图的权重方差比较大(有的边权很小,有的边权很大,会造成梯度爆炸).本文提出了一种新的边采样方法,以正比于边权的概率进行边采样,之后在模型更新中将边看做是binary的(0,1),这样边权就不会影响梯度了.
LINE对有向图、无向图、有权重图、无权重图都是有效的.
Deepwalk并没有明确的objective function,直观上来看它主要考虑second-order proximity.
DeepWalk的策略类似于DFS,而LINE类似于BFS,这对于second-order proximity是一种更合理的方式.
DeepWalk只适用于无权重图,而LINE可以用于有权重图和无权重图.
Problem Definition
1)Information Network
G=(V,E) V是节点集合,E是边集合.e∈E是一个有序的节点对,e=(u,v),并有一个边权Wuv>0.
如果G是无向图,那么有(u,v)=(v,u)以及Wuv=Wvu;如果G是有向图,那么有(u,v)≠(v,u)以及Wuv≠Wvu.
2)First-order Proximity(local network structure)
对于节点u,v,如果它们之间有一条边(u,v),那么边权Wuv表示了u和v之间的first-order proximity.如果它们之间没有边,那么first-order proximity就为0.
3)Second-order Proximity(global network structure)
定义Pu=(Wu,1,...,Wu,|V|)表示u对于其他所有节点的first-order proximity.
u和v之间的second-order proximity由pu和pv之间的相似度来决定.如果没有节点同时指向u和v或者同时被u和v所指向,那么u和v之间的second-order proximity为0.
4)Large-scale Information Network Embedding
Given G=(V,E)
Goal 将所有v∈V在d维空间进行表示.即学习一个函数
LINE: LARGE-SCALE INFORMATION NETWORK EMBEDDING
一个比较好的embedding model必须有下面这些要求:
•能够同时保持节点之间的first-order proximity和second-order proximity.
•能够在大规模的network上进行应用.
•能够在各种类型边的network上进行应用,包括有向图、无向图、有权重图、无权重图.
本文提出的LINE模型同时满足上述三点.
Model Description
先介绍LINE模型分别考虑first-order proximity和second-order proximity,然后通过一种方式将两者结合起来.
1.LINE with First-order Proximity
这种方法只对无向图有效,无法应用于有向图.
对first-order proximity建模,对于边(i,j),定义节点vi和vj的联合概率分布:
其中
是节点vi的representation vector.
上述joint distribution是定义在空间V*V上的(输入是两个节点),概率越大表示两个节点越相似.
这个分布的经验概率为
也就是i,j之间的边权/network上所有的边权之和.
最小化以下目标函数:
其中d(.,.)表示两个分布的距离(也就是说让Pmodel逼近Pdata,即让模型分布去逼近经验分布,这和机器学习其他算法的思想是一样的).
这里需要通过一种方式来衡量两个概率分布之间的接近程度,本文选择KL-divergence.将KL-divergence(这里的KL-divergence用的是经验分布在前,模型分布在后,这一点和MLE中是一样的)带入(2)式中,有
上述推导的过程中,需要始终明确一点,最小化目标函数是通过调整Pmodel中的presentation vector来实现的.最终得到
通过找到最优的
(各节点的presentation vector)来最小化目标函数(3),即可得到network的embedding(first-order proximity).
2.LINE with Second-order Proximity
second-order proximity对有向图和无向图都是可行的.
考虑有向图(无向图的边可以看作两条方向相反权重相同的有向边),在second-order proximity中,每个节点有两个role:
•作为节点本身
•作为其他节点的context
通过两个vector来表示每个节点的两个角色,对于节点vi,ui用于表示作为节点本身,ui'用于表示节点作为其他节点的context.
对于有向边(i,j),定义vj作为context的概率(关于vi).
|V|为节点总数.其实就是对于vi,各节点为其context的概率(分母可以看作是归一化因子).如果p2(•|v1)和p2(•|v2)的概率分布是相似的(即v1和v2的context相似),那么这两个节点就second-order proximity而言是相似的.
同样,让Pmodel p2(·|vi)去逼近经验分布p~(·|vi),也就是最小化下面的目标函数:
d(.,.)表示两个分布间的距离.由于network中各节点的重要性不同,引入λi来表示各节点的重要性,λi可以通过节点的degree来衡量,或者通过PageRank等算法来获得节点重要性的表示.
经验分布为
其中wij表示边(i,j)的权重,di是节点v的出度.
也就是
其中N(i)表示vi的out-neighbors.本文中令λi=di.同样使用KL-divergence来衡量两个分布的距离.
上述推导中要明确,调整的是p2中的ui和ui'来使目标函数最小.
最终有目标函数
通过learning ui序列和ui'序列来最小化目标函数,则可以获得network的embedding(second-order proximity),也就是 .
3)Combining first-order and second-order proximities
为了使network embedding同时考虑到first-order proximity和second-order proximity,先分别train获得关于first-order proximity的embedding和关于second-order proximity的embedding,然后将两者组合在一起(将两个向量拼接到一起,再做reweight).
Model Optimization
1)negative sampling
对于式(6),在计算p2(•|vi)时,式(4)中分母计算量很大,于是通过负采样的优化方法.采样K条负边,learning的时候只更新当前考虑的边(即(4)中的分子)和K条负边,其余的边不更新,这样有效提高了计算速度.此时的目标函数为:
第一项为当前考虑的边,第二项考虑采样到的K条负边.对于每条负边,一个节点为当前考虑的节点,另一个节点由采样得到,所以采样负边的本质是在采样节点(当前考虑的节点和采样得到的节点确定了一条负边).每个节点被采样的概率为Pn(v),其中
v为当前考虑的节点,dv为节点v的出度(3/4由经验给出).
用异步随机梯度下降(ASGD)来优化式(7),O2对ui求梯度有
可以看到梯度中包含了边权wij,当边权之间有着较高的方差时,比如说有的权重很大,有的权重很小,这时候学习率的设置会出现困难.如果根据小权重的边选择大的学习率,那么此时对于大权重的边会出现梯度爆炸;如果根据大权重的边选择小的学习率,那么此时对于小权重的边会出现梯度过小.对于这个问题,使用边采样来解决.
2)Edge Sampling
一种简单的想法是将权重为w的边拆成w条binary的边,但是这样做对于那些权重较大的边,很占据很大的存储空间.因此考虑一种更加合理的方式,对原来的边进行采样,采样到的边认为是binary的,并且每条边被采样的概率正比于原来的权重.
接下来说明如何进行采样,W=(w1,w2,...,w|E|)表示所有边权组成的序列.计算
之后再[0,Wsum]区间产生随机数,随机数落在哪条边权对应的区间内,就采样那条边.这种做法在总边数很多的时候,比较费时,因此考虑一种更优的方式.
这里使用alias table method,时间复杂度为O(1).(关于alias table method的资料网上有很多)
LINE model实际应用中可能遇到的问题
1)Low degree vertices
一些节点的neighbors很少,很难进行精确的presentation.本文对于这些节点添加second-order neighbors.节点vi到second-order neighbor j的weight为:
2)New vertices
对于新的节点如何对它进行presentation.对于一个新节点i,如果和它连接的已有节点是已知的,那么可以知道对于已知节点的经验分布p1(·,vi)和p2(·|vi).那么最小化目标函数:
优化的过程中,保持原有已知节点的embedding不动,更新新节点的embedding.