终于有人总结了图神经网络!
过去的几年里,图神经网络已经成为强大而实用的工具,可以解决任何可以通过图建模的问题。在本文中,我们对图神经网络进行了全面的概述,并介绍了广泛的GNN应用。
神经网络最近的成功推动了对模式识别和数据挖掘的研究。机器学习任务,如对象检测、机器翻译和语音识别,已经通过端到端的深度学习范式(如 CNN、RNN 或自动编码器)被赋予了新的生命。
深度学习擅长捕捉欧几里得数据(图像、文本、视频)的隐藏模式。但是,如果是从非欧几里得域生成数据,对象之间具有复杂关系和相互依赖关系的图形,该怎么办?
这就是图神经网络 (GNN) 的用武之地了,这也是本文中要深入探讨的:从图论和基本定义开始,继续讨论 GNN 的形式和原理,最后介绍 GNN 的一些应用。
什么是图形?
GNN 最基本的部分是图形结构。在计算机科学中,图是由两个部分组成的数据结构:节点(顶点)和边。
图 G 可以定义为 G = (V, E),其中 V 是节点的集合,E 是它们之间的边。
如果节点之间存在方向依赖关系,则边是有向的。否则,边是无向的。

有向图
图形可以表示社交媒体网络或分子等事物。将节点视为用户,将边缘视为连接。社交媒体图表可能如下所示:

图形通常用邻接矩阵 A 表示。如果图形有 n 个节点,则 A 的维度为 (n × n)。有时,节点具有一组功能(例如,用户配置文件)。如果节点具有 f 个要素,则节点要素矩阵 X 的维度为 (n × f)。
为什么分析图很难?
图形数据非常复杂,给现有的机器学习算法带来了很多挑战。
原因是传统的机器学习和深度学习工具专门用于简单的数据类型。就像具有相同结构和大小的图像一样,我们可以将其视为固定大小的网格图。文本和语音是序列,因此我们可以将它们视为折线图。
但是还有更复杂的图,没有固定的形式,具有可变大小的无序节点,其中节点可以具有不同数量的邻居。
现有的机器学习算法有一个核心假设,即实例彼此独立,这也无济于事。对于图形数据来说,这是错误的,因为每个节点都通过各种类型的链接与其他节点相关联。

图神经网络
图神经网络 (GNN) 是一类深度学习方法,旨在对图描述的数据进行推理。
GNN 是可以直接应用于图的神经网络,它提供了一种简单的方法来执行节点级、边缘级和图级预测任务。
GNN 可以做卷积神经网络 (CNN) 无法做到的事情。CNN 可用于使机器可视化事物,并执行图像分类、图像识别或物体检测等任务。这是CNN最受欢迎的地方。
CNN 背后的核心概念引入了隐藏卷积层和池化层,以通过一组内核形式的感受场来识别空间定位的特征。

CNN结构
卷积如何对正则网格的图像进行操作?我们在二维图像上滑动卷积算子窗口,并在该滑动窗口上计算一些函数。然后,我们通过许多层传递它。
我们的目标是将卷积的概念推广到这些简单的二维晶格之外。
使我们能够实现目标的见解是,卷积获取图像的一个小子块(图像的一个小矩形部分),对其应用函数,并产生一个新部分(一个新像素)。
发生的情况是,该中心像素的中心节点聚合来自其相邻像素以及来自其自身的信息,以产生新值。
由于图的任意大小和复杂的拓扑结构,因此很难在图上执行 CNN,这意味着没有空间局部性。
还有不固定的节点排序。如果我们首先标记节点 A、B、C、D、E,然后第二次标记它们 B、D、A、E、C,那么网络中矩阵的输入将发生变化。图形对节点排序是不变的,因此无论我们如何对节点进行排序,我们都希望获得相同的结果。
图深度学习基础知识
在图论中,我们实现了节点嵌入的概念。这意味着将节点映射到 d 维嵌入空间(低维空间而不是图的实际维度),以便图中的相似节点彼此靠近嵌入。
我们的目标是映射节点,使嵌入空间中的相似性接近网络中的相似性。
让我们将 u 和 v 定义为图中的两个节点。
x 和 x u v 是两个特征向量。
现在我们将定义编码器函数 Enc(u) 和 Enc(v),它们将特征向量转换为 z 和 z u v 。
注意:相似性函数可以是欧几里得距离。

