0. 前言
近年来,从社交网络到分子生物学等各个领域,数据的图表示越来越普遍。图神经网络 (Graph Neural Network
, GNN
) 是专为处理图结构数据而设计的,要充分挖掘图表示的潜力,深入了解图神经网络至关重要。在本节中,我们将深入探讨图神经网络的基本概念,并理解为什么它们是现代数据分析和机器学习中的重要工具。为此,我们将通过以下内容全面了解 GNN
。首先,我们将探讨图作为数据表示的重要性,以及为什么它们被广泛应用于计算机科学、生物学和金融学等领域。接下来,我们将深入探讨图学习的重要性,了解图学习的不同应用以及不同类型的图学习技术。最后,我们将重点介绍 GNN
模型及其独特特征以及与其他方法的区别。
1. 图
图论 (Graph theory
) 是对图 (Graph
) 的数学研究,是理解复杂系统和关系的基本工具。图是节点( Node
, 也称为顶点)和连接这些节点的边 (Edge
) 的集合的直观表示,图提供了表示实体及其关系的结构,如下图所示。
通过将复杂系统表示为具有交互作用的实体网络,可以分析它们之间的关系,从而更深入地了解其基本结构和模式。图在各个领域都具有广泛用途:
- 计算机科学:图可以用来模拟计算机程序的结构,从而更容易理解系统中不同组件之间是如何相互作用的
- 物理学:图可用于模拟物理系统及其相互作用,例如粒子之间的关系及其属性
- 生物学:图可以用来模拟生物系统,如将新陈代谢途径作为一个由相互关联的实体组成的网络
- 社会学:图可用于研究和理解复杂的社交网络,包括社区中个体之间的关系
- 金融学:图可用于分析股票市场趋势和不同金融工具之间的关系
- 工程学:图可用于模拟和分析复杂系统,如交通网络和电网
这些领域内在的包含某种关系结构。例如,图是社交网络的自然表征:节点是用户,边代表用户与用户之间的联系。除此之外,图的用途非常广泛,也可以应用于关系结构并不那么自然的领域,例如,图像可以用图来表示,如下图所示。每个像素都是一个节点,边代表相邻像素之间的关系。这样就可以将基于图的算法应用到图像处理和计算机视觉任务中。
同样,一个句子也可以转换成一个图,其中节点是单词,边代表相邻单词之间的关系。这种方法在自然语言处理和信息检索任务中非常有用,因为在这些任务中单词的上下文和含义至关重要。
与文本和图像不同,图没有固定的结构,这种灵活性也使图的处理更具挑战性。没有固定的结构意味着它们可以有任意数量的节点和边,没有特定的排序。此外,图还可以表示动态数据,动态数据的实体之间的联系会随着时间的推移而发生变化。例如,用户和产品之间的关系会随着它们之间的互动而改变。在这种情况下,节点和边会被更新,以反映现实世界中的变化,如新用户、新产品和新关系。
2. 图学习
图学习 (Graph learning
) 是机器学习技术在图数据中的应用,包括一系列旨在理解和处理图结构数据的任务:
- 节点分类 (
Node classification
):预测图中节点类别,模型在一组已标注节点及其属性的基础上进行训练,并利用这些信息来预测未标注节点的类别。例如,它可以根据在线用户或产品的特征对其进行分类 - 链接预测 (
Link prediction
):预测图中节点对之间的缺失链接。常用于知识图谱补全,补全的目标是补全实体及其关系。例如,它可用于根据人与人之间的社交网络连接来预测人与人之间的关系 - 图分类 (
Graph classification
):将不同的图归入预定义类别,模型在一组标注过的图及其属性上进行训练,并利用这些信息对未见过的图进行分类。例如,分子生物学中,分子结构可以表示为图,目标是预测它们的特性,以便进行药物设计 - 图生成 (
Graph generation
):根据一组属性生成新图,在一组现有的图结构上训练一个模型,然后用它来生成新的、未见过的结构。可以应用于生成新型分子结构,生成的结构可以作为候选药物进行潜力评估和进一步研究
此外,图学习还有许多其他实际应用,例如推荐系统,图学习算法会根据用户以前与其他商品的互动和关系向用户推荐相关商品。另一个重要应用是交通预测,图学习可以通过分析不同路线和交通方式之间的复杂关系来改进行程时间预测。
图学习具有强大的应用潜力,近年来,由于大规模数据集的可用性、强大的计算资源以及机器学习和人工智能算法的突破,图学习的研究得到快速发展,主要包括以下四个技术方向:
- 图信号处理 (
Graph signal processing
):将传统的信号处理方法应用于图,如图傅里叶变换和频谱分析,这些技术揭示了图的内在属性,如图的连通性和结构 - 矩阵分解 (
Matrix factorization
):用于获取大型矩阵的低维表示。其目标是确定解释原始矩阵中观察到的关系的潜在模式。这种方法可以提供对数据的紧凑且可解释的表示 - 随机游走 (
Random walk
):用于模拟图中实体运动的数学概念。通过模拟图中的随机游走,可以收集到节点之间关系的相关信息,常用来生成机器学习模型所需的训练数据 - 深度学习 (
Deep learning
):是机器学习的一个子领域,主要研究多层神经网络。深度学习方法可以有效地将图数据编码并表示为向量,这些向量可用于各种下游任务,且性能卓越
需要注意的是,这些技术并不是相互独立的,在应用中经常会重叠。在实践中,它们可以组合起来形成混合模型,充分利用各自的优势。例如,矩阵分解和深度学习技术可以结合使用,以学习图结构数据的低维表示。
图学习中,数据集(所有机器学习技术的基本组件)至关重要。传统的表格数据集(如电子表格)以行和列的形式表示数据,每一行代表一个单独的数据点。然而,在许多现实场景中,数据点之间的关系与数据点本身同样重要,这就是图数据集的作用。图数据集将数据点表示为图中的节点,将数据点之间的关系表示为边。
以下图中的表格数据集为例,该数据集包含一个部门中五个员工的信息。每个成员都有三个特征(或属性):姓名、年龄和性别。然而,该表格并不能显示这些员工之间的联系。而在图中可以用边来表示员工之间的联系,可以了解这个部门中的关系。在多数情况下,节点之间的关系对于理解数据至关重要,因此以图的形式表示数据越来越流行。
3. 图神经网络
图神经网络 (Graph Neural Network
, GNN
) 是一类深度学习架构,专为图数据而设计。与主要针对文本和图像开发的传统深度学习算法不同,GNN
明确用于处理和分析图数据集。
GNN
已成为图学习的强大工具,并在各种任务和行业中取得了卓越的成果。例如,研究人员使用 GNN
模型识别出新的抗生素,该模型在 2,500
种分子上进行了训练,并在 6,000
个化合物库中进行了测试,其预测一种名为 halicin
的分子能够杀死许多抗生素耐药细菌,同时对人体细胞毒性较低。基于这一预测,研究人员使用 halicin
治疗感染抗生素耐药细菌的小鼠,证明了 halicin
的有效性。
那么 GNN
是如何工作的呢?以社交网络中的节点分类任务为例,如上一节中所示的部门关系图数据,在节点分类任务中,GNN
利用数据集中信息为图中的每个节点创建一个向量表示。这种表示不仅包括原始节点特征(如姓名、年龄和性别),还包括边特征(如节点间关系的强度)和全局特征(如整个图的统计数据)的信息。因此 GNN
比传统的图机器学习技术更加有效。GNN
不局限于原始特征,而是用相邻节点、边和全局特征的属性来丰富原始节点特征,使表示更加全面和有意义。然后,使用新的节点表示执行特定任务,如节点分类、回归或链接预测。
具体而言,GNN
定义了一种图卷积操作,它可以汇总来自相邻节点和边的信息,从而更新节点表示。这种操作是迭代进行的,随着迭代次数的增加,模型可以学习到节点之间更复杂的关系。下图展示了 GNN
如何利用相邻节点计算节点 1
的表示。
上图提供了一个计算图的简化实例。实际上,有多种不同类型的 GNN
和 GNN
层,每一种都有独特的结构和聚合相邻节点信息的方式。这些不同的 GNN 变体也有各自的优势和局限性,适合不同类型的图数据和任务。在选择适合特定问题的 GNN
架构时,了解图数据和任务的特征非常重要。
一般而言,GNN
和其他深度学习技术一样,GNN
模型只有应用于特定问题时才最为有效,通常这些问题具有高复杂性,例如,在数十亿个选项中向数百万客户推荐合适的产品。另一方面,有些问题,比如寻找部门中最年轻的成员,则可以在不适用任何机器学习技术的情况下解决。
此外,GNN
需要大量数据才能有效发挥作用。传统的机器学习技术更适合数据集较小的情况,因为它们对大量数据的依赖性较低。但是,这些技术的扩展性不如 GNN
,由于并行和分布式训练,GNN
可以处理更大的数据集。它们可以更有效地利用额外的信息,从而得到更好的结果。
小结
在本节中,我们摘要介绍了以下三个概念:图、图学习、图神经网络。首先,我们探讨了图在表示各种数据类型时的多功能性,例如社交网络和交通网络,以及文本和图像。我们讨论了图学习的不同应用,包括节点分类和图分类,并强调了图学习技术的四个主要研究方向。最后,我们强调了图神经网络 (Graph Neural Network
, GNN
) 的重要性及其相对于其他技术的优越性,尤其是在大型复杂数据集方面。通过介绍这三种概念,了解了 GNN
的重要性以及它们成为机器学习重要工具的原因。
系列链接
图神经网络实战(2)——图论基础
图神经网络实战(3)——基于DeepWalk创建节点表示
图神经网络实战(4)——基于Node2Vec改进嵌入质量
图神经网络实战(5)——常用图数据集
图神经网络实战(6)——使用PyTorch构建图神经网络
图神经网络实战(7)——图卷积网络(Graph Convolutional Network, GCN)详解与实现
图神经网络实战(8)——图注意力网络(Graph Attention Networks, GAT)
图神经网络实战(9)——GraphSAGE详解与实现
图神经网络实战(10)——归纳学习