IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 图神经网络(一):综述 -> 正文阅读

[人工智能]图神经网络(一):综述

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 来简化滤波器,那么我们就有了谱方法的基本函数:
在这里插入图片描述

接下来我们介绍几种设计不同滤波器gw的典型谱方法:
Spectral Network。 谱网络使用一个可学习的对角矩阵作为滤波器,即 gw = diag(w),其中 w 是参数。 但此操作在计算上效率低下,并且过滤器是非空间局部的。
ChebNet。 哈蒙德等人建议 gw 可以通过切比雪夫多项式的截断扩展来近似。 迪弗拉德等人基于该理论提出了 ChebNet。 因此操作可以写成:
在这里插入图片描述

该操作是 K 局部化的,因为它是拉普拉斯算子中的 K 阶多项式。 使用这种 K 局部化卷积来定义卷积神经网络,可以消除计算拉普拉斯算子特征向量的需要。
GCN。 Kipf等人用K=1简化了方程式4中的卷积运算,来缓解过拟合的问题。 并进一步假设 λmax 约为2 并将方程简化为:
在这里插入图片描述

有两个自由参数 w0 和 w1。 通过参数约束 w = w0 = -w1,我们可以得到以下表达式:
在这里插入图片描述

GCN 进一步引入了重归一化技巧来解决方程式中的爆炸/消失梯度问题。最后,GCN 的紧凑形式定义为:
在这里插入图片描述

3.1.2 空间方法

空间方法基于图拓扑直接在图上定义卷积。 空间方法的主要挑战是定义具有不同大小邻域的卷积操作并保持 CNN 的局部不变性。
DCNN。 扩散卷积神经网络 (DCNN) 使用转移矩阵来定义节点的邻域。 对于节点分类,图中每个节点的扩散表示可以表示为:
在这里插入图片描述

PATCHY-SAN。 PATCHY-SAN 模型为每个节点提取并归一化恰好 k 个节点的邻域。 归一化邻域作为传统卷积运算中的感受野。

LGCN。 可学习的图卷积网络 (LGCN) 也利用 CNN 作为聚合器。 它对节点的邻域矩阵执行最大池化以获得前 k 个特征元素,然后应用 1-D CNN 来计算隐藏表示。

GraphSAGE。 GraphSAGE是一个通用归纳框架,不使用完整的邻居集,而是统一采样固定大小的邻居集以聚合信息,它通过从节点的本地邻域采样和聚合特征来生成嵌入:
在这里插入图片描述

3.1.3 基于注意力的空间方法

注意力机制已成功应用于机器翻译、机器阅读等许多基于序列的任务中。 还有几个模型试图在图上泛化注意力算子。与之前提到的算子相比,基于注意力的算子为邻居分配不同的权重,从而可以减轻噪声并获得更好的结果。
GAT。 图注意力网络 (GAT) 将注意力机制纳入传播步骤。 它遵循自我注意策略,通过关注其邻居来计算每个节点的隐藏状态。 节点 v 的隐藏状态可以通过以下方式获得:
在这里插入图片描述

其中 W 是与应用于每个节点的线性变换相关的权重矩阵,a 是单层 MLP 的权重向量。
此外,GAT 利用 Vaswani 等人使用的多头注意力来稳定学习过程。 它应用 K 个独立的注意力头矩阵来计算隐藏状态,然后连接它们的特征(或计算平均值),产生以下两个输出表示:
在这里插入图片描述

注意力架构有几个特性:(1)节点-邻居对的计算是可并行的,因此操作是高效的; (2)通过给邻居指定任意权重,可以应用于不同度数的图节点; (3)它可以很容易地应用于归纳学习问题。
GaAN。 门控注意力网络 (GaAN)也使用了多头注意力机制。 但是,它使用自注意力机制从不同的头部收集信息,以代替 GAT 的平均操作。

3.1.4 空间方法的一般框架

MoNet。 混合模型网络 (MoNet) 是一个空间框架,它试图统一非欧几里德域的模型,包括流形的 CNN 和 GNN。 在 MoNet 中,流形上的每个点或图上的每个顶点,用 v 表示,都被视为伪坐标系的原点。 邻居 u 与伪坐标 u(v,u) 相关联。 给定两个函数 f,g 定义在图的顶点(或流形上的点)上,MoNet 中的卷积算子定义为:
在这里插入图片描述

