Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

朱梓豪作者Qing Lin编辑

从数据结构到算法:图网络方法初探

如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地。其实早在很多年前,图神经网络就以图嵌入、图表示学习、网络嵌入等别名呈现出来,其实所有的这些方法本质上都是作用在图上的机器学习。本文将根据近两年的综述对图网络方法做一个总结,为初入图世界的读者提供一个总体的概览。

本文作者朱梓豪为中科院信工所在读硕士,主要研究方向为图神经网络视觉问答、视觉对话等。

什么是图

图是一种常见的数据结构,用于表示对象及其之间的关系。其中,对象又称节点(node)或顶点(vertex),关系用边(edge)来描述。在数学上一般用 G=(V,E,A,X) 来表示,其中 V={v1,v2……,vn} 是节点集合,E=e_ij 表示边的集合,A 是大小为|V|×|V|的邻接矩阵,用于表示节点之间的连接关系,如果 e_ij∈E,则 A_ij=1,X 是大小为|V|×d 的特征矩阵,X 的第 i 行 X_i:表示第 i 个节点的属性特征,其中 d 是属性的维度。

为何需要在图上应用机器学习方法

图是一种描述和建模复杂系统的通用语言,在真实世界中无处不在。例如,Facebook、 Twitter 等社交媒体构成了人类之间的社交网络 (Social Network);人体中的蛋白质分子构成了生物网络 (Biological Network);各种移动终端构成了通信网络 (Communication Network);智能硬件之间构成了物联网 (Internet-of-Things) 、城市间的公路、铁路、航线构成了运输网络 (Transportation Network) 等等。因此也催化出一系列在图上进行数据挖掘的任务,如为用户推荐感兴趣的好友、判断蛋白质结构、预测交通流量、检测异常账户等等。但是真实图的数据量庞大,动辄上亿节点、而且内部拓扑结构复杂,很难将传统的图分析方法如最短路径、DFS、BFS、PageRank 等算法应用到这些任务上。鉴于机器学习在图像、文本领域的广泛应用,一部分研究者尝试将机器学习方法和图数据结合起来,逐渐成为机器学习领域的一股热潮。

网络表示学习、图嵌入的定义

俗话说「巧妇难为无米之炊」,再强大的机器学习算法也需要数据进行支持。在同样的数据集和任务上,由于特征的不同,同一个算法的结果也可能会有天壤之别。由于特征的选择对结果的决定性作用,很多数据挖掘方面的研究工作把重心放到了针对特定的数据由人工设计出有价值的特征上。

深度学习本质上是一种特征学习方法,其思想在于将原始数据通过非线性模型转变为更高层次的特征表示,从而获得更抽象的表达。与人工设计特征不同,深度学习会自动从数据中学习出特征表示,所以又称为表示学习(Representation Learning)。如图像分类,输出的一张高维的图片,经过一系列的卷积池化等操作,低层可以抽取出低级的特征(轮廓、颜色)、较深的层会根据低级特征学习到更高级的特征,然后变换成一个向量通过全连接层进行分类,这个向量就是输入图像的特征表示。

一个很自然的想法就是,既然直接在图上直接应用机器学习方法比较困难,那么能否先将节点或边用低维向量表示出来,然后在这些向量上应用已经很成熟的机器学习算法。这种将图中节点嵌入到低维欧式空间中的方法就叫做图嵌入(Graph Embedding)。

其实、图嵌入、网络嵌入、图表示学习、网络表示学习这些名词指的的都是同一个概念。给定图$G=(\mathbf{V,E,A,X})$,图嵌入需要学习从节点到向量的映射:$f:v_i\to \mathbf{y}_i \in R^d$,其中$d<<|V|$,$f$需要尽可能的保留住节点的结构信息和属性信息。

图嵌入方法的分类

