知识图谱—大规模网络编码(LINE模型)

知识图谱—大规模网络编码(LINE模型)

本文主要是对于LINE:Large-scale Information Network Embedding的翻译,有兴趣的读者可以参考原始文献。

1 背景介绍

信息网络在现实世界中是无处不在的,例如航线网络,出版网络,社交网络等等。这些信息网络的规模从几百个节点到百万,千万个节点的规模。 分析大规模的信息网络在学术界和工业界受到了广泛的关注。本文章主要关注于信息网络在低维空间中的编码问题。网络中的每一个节点使用一个低维的向量进行表示。这样的低维编码在下游的应用中,例如节点分类,链接预测,推荐系统等等都起到了很好的效果。
大量的关于图的编码的方法在机器学习领域中已经被提出。它们通常在小规模的网络中表现的很好。而当网络的规模过大的时候,这个编码的问题就受到了极大的挑战。例如,推特的数据包含175万的节点和二十亿的边。大多数现存的图编码方法不能去应对这样的网络规模。传统的编码方法,如MDS,IsoMap,Laplacian eigenmap 的时间复杂度对于节点数量都是二次的。这种时间复杂度当节点的规模达到百万时,计算起来是十分昂贵的。尽管最近已经有一些方法开始关注于大规模网络的编码。这些方法或者使用一些非针对图网络的编码方法,或者缺少清晰的目标函数。我们通过一个精心设计目标函数来训练一个新的模型,其保留了图的属性,并且以一种有效的优化技术来有效的寻找数百万节点的编码。

在本篇文献中,我们主要做出以下几点工作:

  1. 我们提出了一个网络编码架构,称之为Line,其能够适应任意类型的信息网络,并且可以很容易的适应数百万的节点规模。该模型通过仔细设计的目标函数来保留一阶和二阶的相似性。
  2. 我们提出一种边采样算法,用来优化目标,该算法主要应对的是传统梯度下降方法的限制。以此来提高模型的有效性和推断能力。
  3. 我们在真实世界网络中进行了扩展实验。实验结果证明了LINE模型的有效性。

2 相关工作

我们的工作和传统的图编码方法相关,例如MDS,LLE,Laplacian Eigenmap。这些方法一般首先通过特征向量来构建出一个近似图。比如根据K近邻算法来处理图中的数据,然后在对图进行有效的编码到低维的向量空间中。然而,这些算法依赖于解决近似矩阵中的特征向量。这些方法的时间复杂度至少是节点数量的二次方,这使得这些方法对大规模网络的有效性不足。

在最近的文献中,提出一种称为图的因式分解的方法,其通过矩阵的因式分解来确定大规模网络的低维编码。其使用随机梯度下降进行优化。这种算法存在一定的可行性,因为一个图能够被表示成一个近似矩阵。然而,因式分解的目标并不是为了网络结构设计的。因此其对于图结构信息的保存是不足的。在LINE模型中,使用一个专门为网络设计的目标,其保留一阶和二阶的相似性。同时,图的因式分解方法仅仅能被应用在无向图中,而Line模型可以被应用到有向图和无向图中。

在最近的研究工作中,与我们相似的是深度游走,该模型实现了一个截断的随机游走,用于对社交网络进行编码。尽管该方法实验是有效的,深度游走方法并没有提供一个清晰的目标来描述保留了网络中的那些属性。直观的,深度游走希望节点能够拥有高阶的相似性,而LINE模型则是同时保留了一阶和二阶的相似性。深度游走方法使用随机游走的方式来为节点扩大其邻居节点,扩展方法与深度优先搜索类似。我们使用广度优先搜索的策略,其对于二阶近似性更有可解释性。尤其是,深度游走网络仅仅能够适应无权图,而我们的模型能够应用于有权和无权图。

3 问题定义