MPNN。 消息传递神经网络 (MPNN) 提取了几个经典模型的一般特征。 该模型包含两个阶段:消息传递阶段和读出阶段。 在消息传递阶段,模型首先使用消息函数 Mt 聚合来自邻居的“消息”mt v,然后使用更新函数 Ut 更新隐藏状态 ht v:
在这里插入图片描述

NLNN。 非局部神经网络 (NLNN) 推广并扩展了计算机视觉中的经典非局部均值运算 。 非局部操作将某个位置的隐藏状态计算为所有可能位置的特征的加权和。 潜在位置可以是空间、时间或时空。 因此,NLNN 可以被视为不同“自注意”式方法的统一。 在非局部平均操作之后,通用的非局部操作定义为:
在这里插入图片描述

GN。 图网络 (GN) 通过学习节点级、边级和图级表示,是一个比其他框架更通用的框架。 它可以统一许多变体,如 MPNN、NLNN、交互网络 、神经物理引擎 、CommNet、 structure2vec, GGNN (Li et al., 2016), Relation Network , Deep Sets、Point Net 等。 GN 的核心计算单元称为 GN 块。 一个 GN 块定义了三个更新函数和三个聚合函数:
在这里插入图片描述

3.2 传播模块——循环算子(recurrent operator)

循环方法是该研究领域的先驱。 循环算子和卷积算子的主要区别在于卷积算子中的层使用不同的权重,而循环算子中的层共享相同的权重。基于递归神经网络的早期方法侧重于处理有向无环图。后来,图神经网络(GNN)的概念首次被提出,扩展了现有的神经网络以处理更多的图类型。

3.2.1 基于收敛的方法

在图中,每个节点自然地由其特征和相关节点定义。 GNN 的目标是学习一个状态嵌入 hv,其中包含每个节点的邻域和自身的信息。 状态嵌入 hv 是节点 v 的 s 维向量,可用于生成输出 ov,例如预测节点标签的分布。 那么 hv 和 ov 的计算步骤定义为:
在这里插入图片描述

f 这里是一个称为局部转移函数的参数函数。 它在所有节点之间共享,并根据输入邻域更新节点状态。 g 是描述如何产生输出的本地输出函数。 请注意,f 和 g 都可以解释为前馈神经网络。
令 H、O、X 和 XN 分别是通过堆叠所有状态、所有输出、所有特征和所有节点特征构建的矩阵。 然后我们有一个紧凑的形式:
在这里插入图片描述

3.2.2 基于门的方法

有几项工作试图在传播步骤中使用 GRU或 LSTM之类的门机制,以减少 GNN 中的计算限制并改善信息的长期传播。 图结构,他们在不保证收敛的情况下运行固定数量的训练步骤。

  • GGNN
  • Tree LSTM
  • Graph LSTM
  • S-LSTM

3.3 传播模块——跳连接(skip connection)

许多应用展开或堆叠图神经网络层旨在获得更好的结果,因为更多的层(即 k 层)使每个节点从 k 跳之外的邻居聚合更多的信息。 然而,在许多实验中已经观察到,更深的模型无法提高性能,更深的模型甚至可能表现更差。 这主要是因为更多的层也可以传播来自数量呈指数增长的扩展邻域成员的噪声信息。 它还导致过度平滑问题,因为当模型更深入时,节点在聚合操作之后往往具有相似的表示。 所以很多方法都尝试添加“跳过连接”来让 GNN 模型更深。 在本小节中,我们介绍了三种跳过连接的实例。
Highway GCN
JKN
DeepGCNs

3.4 采样模块

GNN 模型从前一层的邻域中聚合每个节点的消息。 直观地说,如果我们回溯多个 GNN 层,支持邻居的大小将随着深度呈指数增长。 为了缓解这种“邻居爆炸”问题,一种有效且有效的方法是采样。 此外,当我们处理大图时,我们不能总是存储和处理每个节点的所有邻域信息,因此需要采样模块来进行传播。 本节介绍三种图采样模块:节点采样、层采样和子图采样。

3.4.1 节点采样(Node sampling)

减少邻居节点大小的一种直接方法是从每个节点的邻域中选择一个子集。 GraphSAGE对固定的少量邻居进行采样,确保每个节点的邻域大小为 2 到 50。 为了减少抽样方差,Chen 等人通过利用节点的历史激活作为控制变量,为 GCN 引入了一种基于控制变量的随机逼近算法。 该方法限制了一跳邻域的感受野,并使用历史隐藏状态作为可承受的近似值。
PinSage提出了基于重要性的抽样方法。 通过模拟从目标节点开始的随机游走,该方法选择具有最高标准化访问计数的前 T 个节点。

