本文来自翻译Graph Embedding Techniques, Applications, and Performance: A Survey
摘要 图结构在各种现实世界的应用中都是自然存在的,如社交网络、词同现网络和通信网络。分析它们可以深入了解社会结构、语言结构和不同的交流模式。目前已经提出了很多种分析方法。近年来,在向量空间中使用图节点表示的方法得到了研究界的广泛关注。在本文中,我们对文献中提出的各种图嵌入技术进行了全面、结构化的分析。我们首先介绍了嵌入任务及其面临的挑战,如可伸缩性、维度的选择、需要保留的特性以及它们可能的解决方案。然后,我们提出了基于因式分解方法、随机游动和深度学习的三类方法,举例说明了每个类别中具有代表性的算法,并分析了它们在各种任务上的性能。我们在几个常见的数据集上评估这些最先进的方法,并将它们的性能进行比较。我们的分析最后提出了一些潜在的应用和未来的方向。最后,我们展示了我们开发的开源python库,命名为GEM(Graph Embedding Methods, https://github.com/palash1992/GEM))它在统一的接口中提供了所有本文提到过的算法,以提高促进对该主题的研究。
1.引言
近年来,由于网络在现实世界中的普遍存在,图形分析越来越受到人们的关注。图表已被用来表示各个领域的信息,包括生物学(蛋白-蛋白质相互作用网络)、社会科学(社交网络)和语言学(词同现网络)。将实体之间的交互关系建模,可以使研究人员更加系统地理解各种网络系统。例如,社交网络已被用于交友、内容推荐、广告推荐等应用程序。图形分析任务可以概括为以下四类:节点分类、链接预测、聚类、可视化。节点分类基于其他标记节点和网络拓扑来确定节点的标签。链接预测旨在预测缺失链接或未来可能发生的链接。聚类用于查找相似节点并将它们分组在一起;最后,可视化有助于洞察网络结构。
在过去的几十年里,已经提出很多分析图像的方法。对于节点分类,大致有两类方法,一是利用随机游走传播标签,二是从节点中提取特征,然后应用分类器。链接预测方法包括基于相似度的方法、最大似然模型和概率模型。聚类方法包括基于属性的模型和直接最大化(或最小化)簇内距离(簇间距离)的方法。本文将根据这些应用程序领域和现有策略来分类阐述。
通常,用于解决图问题的模型要么是定义在原始图邻接矩阵上,要么是定义在导出的向量空间上。近年来,基于向量空间表示网络的方法因为能够保持其特性,得到了广泛的应用。节点嵌入对上述四类任务都有帮助,嵌入节点可作为特征输入到模型中,并根据训练数据学习参数。这就避免了直接应用于原图上的复杂分类模型。
1.1 挑战
获取图中每个节点的向量表示带来了一些挑战,这些挑战一直在推动这一领域的研究。
(i)特征选择 一个“好”的向量表示应该保留图形的结构和单个节点之间的连接。第一个挑战是挑选嵌入应该保留的特征。由于图中有大量的距离度量和属性,这种选择可能很困难,并且性能可能取决于应用程序。
(ii)可延展性 大多数真实的网络都很大,包含数百万个节点和边——嵌入方法应该是可延展的,并且能够处理大型图形。定义可伸缩模型具有挑战性,特别是当模型的目的是保存网络的全局属性时。
(iii)嵌入维度 寻找网络表示的最优维数很困难。例如,较高的维数可以提高重建精度,但会有较高的时间和空间复杂性。根据方法的不同,维度选择也可以是特定于应用程序的:例如,如果选择的模型只捕获节点之间的本地连接,则维度的减少可能会提高链路预测的准确性。
1.2 本文贡献
本文的贡献主要有以下三个方面:
(1)我们对图嵌入方法进行分类,并解释了它们的不同之处。我们定义了四个不同的任务,即图嵌入技术的应用领域。我们将介绍这一主题的演变、面临的挑战以及未来可能的研究方向。
(2)我们对各种图嵌入模型进行了详细、系统的分析,并讨论了它们在各种任务上的性能。对于每种方法,我们通过对几种常见数据集和应用场景的综合比较评价,分析了保留的属性及其准确性。此外,我们对评估的方法进行了超参数敏感性分析,以测试它们的鲁棒性,并提供了对最优超参数对所执行任务的依赖性的理解。 (3)为了促进本课题的进一步研究,我们开发了开源python库GEM,在统一的接口下,提供了本文讨论的所有图嵌入方法的实现。据我们所知,这是第一篇调查图嵌入技术及其应用的论文。
1.3 本文结构
本文结构如下。在第2节中,我们提供了理解问题所需的定义和接下来要讨论的模型。第3节对图嵌入方法进行分类,并描述了每个类别中具有代表性的算法。使用了表示学习方法的应用程序列表见第4节。然后,我们描述了实验设置(第5节),评估了不同的模型(第6节)。第七节介绍了图嵌入方法的python库。最后,在第8节中,我们得出了我们的结论,并讨论了潜在的应用和未来的研究方向。
2.定义和前期准备
接下来我们用 [n] 表示集合 {1,2,…,n}, 我们首先定义几个概念。
定义1: 图形G ( V , E ) 表示该图的点集合是 V = { v1,…,vn }, E = { e i j } i , j = 1 n E = \left \{ e_{ij} \right \}_{i,j = 1}^{n} E={
eij}i,j=1n为边集合。图G的邻接矩阵 S 包含与每条边相关的非负权重: s i j ≥ 0 s_{ij}\geq 0 sij≥0。如果vi 和vj相连,则 s i j = 0 s_{ij}= 0 sij=0。对无向权重图来说, s i j = s j i , ∀ i , j ∈ [ n ] s_{ij}= s_{ji},\forall i,j\in [n] sij=sji,∀i,j∈[n].
边权重 s i j s_{ij} sij通常作为对节点vi 和vj相似度的度量,边权重值越大,表示两个节点越相似。
定义2: (一阶相似)边权重 s i j s_{ij} sij也被称为节点vi 和vj间的一阶相似,因为它们是衡量两个节点之间相似性的首要指标。
我们可以类似地定义节点之间的高阶相似。例如,
定义3:(二阶相似)一对节点之间的二阶相似描述了这对节点邻域结构的邻近性。用 s i = [ s i 1 , . . . , s i n ] s_{i} = \left [ s_{i1},...,s_{in} \right ] si=[si1,...,sin]表示vi 和其他节点之间的一阶接近。然后,vi 和vj之间的二阶相似性由si 和sj的相似性决定。
二阶邻近比较两个节点的邻域,如果它们具有相似的邻域,则将它们视为相似。也可以使用其他度量来定义高阶相似。例如, Katz Index, Rooted PageRank, Common Neighbors, Adamic Adar等(关于详细的定义,为节省空间在此省略,见Ou.[24])。接下来,我们定义图嵌入:
定义3: (图嵌入),给定一个图G ( V , E ),图嵌入是指节点和矢量之间的映射: f : v i → y i ∈ R d ∀ i ∈ [ n ] f:v_{i}\rightarrow \boldsymbol {}y_{i} \in \mathbb{R}^{d}\ \forall i\in [n] f:vi→yi∈Rd ∀i∈[n],并且 d ≪ ∣ V ∣ d\ll \left | V \right | d≪∣V∣,函数 f f f保留图G上定义的一些相似度量。
因此,嵌入将每个节点映射到低维特征向量,并试图保留顶点之间的连接强度。例如,嵌入可以通过最小化 ∑ i , j s i j ∥ y i − y j ∥ 2 2 \sum _{i,j}s_{ij}\left \| y_{i}-y_{j} \right \|_{2}^{2} ∑i,jsij∥yi−yj∥22来保持一阶邻近性。让两个节点对(vi ,vj )和(vi ,vk )与连接强度相关联,例如 s i j > s i k s_{ij}> s_{ik} sij>sik. 在这种情况下,vi 和vj 被映射到嵌入空间中的点将比vi 和vk 的映射更接近。
3.算法:分类
在过去的十年中,图嵌入领域有大量的研究,重点是设计新的嵌入算法。最近,研究人员致力于可扩展的嵌入算法,这些算法可以应用于具有数以百万计节点和边的图。在下文中,我们提供了这一领域的研究进展的历史背景(§3.1),然后提出了图嵌入技术(§3.2)的分类法(§3.3)、随机游走技术(§3.4)、深度学习(§3.5)和其他杂项策略(§3.6)。
3.1 图形嵌入研究背景与演化
21世纪初,研究人员开发了图嵌入算法,作为降维技术的一部分。他们为一组基于邻域的n个 D 维点构造一个相似图,然后将该图的节点嵌入到d维向量空间中,其中 d ≪ D d\ll D d≪D。嵌入的思想是在向量空间中保持节点的连接特性,两个节点如果相连,在向量空间中也会更接近彼此。Laplacian Eigenmaps 和 Locally Linear Embedding (LLE) 算法就基于该原理。然而,可扩展性是这种方法的一个主要问题,其时间复杂度高达 O ( ∣ V ∣ 2 ) O\left ( \left | V \right |^{2} \right ) O(∣V∣2)。
自2010年以来,对图嵌入的研究已经转向可扩展的图嵌入技术,可扩展的图嵌入技术主要利用现实世界网络的稀疏性。例如,Graph Factorization使用邻接矩阵的近似因式分解作为嵌入。LINE 扩展了这种方法,并试图保持一阶和二阶相似性。HOPE扩展LINE算法,试图通过使用广义奇异值分解(SVD)分解相似矩阵而不是邻接矩阵来保持高阶邻近性。SDNE使用自动编码器嵌入图节点并并捕捉高度非线性的依赖关系。新的可扩展算法的时间复杂度为 O ( ∣ E ∣ ) O\left ( \left | E \right | \right ) O(∣E∣)。
3.2 图嵌入方法的分类
我们将嵌入方法分为三大类:(1)基于因式分解的方法,(2)基于随机游走的方法,(3)基于深度学习的方法。下面我们解释每一类的特点,并概述每一类别的几种有代表性的方法(参见表1),使用表2所示的符号。
3.3 基于因式分解的方法
基于因式分解的算法以矩阵的形式表示节点之间的连接,并对该矩阵进行因式分解以获得嵌入。用于表示连接的矩阵包括邻接矩阵、拉普拉斯矩阵、节点转换转移矩阵和Katz相似矩阵等。矩阵分解方法因矩阵特性不同而不同。如果得到的矩阵是正半定的,例如拉普拉斯矩阵,可以使用特征值分解。对于非结构矩阵,可以使用梯度下降方法来获得线性时间内的嵌入。
3.3.1 局部线性嵌入LLE
LLE假设每个节点都是嵌入空间中邻域节点的线性组合。.如果我们假设图G的邻接矩阵元素 wij 表示节点 i 中节点 j 的权重,我们定义: Y i ≈ ∑ j W i j Y j ∀ i ∈ V Y_{i}\approx \sum _{j}W_{ij}Y_{j}\ \forall i\in V Yi≈∑jWijYj ∀i∈V。 因此,我们可以通过最小化 Φ ( Y ) = ∑ i ∣ Y i − ∑ j W i j Y j ∣ 2 \Phi (Y)=\sum _{i}\left | Y_{i}-\sum _{j}W_{ij} Y_{j}\right |^{2} Φ(Y)=∑i∣∣∣Yi−∑jWijYj∣∣∣2得到嵌入 Y N × d Y^{N\times d} YN×d。
为了消除degenerate solutions,嵌入的方差被约束为 1 N Y T Y = I \frac{1}{N}Y^{T}Y = I N1