那么现在的挑战是如何想出编码器功能?
编码器功能应该能够执行:
-
位置(本地网络社区)
-
汇总信息
-
堆叠多层(计算)
位置信息可以通过使用计算图来实现。如下图所示,i 是红色节点,我们可以看到该节点如何连接到其邻居和这些邻居的邻居。我们将看到所有可能的连接,并形成一个计算图。
通过这样做,我们捕获了结构,同时也借用了特征信息。

邻里探索和信息共享
一旦局部信息保留了计算图,我们就开始聚合。这基本上是使用神经网络完成的。

神经网络以灰色框显示。它们要求聚合是顺序不变的,如总和、平均值、最大值,因为它们是置换不变函数。此属性允许执行聚合。
让我们继续讨论 GNN 中的前向传播规则。它决定了来自输入的信息将如何进入神经网络的输出端。

每个节点都有一个特征向量。例如,(X A ) 是节点 A 的特征向量。
输入是这些特征向量,该框将获取两个特征向量(X 和 X A c ),将它们聚合,然后传递到下一层。
请注意,例如,节点 C 的输入是节点 C 的特征,但节点 C 在第 1 层中的表示形式将是节点的隐藏潜在表示形式,而在第 2 层中,它将是另一个潜在表示形式。
因此,为了在这个计算图中执行前向传播,我们需要 3 个步骤:


现在,为了训练模型,我们需要在嵌入上定义一个损失函数。
我们可以将嵌入输入到任何损失函数中,并运行随机梯度下降来训练权重参数。训练可以是无人监督的,也可以是无人监督的:
-
无监督:
仅使用图结构:相似的节点具有相似的嵌入。无监督损失函数可以是基于图中节点邻近性的损失,也可以是基于随机游走的损失。 -
有监督:
为监督任务(如节点分类、正常或异常节点)训练模型。回顾一下,在本节中,我们描述了通过聚合邻域信息来生成节点嵌入的基本思想。
接下来,我将讨论图卷积网络 (GCN)。
图卷积网络
GCNs最早是Bruna等人在2014年引入的,作为一种将神经网络应用于图结构数据的方法。
最简单的 GCN 只有三个不同的运算符:
-
图卷积
-
线性层
-
非线性激活
操作通常按此顺序完成。它们共同构成了一个网络层。我们可以组合一个或多个层来形成一个完整的 GCN。
在 Python 中,我们可以轻松地使用 PyTorch 构建 GCN:
import torchfrom torch import nnclass GCN(nn.Module):def __init__(self, *sizes):super().__init__()self.layers = nn.ModuleList([nn.Linear(x, y) for x, y in zip(sizes[:-1], sizes[1:])])def forward(self, vertices, edges):# ----- Build the adjacency matrix -----# Start with self-connectionsadj = torch.eye(len(vertices))# edges contain connected vertices: [vertex_0, vertex_1]adj[edges[:, 0], edges[:, 1]] = 1adj[edges[:, 1], edges[:, 0]] = 1# ----- Forward data pass -----for layer in self.layers:vertices = torch.sigmoid(layer(adj @ vertices))return vertices
GraphSAGE
GraphSAGE(Hamilton et al, NIPS 2017)是一种用于动态图的表示学习技术。
它可以预测新节点的嵌入,而无需重新训练过程。
为此,GraphSAGE使用归纳学习。它学习聚合器函数,这些函数可以根据节点的特征和邻域来诱导新的节点嵌入。

我们可以注意到两个很大的区别。我们不是将两件事情相加并失去对它们的跟踪,而是使用一个通用的聚合函数,通过将它们连接起来使它们分开。
以前,我们使用的是平均聚合函数——我们只是从邻居那里获取消息并将它们相加,然后按邻居的数量对其进行归一化。现在,我们也可以采用池化类型的方法,或者我们也可以使用像 LSTM 这样的深度神经网络。