3.4.2 层采样(Layer sampling)

层采样不是为每个节点采样邻居,而是在每个层中保留一小组节点用于聚合以控制扩展因子。 FastGCN直接对每一层的感受野进行采样。 它使用重要性抽样,其中重要节点更有可能被抽样。 与上述固定采样方法相比,Huang 等人引入了一个参数化和可训练的采样器来执行以前一层为条件的逐层采样。 此外,这种自适应采样器可以优化采样重要性并同时减少方差。 LADIES通过从节点的邻居联合中生成样本来缓解分层采样中的稀疏问题。

3.4.3 子图采样(Subgraph sampling)

与基于完整图的采样节点和边不同,一种根本不同的方法是采样多个子图并限制这些子图中的邻域搜索。 ClusterGCN 通过图聚类算法对子图进行采样,而 GraphSAINT直接对节点或边进行采样以生成子图。

3.5 池化模块

在计算机视觉领域,卷积层之后通常是池化层,以获得更一般的特征。 复杂且大规模的图通常带有丰富的层次结构,这对于节点级和图级分类任务非常重要。 与这些池化层类似,很多工作都集中在在图上设计分层池化层。 在本节中,我们介绍两种池化模块:直接池化模块和分层池化模块。

3.5.1 直接池化模块

直接池化模块直接从具有不同节点选择策略的节点学习图级表示。 这些模块在某些变体中也称为读出功能。
Simple Node Pooling。几个模型使用简单的节点池方法。 在这些模型中,节点方式的 max/mean/sum/attention 操作应用于节点特征以获得全局图表示。
Set2set。MPNN 使用 Set2set 方法作为读出函数来获取图形表示。 Set2set 旨在处理无序集,并使用基于 LSTM 的方法在预定义的步数后生成顺序不变表示。
SortPooling。SortPooling首先根据节点的结构角色对节点嵌入进行排序,然后将排序后的嵌入输入 CNN 以获得表示。

3.5.2 分层池化模块

前面提到的方法直接从节点学习图表示,它们没有研究图结构的层次属性。 接下来我们将讨论遵循分层池化模式并按层学习图表示的方法。
Graph Coarsening。早期的方法通常基于图粗化算法。 首先使用光谱聚类算法,但由于特征分解步骤,它们效率低下。 Graclus 提供了一种更快的集群节点方法,它被用作池化模块。 例如,ChebNet 和 MoNet 使用 Graclus 来合并节点对并进一步添加额外的节点以确保池化过程形成平衡的二叉树。
ECC。边缘条件卷积 (ECC) 设计了具有递归下采样操作的池化模块。 下采样方法基于通过拉普拉斯算子的最大特征向量的符号将图分成两个分量。
DiffPool。DiffPool通过在每一层训练分配矩阵 St 来使用可学习的层次聚类模块。
gPool。gPool使用一个项目向量来学习每个节点的投影分数,并选择具有前 k 个分数的节点。 与 DiffPool 相比,它在每一层都使用向量而不是矩阵,从而降低了存储复杂度,但是投影过程不考虑图结构。
EigenPooling。EigenPooling旨在联合使用节点特征和局部结构。 它使用局部图傅里叶变换来提取子图信息,并且存在图特征分解效率低下的问题。
SAGPool。SAGPool也被提出来联合使用特征和拓扑来学习图表示。 它使用基于自注意的方法,具有合理的时间和空间复杂度。

4.考虑图形类型和规模的变体

在上面的部分中,我们假设图是最简单的格式。 然而,现实世界中的许多图都很复杂。 在本小节中,我们将介绍尝试解决复杂图类型挑战的方法,这些变体的概述如下图所示:
在这里插入图片描述

4.1 有向图

第一种是有向图。 有向边通常比无向边包含更多信息。 例如,在一个头部实体是尾部实体的父类的知识图中,边缘方向提供了关于偏序的信息。 不是简单地在卷积算子中采用非对称邻接矩阵,我们可以对边的正向和反向进行不同的建模。

4.2 异构图

