概述
资料来源:Manuchi,通过图片(CC0)
Graph Neural Network(GNN)由于具有分析图形结构数据的能力而受到了广泛的关注。本文对Graph Neural Network进行了简要介绍。它涵盖了一些图论,以便于理解图和分析图时遇到的问题。然后介绍了不同形式的Graph神经网络及其原理。它还涵盖了GNN可以做什么以及GNN的一些应用。
图论
首先,我们需要知道什么是图。
图是一种由两个部分组成的数据结构:顶点和边。它用作分析对象和实体之间成对关系的数学结构。通常,将图定义为G =(V,E),其中V是一组节点,E是它们之间的边。
图通常由邻接矩阵A表示*。如果图具有N个节点,则A的维数为(N x N)。人们有时会提供另一个特征矩阵来描述图中的节点。如果每个节点都有F个特征,则特征矩阵X*的维数为(N x F)。
为什么图难以分析?
首先,在欧几里得空间中不存在图,这意味着它无法用我们熟悉的任何坐标系表示。与其他类型的数据(例如波,图像或时间序列信号)相比,这使得图形数据的解释更加困难(“文本”也可以视为时间序列),可以轻松地将其映射为2- D或3-D欧式空间。
其次,图没有固定的形式。为什么?看下面的例子。图(A)和图(B)具有完全不同的结构和视觉上的不同。但是,当我们将其转换为邻接矩阵表示形式时,两个图具有相同的邻接矩阵(如果不考虑边的权重)。那么我们应该考虑这两个图是相同还是不同?
图(A)
图(B)
最后,一般来说,图形很难直观显示以供人类解释。我不是在谈论像上面的例子这样的小图。我说的是涉及数百或数千个节点的巨型图。维度非常高,节点密集地分组在一起,甚至使人难以理解图形。因此,为该任务训练机器是具有挑战性的。以下示例显示了对集成电路中逻辑门进行建模的图形。
巨型图示例:电路网表。图片来自J.Baehr等。等 “逆向工程的机器学习和结构特征”
为什么要使用图?
人们选择处理图形的原因可以归纳为以下几点:
- 图提供了一种更好的方式来处理诸如关系和交互之类的抽象概念。它们还提供了直观的视觉方式来思考这些概念。图还构成了在社会环境中分析关系的自然基础。
- 图可以通过将问题简化为更简单的表示形式来解决更复杂的问题,或者从不同的角度将问题转换为表示形式。
- 图论和概念用于研究和建模社交网络,欺诈模式,功耗模式,病毒性以及在社交媒体中的影响力。社交网络分析(SNA)可能是图论在数据科学中最著名的应用。
传统图分析方法
传统方法主要基于算法,例如:
- 搜索算法,例如BFS,DFS
- 最短路径算法,例如Dijkstra算法,最近邻居
- 生成树算法,例如Prim算法
- 聚类方法,例如高度连接的组件,k均值
这种算法的局限性在于,在应用该算法之前,我们需要以一定的置信度获得图形的先验知识。换句话说,它对我们研究图本身没有任何意义。最重要的是,没有办法执行图级别分类。
图神经网络
所谓的图神经网络是可以直接应用于图的神经网络。它为节点级别,边缘级别和图形级别的预测任务提供了一种方便的方法。
文献中主要有三种类型的图神经网络:
- 递归图神经网络
- 空间卷积网络
- 谱卷积网络
GNN的直觉是,节点自然是由其邻居和连接定义的。为了理解这一点,我们可以简单地想象,如果我们删除节点周围的邻居和连接,则该节点将丢失其所有信息。因此,节点的邻居和与邻居的连接定义了节点的概念。
考虑到这一点,我们然后给每个节点一个状态*(x)来表示其概念。我们可以使用节点状态(x)产生输出(o)*,即有关概念的决策。节点的最终状态( x n x_n xn)通常称为“节点嵌入”。所有GNN的任务是通过查看其相邻节点上的信息来确定每个节点的“节点嵌入”。
我们将从图神经网络,循环图神经网络或RecGNN的最先锋版本开始。
递归图神经网络
正如原始GNN论文中所介绍的那样,RecGNN是基于Banach不动点定理的假设而构建的。Banach不动点定理指出:(X,d)是一个完整的度量空间,而(T:X→X)是一个压缩映射。然后,T具有唯一的不动点(x ∗),对于任何x∈X,n→∞的序列 T n ( x ) T_n(x) Tn(x) 收敛到(x ∗)。这意味着如果我将映射T应用于x上k次,则 x k x ^ k xk应该几乎等于 x k − 1 x ^{k-1} xk−1,即:
RecGNN定义了一个参数化函数 f w f_w fw:
其中 L n L_n Ln, l c o l_{co} lco, x n e x_{ne} xne, l n e l_{ne} lne 表示当前节点 [ n ] [n] [n]的特征,节点 [ n ] [n] [n]的边缘,相邻节点的状态,与相邻节点的功能。(在原始论文中,作者将节点特征称为节点标签。这可能会造成一些混乱。)
基于节点邻居信息更新节点状态的说明。图来自“图神经网络模型”
最终,在经过k次迭代之后,最终的节点状态将用于产生输出,以决定每个节点。输出函数定义为:
空间卷积网络
空间卷积网络的直觉类似于著名的CNN,后者主导着图像分类和分割任务的文献。要了解图像上的CNN,您可以查看这篇文章,其中详细说明了CNN。
简而言之,对图像进行卷积的想法是对中心像素周围的相邻像素求和,该像素由参数化大小和可学习权重的滤波器指定。空间卷积网络通过将相邻节点的特征聚合到中心节点中采用了相同的思想。
左:在正则图(例如图像)上的卷积。右:对任意图结构进行卷积。图来自“图神经网络的全面调查”
谱卷积网络
与其他类型的GNN相比,这种类型的图卷积网络具有非常强大的数学基础。谱卷积网络建立在图信号处理理论的基础上。并通过简化和逼近图卷积。
通过Chebyshev多项式逼近 (Hammond et al。2011),图卷积可以简化为以下形式:
进一步简化后,GCN论文提出了一种2层神经网络结构,可以用以下等式描述:
其中A_head是原始图邻接矩阵A的经过预处理的Laplacian。(有关数学的详细信息,请参见GCN论文。将需要大量的精力来进行充分说明。)
如果您有一些机器学习经验,则此公式看起来非常熟悉。这只是常用的两个完全连接的层结构。但是在这种情况下,它确实可以用作图卷积。我将在下面说明为什么它可以执行图卷积。
具有分配给每个节点的要素的图的示例。由作者计算
让我们考虑一下,我们有一个带有4个节点的简单图形。如上图所示,为这些节点中的每个节点分配了一个特征矩阵。图形邻接矩阵和特征矩阵很容易得出,如下所示:
邻接矩阵和特征矩阵的示例。作者图
注意,邻接矩阵的对角线故意更改为“ 1”,以为每个节点添加一个自环。当我们执行特征聚合时,这将包括每个节点本身的特征。
然后我们执行A x X(为简单起见,我们先忽略A的拉普拉斯算子和权重矩阵W。
通过矩阵乘法的图卷积示例。
矩阵乘法的结果显示在最右边的矩阵中。让我们以第一个节点的结果功能为例。不难看出,结果是[节点1]的所有特征之和,包括[节点1]本身的特征,并且[节点4]中的特征不包括在内,因为它不是[节点1]的邻居。 。在数学上,图的邻接矩阵仅在有边时才具有值“ 1”,否则就具有“ 0”。这使得矩阵乘法成为连接到参考节点的节点的特征之和。
因此,频谱卷积网络和空间卷积网络虽然是在不同的基础上开始的,但是它们共享相同的传播规则。
当前可用的所有卷积图神经网络共享相同的格式。他们都试图学习通过该消息传递过程传递节点信息并更新节点状态的功能。
任何图形神经网络可被表达为与消息传递神经网络(J.吉尔默等人,2017)的消息传递,节点更新和读出。
GNN可以做什么?
GNN解决的问题可以大致分为三类:
- 节点分类
- 链接预测
- 图分类
在节点分类中,任务是预测图中每个节点的节点嵌入。通常以半监督的方式训练此类问题,其中仅标记了部分图形。节点分类的典型应用包括引文网络,Reddit帖子,Youtube视频和Facebook朋友关系。
在链接预测中,任务是了解图中实体之间的关系,并预测两个实体之间是否存在连接。例如,推荐系统可被视为链接预测问题,其中模型被赋予了一组用户对不同产品的评论,任务是预测用户的偏好并调整推荐系统以根据用户推送更多相关产品的兴趣。
在图分类中,任务是将整个图分类为不同的类别。它类似于图像分类,但是目标变为图域。有许多工业问题可以应用图形分类,例如,在化学,生物医学,物理学中,模型被赋予分子结构并被要求将目标分类为有意义的类别。它加快了对原子,分子或任何其他结构化数据类型的分析。
一些实际的应用
在了解了GNN可以执行哪种类型的分析之后,您一定想知道我可以对图形进行哪些实际操作。好了,本节将为您提供有关GNN实际应用程序的更多见解。
GNN自然语言处理
GNN在自然语言处理(NLP)中被广泛使用。实际上,这也是GNN最初开始的地方。如果您中的某些人具有NLP经验,则必须考虑到文本应该是一种顺序或时间数据,可以由RNN或LTSM最好地描述。好吧,GNN从完全不同的角度解决了这个问题。GNN利用单词或文档的内部关系来预测类别。例如,引文网络试图通过纸张引文关系和其他论文中引用的词来预测网络中每篇论文的标签。它也可以通过查看句子的不同部分来构建语法模型,而不是像RNN或LTSM那样纯粹是顺序的。
GNN在计算机视觉中
许多基于CNN的方法在图像中的对象检测方面都达到了最新的性能,但是我们还不知道对象之间的关系。GNN在CV中的一种成功应用是使用图形对基于CNN的检测器检测到的物体之间的关系进行建模。从图像中检测到对象后,将它们输入到GNN推理中以进行关系预测。GNN推理的结果是生成的图,该图对不同对象之间的关系进行建模。
场景图生成。图来自D. Xu,Y。Zhu,CB Choy和L. Fei-Fei,“通过迭代消息传递生成场景图”,在Proc。2017年的CVPR
CV中另一个有趣的应用是根据图形描述生成图像。这可以解释为几乎与上述应用程序相反。图像生成的传统方式是使用GAN或自动编码器生成文本到图像。从图形到图像的生成不是使用文本来描述图像,而是提供了有关图像语义结构的更多信息。
从场景图生成的图像。J. Johnson,A。Gupta和L. Fei-Fei的图片,摘自Proc。CVPR的2018年
我想分享的最有趣的应用程序是零击学习(ZSL)。您可以找到这篇文章,以全面了解ZSL。总之,ZSL是想学给定的一类分类NO(目标类别的)训练样本。这是非常具有挑战性的,因为如果没有给出训练样本,我们需要让模型在逻辑上“思考”以识别目标。例如,如果给我们三张图像(如下图所示),并告诉他们在其中找到“ okapi”。我们可能以前没有看过“okapi”。但是,如果我们还得到信息,“okapi”是一只有四只腿,斑马纹皮肤的鹿面动物,那么我们就不难确定哪个是“霍加api”。典型的方法是通过将检测到的特征转换为文本来模拟这种“思考过程”。但是,文本编码彼此独立。很难对文本描述之间的关系进行建模。换句话说,图形表示很好地模拟了这些关系,
X.Wang,Y.Y.Ye和A.Gupta的图,“通过语义嵌入和知识图的零镜头识别”,在CVPR 2018中
其他领域的GNN
GNN的更多实际应用包括人类行为检测,交通控制,分子结构研究,推荐系统,程序验证,逻辑推理,社会影响预测和对抗攻击。下面显示了对社交网络中人际关系建模的图表。GNN可用于将人们聚集到不同的社区群体中。
社交网络图。来自GDJ的图片,通过Pixabay
结论
我们在本文中介绍了一些图论,并强调了分析图的重要性。人们总是将机器学习算法视为“黑匣子”。大多数机器学习算法仅从训练数据的特征中学习,但没有实际的逻辑可以执行。使用图形,我们也许可以将一些“逻辑”传递给机器,并使其更自然地“思考”。
GNN仍然是一个相对较新的领域,值得更多的研究关注。它是分析图形数据的强大工具。但是,不仅限于图中的问题。它可以很容易地推广到任何可以通过图形建模的研究中。图建模是分析问题的自然方法。
参考文献:
- F.Scarselli, M.Gori, “The graph neural network model,” IEEE Transactions on Neural Networks, 2009
- T. N. Kipf and M. Welling, “Semi-supervised classification with graph convolutional networks,” in Proc. of ICLR, 2017.
- Z. Wu, S. Pan, F. Chen, G. Long, C. Zhang, Philip S. Yu, “A Comprehensive Survey on Graph Neural Networks”, arXiv:1901.00596
- D. Xu, Y. Zhu, C. B. Choy, and L. Fei-Fei, “Scene graph generation by iterative message passing,” in Proc. of CVPR, vol. 2, 2017
- J. Johnson, A. Gupta, and L. Fei-Fei, “Image generation from scene graphs,” in Proc. of CVPR, 2018
- X. Wang, Y. Ye, and A. Gupta, “Zero-shot recognition via semantic embeddings and knowledge graphs,” in CVPR 2018
最后
以上就是整齐高跟鞋为你收集整理的图神经网络(GNN)简介图论传统图分析方法图神经网络GNN可以做什么?一些实际的应用结论的全部内容,希望文章能够帮你解决图神经网络(GNN)简介图论传统图分析方法图神经网络GNN可以做什么?一些实际的应用结论所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复