GNN的应用
图形结构化数据无处不在。GNN 解决的问题可分为以下几类:
-
节点分类:这里的任务是通过查看样本(表示为节点)的标签来确定样本(表示为节点)的标签。通常,这种类型的问题以半监督的方式进行训练,只标记图的一部分。
-
图分类:这里的任务是将整个图分类为不同的类别。这就像图像分类,但目标会变为图域。图分类的应用很多,从确定蛋白质在生物信息学中是否是酶,到在NLP或社交网络分析中对文档进行分类。
-
图可视化:是数学和计算机科学的一个领域,是几何图论和信息可视化的交叉点。它关注图形的可视化表示,揭示数据中可能存在的结构和异常,并帮助用户理解图形。
-
链接预测:在这里,算法必须理解图中实体之间的关系,并且还试图预测两个实体之间是否存在联系。在社交网络中,推断社交互动或向用户推荐可能的朋友至关重要。它还被用于推荐系统问题和预测犯罪团伙。
-
图聚类:指以图的形式对数据进行聚类。对图形数据执行的聚类有两种不同的形式。顶点聚类旨在根据边权重或边距离将图的节点聚类为密集连接的区域组。图聚类的第二种形式将图视为要聚类的对象,并根据相似性对这些对象进行聚类。
让我们来看看GNN可以解决各种挑战的一些跨领域的应用。
计算机视觉中的 GNN
使用常规的CNN,机器可以区分和识别图像和视频中的物体。尽管机器要拥有人类的视觉直觉还有很多发展空间。然而,GNN架构可以应用于图像分类问题。
其中一个问题是场景图生成,其中模型旨在将图像解析为由对象及其语义关系组成的语义图。给定图像,场景图生成模型可以检测和识别对象,并预测对象对之间的语义关系。
然而,GNN在计算机视觉中的应用数量仍在增长。它包括人与物体的交互、小镜头图像分类等。
自然语言处理中的 GNN
在 NLP 中,我们知道文本是一种可以由 RNN 或 LSTM 描述的顺序数据。然而,由于图形的自然性和易于表示,它们被大量用于各种 NLP 任务。
最近,人们对将 GNN 应用于大量 NLP 问题的兴趣激增,例如文本分类、利用机器翻译中的语义、用户地理定位、关系提取或问答。
我们知道每个节点都是一个实体,边描述了它们之间的关系。在NLP研究中,问答问题并不是最近才出现的。但它受到现有数据库的限制。虽然,使用GraphSage(Hamilton等人)等技术,这些方法可以推广到以前看不见的节点。
流量中的 GNN
预测交通网络中的交通速度、交通量或道路密度在智能交通系统中至关重要。我们可以通过使用 STGNN 来解决流量预测问题。
将交通网络视为一个时空图,其中节点是安装在道路上的传感器,边缘通过节点对之间的距离来测量,每个节点将窗口内的平均交通速度作为动态输入特征。
化学中的GNN
化学家可以使用GNN来研究分子或化合物的图结构。在这些图中,节点是原子,边缘是化学键。
其他域中的 GNN
GNN的应用不限于上述领域和任务。已经有人尝试将 GNN 应用于各种问题,例如程序验证、程序推理、社会影响预测、推荐系统、电气健康记录建模、大脑网络和对抗性攻击预防。
GNN应用概述
|
应用 |
深度学习 |
描述 |
|
文本分类 |
图卷积网络/图注意力网络 |
GNN 在 NLP 中的经典应用是文本分类。GNN 利用文档或单词的相互关系来推断文档标签。应用GCN和GAT模型来解决该任务。他们将文本转换为词图,然后使用图卷积运算来卷积单词图。他们通过实验表明,文本的词图表示具有捕获非连续和长距离语义的优势 |
|
神经机器翻译 |
图卷积网络/门控图神经网络 |
神经机器翻译 (NMT) 被认为是一个序列到序列的任务。GNN 的常见应用之一是将语义信息合并到 NMT 任务中。为此,我们在语法感知 NMT 任务上使用句法 GCN。我们也可以在 NMT 中使用 GGNN。它通过将边缘转换为其他节点将句法依赖关系图转换为新结构,因此边缘标签可以表示为嵌入 |
|
关系提取 |
图LSTM/图卷积网络 |
关系提取是从文本中提取语义关系的任务,通常发生在两个或多个实体之间。传统系统将此任务视为两个独立任务的管道,即命名实体识别 (NER) 和关系提取,但新的研究表明,实体和关系的端到端建模对于高性能很重要,因为关系与实体信息密切相关 |
|
图像分类 |
图卷积网络/门控图神经网络 |
图像分类是一项基本的计算机视觉任务。当给定大量标记类的训练集时,大多数模型都会提供有吸引力的结果。现在的重点是让这些模型在零样本和小样本学习任务中表现良好。为此,GNN似乎很有吸引力。知识图谱可以提供必要的信息来指导 ZSL(零样本学习)任务 |
|
对象检测 |
图注意力网络 |
计算机视觉任务还有其他应用,如对象检测、交互检测和区域分类。在目标检测中,GNN 用于计算 RoI 特征;在交互检测中,GNN是人与物体之间的信息传递工具;在区域分类中,GNN 对连接区域和类的图进行推理 |
|
物理 |
图神经网络/图网络 |
对现实世界的物理系统进行建模是理解人类智能的最基本方面之一。通过将对象表示为节点,将关系表示为边,我们可以有效地对对象、关系和物理进行基于 GNN 的推理。交互网络可以被训练来推理复杂物理系统中对象的交互。它可以对碰撞动力学等领域的各种系统属性进行预测和推断 |
|
分子指纹图谱 |
图卷积网络 |
分子指纹图谱是表示分子的特征向量。ML 模型通过从使用固定长度指纹作为输入的示例分子中学习来预测新分子的特性。GNN可以取代传统的方法,即对分子进行固定编码,从而生成适应其所需任务的可微分指纹 |
|
蛋白质界面预测 |
图卷积网络 |
这是一个具有挑战性的问题,在药物发现中具有重要应用。所提出的基于GCN的方法分别学习配体和受体蛋白残基的表征,并将它们合并以进行成对分类。在分子水平上,边缘可以是分子中原子之间的键或蛋白质中氨基酸残基之间的相互作用。在大尺度上,图形可以表示更复杂的结构(如蛋白质、mRNA 或代谢物)之间的相互作用 |
|
组合优化 |
图卷积网络/图神经网络/图注意力网络 |
组合优化 (CO) 是一个主题,包括从有限的对象集中找到最优对象。它是金融、物流、能源、科学和硬件设计中许多重要应用的基础。大多数 CO 问题都是用图表来表述的。在 DeepMind 和 Google 最近的一项工作中,图网络用于 MILP 求解器中涉及的两个关键子任务:联合变量赋值和目标值边界。他们的神经网络方法比大型数据集上的现有求解器更快 |
|
图形生成 |
图卷积网络/图神经网络/LSTM/RNN/关系-GCN |
真实世界图的生成模型因其重要应用而备受关注,包括对社会互动进行建模、发现新的化学结构和构建知识图谱。基于GNN的模型独立学习每个图的节点嵌入,并使用注意力机制进行匹配。与基于弛豫的标准技术相比,这种方法具有良好的性能 |
《机器学习+深度学习》和人工智能60G入门学习zi料包
【1.超详细的人工智能学习大纲】:一个月精心整理,快速理清学习思路!
【2.基础知识】:Python基础+高数基础,打好基础!
【3.机器学习入门】:机器学习十大算法经典算法详解,并且整理好哪些要重点学,哪些可以放弃的知识点!
【4.深度学习入门】:神经网络基础(CNN+RNN+GAN)包括pytorch框架+Transformer详解!
【5.方向选择】:数据、CV、NLP、大模型等项目实战

结论
在过去的几年里,图神经网络已经成为强大而实用的工具,可以解决任何可以通过图建模的问题。在本文中,我们对图神经网络进行了全面的概述,并介绍了广泛的GNN应用。
更多推荐
所有评论(0)