第二种变体是异构图,其中节点和边是多类型或多模态的。
基于元路径的方法
大多数针对这种图类型的方法都使用元路径的概念。 元路径是一种路径方案,它在路径的每个位置确定节点的类型。在训练过程中,元路径被实例化为节点序列。 通过连接元路径实例的两个端节点,元路径捕获可能不直接连接的两个节点的相似性。因此,一个异构图可以简化为几个同构图,可以在其上应用图学习算法。
基于边的方法
还有一些工作不使用元路径。 这些工作通常在采样、聚合等方面对不同类型的邻居和边缘使用不同的函数。它将不同的注意力权重矩阵分配给不同的元关系,使模型能够考虑类型信息。
关系图的方法
一些图的边缘可能包含比类型更多的信息,或者类型的数量可能太大,给应用基于元路径或元关系的方法带来困难。我们将这种图称为关系图, 为了处理关系图,G2S将原始图转换为二分图,其中原始边也成为节点,一个原始边被分成两条新边,这意味着有两个边缘节点和开始/结束节点之间的新边。在这个转换之后,它使用门控图神经网络和循环神经网络将具有边缘信息的图转换为句子。 GGNN 的聚合函数将节点的隐藏表示和关系作为输入。作为另一种方法,R-GCN 不需要转换原始图形格式。它为不同种类的边缘上的传播分配不同的权重矩阵。但是,当关系的数量非常多时,模型中的参数数量就会爆炸式增长。因此,它引入了两种正则化来减少用于建模关系量的参数数量:基分解和块对角分解。
多路图的方法
在更复杂的场景中,图中的一对节点可以与多个不同类型的边相关联。 通过在不同类型的边下查看,图可以形成多层,其中每一层代表一种关系。 因此,多路图也可以称为多视图图(multi-dimensional graph)。 例如,在 YouTube 中,两个用户之间可以存在三种不同的关系:分享、订阅、评论。 边类型不假定彼此独立,因此简单地将图拆分为具有一种边类型的子图可能不是最佳解决方案。 mGCN (Ma et al., 2019b) 为 GNN 的每一层中的节点引入了一般表示和特定维度的表示。 特定维度的表示是使用不同的投影矩阵从一般表示中投影出来的,然后聚合以形成下一层的一般表示。

4.3 动态图

图的另一种变体是动态图,其中的图结构,例如 边和节点的存在,随着时间的推移不断变化。为了将图形结构化数据与时间序列数据一起建模,DCRNN 和 STGCN 首先通过 GNN 收集空间信息,然后将输出输入到序列模型中,如序列- 序列模型或 RNN。不同的是,Structural-RNN 和 ST-GCN同时收集空间和时间信息。 他们使用时间连接扩展静态图结构,因此他们可以在扩展图上应用传统的 GNN。类似地,DGNN将来自 GCN 的每个节点的输出嵌入馈送到单独的 LSTM 中,LSTM 的权重在每个节点之间共享。另一方面,EvolveGCN认为,直接对节点表示的动态建模将阻碍模型在节点集不断变化的图上的性能。因此,它不是将节点特征作为 RNN 的输入,而是将 GCN 的权重输入 RNN 以捕获图交互的内在动态。

4.4 其他图

对于图的其他变体,例如超图和有符号图,也提出了一些模型来解决这些挑战。
Hypergraphs。超图是指图中的一条边可以连接两个或多个顶点,并分配权重的图。
Signed graphs。有符号图是具有有符号边的图,即边可以是正的或负的。

5.不同训练设置的变体

5.1 图自动编码器

对于无监督图表示学习,有将自动编码器 (AE) 扩展到图域的趋势。 图自动编码器 (GAE) 首先使用 GCN 对图中的节点进行编码。 然后它使用一个简单的解码器来重构邻接矩阵,并根据原始邻接矩阵和重构矩阵之间的相似性计算损失:
在这里插入图片描述

  • Variational Graph Auto-Encoder(VGAE)
  • Adversarially Regularized Graph Auto-encoder (ARGA)
  • MGAE
  • GALA
  • AGE。与上述不同,AGE指出恢复损失与下游任务不兼容。 因此,他们将自适应学习应用于成对节点相似度的测量,并在节点聚类和链路预测方面实现了最先进的性能。

5.2 对比学习

除了图自动编码器,对比学习为无监督图表示学习开启了另一种方式。 Deep Graph Infomax (DGI) 最大化节点表示和图表示之间的互信息。 Infograph旨在通过图级表示与包括节点、边和三角形在内的不同尺度的子结构级表示之间的互信息最大化来学习图表示。 多视图对比一阶邻接矩阵和图扩散的表示,在多个图学习任务上实现了最先进的性能。

