在本书中,我们将重点介绍图学习技术中的深度学习家族,通常称为图神经网络。GNNs是一种新的深度学习架构类别,专门设计用于处理图结构化数据。与主要用于文本和图像的传统深度学习算法不同,GNNs明确地用于处理和分析图数据集(见图1.4)。
图1.4 - GNN管道的高级架构,以图作为输入,输出对应于给定任务
GNNs已经成为图学习的强大工具,在各种任务和行业中显示出优秀的结果。其中最引人注目的例子之一是GNN模型如何发现了一种新的抗生素[2]。该模型在2500种分子上进行了训练,并在6000种化合物的库中进行了测试。它预测到一种名为halicin的分子应该能够杀死许多抗生素耐药的细菌,同时对人体细胞的毒性很低。基于这一预测,研究人员使用halicin治疗感染了抗生素耐药细菌的小鼠。他们证明了其有效性,并相信该模型可以用于设计新药。
GNNs是如何工作的呢?让我们以社交网络中的节点分类任务为例,就像之前的家谱示例(图1.3)一样。在节点分类任务中,GNNs利用来自不同来源的信息创建图中每个节点的向量表示。这个表示不仅包括原始节点特征(如姓名、年龄和性别),还包括边特征(如节点之间的关系强度)和全局特征(如整个网络的统计信息)。
这就是为什么GNNs在处理图上的机器学习任务中比传统技术更高效。GNNs不仅局限于原始属性,还可以使用邻居节点、边和全局特征来丰富原始节点特征,使表示更加全面和有意义。然后,使用新的节点表示来执行特定任务,例如节点分类、回归或链路预测。
具体而言,GNNs定义了一个图卷积操作,该操作从相邻节点和边中聚合信息以更新节点表示。这个操作是迭代进行的,随着迭代次数的增加,模型可以学习节点之间更复杂的关系。例如,图1.5展示了GNN如何使用相邻节点计算节点5的表示。
1.5 - 左:输入图;右:计算图表示GNN如何根据其邻居计算节点5的表示
值得注意的是,图1.5提供了计算图的简化示例。实际上,有各种类型的GNN和GNN层,每种类型都有独特的结构和从邻居节点聚合信息的方式。这些不同变体的GNNs也有其自己的优点和局限性,并且非常适合特定类型的图数据和任务。在选择适合特定问题的适当GNN架构时,了解图数据的特征和期望的结果至关重要。
更一般地说,与其他深度学习技术一样,GNNs在应用于特定问题时最有效。这些问题的特点是高复杂性,这意味着学习良好的表示对于解决手头的任务至关重要。例如,一个高度复杂的任务可能是在数十亿个选项中向数百万客户推荐合适的产品。另一方面,一些问题,例如找到家谱中最年轻的成员,可以在没有任何机器学习技术的情况下解决。
此外,GNNs需要大量的数据才能发挥有效的作用。在数据集较小的情况下,传统的机器学习技术可能更适合,因为它们不太依赖大量的数据。然而,这些技术不如GNNs扩展得好。GNNs可以处理更大的数据集,这要归功于并行和分布式训练。它们还可以更有效地利用额外的信息,从而产生更好的结果。
在本篇中,我们回答了三个主要问题:为什么使用图,为什么学习图,为什么使用图神经网络?首先,我们探讨了图在表示各种数据类型(如社交网络和交通网络,以及文本和图像)方面的多功能性。我们讨论了图学习的不同应用,包括节点分类和图分类,并强调了四个主要的图学习技术家族。最后,我们强调了GNNs的重要性以及它们相对于其他技术的优越性,特别是对于大型、复杂的数据集。通过回答这三个主要问题,我们旨在全面介绍GNNs的重要性以及它们在机器学习中变得至关重要的原因。
接下来,我们将深入探讨图神经网络的基础知识,这为理解GNNs提供了基础。将涵盖图论的基本概念,包括邻接矩阵和度数等概念。此外,我们还将深入研究不同类型的图及其应用,例如有向图和无向图,以及加权图和非加权图。