参考链接:
https://www.bilibili.com/video/BV1iT4y1d7zP?share_source=copy_web
主要内容:构建一个图神经网络需要哪些模块,背后的思想是什么
图的上一层的结点是由图的下一层的邻居结点构成的
图形无处不在。研究人员已经开发了对图形数据进行操作的神经网络(称为图形神经网络,或GNN)十多年了。最近的发展提高了他们的能力和表达能力。我们开始在抗菌发现、物理模拟、假新闻检测、流量预测和推荐系统等领域看到实际应用。(图神经网络才刚刚开始应用)
本文探索并解释了现代图形神经网络。我们把这项工作分为四个部分:
首先,我们看一下什么样的数据最自然地表达为一个图形,以及一些常见的例子
其次,我们将探讨是什么使图形不同于其他类型的数据,以及在使用图形时必须做出的一些特殊选择
第三,我们构建了一个现代GNN,浏览模型的每个部分,从该领域的历史建模创新开始。我们逐渐从一个简单的实现过渡到最先进的GNN模型。
第四,提供了一个GNN游乐场,在这里,您可以玩一个真实的word任务和数据集,以建立一个更强大的直觉,了解GNN模型的每个组件如何对它所做的预测做出贡献。
**图:**表示实体集合(节点)之间的关系(边)
U:表示另外结点,全局信息
有向图/无向图
将图片表示为图
一个像素映射到一个结点
将文本表示为图
将分子图表示为图
将社交网络表示为一个图
图级、节点级和边级
1.在图级任务中,我们预测整个图的单个属性
2.对于节点级任务,我们预测图中每个节点的一些属性
3.对于边级任务,我们希望预测图中边的属性或存在
图层面上的:识别两个环?/对图进行分类
顶点层面上的:
边层面上的:
最重要的问题:怎么样来表示我们的图,让它们是兼容的
表示连接属性:邻接矩阵(所用空间过大)(x)
邻接列表(√):
GNN是对图的所有属性(节点、边、全局上下文)的可优化变换,它保持图的对称性(置换不变性)。
对图的每一个层次(顶点,边,全局)都使用多层感知器(MLP),三个构成了图的一层
通过汇集信息进行GNN预测
所有的结点共享一个全连接层
当结点没有信息需要进行预测时,我们采用一种从边缘收集信息并将其提供给结点进行预测的方法
汇集收益分两步进行:1。对于要合并的每个项目,收集它们的每个嵌入并将它们连接到一个矩阵中。2.然后,通常通过求和操作聚合收集的嵌入。
例:只有边向量,没有结点向量,通过一个汇聚层,从边到顶点,这是每个顶点都得到自己的向量,最后通过顶点之间共享的输出层得到顶点的输出
同理:也可以把顶点汇聚到边上
通过顶点汇聚到图上
最简单的GNN模型
给予一个输入的图,进入一系列的gnn层(点,边,全局),得到一个经过处理保持了图结构的输出,对属性进行预测的话就添加一些相应的输出层,缺失信息就加入相应的汇聚层,最终得到预测
在这个最简单的GNN公式中,我们根本没有在GNN层中使用图的结构信息。每个节点和每个边以及全局上下文都是独立处理的。我们仅在汇集信息进行预测时使用连接性。
信息传递
1.对于图中的每个节点,收集所有相邻节点嵌入(或消息)
2.通过聚合函数(如sum)聚合所有消息
3.所有汇集的消息都通过一个更新函数传递
通过将传递给GNN层的消息堆叠在一起,节点最终可以合并整个图形中的信息
使用边的数据集进行表示学习
我们的数据集并不总是包含所有类型的信息(节点、边缘和全局上下文)。
当我们想要对节点进行预测,但我们的数据集只有边信息时,我们在上面展示了如何使用池将信息从边缘路由到节点,但仅在模型的最终预测步骤中。
我们可以使用消息传递在GNN层内的节点和边缘之间共享信息。我们可以采用与之前使用相邻节点信息相同的方式合并来自相邻边缘的信息,首先合并边缘信息,使用更新函数对其进行转换并存储。
但是,存储在图形中的节点和边信息不一定具有相同的大小或形状,因此目前尚不清楚如何组合它们。一种方法是学习从边空间到节点空间的线性映射,反之亦然。或者,可以在update函数之前将它们连接在一起。
结点和边之间相互交换信息同时进行,这样就不用考虑结点和边,边和结点相互交换信息哪种先开始
如何加入全局信息
到目前为止,我们所描述的网络存在一个缺陷:在图中彼此远离的节点可能永远无法有效地将信息传递给彼此,即使我们多次应用消息传递。对于一个节点,如果我们有k层,信息最多传播k步。对于预测任务依赖于相距很远的节点或节点组的情况,这可能是一个问题。一种解决方案是让所有节点都能够相互传递信息。不幸的是,对于大型图形来说,这很快就变得计算成本高昂(尽管这种称为“虚拟边”的方法已用于小图形,如分子)。这个问题的一个解决方案是使用图(U)的全局表示,它有时被称为主节点或上下文向量。该全局上下文向量连接到网络中的所有其他节点和边,并可以作为它们之间传递信息的桥梁,为整个图形建立表示。这将创建一个比其他方法更丰富、更复杂的图形表示。
对于一个节点,我们可以考虑来自相邻节点、连接边和全局信息的信息。为了将新节点嵌入到所有这些可能的信息源上,我们可以简单地将它们连接起来。此外,我们还可以通过线性映射将它们映射到同一空间,并添加它们或应用特征调制层,这可以被视为一种特征化的智能注意机制。
图的层次够多,最终结点可能包含的信息也更多,中间变量需要存储,可能导致计算不能够被承受,因此我们需要采样,训练神经网络的一种常见做法是使用在训练数据(小批量)的随机常数大小(批量大小)子集上计算的梯度来更新网络参数
GNN的假设:不管图如何变换,图都保持了对称性
图形是一种功能强大、结构丰富的数据类型,它具有与图像和文本截然不同的优势和挑战。在本文中,我们概述了研究人员在构建基于神经网络的图形处理模型方面取得的一些里程碑。我们已经了解了使用这些架构时必须做出的一些重要设计选择,希望GNN游乐场能够直观地了解这些设计选择的经验结果。GNNs近年来的成功为广泛的新问题创造了一个巨大的机会,我们很高兴看到该领域将带来什么。