图数据最大的特点在于节点之间存在着链接关系,这表明图中节点之间并非完全独立。除了节点间的链接关系,节点自身也可能含有信息,比如互联网中网页节点对应的文本信息,这些特性使得图嵌入需要考虑很多的因素。从训练所需的信息来看,一般有三种主要的信息源:图结构、节点属性和节点标签,可基于此分成无监督图嵌入和半监督图嵌入;还有一种是根据输入数据的不同进行划分,比如按照边的方向性、是否是异构网络等性质。然而这两种划分依据并不合适,因为当前图嵌入算法的主要区别在于算法类型,同一算法类型下的框架都是相似的,因此本文基于 Hamilton 等 [1] 和 Goyal 等 [2] 两篇关于图嵌入的综述,将图嵌入方法概括为基于矩阵分解的图嵌入、基于随机游走的图嵌入、基于神经网络的图嵌入(即图神经网络)。

基于矩阵分解的图嵌入

基于矩阵分解的方法是将节点间的关系用矩阵的形式加以表示,然后分解该矩阵以得到嵌入向量。通常用于表示节点关系的矩阵包括邻接矩阵、拉普拉斯矩阵、节点转移概率矩阵、节点属性矩阵等。根据矩阵的性质不同适用于不同的分解策略。主要包括 Local Linear Embedding(LLE)[3]、Laplacian Eigenmaps[4]、SPE[5]、GraRep[6] 等。

LLE 算法其实是流形学习的一种,LLE 算法认为每一个数据点都可以由其邻域节点的线性加权组合构造得到。降维到低维空间后,这种线性关系仍然得到保留。Laplacian Eigenmaps 和 LLE 有些相似,直观思想是希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近。为了使得输入图的嵌入是低维表示并且保留图全局拓扑结构,Shaw 等 [5] 提出在欧式空间中嵌入图的结构保留嵌入方法(SPE,Structure Preserving Embedding),学习由一组线性不等式约束的低秩核矩阵,用于捕获输入图结构。SPE 在图的可视化和无损压缩方面获得明显改善,优于 Laplacian Eigenmaps 等方法。Cao 等 [6] 认为考虑节点之间的 k 阶关系对把握网络的全局特征非常重要,考虑越高阶的关系,得到的网络表示效果会越好。GraRep 通过 SVD 分解分别学习节点的 k 阶表示,然后将其结合起来作为最终的表示,这样可以很好地捕捉到远距离节点之间的关系。

基于随机游走的方法

随机游走方法已经被用来近似图的许多属性,包括节点中心性和相似性等。当图的规模特别大或者只能观察到部分图的时候,随机游走就变得非常有用。有研究者提出了利用图上随机游走来获取节点表示的嵌入技术,其中最著名的就是 DeepWalk[7] 和 node2vec[8]。

DeepWalk 是基于 word2vec 词向量提出来的。word2vec 在训练词向量时,将语料作为输入数据,而图嵌入输入的是整张图,两者看似没有任何关联。但是 DeepWalk 的作者发现,预料中词语出现的次数与在图上随机游走节点被访问到底的次数都服从幂律分布。因此 DeepWalk 把节点当做单词,把随机游走得到的节点序列当做句子,然后将其直接作为 word2vec 的输入来得到节点的嵌入表示。其框架如图 1 所示,首先采用随机游走的方法产生标准的输入序列,用 SkipGram 模型对序列建模得到节点的向量表示,然后使用分层 softmax 解决节点高维度输出问题。DeepWalk 模型的提出为图嵌入提出了一种新的研究思路,也算是引发了对图嵌入研究的热潮。

图一

node2vec 通过改变生成随机游走序列的方式改进了 DeepWalk 算法。DeepWalk 是按照均匀分布随机选取随机游走序列的下一个节点。node2vec 同时考虑了广度优先搜索 (BFS) 和深度优先搜索 (DFS)。Grover 等发现,广度优先搜索注重刻画网络中的局部特征,而深度优先搜索能更好地遍历整个网络,反映了节点间的同质性。特别地,node2vec 引入 search bias 函数来平衡这两种采样方式,通过参数 p 和 q 来调整下一步的跳转概率。

