图神经网络(一):综述

1.背景介绍

1)图简介

图是一种数据结构,它对一组对象(节点)及其关系(边)进行建模。图可以用来表示包括社会科学(社会网络、自然科学)、蛋白质相互作用网络和知识图谱等许多其他研究领域在内的各个系统。最近,由于图的强大表达能力,用机器学习分析图的研究越来越受到关注。图作为机器学习特有的非欧几里德数据结构,图分析侧重于节点分类、链路预测、聚类等任务。

2)图神经网络简介

图神经网络 ( Graph Neural Networks,GNN) 是通过图节点之间的消息传递来捕获图的依赖关系的神经模型。近年来,图卷积网络 (GCN)、图注意力网络 (GAT)、图递归网络 (GRN) 等 GNN 的变体在许多深度学习任务上都表现出了突破性的表现。图神经网络 (GNN) 是在图域上运行的基于深度学习的方法。 由于其令人信服的性能,GNN 最近已成为一种广泛应用的图分析方法。

CNNs能够提取多尺度的局部空间特征并将它们组合起来以构建高度表达的表示,这导致了几乎所有机器学习领域的突破,并开启了深度学习的新时代。CNN 的关键是局部连接、共享权重和多层的使用。然而,CNN 只能对常规欧几里德数据进行操作,如图像(2D 网格)和文本(1D 序列),而这些数据结构可以被视为图的实例。难以定义局部卷积滤波器和池化算子,阻碍了 CNN 从欧几里德域到非欧几里德域的转换。将深度神经模型扩展到非欧几里德领域,即通常所说的几何深度学习,一直是一个新兴的研究领域。

图表示学习用低维向量表示图节点、边或子图。在图分析领域,传统的机器学习方法通常依赖于手工设计的特征,并且受到其不灵活和高成本的限制。继表示学习的思想和词嵌入的成功之后,被认为是第一个基于表示学习的图嵌入方法的 DeepWalk 将 SkipGram 模型应用于生成的随机游走,node2vec 、LINE 和 TADW等类似方法也取得了突破。然而,这些方法存在两个严重的缺陷:a)码器中的节点之间没有共享参数,这导致计算效率低下,因此意味着参数的数量随着节点的数量线性增长;b)直接嵌入方法缺乏泛化能力,这意味着它们无法处理动态图或泛化到新图。
基于 CNN 和图嵌入,提出了图神经网络 (GNN) 的变体,以从图结构中集体聚合信息。 因此,他们可以对由元素及其依赖项组成的输入和/或输出进行建模。

2.GNN 的通用设计流程

GNN模型的通用设计流程通常包含四个步骤:a)查找图结构;b)明确图类型和规模;c)设计损失函数;d)构建模型。

1) 查找图结构

首先,我们必须找出应用中的图结构。 通常有两种场景:结构化场景和非结构化场景。 在结构化场景中,图结构在应用中是明确的,例如在分子、物理系统、知识图谱等方面的应用。 在非结构化场景中,图是隐式的,因此我们必须首先从任务中构建图,例如为文本构建全连接的“单词”图或为图像构建场景图。 在我们得到图之后,后面的设计过程会尝试在这个特定的图上找到一个最优的 GNN 模型。

2)明确图类型和规模

在应用中获取图后,我们必须找出图类型及其规模。 具有复杂类型的图可以提供有关节点及其连接的更多信息。 图通常分为以下几类:
有向/无向图。 有向图中的边都是从一个节点指向另一个节点的,这比无向图提供了更多的信息。 无向图中的每条边也可以视为两条有向边;
同构/异构图。 同构图中的节点和边具有相同的类型,而异构图中的节点和边具有不同的类型。 节点和边的类型在异构图中起着重要作用,应进一步考虑。
静态/动态图。 当输入特征或图的拓扑随时间变化时,该图被视为动态图。 在动态图中应仔细考虑时间信息。

