咱们使用一阶和二阶邻近度,正式定义了大规模信息网络嵌入问题。 咱们首先定义一个信息网络以下:网络
定义 1(信息网络):信息网络定义为G = (V, E)
,其中V
是顶点集合,每一个顶点表明一个数据对象,E
是顶点之间的边集合,每一个边表明两个数据对象之间的关系。每一个边e ∈ E
是有序对e = (u, v)
而且与权重w[uv] > 0
相关联,其表示关系的强度。 若是G
是无向的,咱们有(u, v) ≡ (v, u)
和w[uv] = w[vu]
;若是G
是有向的,咱们有(u, v) ≢ (v, u)
和w[uv] ≢ w[vu]
。异步
在实践中,信息网络能够是定向的(例如引文网络)或无向的(例如,Facebook 中的用户的社交网络)。边的权重能够是二元的,也能够是任意实数。 请注意,虽然负边权重是可能的,但在本研究中咱们只考虑非负权重。 例如,在引文网络和社交网络中,你须要二元值;在不一样对象之间的共现网络中,w[uv]
能够取任何非负值。 一些网络中的权重可能会分散,由于一些对象共同出现不少次,而其余对象可能只共同出现几回。函数
将信息网络嵌入低维空间在各类应用中都颇有用。 要进行嵌入,必须保留网络结构。 第一个直觉是,必须保留局部网络结构,即顶点之间的局部成对邻近度。 咱们将局部网络结构定义为顶点之间的一阶邻近度:学习
定义 2(一阶邻近度):网络中的一阶邻近度是两个顶点之间的局部成对邻近度。 对于由边(u, v)
连接的每对顶点,该边上的权重w[uv]
表示u
和v
之间的一阶邻近度。 若是在u
和v
之间没有观察到边,则它们的一阶邻近度为 0。优化
一阶邻近度一般意味着现实世界网络中两个节点的类似性。 例如,在社交网络中彼此成为朋友的人倾向于分享类似的兴趣;在万维网中相互连接的页面倾向于谈论相似的主题。 因为这一重要性,许多现有的图嵌入算法,如 IsoMap,LLE,拉普拉斯特征映射和图分解,目标是保留一阶邻近度。spa
然而,在现实世界的信息网络中,观察到的连接只占很小的比例,许多其余的连接是缺失的 [10]。缺失连接上的一对节点的一阶邻近度为零,即便它们本质上彼此很是类似。 所以,单独的一阶邻近不足以保留网络结构,而且重要的是寻求解决稀疏问题的替代邻近概念。 一种天然的直觉是,共享类似邻居的顶点每每彼此类似。 例如,在社交网络中,分享相似朋友的人每每具备类似的兴趣,从而成为朋友;在词共现网络中,老是与同一组词共同出现的词每每具备类似的含义。 所以,咱们定义了二阶邻近度,它补充了一阶邻近度并保留了网络结构。code
定义 3(二阶邻近度):网络中一对顶点(u, v)
之间的二阶邻近度,是它们的邻域网络结构之间的类似性。 在数学上,让p[u] = (w[u, 1], … , w[u, |V|])
表示u
与全部其余顶点的一阶邻近度,而后u
和v
之间的二阶邻近度由p[u]
和p[v]
之间的类似性肯定。若是u
和v
没有连接到相同的顶点,则u
和v
之间的二阶邻近度为 0。orm
咱们研究了网络嵌入的一阶和二阶邻近度,其定义以下。对象
定义 4(大规模信息网络嵌入):给定大型网络G = (V, E)
,大规模信息网络嵌入的问题,旨在将每一个顶点v ∈ V
在低维空间R^d
表示,即学习函数f[G]: V -> R^d
,其中d << |V|
。 在空间R^d
中,保留顶点之间的一阶邻近度和二阶邻近度。
接下来,咱们介绍一种大规模网络嵌入模型,它保留了一阶和二阶邻近度。
用于现实世界信息网络的理想嵌入模型必须知足若干要求:首先,它必须可以保留顶点之间的一阶邻近和二阶邻近度;第二,它必须适用于很是大的网络,好比数百万个顶点和数十亿个边;第三,它能够处理具备任意类型边的网络:有向,无向和/或加权,无权。 在本节中,咱们提出了一种新的网络嵌入模型,称为“LINE”,它知足全部这三个要求。
咱们描述 LINE 模型来分别保留一阶邻近度和二阶邻近度,而后介绍一种组合两个邻近度的简单方法。
一阶邻近度是指网络中顶点之间的局部成对邻近度。 为了模拟一阶邻近度,对于每一个无向边(i, j)
,咱们定义顶点v[i]
和v[j]
之间的联合几率,以下所示:
(1)
其中u[i] ∈ R^d
是顶点v[i]
的低维矢量表示。公式(1)定义空间V×V
上的分布p(·,·)
,其经验几率可定义为^p[1](i, j) = w[ij]/W
,其中W = Σw[ij], (i, j) ∈ E
。 为了保留一阶邻近度,一种直接的方法是最小化如下目标函数:
(2)
其中d(·,·)
是两个分布之间的距离。 咱们选择最小化两个几率分布的 KL 散度。 用 KL 散度代替d(·,·)
并省略一些常数,咱们获得:
(3)
请注意,一阶邻近度仅适用于无向图,而不适用于有向图。 经过找到最小化公式(3)中的目标的{u[i]}, i = 1 .. |V|
,咱们能够表示d
维空间中的每一个顶点。
二阶邻近度适用于有向图和无向图。给定网络,在不失通常性的状况下,咱们假设它是有向的(无向边能够被认为是具备相反方向和相等权重的两个有向边)。 二阶邻近度假设共享与其余顶点的许多链接的顶点彼此类似。 在这种状况下,每一个顶点也被视为特定的“上下文”,而且假设在“上下文”中具备类似分布的顶点是类似的。 所以,每一个顶点扮演两个角色:顶点自己和其余顶点的特定“上下文”。 咱们引入两个向量u[ i]
和u'[i]
,其中u[i]
是v[i]
在被视为顶点时的表示,而v'[i]
是当v[ i]
被视为特定“上下文”时的表示。 对于每一个有向边(i, j)
,咱们首先将顶点v[i]
生成“上下文”v[j]
的几率定义为:
(4)
其中|V|
是顶点或“上下文”数量。对于每一个顶点v[i]
,公式(4)实际上定义了上下文中(即网络中的整个顶点集)的条件分布p[2](·|v[i])
。 如上所述,二阶邻近度假设在上下文中具备类似分布的顶点彼此类似。 为了保持二阶邻近度,咱们应该使由低维表示指定的上下文条件分布p[2](·|v[i])
邻近经验分布^p[2](·|v[i])
。 所以,咱们最小化如下目标函数:
(5)
经过学习使这个目标最小化的{u[i]}, i = 1 .. |V|
以及{u'[i]}, i = 1 .. |V|
,咱们可以用d
维向量u[i]
表示每一个顶点v[i]
。
要经过保留一阶和二阶邻近度来嵌入网络,咱们在实践中找到的一种简单而有效的方法是训练 LINE 模型,分别保留一阶邻近和二阶邻近度,而后链接由两种方法为每一个顶点训练的嵌入向量。结合两种邻近度的更原则性方法,是联合训练目标函数(3)和(6),咱们将其留做将来的工做。
优化目标(6)在计算上是昂贵的,其在计算条件几率p[2]
时须要对整个顶点集合求和。 为了解决这个问题,咱们采用 [13] 中提出的负采样方法,根据每条边(i, j)
的一些噪声分布采样多个负边。 更具体地说,它为每一个边(i, j)
指定如下目标函数:
(7)
其中σ(x) = 1 / (1 + exp(-x))
是 sigmoid 函数。 第一项用于模拟观察到的边,第二项用于模拟从噪声分布中提取的负边,K 是负边的数量。 咱们设置 [13] 中提出的P[n](v) ∝ d[v]^3/4
,其中d[v]
是顶点v
的出度。
对于目标函数(3),存在一个简单的解决方案:u[ik] = ∞
,对于i = 1, ..., |V|
和k = 1, ..., d
。 为了不这种简单的解决方案,咱们仍然能够经过将u'[j]^T
改成u[j]^T
来利用负采样方法(7)。
咱们采用异步随机梯度算法(ASGD)[17] 来优化公式(7)。 在每一个步骤中,ASGD 算法对小批量边进行采样,而后更新模型参数。 若是采样边(i, j)
,则顶点i
的嵌入向量u[i]
的梯度为将计算为:
(8)
请注意,梯度将乘以边的权重。 当边的权重具备高方差时,这将成为问题。 例如,在单词共现网络中,一些单词共同出现屡次(例如,数万次),而一些单词仅共同出现几回。 在这样的网络中,梯度的尺度发散,很难找到良好的学习率。 若是咱们根据小权重的边选择较大学习率,大权重的边缘上的梯度将爆炸,而且若是咱们根据大权重的边选择较小学习率,梯度将变得过小。
解决上述问题的直觉是,若是全部边的权重相等(例如,具备二元边的网络),则不存在选择适当学习率的问题。 所以,简单的处理是将加权边展开成多个二元边缘,例如,权重为w
的边展开成w
个二元边。 这将解决问题,但会显着增长内存需求,特别是当边的权重很是大时。 为了解决这个问题,能够从原始边采样并将采样边视为二元边,采样几率与原始边权重成正比。 经过这种边采样处理,整体目标函数保持不变。 问题归结为如何根据权重对边采样。
咱们讨论了 LINE 模型的几个实际问题。
低度顶点:一个实际问题是如何精确地嵌入低度顶点。 因为此类节点的邻居数量很是少,所以很难准确地推断其表示,尤为是基于二阶邻近度的方法,这种方法严重依赖于“上下文”的数量。对此的直观解决方案是扩展 这些顶点的邻居经过添加更高阶的邻居,例如邻居的邻居。 在本文中,咱们只考虑向每一个顶点添加二阶邻居,即邻居的邻居。 顶点i
与其二阶邻居j
之间的权重测量为:
实际上,人们只能添加顶点{j}
的子集,它与低度顶点i
具备最大邻近度。
新顶点:另外一个实际问题是如何找到新到达顶点的表示。 对于新的顶点i
,若是已知其与现有顶点的链接,咱们能够在现有顶点上得到经验分布^p[1](·, v[i])
和^p[2](·|v[i])
。 根据目标函数公式(3)和(6),为了得到新顶点的嵌入,一种直接的方法是最小化如下任一目标函数。
(10)
经过更新新顶点的嵌入并保持现有顶点的嵌入。 若是没有观察到新顶点和现有顶点之间的链接,咱们必须求助于其余信息,例如顶点的文本信息,并将其做为咱们将来的工做。