其他基于随机游走的方法还包括 Walklets、LsNet2vec、TriDNR、HARP、DDRW 等等。

基于神经网络的图嵌入(图神经网络

还有一类方法是将神经网络和图结合起来的图表示学习方法,也是最近一年来最火的方向之一,我们统称为图神经网络。机器之心已经为其做过了全面的介绍,具体请参见:深度学习时代的图模型,清华发文综述图网络清华大学图神经网络综述:模型与应用图神经网络概述第三弹:来自 IEEE Fellow 的 GNN 综述。主要将其分为图卷积网络、图注意力网络、图生产网络、图时空网络、图自编码器。又可以分为基于谱的方法和基于空间的方法。由于基于谱的方法需要分解矩阵特征向量,因此绝大多数新提出的方法都是基于空间,也就是如何传播并聚合节点和边的信息。图像和文本本质上是有规则的格栅结构的图,因此,很自然想到可以将已经在 CV、NLP 领域成功应用的模型拓展到图上,如词向量和图卷积。最近,也出现了基于胶囊的图神经网络和基于图像语义分割 U-Net 模型的 Graph U-Net。

注意力机制的在图嵌入的应用

有一部分研究者将注意力 (attention) 机制引入到了图神经网络中。注意力机制的本质是从人类视觉注意力机制中获得灵感。大致是我们视觉在感知东西的时候,一般不会是一个场景从到头看到尾全部都看,而是根据需求观察特定的一部分。这意味着,当人们注意到某个目标或某个场景时,该目标内部以及该场景内每一处空间位置上的注意力分布是不一样的。而且当我们发现一个场景经常在某部分出现自己想观察的东西时,我们就会进行学习在将来再出现类似场景时把注意力放到该部分上。更通用的解释就是,注意力机制是根据当前的某个状态,从已有的大量信息中选择性的关注部分信息的方法,其实就是一系列注意力分配系数。

基于注意力机制的 GNN 的思想是在计算每个节点的表示的时候,首先计算其和邻居节点之间的注意力系数,为重要的邻居节点分配较大的权重,在聚合的过程中将不同的重要性分配给邻域内不同的节点。

表 1 按照输入、输出、任务对近两年发表的基于注意力机制的图神经网络模型进行汇总比较,下面对几个具有代表性的模型进行概述,具体内容请参照论文《Attention Models in Graphs: A Survey》[9]。

Yoshua Bengio 的 MILA 团队在 2018 年提出了图注意力网络 (Graph Attention Networks, GAT)[10],论文中定义了 Graph attention 层,通过叠加不同的 attention 层,可以组成任意结构的图神经网络,其架构如图所示,最终要的步骤就是计算节点 i 的邻居节点对其的注意力系数$\alpha_{ij}$, 这里还是用了多头注意力机制,图中不同的颜色代表不同的头。

不同于 GAT 是节点分类,DAGCN[11] 用于图分类任务。模型中包括两个 attention 单元,一个是和 GAT 一样,用于图卷积得到节点的表示,另一个是基于 attention 的池化操作,得到整个图的表示,然后将图表示输入到一个 MLP 得到整个图的分类。作者认为,经典的 GCN 每一层都只能捕获第 k-hop 邻域的结构信息,只有最后一层的 H 被用下一步的预测,随着网络层数的增多,会丢失大量的信息。作者提出的 attention 层的思想是不仅要依赖于第 k-hop 的结果, 还要从前面每一个 hop 捕获有价值的信息。

综合各种图注意力网络的论文来看,最主要的区别在于如何定义和实现注意力机制。第一类是学习 attention weights:

主要是通过 softmax 函数实现的,同时还需要一个基于节点属性可训练的计算节点 j 和节点 0 相关性的函数,例如 GAT 的实现方式为:

其中 W 是将节点属性映射到隐空间的可训练的参数矩阵,||表示串接。

第二类基于相似度的 attention,同样,给定相应的属性或特征,第二种注意力的学习方法与上面的方法类似,但有一个关键的区别是更多的注意力集中在具有更多相似隐藏表示或特征的节点上,这在文献中也经常被称为对齐。以 AGNN 中的公式为例:

其中 cos 来计算余弦相似度,可以看到和上式非常相似。不同之处在于,模型显式地为彼此相关的对象学习类似的隐藏嵌入,因为注意力是基于相似性或对齐的。

前两种注意力主要集中在选择相关信息以整合到目标对象的隐藏表示中,而第三种注意力的目的略有不同,叫做基于注意力的游走。举例来说,在一个输入图上执行一系列游走,并使用 RNN 对访问的节点信息进行编码,从而构造一个子图嵌入。RNN 的 t 时刻的隐藏状态对 1 到 t 访问的节点进行编码。Attention 就是一个函数$f』(h_t)=r_{t+1}$, 输入的是 t 时刻的隐藏状态,输出一个 rank vector,告诉我们下一步我们应该优先考虑哪种类型的节点。

框架

这里简单的介绍一下 Hamilton 在论文 [1] 中提出的一种图嵌入 encoder-decoder 框架(如图),可以将大多数的图嵌入方法用这个框架来表示。在这个框架中,我们围绕两个关键的映射函数组织了各种方法:一个 encoder(它将每个节点映射到一个低维向量) 和一个 decoder(它从已知的嵌入中解码关于图的结构信息)。encoder-decoder 背后的直觉想法是这样的:如果我们能从低位嵌入表示中学会解码高维图信息,如节点在图中的全局位置或节点的局部邻域结构,那么原则上,这些嵌入应包含下游机器学习任务所需的所有信息。

encoder 是一个函数:

将节点 i 映射到嵌入向量$z_i \in R^d$。decoder 是接受一组节点嵌入并从这些嵌入中解码用户指定的图统计数据的函数。例如,decoder 可能根据节点的嵌入预测节点之间是否存在边,或者可能预测图中节点所属的社区。原则上,有许多 decoder 都是可以使用的,但是在大多数工作中使用的是成对 decoder:

当我们将成对 decoder 应用于一对嵌入$(z_i,z_j)$时,我们得到了原始图中$v_i$和$v_j$之间相似性的重构,目标就是最小化重构后的相似性和原图中相似性的误差:

其中其中 SG 是一个用户定义的、在图 G 上的的节点间相似性度量。换句话说,目标是优化 encoder-decoder 模型,可以从低维节点嵌入 z_i 和 z_j 中解码出原始图中 SG(v_i, v_j) 成对节点相似性。例如可以设 SG(v_i, v_j)=A_{ij},如果节点相邻则定义节点的相似度为 1,否则为 0。或者可以根据在图 G 上的固定长度随机游走 v_i 和 v_j 共线的概率来定义 SG。在实践中,大多数方法通过最小化节点对集合 D 上的经验损失 L 来实现重构目标:

优化了上述目标函数后,我们就可以使用经过训练的 encoder 为节点生成嵌入,然后可以将其用作下游机器学习任务的特征输入。下表展示了常用图嵌入方法的 encoder-decoder 框架描述。

总结

图嵌入是指将图中节点用低维稠密向量来表示,从一开始的基于矩阵分解的方法逐渐出现了基于随机游走的方法,后来又演化出基于神经网络的方法也是我们经常听到的图神经网络。图嵌入目前还面临着一些挑战,例如如何在超大规模图上高效进行分析,如何应对真实世界中不断变化的动态图,如何对图神经网络的黑盒模型进行解释,以及如何建模异质图。目前在图网络领域也涌现出一些新的方向,例如如何针对图网络进行对抗攻击使其模型性能大幅下降,相反的就是如何提高模型的鲁棒性;如何将人工设计网络架构转变为由机器自动设计,这对应着网络结构搜索问题(NAS),以及如何将图网络和计算机视觉、自然语言处理等方向结合起来。这些都是很有价值也有意思的方向,感兴趣的读者可以进行更深度的研究。

参考文献:

[1] Hamilton, William L., Rex Ying, and Jure Leskovec. "Representation learning on graphs: Methods and applications." arXiv preprint arXiv:1709.05584 (2017).
[2] Goyal, Palash, and Emilio Ferrara. "Graph embedding techniques, applications, and performance: A survey." Knowledge-Based Systems 151 (2018): 78-94.
[3] Roweis, Sam T., and Lawrence K. Saul. "Nonlinear dimensionality reduction by locally linear embedding." science 290.5500 (2000): 2323-2326.
[4] Belkin, Mikhail, and Partha Niyogi. "Laplacian eigenmaps and spectral techniques for embedding and clustering." Advances in neural information processing systems. 2002.
[5] Shaw, Blake, and Tony Jebara. "Structure preserving embedding." Proceedings of the 26th Annual International Conference on Machine Learning. ACM, 2009.
[6] Cao, Shaosheng, Wei Lu, and Qiongkai Xu. "Grarep: Learning graph representations with global structural information." Proceedings of the 24th ACM international on conference on information and knowledge management. ACM, 2015.
[7] Perozzi, Bryan, Rami Al-Rfou, and Steven Skiena. "Deepwalk: Online learning of social representations." Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014.
[8] Grover, Aditya, and Jure Leskovec. "node2vec: Scalable feature learning for networks." Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016.
[9] Lee, John Boaz, et al. "Attention models in graphs: A survey." arXiv preprint arXiv:1807.07984 (2018).
[10] Veličković, Petar, et al. "Graph attention networks." arXiv preprint arXiv:1710.10903 (2017).
[11] F.Chen,S.Pan,J.Jiang,H.Huo,G.Long,DAGCN:DualAttention
Graph Convolutional Networks, arXiv. cs.LG (2019).

机器之心技术分析师专栏
机器之心技术分析师专栏

由来自世界各地的专业分析师为你解读前沿进展,技术热点和经典论文。我们的分析师团队由来自于各大名校的硕士和博士,以及一线研究机构的研究员组成。

理论图神经网络表示学习图算法
6
相关数据
广度优先搜索技术

广度优先搜索算法(英语:Breadth-First-Search,缩写为BFS),又译作宽度优先搜索,或横向优先搜索,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。广度优先搜索的实现一般采用open-closed表。

视觉问答技术

深度优先搜索技术

深度优先搜索算法是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。

数据挖掘技术

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

流形学习技术

流形学习(manifold learning)是机器学习、模式识别中的一种方法,在维数约简方面具有广泛的应用。它的主要思想是将高维的数据映射到低维,使该低维的数据能够反映原高维数据的某些本质结构特征。流形学习的前提是有一种假设,即某些高维数据,实际是一种低维的流形结构嵌入在高维空间中。流形学习的目的是将其映射回低维空间中,揭示其本质。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

矩阵分解技术

矩阵分解是一种将矩阵简化为其组成部分的方法。这种方法可以简化更复杂的矩阵运算,这些运算可以在分解的矩阵上执行,而不是在原始矩阵本身上执行。它的衍生Non-negative matrix factorization也被用于降维等操作上。

图网络技术

2018年6月,由 DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家共同提交了论文《Relational inductive biases, deep learning, and graph networks》,该研究提出了一个基于关系归纳偏置的 AI 概念:图网络(Graph Networks)。研究人员称,该方法推广并扩展了各种神经网络方法,并为操作结构化知识和生成结构化行为提供了新的思路。

图卷积网络技术

假设有一张图,要做分类,传统方法需要手动提取一些特征,比如纹理啊,颜色啊,或者一些更高级的特征。然后再把这些特征放到像随机森林等分类器,给到一个输出标签,告诉它是哪个类别。而深度学习是输入一张图,经过神经网络,直接输出一个标签。特征提取和分类一步到位,避免了手工提取特征或者人工规则,从原始数据中自动化地去提取特征,是一种端到端(end-to-end)的学习。相较于传统的方法,深度学习能够学习到更高效的特征与模式。

推荐文章
暂无评论
暂无评论~