我们使用一阶和二阶近似性来定义大规模信息网络的编码问题:

  1. 一个信息网络使用 G = ( V , E ) G=(V,E) G=(V,E),其中V是节点的集合,每一个元素表示一个节点,E表示的是边的集合,每一个元素表示节点之间的一条边。边集合中的每一条边 e ∈ E e∈E eE,拥有一个节点对 e = ( u , v ) e=(u,v) e=(u,v),同时拥有一个权重,即 w u v > 0 w_{uv}>0 wuv>0,其揭示了关系之间的强度。如果G是无向的,则有(u,v)=(v,u), w u v = w v u w_{uv}=w_{vu} wuv=wvu,如果图是有向的,则有(u,v)≠(v,u), w u v ≠ w v u w_{uv}≠w_{vu} wuv=wvu
    具体的,信息网络可以是有向的,可以是无向的。边的权重可以是二元的(0,1),或者是任意一个真实值。在本篇文献中,我们只关注边的权重是正值的情况。
  2. 一阶相似性: 一阶相似性描述的网络中的局部节点之间的相似性,这种相似性通过边(u,v)来描述。这些边的权重定义为 w u v w_{uv} wuv,权重解释了节点u和v之间的一阶相似性。如果节点u和v之间不存在边,则一阶相似性为0。然而真实世界的信息网络中,一阶链接的比例是很小的。一些不存在一阶邻居的节点对之间是不存在一阶相似性的,尽管这些对节点之间存在着一定的相似性。因此,一阶相似性对于保存网络结构信息而言,其是远远不足的。寻找其他的相似性就显得十分重要。一个自然的想法是共享邻居的节点之间呈现出一定的相似性。例如,在一个社交网络中,拥有相同朋友的人之间可能拥有相同的兴趣,因此可能成为朋友。在词共现网络中,经常共现的词之间可能存在一定的相似性。基于这种思路,我们定义出二阶的相似性,以此来保留网络的结构特性。
  3. 二阶相似性:定义在节点(u,v)之间,通过他们的邻居来定义其相似性。从数学的角度出发,令 p u = ( w u , 1 , . . . . w u , ∣ V ∣ ) p_u=(w_{u,1},....w_{u,|V|}) pu=(wu,1,....wu,V)表示的节点u和图中其他的节点的相似性。然后,节点u,v之间的相似性通过 p u p_u pu p v p_v pv进行定义。如果没有节点从u链接到v,则二者的相似性定义为0(即v是u的二阶邻居)。
  4. 给定一个大的网络 G = ( V , E ) G=(V,E) G=(V,E),大规模网络编码(LINE)目标是使用低维向量来表示节点集合V中的每一个节点v。即定义表示空间为 R d R^d Rd,学习一个函数 f G : V − > R d f_G:V->R^d fGV>Rd,其中d<<|V|。在编码空间 R d R^d Rd中,一阶相似性和二阶相似性都会被保留。

4 LINE模型

对于真实世界的信息网络的一个编码模型必须满足下面几个需求:

  1. 其必须能够保留节点之间的一阶相似性和二阶相似性。
  2. 其必须能够适应大规模的网络结构。
  3. 其必须能够适应网络中不同的边(有向,无向,有权,无权)
4.1 模型描述

我们从一阶相似性和二阶相似性两个方面进行描述,最后介绍两种相似性的结合。

4.1.1 Line的一阶相似性