6.GNN的设计示例

在本节中,我们给出一个现有的 GNN 模型来说明设计过程。 以异构图预训练任务为例,我们使用 GPT-GNN作为模型来说明设计过程。

1)查找图结构

本文重点关注学术知识图谱和推荐系统的应用。 在学术知识图谱中,图结构是明确的。 在推荐系统中,用户、物品和评论可以看作节点,它们之间的交互可以看作边,因此图结构也很容易构建。

2)明确图类型和规模

这些任务侧重于异构图,因此应考虑节点和边的类型并将其合并到最终模型中。 由于学术图和推荐图包含数百万个节点,因此模型应进一步考虑效率问题。 总之,该模型应侧重于大规模异构图。

3)设计损失函数

由于 (Hu et al., 2020b) 中的下游任务都是节点级任务(例如学术图中的 Paper-Field 预测),因此模型应该在预训练步骤中学习节点表示。 在预训练步骤中,没有可用的标记数据,因此设计了一个自监督图生成任务来学习节点嵌入。 在微调步骤中,根据每个任务的训练数据对模型进行微调,从而应用每个任务的监督损失。

4)构造模型

最后用计算模块建立模型。 对于传播模块,作者使用了卷积算子 HGT 。 HGT 将节点和边的类型合并到模型的传播步骤中,并且在架构中也添加了跳跃连接。 对于采样模块,采用了专门设计的采样方法 HGSampling,它是 LADIES 的异构版本。 由于模型专注于学习节点表示,因此不需要池化模块。 HGT 层堆叠多层以学习更好的节点嵌入。

7 GNN在知识图谱中的应用

知识图谱 (KG) 表示现实世界实体的集合以及实体对之间的关系事实。 它具有广泛的应用,如问答、信息检索和知识引导生成。 KGs 上的任务包括学习包含丰富的实体和关系语义的低维嵌入,预测实体之间缺失的链接,以及对知识图谱进行多跳推理。 一项研究将图视为三元组的集合,并提出了各种损失函数来区分正确的三元组和错误的三元组(Bordes et al., 2013)。 另一条线利用 KG 的图性质,并使用基于 GNN 的方法来完成各种任务。 当将 KG 视为图时,可以将 KG 视为异构图。 然而,与社交网络等其他异构图不同,逻辑关系比纯图结构更重要。

R-GCN (Schlichtkrull et al., 2018) 是第一个将 GNN 用于知识图谱嵌入的工作。 为了处理各种关系,R-GCN 在消息传递步骤中提出了特定于关系的转换。 Structure-Aware Convolutional Network (Shang et al., 2019) 将 GCN 编码器和 CNN 解码器结合在一起,以获得更好的知识表示。

更具挑战性的设置是知识库外 (OOKB) 实体的知识库完成。 OOKB 实体在训练集中不可见,但直接连接到训练集中观察到的实体。 OOKB 实体的嵌入可以从观察到的实体中聚合。 Hamaguchi等人使用 GNN 来解决这个问题,在标准 KBC 设置和 OOKB 设置中都取得了令人满意的性能。

除了知识图谱表示学习,Wang 等人利用 GCN 解决跨语言知识图谱对齐问题。 该模型将来自不同语言的实体嵌入到一个统一的嵌入空间中,并根据嵌入相似度对它们进行对齐。 为了对齐大规模异构知识图谱,OAG使用图注意力网络对各种类型的实体进行建模。 Xu 等人将实体表示为其周围的子图。 (2019c) 将实体对齐问题转化为图匹配问题,然后通过图匹配网络解决。

8.GNN在推荐系统中的应用

用户-项目交互预测是推荐中的经典问题之一。 通过将交互建模为图形,GNN 可用于该领域。GC-MC (van den Berg et al., 2017) 首先将 GCN 应用于用户-项目评分图来学习用户和项目嵌入。 为了在网络规模的场景中有效地采用 GNN,PinSage (Ying et al., 2018a) 为二分图构建了具有加权采样策略的计算图,以减少重复计算。
社交推荐尝试结合用户社交网络来提高推荐性能。 GraphRec (Fan et al., 2019) 从项目侧和用户侧学习用户嵌入。 吴等人。 (2019c)超越静态社会影响。 他们试图通过双重注意力来模拟同质性并影响效果。

9.GNN在NLP中的应用

