图自然存在于现实世界的各种场景中,例如社交媒体网络中的社交图/扩散图、研究领域的引文图、电商领域的用户兴趣图、知识图等。有效的图分析可以使很多应用受益,如节点分类、节点聚类、节点检索/推荐、链接预测等。尽管图分析graph analytics
是实用的和必要的,但大多数现有的图分析方法都存在昂贵的计算成本和空间成本的问题。然而,图嵌入graph embedding
提供了一种有效而高效的方法来解决图分析问题。具体来说,graph embedding
将图转换为一个低维空间,其中的图信息被保留下来。通过将图表示为一个(或一组)低维向量,然后可以有效地计算图算法。
graph embedding
的问题与两个传统的研究问题有关,即图分析和 representation learning
:
representation learning
的目的是获得更好的data representation
从而用于构建分类器或其他预测器。graph embedding
位于这两个问题的重叠部分,侧重于学习低维representation
。这里区分了graph rerpesentation learning
和 graph embedding
。注意,graph rerpesentation learning
并不要求学到的 representation
是低维的。
将图嵌入到低维空间并不是一件简单的事情。graph embedding
的挑战取决于问题的设置,它由嵌embedding input
和embedding output
组成。论文 《A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications》
将 input graph
分为四类,包括同质图 homogeneous graph
、异质图 heterogeneous graph
、带有辅助信息的图、和由非关系型数据non-relational data
构建的图。
不同类型的embedding input
带有不同的信息要在emebdding
空间中保留,因此对图的嵌入问题提出了不同的挑战。例如,当嵌入一个只有结构信息的图时,节点之间的连接是需要保留的目标。然而,对于带有节点标签或属性信息的图来说,辅助信息(即节点标签、属性信息)从其他角度提供了图的属性,因此在嵌入过程中也需要被考虑。
与embedding input
是给定的、固定的不同,embedding output
是任务驱动的。例如,最常见的 embedding output
类型是 node embedding
,它将临近的节点表示为相似的向量。 node embedding
可以有利于节点相关的任务,如节点分类、节点聚类等。
然而,在某些情况下,目标任务可能与图的更高粒度有关,例如,node pair
、子图、整个图。因此,在 embedding output
方面的第一个挑战是为目标任务找到一个合适的 embedding output
类型。论文 《A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications》
将 graph embedding output
分为四种类型,包括 node embedding
、edge embedding
、hybrid embedding
和 whole-graph embedding
。
不同的输出粒度对 good embedding
有不同的标准,并面临不同的挑战。例如,一个好的 node embedding
保留了与嵌入空间中的邻近节点的相似性。相比之下,一个好的 whole-graph embedding
将整个图表示为一个矢量,这样就可以保留graph-level
的相似性。
根据对不同问题设置中所面临的挑战的观察,作者提出了两个 graph embedding
工作的分类法,即根据问题设置和嵌入技术对 graph embedding
文献进行分类。具体而言:
graph embedding
问题的不同设置,以及在每个设置中面临的挑战。需要注意的是,尽管已经有一些尝试来综述 graph embedding
,但它们有以下两个局限性:
graph embedding
技术来进行分类。他们都没有从问题设置的角度分析 graph embedding
工作,也没有总结每个问题设置中的挑战。graph embedding
综述中,仅涉及了有限的相关工作。例如,《Graph embedding techniques, applications, and performance: A survey》
主要介绍了12
种有代表性的 graph embedding
算法,《Knowledge graph embedding: A survey of approaches and applications》
只关注知识图的嵌入。此外,没有对每种 graph embedding
技术背后的洞察力进行分析。论文贡献:
graph embedding
分类法,并总结了每个设置中面临的挑战。作者是第一个根据问题设置对 graph embedding
工作进行分类的人,这为理解现有工作带来了新的视角。graph embedding
技术进行了详细的分析。与现有的 graph embedding
综述相比,论文不仅综述了一套更全面的 graph embedding
工作,而且还提出了每个技术背后的见解总结。与简单地罗列过去如何解决 graph embedding
的问题相比,总结的见解回答了问题:为什么能(以某种方式)解决 graph embedding
问题。graph embedding
的应用进行了系统的分类,并将这些应用划分为节点相关、边相关、图相关。对于每个类别,论文提出了详细的应用场景作为参考。graph embedding
领域提出了四个有希望的未来研究方向。对于每个方向,论文对其在当前工作中的缺点(不足)进行了全面分析,并提出了未来的研究方向。给定图
定义:
knowledge graph
entity
,边为subject-property-object
三元组。每条边由 (head entity, relation, tail entity)
的形式组成,记作 定义节点 first-order proximity
为节点
定义
定义节点 second-order proximity
为节点
如果我们用 cos
函数作为邻域相似性的度量,则二阶邻近性为:
节点 higher-order proximity
也可以类似地定义。例如,节点
可以采用递归定义:
注意:也可以使用其它的一些指标来定义高阶邻近度,如 Katz Index, Rooted PageRank, Adamic Adar
等等。
定义 grap embedding
为:给定一个图 embedding
维度 graph embedding
需要将图
embedding
(如节点、边、子结构)。如下图所示,单张图以不同粒度嵌入到一个二维空间,其中
graph embedding
的输入是图,这里我们将输入图划分为四类:同质图homogeneous graph
、异质图 heterogeneous graph
、带辅助信息的图、从非关系数据人工构造的图。每种类型的图都会给graph emebdding
带来不同的挑战。
同质图:图的节点和边分别只有一种类型。同质图可以进一步划分为加权图、无权图,以及有向图,无向图。
挑战:如何捕获图中观察到的各种各样的连接模式?由于同质图中仅有结构信息可用,因此同质图 graph embedding
的挑战在于如何在 embedding
中保持输入图中观察到的这些连接模式。
异质图:异质图包含三种场景:
Community-based Question Answering:cQA
:cQA
是基于互联网的众包服务,用户可以在网站上发布问题,然后由其它用户回答。直观来看,cQA
图中有不同类型的节点,如问题 question
、答案 answer
、用户 user
。除了以上三种类型的异质图之外,还有其它类型的异质图。
挑战:
embedding
中,不同类型的节点(或者不同类型的边)被嵌入到同一个公共空间中。如何确保 embedding
的全局一致性是一个问题。带辅助信息的图:除了包含节点结构之外,带辅助信息的图还包含节点/边/全图的辅助信息。有五种类型的辅助信息:
label
:节点带标签信息(离散值)。带相同标签的节点的 embedding
应该彼此靠近、不同标签的节点的 embedding
应该彼此远离。attribute
:节点带属性信息。和标签不同,属性值可以是连续的也可以是离散的。属性值差异较小的节点的 embedding
应该彼此靠近、属性值差异较大的节点的 embedding
应该彼此远离。node feature
:节点带特征信息。和属性值不同,特征可能包含文本、向量、图像等多种类型的内容。节点特征通过提供丰富的结构化信息来提升 graph emebdding
性能。另外,这也使得 inductive graph embedding
成为可能。information progapation
:消息传播。一个典型例子是 Twitter
中的转发。knowledge base
:知识库。流行的知识库包括 Wikipedia, Freebase, YAGO, DBPedia
等。以 Wikipedia
为例,concept
是用户提出的实体 entity
,文本是该实体相关的文章。其它类型的辅助信息包括用户 check-in
数据(用户位置信息)、用户 item
偏好排名信息等等。注意,辅助信息不仅局限于一种类型,也可以考虑多种类型如 label & node feature
。
挑战:如何融合丰富的非结构化信息,使得学到的 embedding
同时编码了图的拓扑结构和辅助信息?除了图结构信息之外,辅助信息还有助于定义节点相似性。因此如何融合图拓扑结构和辅助信息这两个信息源,这是一个问题。
人工构造图:此时没有图数据,需要通过不同的方法从非关系数据中人工构建图。大多数情况下,输入为特征矩阵
通常使用样本
一种直接的计算方法是将
为解决该问题,一个方法是从 kNN graph
,并基于 kNN
图估计一个邻接矩阵 Isomap
将测地线距离融合到 kNN
图,然后找到两个节点之间的最短距离作为它们的测地线距离。
另一种构造图的方法是基于节点的共现,从而在节点之间建立边。如在图像领域,研究人员将像素视为节点,像素之间的空间关系视为边。
除了上述基于成对节点相似性以及节点共现的方法之外,还针对不同目的设计了其它的图构造方法。
挑战:
embedding
空间中?即如何在 embedding
空间中保留构造图的节点邻近性。graph emebdding
的输出是图(或者图的一部分)的一个(或者一组)低维向量。根据输出粒度,可以将 graph embedding
输出分为 node embedding
、edge embedding
、hybrid embedding
、whole-graph embedding
。
与固定的且给定的输入不同,graph embedding
的输出是任务驱动的。例如, node embedding
可用于各种与节点相关的图分析任务,而某些任务可能需要全图 whole-graph embedding
。因此,embedding
输出的第一个挑战是如何找到满足特定任务需求的、合适的 graph embedding
。
node embedding
:将每个节点表示为低维空间中的向量,图中临近的节点在 embedding
空间中有相似的向量表示。
各种 graph embedding
方法之间的差异在于如何定义两个节点之间的相近程度 closeness
,其中一阶邻近度和二阶邻近度是计算两个节点相近程度的常用度量,某些工作中也使用高阶邻近度。
挑战:如何在各种类型的输入图中定义成对节点的邻近性,以及如何在 embedding
中对这种相近程度进行编码?
edge embedding
:将每条边表示为低维空间中的向量。 edge embedding
在以下两种情况下很有用:
embedding
需要学习 node embedding
和 edge embedding
。每条边都是三元组 edge embedding
需要在embedding
空间中保留 pair
对嵌入为一个向量,从而预测这对节点之间是否存在链接。总之, edge embedding
有利于与边相关的图分析,如链接预测、知识图谱的实体/关系预测。
挑战:
edge-level
相似度?边的相似度不同于节点相似度,因为边通常包含一对节点。edge embedding
需要编码这种不对称属性。hybrid embedding
:嵌入图的不同类型的组件,如 node + edge
(子结构 substructure
)、node + community
。
已有大量工作研究了子结构嵌入substructure embedding
,而社区嵌入 community embedding
目前关注较少。
substructure embedding
或者community embedding
也可以通过聚合结构中的node embedding
和 edge embedding
来得到,但是这种间接的方式并未针对结构的表示进行优化。而且, node embedding
和 edge embedding
可以彼此强化:通过融合社区感知 community-aware
的高阶邻近度,可以学到更好的 node embedding
;而当学到更好的 node embedding
时,就可以检测到更好的社区。
挑战:
embedding
输出相反, hybrid embedding
并未提供需要嵌入的目标(如子图,社区)。因此第一个挑战是如何生成这种目标结构。embedding
目标类型的异质性是一个问题。whole-graph embedding
:将整个图输出为一个 embedding
向量,这通常用于蛋白质、分子等较小的图。这种情况下,一个图表示为一个向量,相似的图被嵌入到相近的 embedding
空间。
whole-graph embedding
提供了图相似度计算的一种简单有效解决方案,使得图分类任务受益。
挑战:
whole-graph embedding
需要捕获整个图的属性,而不是单个节点或者边的属性。expressiveness
和效率 efficiency
之间平衡? 由于需要捕获全图属性,因此和其它类型的 embedding
相比, whole-graph embedding
耗时更多。 whole-graph embedding
的关键挑战是如何在学到的 embedding
的表达能力和 embedding
算法的效率之间平衡。graph embedding
目标是在低维 embedding
空间中表达一个图,其中该 embedding
空间保留尽可能多的图属性信息。不同 graph embedding
算法之间的差异主要在于如何定义需要保留的图属性。不同的算法对于节点相似性、边相似性、子结构相似性、全图相似性有不同的定义,以及对于如何将这种相似性保留在 embedding
空间有各自不同的见解 insight
。基于矩阵分解 Matrix Factorization
的graph emebdding
方法以矩阵形式表示图属性,如节点成对相似性 node pairwise similarity
,然后分解该矩阵从而得到 node embedding
。
基于矩阵分解的 graph embedding
方法也是 graph embedding
的早期研究方式。大多数情况下,输入是非关系型的 non-relational
、高维的数据通过人工构造而来的图,输出是一组 node embedding
。因此可以将 graph embedding
视为保留结构信息的降维问题,该问题假设输入数据位于低维流形中。
有两种类型的基于矩阵分解的 graph embedding
方法:分解图拉普拉斯特征图 Laplacian Eigenmaps
、分解节点邻近度矩阵proximity matrix
。
总结:矩阵分解主要用于两种场景:嵌入由非关系数据构成的图的node embedding
(这是拉普拉斯特征图的典型应用场景)、嵌入同质图。
图拉普拉斯特征图分解的思想是:保留的图属性为成对节点相似性,因此如果两个相距较远的节点(通过 embedding
距离衡量)的相似度较大,则给予较大的惩罚。
为方便讨论,假设 embedding
的维度为一维,即将每个节点 insight
,则最优化 embedding
为:
假设
embedding
维度为维,则可以分别针对每一维来计算最优的 embedding
。
其中:
embedding
,embedding
组成的 embedding
向量。但是,上述最优化方程没有唯一解。假设
则最优解 eigenproblem
eigenvalue
对应的特征向量 eigenvector
。
上述 graph embedding
的问题是该方法是 transductive
的,它仅能嵌入已有的节点。实际应用中还需要嵌入未见过的、新的节点。
一种解决方案是设计线性函数 feature vector
。这样只要提供节点的特征向量,我们就可以求得其 embedding
。因此 inductive graph embedding
问题的核心在于求解合适的
同样地我们认为如果相距较远的两个节点(通过 embedding
距离衡量)的相似度较大,则给与较大的惩罚。则最优化 embedding
为:
其中
类似地,为了移除缩放因子的效果,我们通常增加约束条件
则最优解 eigenproblem
eigenvalue
对应的特征向量 eigenvector
。
上述讨论都是假设
embedding
为一维的。事实上如果希望embedding
是多维的,如维,则选择的不是最大特征值对应的特征向量,而是 top d
特征值对应的特征向量。
现有方法的差异主要在于如何计算节点 eigenmaps-based graph embedding
方法,并给出了它们如何计算节点相似度矩阵
其中:Eq.2
表示目标函数 Eq.4
表示目标函数 SVM
分类器的目标函数。
最初的研究 MDS
直接采用两个特征向量 MDS
不考虑节点的相邻关系,也就是说,任何一对训练样本都被认为是相连的。
后续研究(如Isomap
、LE
、LPP
、LLE
)通过首先从数据特征中构建一个 k nearest neighbour graph
来克服这个问题。每个节点只与它的 top-k
相似邻居相连。之后,利用不同的方法来计算相似性度矩阵
最近设计了一些更先进的模型。例如:
AgLPP
入了一个 anchor graph
,以显著提高 LPP
的效率。LGRM
学习了一个 local regression model
来掌握图的结构,以及一个全局回归global regression
项来进行 out-of-sample
的数据推断。local geometry
的工作不同,LSE
使用 local spline regression
来保留 global geometry
。当辅助信息(如label
、属性)可用时,目标函数被调整以保留更丰富的信息:
SR
构建了一个邻接图adjacent graph
labelled graph
LPP
数据集的局部几何结构 local geometric structure
,另一部分试图在标记的训练数据上获得最佳类别可分的embedding
。ARE
也构建了两个图:一个是编码局部几何结构的邻接图 pairwise relation
的 feedback relational graph
RF-Semi-NMF-PCA
的目标函数由三个部分组成,从而同时考虑聚类、降维和 graph embedding
:PCA
、k-means
和 graph Laplacian regularization
。其他一些工作认为,不能通过简单地枚举成对的节点关系来构建 semidefinite programming: SDP
来学习
SDP
旨在找到一个内积矩阵,使图中不相连的任何两个输入之间的成对距离最大化,同时保留最近的邻居距离。MVU
构建了这样的矩阵,然后将MDS
应用于学到的内积矩阵。《Unsupervised large graph embedding》
证明:如果 PSD
的、以及秩为 LPP
等价于正则化的 SR
。除了上述求解广义特征值方法之外,另一个方向是试图直接分解节点邻近度矩阵。可以基于矩阵分解技术在低维空间中近似节点邻近度,使得节点邻近度的近似损失最小化。
给定节点邻近度矩阵
其中:
embedding
矩阵。content embedding
矩阵。该目标函数是寻找邻近度矩阵 SVD
分解:
其中:
则我们得到最优 embedding
为:
根据是否保留不对称性,节点 embedding
可以为
我们在下表中总结了更多的矩阵分解方案,例如正则化的高斯矩阵分解、正则化的低秩矩阵分解、带更多正则化约束的矩阵分解等。
其中:Eq.5
表示目标函数
graph embedding
在图上应用深度学习模型,这些模型的输入可以是从图采样得到的路径,也可以是整个图本身。因此基于是否采用随机游走从图中采样路径,我们将基于深度学习的 graph embedding
分为两类:带随机游走的 deep learning
、不带随机游走的 deep learning
。graph emebdding
中。除了人工构造的图之外,所有类型的图输入以及所有类型的 embedding
输出都可以应用基于深度学习的 graph embedding
方法。基于带随机游走的 deep learning
的 graph embedding
的思想是:对于给定的节点,通过给定该节点的embedding
的条件下最大化该节点邻域的条件概率,则可以在 embedding
空间中保留图的二阶邻近度。
在基于带随机游走的deep learning
的 grap emebdding
中,图表示为从图中采样的一组随机游走序列。然后深度学习模型被应用于这些随机游走序列从而执行 grap embedding
。在嵌入过程中,embedding
保留了这些随机游走序列携带的图属性。
基于以上的洞察,DeepWalk
采用神经语言模型(SkipGram
) 执行 grap embedding
,其中 SkipGram
旨在最大化窗口内单词之间的共现概率。DeepWalk
首先应用截断的随机游走从输入图采样一组随机序列,然后将 SkipGram
应用于采样到的随机序列,从而最大化给定节点条件下节点邻域出现的概率。通过这种方式,相似邻域(具有较大的二阶邻近度)的节点共享相似的 embedding
。
DeepWalk
的目标函数为:
其中: embedding
;
SkipGram
不考虑窗口内节点的属性,因此有:
这里假设给定节点
的条件下,上下文窗口内的各节点之间相互独立。
其中 embedding
时,节点 softmax
函数:
上述概率难以计算,因为分母需要计算 embedding
的内积,算法复杂度为
Hierarchical Softmax
:我们构造二叉树来高效计算
假设根节点到叶节点
sigmoid
函数; embedding
。
现在 Hierarchical Softmax
函数将 SkipGram
的时间复杂度从
负采样:负采样的核心思想是将目标节点和噪声区分开来。即对于节点
其中:
通常
最终负采样将 SkipGram
的时间复杂度从
DeepWalk
的成功引起了很多后续的研究,这些研究在graph embedding
的采样路径上应用了各种深度学习模型(如 SkipGram
或 LSTM
),我们在下表中总结了这些方法。其中:
Eq.11
表示 Eq.12
表示 如下表所示,大多数研究都遵循了 DeepWalk
思想,但是改变了随机游走采样方法或者要保留的邻近度。注意:SkipGram
仅能嵌入单个节点,如果需要嵌入一个节点序列到固定维度的向量(如将一个句子嵌入为一个向量),则需要使用 LSTM
。
不基于带随机游走的 deep learning
的 graph embedding
的思想是:深度神经网络体系结构是将图编码到低维空间的强大、有效的解决方案。
这一类deep learning
方法直接将深度神经网络应用于整个图(或者图的邻接矩阵)。以下是一些用于 graph embedding
的流行深度学习模型:
自编码器 autoencoder
:自编码器旨在通过其编码器encoder
和解码器 decoder
,使得自编码器的输出和输入的重构误差最小。编码器和解码器都包含多个非线性函数,其中编码器将输入数据映射到representation space
、解码器将 representation space
映射到重构空间。
就邻域保持而言,采用自编码器的 grap embedding
思想类似于节点邻近度矩阵分解。具体而言,由于邻接矩阵包含了节点的邻域信息,因此如果将邻接矩阵作为自编码器的输入,则重构过程将使得具有相似邻域的节点具有相似的 embedding
。
Deep Neural Network
:卷积神经网络及其变种已被广泛用于graph embedding
。
CNN
模型,并对 input graph
进行重构从而适应 CNN
。还有一些其他类型的基于深度学习的 graph embedding
方法,如:
DUIF
使用 hierarchical softmax
作为前向传播来最大化modularity
。HNE
利用深度学习技术来捕捉异质组件之间的交互,如 CNN
组件用于图片、FC
层用于文本。 我们在下表中总结了所有不带随机游走的基于深度学习的 graph embedding
方法,并比较了它们使用的模型以及每个模型的输入。
基于边重建edge reconstruction
的 node embedding
基本思想是:通过 node embedding
重建的边应该和输入图中的边尽可能一致。
因此,基于边重建的node embedding
方法通过最大化边的重建概率edge reconstruction probability
或最小化边的重建损失edge reconstruction loss
,从而优化边重建的目标函数。其中重建损失又分为 distance-based
损失和 margin-based ranking
损失。
总结:基于边重构的方法适用于大多数 grap embedding
场景。根据我们的观察发现,只有非关系数据中构建的人工图embedding
、 whole-graph embedding
还未应用这种方式。原因是:
whole-graph embedding
。最大化边的重建概率的基本思想是:好的node embedding
应该能够最大程度地重建图中的边。
因此,该方法最大化所有观察到的边的生成概率。给定节点 embedding
它表示节点
为学习node embedding
,我们最大化图中所有边的生成概率,因此目标函数为:
类似地,节点
则最大化二阶邻近性的目标函数为: