Node2Vec: 学习网络的可伸缩特征
论文地址:[1607.00653] node2vec: Scalable Feature Learning for Networks (arxiv.org)
摘要
网络中节点与边的预测任务,需要精细的特征工程学习网络元素的表示。最近表示学习领域的研究在自动学习并预测特征方面取得重要进展。然而,现在的特征学习方法不能充分捕获像网络这样具有多种连接模式的特征表示。
本文提出 Node2Vec 算法框架,可以学习网络中节点的连续特征表示。在该算法中,我们会学习到一个节点到低维特征空间的映射,能最大化相邻节点的相似度。我们定义了灵活的节点邻居,设计了一种可以探索各种类型的邻居的有偏随机游走方法。我们的算法是对之前基于网络邻居均匀采样算法的扩展。我们认为提升对邻居采样的灵活性,是学到更丰富表示的关键。
我们基于多个领域真实网络上多标签节点分类与链路预测任务,演示了 node2vec 算法的性能,并与最新的现有技术做对比分析。总之,我们研究了一种高效学习复杂网络任务无关表示的新方法。
简介
网络分析中许多任务涉及基于节点和关系进行预测。在典型节点分类任务中,我们需要预测网络中节点最有可能的标签类型,例如社交网络中用户的兴趣点、蛋白质交互网络中蛋白质的功能标签。相似地,在链路预测中,我们想知道两点之间是否有关系。链路预测可用在多个领域:基因组学中预测基因的新交互、社交网络中预测真实世界的朋友关系。
任何监督学习算法都需要一组有信息量、可判别、互相独立的特征。网络中的预测问题需要人们构建节点和边的特征向量表示。典型解决办法是人工构造特定领域的特征,需要专家知识。即使人们完成了特征工程的繁琐工作,这类特征往往是专门设计给某种任务的,不能泛化到其他预测任务。
一个替代方法是通过求解最优化问题学习特征表示。其难点在于定义目标函数,涉及权衡计算效率和预测准确率。另一个思路是谱方法,通过优化下游任务的性能直接寻找特征表示。虽然这些监督方法可以达到该问题的高准确率,但因为其爆炸的参数量需要进行估计,得耗费很久的训练时间。在另一个极端,目标函数可以设计为与下游预测任务无关,仅通过无监督方法学习表示。这种方法里,对新设计的目标函数进行最优化计算会更高效,并产生任务无关的特征表示。把该表示用于特定任务后,得到的预测准确率与使用该任务相关方法得到的准确率基本一致。
然而当前技术还不能定义与优化一个理想的目标函数,用以训练网络的可伸缩的无监督特征表示。经典方法基于线性或非线性降维方法 Dimensionality Reduction Techniques,如主成分分析 PCA、多维缩放 MDS 及其扩展,来优化网络的代表矩阵的某种变换,以最大化数据表示的方差。因此,所有这些方法都需要矩阵的特征向量来进行分解,而使用矩阵表示现实世界的复杂网络会非常浪费空间且计算耗时过长。因此,其产生的表示在网络的多种预测任务上性能很差。
相比之下,我们设计一个新的目标函数,主要利用节点的局部邻居信息。该目标函数可使用 SGD 方法来高效优化,所使用的模型只是单隐藏层的前向神经网络,通过反向传播来优化目标函数。最近该方向的其他研究提出了一些高效算法,但它们都依赖严格的网络邻居定义,对节点邻居均匀采样,导致该方法对网络不同连接模式不敏感,尤其是在节点按所属社区组织时,或者按节点结构化角色组织时。
在图中可看到节点 u 和 s1 属于同一个紧密相连的社区,u 和 s6 属于不同的社区,但它们在各自社区的角色相同,都是社区中心。真实世界的网络通常存在所有这些等价关系。因此表示学习算法有必要遵守以下原则:同一个社区的节点表示能够更相似,节点角色相似时其特征表示能更相似。这样特征学习算法能够应用到各种领域和预测任务。
本文研究内容
我们提出 node2vec 算法,一种半监督可伸缩网络特征学习算法。该算法受之前自然语言处理任务启发,使用自定义的基于图的目标函数,并用 SGD 来优化该函数。直观地讲,该算法产生的 d 维特征空间的节点表示可以表达节点在网络中的邻居结构相似性。我们使用二阶段随机游走算法在节点的邻居上采样。
我们主要贡献是对网络邻居做了灵活定义,通过选择适当的邻居定义,node2vec 可以学习到节点的所属社区信息与社区内角色信息。我们设计一族有偏随机游走方法,探索给定节点的不同邻居,实现对节点不同邻居信息的捕获。最终该算法与先前研究的随机游走过程相比,具有更强的灵活性,允许我们通过参数控制邻居搜索空间。因此,我们的方法泛化性能更强,能够建模网络中观测到的等价关系的全部谱系。控制搜索策略的参数具有符合直觉的翻译名称,能够把游走调整到不同的网络探索算法,DFS 与 BFS。这些参数可以通过半监督学习形式,使用一小部分的标签数据直接学习到。
我们也展示如何将单个节点的特征表示扩展到节点对的特征表示,即边的特征表示。为了生成边的特征表示,我们对独立节点的特征表示使用简单二元运算。这种组合方式能够使 node2vec 预测涉及点和边的任务。
我们的实验集中在两类常见的网络预测任务:多标签分类与链路预测。多标签分类任务中,每个节点可能具有一个或多个标签,链路预测任务中,两个节点对之间可能具有边。我们将 node2vec 的性能与最新的特征学习算法做对比。我们在多个不同领域的真实网络上做实验。实验结果显示,node2vec 在多标签分类任务上的性能提升 26.7%,在链路预测任务上的性能提升 12.6%。该算法在只有 10% 的有标签数据集上也有很好的性能,且对噪声边与缺失边的干扰有抵抗力。在计算方面,node2vec 的主要阶段可以并行化,可将其扩展到百万节点的网络上,训练只需要几个小时。
总之本文的贡献如下:
-
提出 node2vec 方法,一种高效可伸缩网络特征学习算法,一种可使用SGD 高效优化的目标函数。
-
展示 node2vec 如何符合网络科学中发现的规律,提供灵活的在不同等价关系中发掘特征表示的能力。
-
扩展 node2vec 与其他基于保留邻居信息的目标函数的特征表示方法,将单个节点的特征表示扩展到节点对,执行关系预测任务。
-
在真实网络数据集上实际应用 node2vec 来执行多标签分类与链路预测任务。
本文余下部分的结构如下,第二节间短介绍网络特征学习的相关研究。第三节展示 node2vec 技术细节。第四节实际应用 node2vec 到实际网络任务中,计算该方法的参数敏感性、扰动分析与伸缩性。第五节总结该算法框架,强调一些有前途的未来研究方向。
相关研究
各个方向的机器学习社区都充分研究过特征工程。在网络中,基于特征抽取技术的卷积方法生成节点特征时,通常需要一些人工处理的网络属性做为种子。相比之下,我们的目标是自动化整个过程,把特征抽取转换为特征学习任务,这样不需要任何手工特征工程。
无监督特征学习方法通常利用图的各种矩阵表示的谱属性,尤其是拉普拉斯矩阵和邻接矩阵。用线性代数的观点看,这些方法都是降维技术。目前有线性 PCA 和非线性 IsoMap 的降维技术。这些方法受限于计算和统计缺陷,在计算效率方面,矩阵的特征分解非常耗时,或者使用估计方法来牺牲结果质量并提高计算速度。因此,这些方法很难扩展到大规模网络上。其次,这些方法优化的目标函数对不同网络结构模式不兼容,必须假设网络结构和预测任务。例如,谱聚类方法对图做了同构假设,以划分类型。这类假设在某些场景下可能有意义,但不能有效泛化到不同网络中。
最近自然语言处理的表示学习方面的突破,打开了离散对象特征学习的新方式,如单词。尤其是 Skip-gram 模型,通过优化单词的邻居对象来学习单词的连续特征表示。该算法处理过程如下:首先扫描文档中单词,对每个单词都做嵌入处理,并期望该嵌入能够预测相邻单词。然后添加负采样,并使用 SGD 优化目标函数来获得单词特征表示。Skip-gram 的目标函数基于词的分布式假设,具有相似上下文的单词通常具有相似含义,即相似单词具有相似邻居单词。
受 Skip-gram 启发,最近的研究建立了文档对网络的类比。文档是单词序列,网络也可以当作节点序列。然而,许多对节点对抽样策略导致学习到不同的特征表示。实际上,没有哪种抽样策略能在所有网络和所有预测任务上表现更好。不能提供对网络节点抽样的灵活性是上述研究的主要缺点。我们的算法 node2vec 克服了缺少灵活性的缺陷,不绑定某个具体的抽样策略,而是提供参数调整策略的搜索空间。
最后,在节点与边的预测任务上,有一大批基于图的深度学习的监督特征学习方法,这些架构直接最小化关于下游任务预测目标和标签的损失函数,在该任务上准确率很高,但训练耗时很长,且难以迁移到不同任务。
特征学习框架
形式化描述网络特征学习的最大似然优化问题。有 为给定网络,我们的分析是通用的,可用在任何网络类型上。有 表示需要学习的节点到特征表示的映射,该特征会被用在下游预测任务。此处 是特征维度, 是大小为 的矩阵。对每个源节点 ,定义 表示节点 的通过策略 定义的邻居。
我们扩展 Skip-gram 的处理架构到网络中,寻找以下目标函数的最优值,最大化节点 和 的在 下特征表示的对数似然度。
为了使优化问题更易处理,我们做出如下假设。
- 条件独立性。假设在给定源节点的特征表示下,邻居节点的似然度之间互相独立,我们可以求这些似然度的累乘表示所有邻居出现的似然度。
- 特征空间对称性。源节点与邻居节点在特征空间中具有对称关系,因此,每个源节点到邻居的条件似然度可建模为 softmax 计算单元,并通过其特征向量点积计算。
有了以上假设,目标函数可简化为下式。
其中 的计算在大规模网络中非常耗时,我们使用负采样方法来估计它。我们使用 SGD 对目标函数做优化,得到最优的 。
基于 Skip-gram 架构的特征学习方法最初在自然语言中使用,对于给定的线性原始文本,邻居可以是滑动窗口内的单词。然而网络不是线性结构,需要更复杂的邻居定义。为了解决这个问题,我们提出一种随机过程来采样源节点的不同类型的邻居。邻居的定义可以根据采样策略 来调整,而不只是直接相连的点。
经典搜索策略
将源节点邻居采样问题当作局部搜索问题,对于给定源节点 ,需要采样其邻居 。重点是,要能够公平的对比不同采样策略,需要约束邻居集合只有 个节点,然后对该节点做多次采样,产生多个邻居集合。通常有两种极端采样策略,BFS 和 DFS 。广度优先与深度优先采样是两种极端的搜索空间场景,导向不同的节点特征内涵。
特别地,网络节点的预测任务经常在两类相似性之间穿梭:同构性和结构等价。在同构假设下,内部节点联系紧密的节点集合属于相似的网络社区,需要被嵌入的近一些。相比之下,在结构等价假设下,具有相似网络结构角色的节点,需要被嵌入的近一些。重点是,不像同构性,结构等价不强调连通性,两个节点可以在网络中相距甚远,但具有同样的结构角色。在真实世界里,这些等价概念并互斥,网络通常展现出两种行为,一些节点具有同构性,另一些节点反映结构等价。
我们看到 BFS 和 DFS 在生成上述等价关系的表示时起关键作用。特别地,通过 BFS 采样的邻居通常符合结构等价。直观地讲,我们注意到一个现象,为了确定结构化等价,通常只要准确刻画局部邻居的特征就足够了。例如,基于网络角色的结构等价,如桥、枢纽等特征,只需要观察节点的直接邻居就足够下判断。通过约束对相邻节点的搜索,BFS 可以实现这种特征刻画,同时获得每个节点的微观邻居视野。除此之外,在 BFS 中,在采样出的邻居序列中节点可能重复出现多次。这点也很关键,在从某个源节点出发,刻画该节点一跳邻居序列时,邻居重复出现的情况减少了序列中节点分布的方差。然而,对于任何给定的 k,都只探索图中很小一部分。
上述论述的反面对 DFS 也成立,该策略探索网络的一大部分,因为它可以从源节点移动出更远。在 DFS 中,采样的节点更准确反映邻居的微观视野,对基于同构性来推断社区更关键。然而,DFS 的问题是,它不止对推断网络中点到点的依赖很重要,还对刻画这些依赖的准确特征很重要。这种特征很难刻画,因为我们约束了采样大小,同时需要探索海量的邻居,这导致特征的方差很高。其次,图探索移动得越深,将导致更复杂的依赖关系,因为一个样本点可能距离源节点很远,但却包含很少潜在信息。
node2vec
基于上述观点,我们设计一种灵活邻居采样策略,允许我们平滑地在 BFS 与 DFS 之间穿插。我们通过开发一种灵活的有偏随机游走过程来实现此目标,该游走过程能够以 BFS 或 DFS 的方式探索邻居。
随机游走
形式化地,给定一个源节点 ,模拟一个固定长度为 的随机游走。令 表示游走路径中的第 个节点,起始点 ,节点 由以下分布产生。
其中 是未归一化的节点 和 的转移概率, 是归一化常量。
搜索偏置
最简单的偏置随机游走的方法是,使用关系权重来采样下一个节点,即 。然而这并不足以让我们认识到网络结构,并帮助搜索过程探索网络中不同类型的邻居。此外,不像 BFS 和 DFS 这种极端采样模式,分别适合采样结构等价与同构性,我们的随机游走需要满足这两类等价性不能互斥的条件,因为真实网络通常同时表现出这两种等价关系。
我们定义一种二阶段随机游走算法,带有参数 和 。这两个参数可以辅助游走过程的节点选择,假设随机游走刚走过边 ,当作驻留节点为 ,下一步节点的选择需要计算通过关系 的转移概率 。我们取未归一化的转移概率为 ,其中
表示节点 与节点 之间的最短距离,取值在 之间。因此,需要这两个参数来满足游走的导航。
直观地,参数 和 控制游走在周边探索与远离起始节点 的速率。特别地,这俩参数运行我们的查找过程在 BFS 和 DFS 之间穿插,因此可以反映对不同节点等价关系的亲和力。
返回参数
该参数控制游走过程立马重新访问路径中上一个节点的概率。将其设置为越高的值,能保证接下来的游走不会采样路径中已有的节点,该策略鼓励适度探索,避免两跳重复采样。另一方面,将其设置为越低的值,将导致游走在路径上回溯,最终返回初始节点。
出入参数
该参数控制下一步搜索发生在内向节点上还是外向节点上。如果 ,随机游走更倾向于在靠近 的节点上探索,这种探索获取初始节点附近的视野,类似 BFS 行为。相比之下,如果 ,游走更偏向于访问远离节点 的节点。该行为类似 DFS,鼓励向外探索。然而,关键不同的是我们在随机游走的框架内实现了 DFS 探索。因此,采样的节点并不严格增加对源节点的距离。因此,我们能从一种可调整和高效抽样的随机游走中获益。通过给路径前节点设置转移函数,随机游走变成二阶段马尔可夫链。
从随机游走中获益
与 BFS/DFS 方法相比,随机游走有一些收益点。随机游走在时间和空间方面都是符合计算高效的。空间复杂度与每个节点的直接邻居数量有关,为 。对于二阶段随机游走,存储节点邻居之间的内部连接很有用,引入空间复杂度 ,其中 是图的平均度,通常在真实网络中数值很小。随机游走的另一个关键优点是时间复杂度低。特别地,通过采样过程中图的大量连通性,随机游走提供方便的机制来增加有效采样率,可在不同源节点上重用样本。通过模拟一个长度为 的随机游走,我们一次性地在 个样本上进行了 个采样,这是因为马尔可夫链式随机游走的特性。因此时间复杂度可以为 。假设我们采样路径为 ,那么等于一次性得到了 、 和 。需要注意,样本重用会在整个过程产生一些偏置。因此,我们看到随机游走极大提升效率。
Node2vec 算法
伪代码如下。
任何随机游走,都会因为源节点的选择引入隐式偏置项。由于我们学习所有节点的表示,需要通过对每个节点模拟 次随机游走来抵消该偏置。游走的每一步都使用转移概率来决定采样。转移概率来自二阶马尔可夫链,是可以预计算的。因此随机游走的节点采样可以以 的效率执行。node2vec 的三个阶段按顺序执行,预处理计算转移概率、模拟随机游走、使用 SGD 优化目标函数。但每个阶段都可以并行执行,给 node2vec 带来伸缩性。
学习边特征
node2vec 算法提供一种半监督方式学习网络中节点的丰富特征表示。然而,我们经常遇到涉及节点对的预测任务,例如链路预测,预测网络中两节点之间是否存在连接。由于随机游走天然地基于连接结构,我们可以通过辅助方法将其扩展到学习节点对的表示上。
给定节点 和 ,定义二元运算符 来计算节点对应特征向量 和 ,以产生节点对的新表示 ,其中 , 是该表示的维度数。我们期望该运算符可以对任何节点对做计算,即使两节点之间没有关系,并在测试集上检验表示的效果。这样该表示就可以用来进行链路预测。需要谨慎选择该二元运算,通常维度 。
实验
node2vec 的学习目标与下游任务无关,且图探索具有灵活性,导致学到的特征表示需要被广泛的网络分析。
案例学习:Les Miserable Network
在第三节我们了解到 BFS 与 DFS 策略分别表示对节点嵌入到两个不同的极端思路,一个依据同构性原则,一个依据结构等价原则。现在我们要实际实验该现象,并演示 node2vec 如何同时遵守这两个原则。
我们使用这样一个网络,其节点对应小说《悲惨世界》中的人物。该网络有 77 个节点和 254 条边。我们设置维数 来运行 node2vec ,学习各节点特征表示。然后对特征表示使用 k-means 聚合,将结果可视化到二维空间,并为节点赋上与社区对应的颜色。
下图展示了设置参数 时的结果。注意网络中的同一社区使用同一个颜色。在该参数下,node2vec 发掘人物频繁交互行为形成的社区结构,边代表人物之间的共现关系,我们可以将该特性视为同构性。
为了演示哪些节点在网络中具有结构等价性,我们设置参数 ,使用 node2vec 学习节点特征,然后根据特征聚合节点。此处,node2vec 获得了节点到社区关系的补充特性,颜色代表这些节点结构等价。
例如,node2vec 把蓝色节点嵌入的更近,这些节点对应的人物,在小说剧情中发挥桥的作用。相似地,黄色节点表示人物在剧情中处于边缘人物的地位,与其他人互动有限。
人们还可以对聚合做其他解释,但关键是 node2vec 不与某类等价关系的定义绑定。通过实验也展示了,这些等价关系在真实网络中经常存在,对学到的用于预测任务的表示的性能有重大影响。
实验设置
实验使用 node2vec 学到的特征表示处理标准监督任务:节点的多标签分类任务、边的链路预测任务。每个任务,我们都将 node2vec 与以下特征学习算法做对比。
-
谱聚类。一种矩阵分解方法,取图的拉普拉斯矩阵的最高 d 个特征向量做为节点特征表示。
-
DeepWalk。通过均匀随机游走学习节点 d 维特征表示,相当于设置 node2vec 参数为 。
-
LINE。两阶段学习节点 d 维特征表示。第一阶段在节点邻居上进行 BFS 式采样,学习 d/2 维表示。第二阶段在节点的二跳邻居上均匀采样,学习 d/2 维表示。
略
多标签分类任务
在多标签分类任务中,每个节点具有一个或多个来自集合 标签。在训练阶段,观测部分节点与其标签的对应关系,预测剩下节点的标签。当 非常大时,该预测极具挑战性。我们使用以下数据集。
-
BlogCatalog。博主之间的社交关系网络。
-
Protein-Protein Interaction,PPI。蛋白质交互网络。
-
Wikipedia。维基百科中单词的共现网络。
这些网络都展示了同构性和结构等价性的混合特征。
略
链路预测
在链路预测中,训练时从网络中刻意移除部分关系,目标是预测这些关系。我们按照以下步骤生成标签数据集:从网络中随机移除 50% 的关系,同时确保剩下的网络是联通的,留下的关系被作为正样本。然后从网络中没有边相连的节点对中采样出与删除数量一致的样本,为其添加关系。
由于之前没有特征学习算法用于链路预测,我们将 node2vec 与高性能启发式链路预测方法做对比。计算节点对的得分可被认为这两个节点之间构成关系的概率。使用以下数据集。
-
Facebook。节点表示用户,边表示用户之间的朋友关系。
-
Protein-Protein Interactions,PPI。
-
arXiv ASTRO-PH。论文合作网络,点表示科学家,边表示合作过论文。
略
讨论与总结
本文,我们研究网络特征学习,将其视为基于搜索的优化问题。该观点给了我们许多优势。它解释了经典搜索策略在探索与开发上的权衡 exploration-exploitation trade-off。此外,它提供了学习预测任务的特征表示的解释度量。比如,BFS 只探索有限邻居,因此它适用于刻画节点局部结构的等价关系。另一方面,DFS 可以在网络邻居上自由探索,能够以高方差为代价,发现社区同构性。
DeepWalk 和 LINE 都可被视为固定搜索策略。DeepWalk 使用均匀随机游走,前文对该策略缺陷的讨论说过,它不能控制对邻居的探索。LINE 主要使用 BFS 策略,同时使用节点的 1-hop 和 2-hop 邻居。这种探索方式很容易刻画,但限制了探索更深层节点的灵活性。相比之下,node2vec 搜索策略既灵活又可控,同时其参数具有直观解释。在复杂网络的应用上 node2vec 也有最好的效果。从实践标准看,node2vec 更具伸缩性与抗扰动。
我们展示了如何将节点嵌入扩展到链路预测问题上,并取得了比该类问题专设的启发式算法更好的预测结果。我们的方法支持额外的二元运算。将来,我们想要探索 Hadamard 运算的成功背后的原因,同时建立边的基于参数的可解释等价关系定义。对 node2vec 的扩展可能涉及异构网络的特殊结构。
连续特征表示是许多深度学习算法的骨架,可使用 node2vec 构建端到端图深度学习模型。