图神经网络可以应用于基于文本的多个任务。 它可以应用于句子级任务(例如文本分类)以及单词级任务(例如序列标记)。
文本分类
文本分类是自然语言处理中一个重要且经典的问题。传统的文本分类使用词袋特征。然而,将文本表示为单词图可以进一步捕捉非连续单词和长距离单词之间的语义(Peng et al., 2018)。彭等人。 (2018) 使用基于图 CNN 的深度学习模型首先将文本转换为词图,然后使用 (Niepert et al., 2016) 中的图卷积操作对词图进行卷积。张等人。 (2018d)提出了句子 LSTM 来编码文本。他们将整个句子视为一个单一状态,由单个单词的子状态和整体句子级状态组成。他们使用全局句子级表示进行分类任务。这些方法要么将文档或句子视为单词节点的图。姚等人。 (2019) 将文档和单词作为节点来构建语料库图,并使用 Text GCN 来学习单词和文档的嵌入。情感分类也可以被视为文本分类问题,并且由 (Tai et al., 2015) 提出了 Tree-LSTM 方法。
序列标注
给定一系列观察到的变量(如单词),序列标注就是为每个变量分配一个分类标签。 典型的任务包括 POS 标记,通过词性标记句子中的单词,以及命名实体识别 (NER),预测句子中的每个单词是否属于命名实体的一部分。 如果将序列中的每个变量视为一个节点,将依赖项视为边,可以利用 GNN 的隐藏状态来解决任务。 张等人利用 Sentence LSTM 来标记序列。 他们对 POS 标记和 NER 任务进行了实验,并取得了可喜的表现。
语义角色标注是序列标注的另一项任务。 Marcheggiani 和 Titov (2017) 提出了一个句法 GCN 来解决这个问题。 在带有标记边的直接图上运行的句法 GCN 是 GCN 的一个特殊变体(Kipf 和 Welling,2017)。 它集成了边门,让模型调节各个依赖边的贡献。 句法依赖树上的句法 GCN 被用作句子编码器来学习句子中单词的潜在特征表示。
机器翻译
神经机器翻译 (NMT) 任务是使用神经网络自动将文本从源语言翻译成目标语言。它通常被认为是一个序列到序列的任务。 Transformer (Vaswani et al., 2017) 引入了注意力机制并替换了最常用的循环层或卷积层。实际上,Transformer 假设单词之间是完全连接的图结构。可以使用 GNN 探索其他图结构。
GNN 的一种流行应用是将句法或语义信息合并到 NMT 任务中。巴斯廷斯等人。 (2017)在句法感知 NMT 任务上使用句法 GCN。 Marcheggiani 等人。 (2018 年)使用 Syntactic GCN 合并有关源句的谓词-参数结构(即语义-角色表示)的信息,并比较仅合并句法信息、仅合并语义信息和两种信息之间的结果。贝克等人。 (2018)在语法感知 NMT 中使用 GGNN。他们通过将边转换为附加节点,将句法依赖图转换为称为 Levi 图 (Levi, 1942) 的新结构,因此边标签可以表示为嵌入。
关系抽取
提取文本中实体之间的语义关系有助于扩展现有的知识库。 传统方法使用 CNN 或 RNN 来学习实体的特征并预测一对实体的关系类型。 更复杂的方法是利用句子的依存结构。 可以构建文档图,其中节点表示单词,边表示各种依赖关系,例如邻接、句法依赖和话语关系。 张等人。 (2018f)提出了图卷积网络的扩展,该扩展专为关系提取而定制,并将修剪策略应用于输入树。
跨句子 N 元关系提取检测跨多个句子的 n 个实体之间的关系。 彭等人。 (2017)通过在文档图上应用图 LSTM,探索了跨句子 n 元关系提取的一般框架。 宋等人。 (2018b) 还使用图状态 LSTM 模型,并通过允许更多并行化来加速计算。
事件抽取
事件抽取是识别文本中特定类型事件实例的重要信息抽取任务。 这总是通过识别事件触发器然后预测每个触发器的参数来进行的。 Nguyen 和 Grishman(2018 年)研究了一个基于依赖树的卷积神经网络(确切地说是句法 GCN)来执行事件检测。 Liu et al. (2018) 提出了一个联合多事件提取 (JMEE) 框架,通过引入句法快捷弧来联合提取多个事件触发器和参数,以增强信息流到基于注意力的图卷积网络以对图信息进行建模。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:44:55  更:2022-08-06 10:45:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 9:15:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计