前言
深度学习4 搬运了国外一篇比较好的博客
A Gentle Introduction to Graph Neural Networks
正文
图形无处不在;现实世界中的物体通常是通过与其他事物的连接来定义的。一组物体和它们之间的连接自然地表达为一个图。研究人员已经开发了能够处理图形数据的神经网络(称为图神经网络或GNN)超过十年。最近的发展增强了它们的能力和表达能力。图神经网络开始在诸如抗菌发现、虚假新闻检测、交通预测和推荐系统等领域看到实际应用。
本文探讨并解释了现代图神经网络。我们将这项工作分为三个部分。首先,我们看看哪种数据最自然地表达为图形,以及一些常见的例子。其次,我们探讨了图形与其他类型数据的不同之处,以及在使用图形时需要做出的一些专业选择。第三,我们构建了一个现代的GNN,逐步介绍模型的每个部分,从该领域的历史建模创新开始。我们从一个简单的实现逐步迈向最先进的GNN模型。
首先,让我们明确图是什么。图表示实体(节点)之间的关系(边)。
为了进一步描述每个节点、边或整个图,我们可以在每个图元素中存储信息。
我们可以通过给边赋予方向(有向、无向)来进一步特化图形。
图及其出现的地方
你可能已经熟悉某些类型的图形数据,例如社交网络。然而,图形是一种非常强大且通用的数据表示方法,我们将展示两种你可能不认为可以建模为图形的数据类型:图像和文本。尽管这可能有些反直觉,但通过将图像和文本视为图形来查看它们的对称性和结构,我们可以建立一种直觉,从而更好地理解其他非网格状的图形数据,我们稍后将讨论这些数据。
图像作图形数据
我们通常将图像视为具有图像通道的矩形网格,将其表示为数组(例如,浮点数)。将图像看作有规律结构的图形,其中每个像素表示一个节点,并通过边连接到相邻像素,也是一种思考图像的方式。每个非边界像素恰好有8个相邻节点,并且每个节点存储一个三维向量,表示像素的RGB值。
一种可视化图形连接性的方法是通过其邻接矩阵。我们对节点进行排序,例如在一个简单的的笑脸图像中有25个像素,然后填充一个
的矩阵,如果两个节点共享一个边,则在该矩阵中填入一个条目。请注意,下面这三个表示是同一数据的不同视图。
文本作图形数据
我们可以通过将每个字符、单词或词元与索引关联起来,将文本数字化