一定相似性的定义与局部成对的节点相关。为了对一阶相似性进行建模,对于每一个无向边(i,j),我们定义节点 v i v_i vi v j v_j vj之间的联合概率分布为:
p 1 ( v i , v j ) = 1 1 + e x p ( − u i , u j ) p_1(v_i,v_j)=\frac{1}{1+exp(-u_i,u_j)} p1(vi,vj)=1+exp(ui,uj)1
其中 u i ∈ R d u_i∈R^d uiRd,其为节点 v i v_i vi的低维表示向量。上述的相似性概率计算公式定义在整个图的所有节点之间。并且其经验概率可以定义为: p 1 ′ ( v i , v j ) = w i j W p_1'(v_i,v_j)=\frac{w_{ij}}{W} p1(vi,vj)=Wwij,其中 W = ∑ ( i , j ) ∈ E w i j W=∑_{(i,j)∈E}w_{ij} W=(i,j)Ewij。为了保留一阶的近似性,一个直观的方式是最小化下面的目标函数:
O 1 = d ( p 1 ′ , p 1 ) O_1=d(p_1',p_1) O1=d(p1,p1)
其中d表示的两个分布之间的距离。这里我们选择KL散度作为距离计算方式,因此具体的定义方式为:
O 1 = − ∑ ( i , j ) ∈ E w i j l o g p 1 ( v i , v j ) O_1=-∑_{(i,j)∈E}w_{ij}logp_1(v_i,v_j) O1=(i,j)Ewijlogp1(vi,vj)
这里值得注意的是,这种方法主要使用在无向图中,这种计算并不适用于有向图中。通过计算图中的每一个节点的编码向量 u i , i = 1 , 2 , 3 , , . . . ∣ V ∣ u_i,i=1,2,3,,...|V| ui,i=1,2,3,,...V来最小化上述的目标函数。我们可以将每一个节点都采用一个d维度的向量进行表示。

4.1.2 Line模型的二阶相似性

二阶相似性的计算可以被使用到有向图或者无向图之上。给定一个网络,我们假设其是有向的(一个无向图中的边通常可以被整理成两个有向边)。二阶相似性假设与其他节点拥有相同链接的两个节点之间拥有一定的相似性。在这种条件之下,每一个节点可以被视为其他节点的上下文,并且拥有相同上下文分布的两个节点之间拥有一定的相似性。因此,每一个节点都扮演者两个角色,即节点自身和对于其他节点的上下文。同时,我们介绍两个向量 u i u_i ui u ‘ ’ u_‘’ u,其中 u i u_i ui是节点 v i v_i vi自身的向量表示。而 u i ′ u_i' ui表示的是节点 v i v_i vi作为具体的上下文的时候所生成表示。对于一个有向边(i,j),我们首先定义节点 v i v_i vi作为上下文生成节点 v j v_j vj的概率为:
p 2 ( v j ∣ v i ) = e x p ( u j ′ T , u i ) ∑ k = 1 ∣ V ∣ e x p ( u k ′ T , u i ) p_2(v_j|v_i)=\frac{exp(u_j'^T,u_i)}{∑_{k=1}^{|V|}exp(u_k'^T,u_i)} p2(vjvi)=k=1Vexp(ukT,ui)exp(ujT,ui)
其中|V|是整个图的规模。对于每一个节点 v i v_i vi,上述的公式实际上定义了一个条件概率分布 p 2 ( ⋅ ∣ v i ) p_2(·|v_i) p2(vi),其针对的是网络的中所有的节点。据前文所述,二阶的近似性假设拥有相同上下文,或者相同分布的节点之间拥有相似性。为了保留二阶的近似性,我们应该通过一个低维的表示来计算这种二阶的相似性,即 p 2 ( ⋅ ∣ v i ) p_2(·|v_i) p2(vi),同时令其能够与实际的经验分布 p 2 ′ ( ⋅ ∣ v i ) p_2'(·|v_i) p2(vi)保持一致,因此,我们定义如下的目标函数为:
O 2 = ∑ i ∈ V λ i d ( p 2 ′ ( ⋅ ∣ v i ) , p 2 ( ⋅ ∣ v i ) ) O_2=∑_{i∈V}λ_id(p_2'(·|v_i),p_2(·|v_i)) O2=iVλid(p2(vi),p2(vi))
其中d表示的是两个分布的距离。因为每一个节点在网络中的重要性不同,这里我们引入了λ到目标函数中,来表示节点i在网络中的重要性。具体的取值可以根据节点的度或者类似于PageRank预测的过程来生成。同时,实际的经验分布被定义为 p 2 ′ ( v j ∣ v i ) = w i , j d i p_2'(v_j|v_i)=\frac{w_{i,j}}{d_i} p2(vjvi)=diwi,j,其中 w i j w_{ij} wij表示的是边(i,j)之间的权重。 d i d_i di表示节点之间的出度。即 d i = ∑ k ∈ N ( i ) w i k d_i=∑_{k∈N(i)}w_{ik} di=kN(i)wik。其中N(i)表示的是节点i的邻居节点。在本篇文献中,我们设定的λ的取值方式为节点i的度。即 λ i = d i λ_i=d_i λi=di,这里同样也使用KL散度来衡量不同分布的差距。即二阶相似相似的目标函数定义为:
O 2 = − ∑ ( i , j ) ∈ E w i j l o g p 2 ( v j ∣ v i ) O_2=-∑_{(i,j)∈E}w_{ij}logp_2(v_j|v_i) O2=(i,j)Ewijlogp2(vjvi)
通过学习向量 u i u_i ui和向量 u i ′ u_i' ui来最小化目标函数,我们对于每一个节点 v i v_i vi使用一个向量 u i u_i ui来进行表示。

4.1.3 一阶相似性和二阶相似性的结合

为了通过结合一阶相似性和二阶相似来对网络进行编码,一个简单有效的方式,首先训练LINE模型,然后将一阶,二阶近似性的结果进行向量结果的拼接,即将自身的 u i u_i ui和上下文 u i ′ u_i' ui进行拼接。另外一种方式是将两个联合分布来进行结合。

4.2 模型优化

对于损失 O 2 O_2 O2的优化是十分昂贵的,当计算联合概率 p 2 ( ⋅ ∣ v i ) p_2(·|v_i) p2(vi)时,其需要对于整个的节点集合进行求和。为了解决这个问题,我们采用负采样的方法,通过一些噪声分布来采样一些负例边。更具体的,对于每一条边(i,j)而言,其目标函数为:
l o g δ ( u j ′ , u i ) + ∑ i = 1 K E v n − p n ( v ) [ l o g δ ( − u n ′ T , u i ) ] logδ(u_j',u_i)+∑_{i=1}^KE_{v_n-p_n(v)}[logδ(-u_n'^T,u_i)] logδ(uj,ui)+i=1KEvnpn(v)[logδ(unT,ui)]
其中,δ为sigmoid函数,即 δ ( x ) = 1 1 + e x p ( − x ) δ(x)=\frac{1}{1+exp(-x)} δ(x)=1+exp(x)1,整个目标函数的第一项是已有的边,第二项表示的是负采样的边,其中K表示负例边的数量。我们设置 P n ( v ) ∝ d v 3 / 4 P_n(v)∝d_v^{3/4} Pn(v)dv3/4 d v d_v dv是节点v的出度。
对于一阶相似性计算的目标函数,存在这样的解决方法,即 u i k = ∞ , 其 中 i = 1 , 2 , 3 , . . . , ∣ V ∣ u_{ik}=∞,其中i=1,2,3,...,|V| uik=i=1,2,3,...,V,k=1,2,3,…,d。我们也可以利用上述的公式来定义负采样,只需要将 u j ′ u_j' uj替换成 u j u_j uj即可。
同时,我们采用异步随机采样的方法来对于上述的公式进行优化,在每一步中,ASGD算法采样一个小batch的数据。然后,更新模型的参数。如果一个边(i,j)被采样,对于编码向量 u i u_i ui,其梯度计算公式为:
∂ O 2 ∂ u i = w i j ∂ l o g p 2 ( v j ∣ v i ) ∂ u i \frac{∂O_2}{∂u_i}=w_{ij}\frac{∂logp_2(v_j|v_i)}{∂u_i} uiO2=wijuilogp2(vjvi)
这种梯度将于权重相乘。这样存在一个问题,即当前权重可能是一个值比较大的变量。例如,在一个词共现的网络中,一些共现词同时出现了很多次,而另外一些词汇仅仅共现了很少的次数,这会使得权重分布不均。在这样的网络中,会造成梯度的发散问题。并且其很难去寻找一个比较好的学习率。如果我们对于权重比较小的边选一个比较大的学习率,则拥有较大权重的边的梯度可能会发生梯度爆炸。而我们根据权重较大的边来确定梯度,则会导致权重较小的边的梯度值较小。

4.2.1 通过边采样来进行优化

直观解决上述计算复杂度问题的方法是将所有的边设置相同的权重(比如二分的0,1),然后问题将会变成选择一个合适的学习率,一个简单的方式是将一个带权重的边展开成多个二元的边。这样可以解决之前所提到的问题,但是会增加对于内存的需求。尤其是边的权重过大的时候。为了解决这个问题,一种方式是可以从原始的边中进行采样,然后将采样的边视为二元的边。其中采样的概率是按照原始边的权重。通过边采样的方式,整个目标函数仍然相同。这个问题归结起来是如何根据边的权重进行采样。

W = ( w 1 , w 2 , . . . , w ∣ E ∣ ) W=(w_1,w_2,...,w_{|E|}) W=(w1,w2,...,wE)表示一系列边的权重,一种简单的计算方式为 w s u m = ∑ i = 1 E w i w_{sum}=∑_{i=1}^Ew_i wsum=i=1Ewi,然后在 [ 0 , w s u m ] [0,w_{sum}] [0,wsum]中随机采样一个值,来观察该值落到了哪一个区间中,即 [ ∑ j = 0 i − 1 w j , ∑ j = 0 i w j ) [∑_{j=0}^i-1w_j,∑_{j=0}^iw_j) [j=0i1wj,j=0iwj)。这种方法花费了O(|E|)的时间复杂度来采样,当E过大是,采用时间的复杂度过高,所以本文采用了别名表的采样方法,将采样的复杂度降低到了O(1)。

从别名表中进行采样,时间的复杂度被限制到 O ( 1 ) O(1) O(1),并且通过负采样进行优化需要花费 O ( d ( K + 1 ) ) O(d(K+1)) O(d(K+1)),其中K表示的是负样本的数量。因此,整体上的每一个的时间复杂度为 O ( d k ) O(dk) O(dk)。在实际中,我们发现优化的步数的通过与边的数量相关,即 O ( ∣ E ∣ ) O(|E|) O(E)。以此,整体上LINE模型的时间复杂度为 O ( d K ∣ E ) O(dK|E) O(dKE),其与边的数量|E|是线性相关的,而不依赖于节点的规模|V|,边采样的方式改善了随机梯度下降的有效性而没有降低模型的有效性。

4.3 讨论

我们讨论对于LINE模型的结果实际的问题:

  1. 低度的节点: 一个实际的问题是如何计算小度的节点的编码,因为其邻居节点的数量特别少,很难准确的推断出节点的表示,而二阶近似性也依赖于一定数量的上下文。一个直观的解决方法是通过添加高阶的邻居作为其邻居节点,例如邻居的邻居。在本篇文献中,我们仅仅考虑二阶的邻居节点,即邻居的邻居。而当前节点i和其二阶邻居节点j之间的权重定义为:
    w i j = ∑ k ∈ N ( i ) w i k w k j d k w_{ij}=∑_{k∈N(i)}w_{ik}\frac{w_{kj}}{d_k} wij=kN(i)wikdkwkj,实际上,可以为节点i添加一个节点子集{j},其中子集中的节点j和节点i都有比较大的相似性。
  2. 新节点:另外一个实际的问题是如何发现新的节点的表示。对于一个新的节点i,如何它和网络中现有的节点向连接,我们可以计算出其经验分布 p 1 ′ ( ⋅ , v i ) p_1'(·,v_i) p1(,vi) p 2 ′ ( ⋅ , v i ) p_2'(·,v_i) p2(,vi),为了通过一阶相似性或者二阶相似的目标函数来获取当前节点的编码,一个直观的方式是最小化其中的目标函数即可:
    − ∑ j ∈ N ( i ) w j i l o g p 1 ( v j . v i ) , O R − ∑ j ∈ N ( i ) w j i l o g p 2 ( v j ∣ v i ) -∑_{j∈N(i)}w_{ji}logp_1(v_j.v_i),OR -∑_{j∈N(i)}w_{ji}logp_2(v_j|v_i) jN(i)wjilogp1(vj.vi)ORjN(i)wjilogp2(vjvi)
    通过保证已存在的节点的编码不动,来为新的节点生成编码。
    进一步,如果新的的节点和当前节点之间没有连接,我们需要利用其它的信息,例如新节点的文本信息,我们将其留作未来的工作。

5 总结

个人理解,本文从一阶相似性和二阶相似性出发,利用节点的链接关系来确定经验分布,通过对于分布的预测于经验分布的距离来作为最终的loss函数,最终对图中的节点进行编码。

6 参考文献
  1. LINE: Large-scale Information Network Embedding
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值