一旦明确了图类型,这些图类型提供的附加信息应该在设计过程中进一步考虑。
至于图规模,“小”和“大”图没有明确的分类标准。 随着计算设备的发展(例如 GPU 的速度和内存),该标准仍在发生变化。 当一个图的邻接矩阵或图拉普拉斯算子不能被设备存储和处理时,我们将图视为一个大规模图,然后应该考虑一些采样方法。

3)设计损失函数

在这一步中,根据任务类型和训练设置来设计损失函数。 对于图学习任务,通常有以下三种任务:
节点级任务侧重于节点,包括节点分类、节点回归、节点聚类等。节点分类试图将节点分类为若干类,节点回归预测每个节点的连续值。 节点聚类旨在将节点划分为几个不相交的组,其中相似的节点应该在同一个组中。
边级任务是边分类和链路预测,这需要模型对边类型进行分类或预测两个给定节点之间是否存在边。
图级任务包括图分类、图回归和图匹配,所有这些都需要模型来学习图表示。

从监督的角度来看,我们还可以将图学习任务分为三种不同的训练设置:
监督设置为训练提供标记数据;
半监督设置提供少量标记节点和大量未标记节点进行训练。 在测试阶段,转导设置要求模型预测给定未标记节点的标签,而归纳设置提供来自相同分布的新未标记节点进行推断。 大多数节点和边分类任务都是半监督的。
无监督设置只为模型提供未标记的数据以查找模式。 节点聚类是一个典型的无监督学习任务。

通过任务类型和训练设置,我们可以为任务设计特定的损失函数。 例如,对于节点级别的半监督分类任务,交叉熵损失可以用于训练集中的标记节点。

4)构造模型

最后,我们可以开始使用计算模块构建模型。 一些常用的计算模块有:
传播模块(Propagation Module)。 传播模块用于在节点之间传播信息,以便聚合信息可以捕获特征和拓扑信息。 在传播模块中,卷积算子和循环算子通常用于聚合来自邻居的信息,而跳过连接操作用于从节点的历史表示中收集信息并缓解过平滑问题。

  • 卷积算子(convolution operator)
  • 循环算子(recurrent operator)
  • 跳连接(skip connection)

采样模块(Sampling Module)。 当图很大时,通常需要采样模块对图进行传播。 采样模块通常与传播模块结合使用。
池化模块(Pooling Module)。 当我们需要高级子图或图的表示时,需要池化模块来从节点中提取信息。

使用这些计算模块,通常通过组合它们来构建典型的 GNN 模型。 GNN 模型的典型架构如下图的中间部分所示,其中卷积算子、循环算子、采样模块和跳过连接用于在每一层中传播信息,然后添加池化模块以提取高层信息。这些层通常被堆叠以获得更好的表示。
在这里插入图片描述

3.计算模块的实例化

在这里插入图片描述

3.1 传播模块——卷积算子(convolution operator)

卷积算子是 GNN 模型中最常用的传播算子。 卷积算子的主要思想是将卷积从其他域推广到图域。 在这个方向上的进展通常被归类为谱方法和空间方法。

3.1.1 谱方法

谱方法与图形的谱表示一起工作。 这些方法理论上基于图信号处理,并定义了谱域中的卷积算子。
在谱方法中,首先通过图傅里叶变换将图信号 x 变换到谱域,然后进行卷积运算。 卷积之后,使用图傅里叶逆变换将结果信号变换回来。这些变换定义为:
在这里插入图片描述

这里 U 是归一化图拉普拉斯算子的特征向量矩阵。 归一化图拉普拉斯算子是实对称半正定的,因此可以分解为 L = UΛUT(其中 Λ 是特征值的对角矩阵)。 基于卷积定理,卷积运算定义为:
在这里插入图片描述

其中 UTg 是频谱域中的滤波器。 如果我们通过使用可学习的对角矩阵 gw 来简化滤波器,那么我们就有了谱方法的基本函数:

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值