论文地址:A Gentle Introduction to Graph Neural Networks
翻译:图表就在我们身边;现实世界的对象通常根据它们与其他事物的连接来定义。一组对象以及它们之间的连接自然地表示为图形。十多年来,研究人员已经开发了对图数据进行操作的神经网络(称为图神经网络或GNN)。最近的发展提高了他们的能力和表现力。我们开始在抗菌发现、物理模拟、假新闻检测、交通预测和推荐系统等领域看到实际应用。
本段介绍了文章的架构主要分为:
- 1、什么数据可以表示为一张图
- 2、图与其他数据的不同之处
- 3、构建一个GNN
- 4、提供一个GNNplayground
用来了解GNN模型每个组件如何对其做出的预测做出贡献
作者将图像视为带有图像通道的矩形网格,将它们视为数组。 另一种将图像视为具有规则结构的图形,其中每个像素代表一个节点,并通过边缘连接到相邻像素。每个无边界像素正好有8个邻居,存储在每个节点上的信息是一个三维向量,表示像素的RGB值。
后面还有文本作为图形、分子作为图形、社交网络作为图表
这里作者说明在图上有三种常规类型的预测任务:图级、节点级与边级
图形级任务:主要目标是预测整个图的属性。
节点级任务:主要是预测图形中每个节点的身份或角色
边缘级任务:主要是对于图像场景的理解
这段说明利用神经网络来解决不同的图任务时,首要问题是如何表示与神经网络兼容的图
这里说明图表中最多有四类信息:节点、边、全局上下文与连通性
其中图形的连通性是最难的最复杂的,因为使用邻接矩阵,很容易发生张量而且会导致邻接矩阵非常稀疏,空间效率低下。另外就是,并不能保证这些不同的矩阵会在深度神经网络中产生相同的结果。
规范化存储图的不同信息:
这段主要解释了GNN(Graph Neural Networks)是是对图的所有属性(节点、边、全局上下文)的 可优化转换,它保持了图对称性(排列不变性)。同时GNN的输入是一个图,输出也是一个图。
GNN会对节点、边等进行变换,但不会改变图形的连接性
一个简单的GNN模型:
输入一个图进入一系列的GNN层,输出一个保持了整个图结构的输出但是里面所有的属性已经发生的变换,最后根据你要对哪个属性做预测添加合适的输出层但如果确缺失信息的话加入合适的汇聚层。
这段说明我们通过GNN层中使用汇聚(池化)来做出更复杂的预测,可以使用信息传递来做到.
信息传递的三个步骤:
- 1、对于图中的每个节点,收集所有相邻节点嵌入(或消息),即g功能如上所述。
- 2、通过聚合函数(如 sum)聚合所有消息。
- 3、所有汇集的消息都通过更新函数传递,通常是学习的神经网络
这里作者说我们描述的网络存在一个缺陷:图中彼此相距很远的节点可能永远无法有效地相互传递信息,即使我们应用了多次消息传递。
为了解决上述问题,这里加入了一个主节点(这个点可以跟所有的点、边相连),是一个虚拟的点。
对于一个节点,我们可以考虑来自相邻节点、连接边缘和全局信息的信息。为了在所有这些可能的信息源上设置新节点嵌入的条件,我们可以简单地将它们连接起来。此外,我们还可以通过线性映射将它们映射到同一空间并添加它们或应用特征调制层,这可以被认为是一种特征化注意力机制。
GNN 中的采样图和批处理
训练神经网络的常见做法是使用根据训练数据(小批次)的随机常量大小(批量大小)子集计算的梯度来更新网络参数。由于相邻的节点和边的数量存在可变性,这种做法对图提出了挑战,这意味着我们不能有一个恒定的批量大小。使用图进行批处理的主要思想是创建保留较大图的基本属性的子图。此图形采样操作高度依赖于上下文,并涉及从图形中子选择节点和边。这些操作在某些上下文(引文网络)中可能有意义,而在另一些上下文中,这些操作可能太强(分子,其中子图只是表示一个新的,更小的分子)。如何对图表进行采样是一个悬而未决的研究问题。如果我们关心在邻域级别保留结构,一种方法是随机抽取统一数量的节点,即我们的节点集。然后将距离 k 的相邻节点添加到节点集附近,包括它们的边。每个邻域都可以被视为一个单独的图,并且可以在这些子图的批次上训练GNN。可以屏蔽损失以仅考虑节点集,因为所有相邻节点都具有不完整的邻域。 更有效的策略可能是首先随机抽样单个节点,将其邻域扩展到距离 k,然后在扩展集中选择另一个节点。一旦构造了一定数量的节点、边或子图,这些操作就可以终止。 如果上下文允许,我们可以通过选择一个初始节点集,然后对恒定数量的节点进行子采样(例如随机,或通过随机游走或 Metropolis 算法)来构建恒定大小的邻域。
图注意力网络
在图形属性之间传递信息的另一种方式是通过注意力(权重取决于两个顶点向量的关系,不再是顶点的位置)。例如,当我们考虑节点及其 1 度相邻节点的总和聚合时,我们也可以考虑使用加权和。那么的挑战是以排列不变的方式关联权重。
结论:
先介绍了一下什么是图,图的属性应该用向量来表示,现实中的数据怎么表示为图,怎么样对图(点、边、全局)上做预测。简单说明了GNN的定义,假设属性有缺失做聚合操作,把边的属性或者点的属性拿过来。然后说明了真正意义上的GNN 。就是在每一层里面通过汇聚把整个图的信息传递过来。接下来就是对实验的可视化,进行漂亮的可视化。