第十六周周报

文章目录

  • 摘要
  • 文献阅读A Gentle Introduction to Graph Neural Networks
  • 前言
    • 用图表示一张图片
    • 文本作为图表
    • 其他图值数据
      • 用图表示分子
      • 用图表示社交网络
      • 用图表示引文
    • 表示成图后产生的问题
      • 图层面问题
      • 顶点层面问题
      • 边层面问题
  • 图神经网络
    • 实现消息传递
    • 全局信息的作用
  • 实验
  • 相关技术
    • GNN 中的图采样和批处理
    • 归纳偏差
    • 比较聚合操作
    • GCN(图卷积神经网络):有汇聚的图神经网络
    • 图注意力网络
    • 图的可解释性
    • 生成建模
  • 评论
  • 总结

摘要

对图的认识、再到GNN神经网络的初步认识,了解GNN发展的过程,模型的建立,应用。图及常见实例、图与其他类型数据的不同之处、构建了一个现代 GNN、可编辑的GNN模型可视化。

Understanding of Graphs, Introduction to Graph Neural Networks (GNNs), Overview of GNN Development, Model Establishment, and Applications. Graphs and Common Examples, Differences Between Graphs and Other Data Types, Building a Modern GNN, Editable GNN Model Visualization.

文献阅读A Gentle Introduction to Graph Neural Networks

前言

图的结构和属性已经用来构建神经网络模块,图表就在我们身边;现实世界的对象通常是根据它们与其他事物的联系来定义的。一组对象以及它们之间的联系自然地表达为图形。十多年来,研究人员开发了对图数据进行操作的神经网络(称为图神经网络,或 GNN)。最近的发展提高了他们的能力和表达能力。我们开始看到抗菌药物发现等领域的实际应用, 物理模拟 、假新闻检测、交通预测和推荐系统。

本文探讨并解释了现代图神经网络。我们将这项工作分为四个部分。
1)图标及常见实例。
2)图表与其他类型数据的不同之处.
3)构建了一个现代 GNN
4)可编辑的GNN模型可视化(playground)

第十六周周报_第1张图片

图表示实体(节点)集合之间的关系(边)。
顶点(或节点)属性:节点身份、邻居数量
边(或链接)属性和方向:边标识、边权重
全局(或主节点)属性:节点数、最长路径
第十六周周报_第2张图片

在分别用向量来表示节点、边、全局的信息。
还可以通过将方向性与边(有向、无向)相关联来专门化图。
第十六周周报_第3张图片

用图表示一张图片

我们通常将图像视为具有图像通道的矩形网格,将它们表示为数组(例如,244x244x3 浮点数)。另一种将图像视为具有规则结构的图,其中每个像素代表一个节点,并通过边缘连接到相邻像素。每个非边界像素正好有 8 个邻居,每个节点存储的信息是表示该像素的 RGB 值的 3 维向量。
第十六周周报_第4张图片
像素点是相邻的,图里就用边来表示。或者用邻接矩阵来表示,如上图所示,蓝色的点就是代表有边的。

文本作为图表

我们可以通过将索引与每个字符、单词或标记相关联,并将文本表示为这些索引的序列来数字化文本。这将创建一个简单的有向图,其中每个字符或索引都是一个节点,并通过边连接到其后面的节点。
第十六周周报_第5张图片
用邻接矩阵来表示该句子,蓝色表示有向边。

其他图值数据

用图表示分子

分子作为图表。分子是物质的组成部分,由 3D 空间中的原子和电子构成。所有粒子都相互作用,但是当一对原子彼此保持稳定的距离时,我们说它们共享共价键。不同的原子对和键具有不同的距离(例如单键、双键)。将这个 3D 对象描述为图是一个非常方便且常见的抽象,其中节点是原子,边是共价键。用于学习分子指纹的图上的卷积网络。
第十六周周报_第6张图片
第十六周周报_第7张图片

用图表示社交网络

社交网络是研究人们、机构和组织集体行为模式的工具。我们可以通过将个体建模为节点并将他们的关系建模为边来构建表示人群的图。
第十六周周报_第8张图片
第十六周周报_第9张图片

用图表示引文

在发表论文时经常引用其他科学家的工作。我们可以将这些引用网络可视化为一个图,其中每篇论文都是一个节点,每个有向边是一篇论文与另一篇论文之间的引用。此外,我们可以将每篇论文的信息添加到每个节点中,例如摘要的词嵌入。
第十六周周报_第10张图片

表示成图后产生的问题

图层面问题

在图级任务中,我们的目标是预测整个图的属性。例如,对于用图表表示的分子,我们可能想要预测该分子闻起来像什么,或者它是否会与与疾病有关的受体结合。
第十六周周报_第11张图片
这类似于 MNIST 和 CIFAR 的图像分类问题,我们希望将标签与整个图像相关联。对于文本,类似的问题是情感分析,我们希望立即识别整个句子的情绪或情感。

顶点层面问题

节点级预测问题的一个典型例子是扎克的空手道俱乐部。
该数据集是一个单一的社交网络图,由在政治分歧后宣誓效忠两个空手道俱乐部之一的个人组成。故事是这样的,Hi 先生(教练)和 John H(管理员)之间的不和在空手道俱乐部中造成了分裂。节点代表各个空手道练习者,边代表空手道之外这些成员之间的互动。预测问题是对给定成员在不和之后是否忠诚于 Mr. Hi 或 John H 进行分类。在这种情况下,节点与讲师或管理员之间的距离与该标签高度相关。
第十六周周报_第12张图片左边是问题的初始条件,右边是可能的解决方案,其中每个节点都根据联盟进行了分类。该数据集可用于其他图问题,例如无监督学习。类似图像分割,标记图像中每个像素的作用。

边层面问题

用于图像场景理解、语义分割,除了识别图像中的对象之外,深度学习模型还可用于预测它们之间的关系。我们可以将其表述为边缘级分类:给定代表图像中对象的节点,我们希望预测这些节点中的哪些节点共享边缘或该边缘的值是什么。如果我们希望发现实体之间的连接,我们可以考虑完全连接的图,并根据其预测值修剪边缘以得到稀疏图。
第十六周周报_第13张图片
原始图像 (a) 被分割为五个实体:每位拳手、裁判、观众和垫子。© 显示了这些实体之间的关系。

一个根据之前的视觉场景构建的初始图。右侧是根据模型的输出修剪某些连接时该图可能的边缘标记。
第十六周周报_第14张图片
怎么样用神经网络来表示图?

图上面有四种信息,分别是顶点的属性, 边的属性, 全局的一些信息, 以及他的连接性, 就是每条边到底连接的是哪两个点, 前面这三个, 还是比较好的因为这三个都可以用向量来表示, 就是每一个顶点的属性我都可以用向量来表示, 神经网络对向量是友好的。因为我们对一个词的话也是用一条向量来进行表示。
连接性就用邻接矩阵来表示,但是存在的问题就这图的邻接矩阵往往是稀疏的,对CPUGPU来说,稀疏矩阵的计算一直是个问题; 还有一个问题就是邻接矩阵, 把任何的行、列的顺序交换都不会影响其图意义。
第十六周周报_第15张图片
上面两个矩阵表示的是同一张图。
意思就是对于我们设计出的神经网络而言,放入上面两个图的任意一张图,都不会影响最后的结果,结果应该是一样的。
第十六周周报_第16张图片
以上的这个些邻接矩阵都是一个图。
由需要减少存储、又可以满足改变排序因此作者想到用如下存储方法来实现:
第十六周周报_第17张图片
点、边、全局的信息都用标量来表示,唯一改变的就是连接性用全局来表示,这连接性里的顺序是可以改变的。

图神经网络

GNN定义 GNN 是对图的所有属性(节点、边、全局上下文)的可以优化变换,这个变换是可保留图对称性(排列不变性)。
作者用信息传递的框架来表示GNN。
GNN会对输入的图的顶点、边、全局的向量进行改变,但是不会改变其连接性。

作者构建了一个最简单的GNN,是由三个MLP分别对点、边、全局进行计算,输出对应的点、边、全局的标量或者是向量。
第十六周周报_第18张图片
MLP对这些向量是独立作用的,这三层MLP构成 一个GNN层;而且是对图的结构不造成影响的。是没有改变的。最简单情况下,在最后一层添加一个全连接层来进行分类。

假设一个点没有自己的向量,那么就通过池化来获得该点的向量,同理可以用于边、全局。
第十六周周报_第19张图片
但是上述的模型有很大的局限性的, 主要的问题在于是说在, 这一块的时候我们并没有对它使用图的结构信息, 就是我们对整个每个属性做变换的时候, 它就是每个属性自己进入你的MLP, 并没有看到说这个顶点是跟哪些边, 相连的, 或跟哪些顶点相连的, 并没有考虑到这样子的连接信息, 所以导致这一块并没有合理的把整个图的信息更新进去你的属性里面, 导致你的最后的结果可能是, 并不能够leverage(充分利用)你这个图的信息。

实现消息传递

通过池化信息进行 GNN 预测
在图的各个部分之间传递消息我们可以通过在 GNN 层中使用池化来做出更复杂的预测,以使我们学习到的嵌入了解图的连接性。我们可以使用消息传递来做到这一点,其中相邻节点或边交换信息并影响彼此更新的嵌入。消息传递分三个步骤进行:对于图中的每个节点,收集所有相邻节点的嵌入(或消息),这是G功能如上所述。通过聚合函数(如 sum)聚合所有消息。所有汇集的消息都通过更新函数(通常是学习的神经网络)传递。正如池化可以应用于节点或边缘一样,消息传递也可以发生在节点或边缘之间。这些步骤是利用图的连接性的关键。我们将在 GNN 层中构建更复杂的消息传递变体,从而产生增强表现力和功能的 GNN 模型。

与卷积不同的是,每个点汇聚后的权重是相同的。

信息传递现在假设我们要对这一个顶点他的向量进行更新,我们把它的向量, 和它的邻居的两个顶点的向量都, 加在一起得到一个汇聚的向量, 把这个汇聚的向量再进入MLP就会得到这一个点的向量的更新,。
第十六周周报_第20张图片
就算每一层只考虑一个点与其他邻居的关系,但是经过很多层的汇聚,一个点就会有很多其他点的信息了。
同样可以用于在边上提前汇聚其他点的信息,也可以在其他点上汇聚边的信息。如果维度不一样的话,就进行投影。
点汇聚到边,边在汇聚到点上。
我们可以采用与之前使用相邻节点信息相同的方式合并来自相邻边缘的信息,首先池化边缘信息,使用更新函数对其进行转换,然后存储它。
然而,存储在图中的节点和边信息不一定具有相同的大小或形状,因此目前尚不清楚如何将它们组合起来。一种方法是学习从边空间到节点空间的线性映射,反之亦然。或者,可以在更新函数之前将它们连接在一起。如图所示:
第十六周周报_第21张图片
我们更新哪些图属性以及更新它们的顺序是构建 GNN 时的一项设计决策。我们可以选择是否在边缘嵌入之前更新节点嵌入,或者反之亦然。这是一个开放的研究领域,具有多种解决方案——例如,我们可以以“编织”方式进行更新
其中我们有四个更新的表示,它们组合成新的节点和边表示:节点到节点(线性)、边到边(线性)、节点到边(边层)、边到节点(节点层)。
(交替更新)
第十六周周报_第22张图片

同样道理, 假设我要更新别的顶点的时候, 我会拿到每个顶点自己本身的向量, 以及它的那些邻居的向量, 都拿过来加在一起, 最后得到 进入 mlp 之前的向量, 这一步是一个聚合步, 然后这是一个更新步, 所以这就是一个最简单形式的, 消息传递, 然后作者说这个跟标准的, 图片上的卷积有点像 , 其实上呢也可以这么说吧, 但是如果你要严格上, 来讲的话, 假设我这张图表示的是一张图片, 就是每个顶点, 它跟它相连的像素相连的话, 这一个操作 , 等价于你在图片上做卷积, 但是你这个卷积的核窗口里面 , 每一个窗口里面它的权重是要一样的, 因为在卷积里面我们是其实每一个, 顶点和它的邻居顶点它的向量我们会, 做一个加权和, 权重来自于你这个卷积窗口里面, 它那个3×3窗口的话, 那么它就每一个窗口呢, 像素它都有自己的权重, 但是这个地方我们就是没有加权和了, 我们就直接是加, 所以导致那些权重都是一样的, 但是通道还是保留了, 就是说在卷积里面有, 多输入通道和多输出通道, 那么它对应的就是, 这个 mlp 这个过程它还是在保留, 所以它是说有一点点像, 但是呢 当然之间是有一些区别的, 然后跟卷积一样, 卷积, 虽然我们每一层可能就做一个3乘3的一个窗口, 但是我们可把很多层垛起来, 最后最后的那一层, 它的那个像素能看到下面层的很多, 我们在这里最早的那个图, 也看到过效果, 就说我们把很多层放在一起的时候, 就算每一层, 我们只考虑一个顶点, 和它的邻居的关系, 但是如果有很多层放在一起的话, 最后一层比如说这个节点, 它其实会把基本上图里面很多的, 邻居的邻居, 邻居的邻居邻居的信息全部汇聚过来, 所以就完成了整个图的比较长距离的一个信息的传递的过程, 然后我们用下面一个记号来表示我们这一个

全局信息的作用

作者说到,在没有全局信息前,某点到某点的消息传递可能会非常远,通过加入一个master node(主节点)或者context vector(上下文向量)的虚拟节点,这个点可以与所有点、边相连,可以充当它们之间传递信息的桥梁,从而构建整个图的表示。
第十六周周报_第23张图片
因此在进行汇聚时,该全局节点U也参与其中,汇聚所有节点、边的信息。最后在做预测时,类似注意力机制,把要预测的对象所有相关的东西(边、点甚至是全局信息)都拿进全连接层进行预测。因此这可以被认为是一种特征化注意力机制。

实验

他把一个 GNN 的训练程序, 嵌入到了Java Script里面, 然后再做了一个比较小的分子图的一个预测数据集, 让你可以调节, 图神经网络里面不同的超参数, 来看一下在实际训练。

第十六周周报_第24张图片
我们将每个分子表示为一张图,其中原子是包含其原子身份(碳、氮、氧、氟)的 one-hot 编码的节点,键是包含对其键类型(单键、双键、三键)编码的边或芳香)。
我们针对此问题的通用建模模板将使用顺序 GNN 层构建,然后是具有用于分类的 sigmoid 激活的线性模型。我们的 GNN 的设计空间有许多可以自定义模型的杠杆:
GNN 层数,也称为深度。
更新时每个属性的维度。更新函数是一个 1 层 MLP,具有 relu 激活函数和用于激活标准化的层范数。
池化中使用的聚合函数:max、mean 或 sum。
更新的图属性或消息传递的样式:节点、边和全局表示。我们通过布尔切换(开或关)来控制它们。基线模型将是一个独立于图的 GNN(所有消息传递都关闭),它最终将所有数据聚合到单个全局属性中。切换所有消息传递函数会产生 GraphNets 架构。

作者也给出了一些超参数数量变化与AUC的关系图
第十六周周报_第25张图片
随着超参数增加,AUC上限也会增加,但下线没有什么变化,意思就是模型越大,但是调参还是要调好,不然AUC也可能比较低。

第十六周周报_第26张图片
我们可以注意到,具有较高维度的模型往往具有更好的均值和下界性能,但对于最大值却没有发现相同的趋势。一些性能最佳的型号也适用于较小的尺寸。由于更高的维度也将涉及更多数量的参数,因此这些观察结果与上图一致。
第十六周周报_第27张图片

不同层数对AUC的影响。
箱线图显示了类似的趋势,虽然平均性能往往随着层数的增加而增加,但性能最好的模型不是三层或四层,而是两层。此外,性能下限随着四层的增加而降低。这种效应之前已经被观察到,具有更多层数的 GNN 会在更远的距离上广播信息,并且可能会面临其节点表示在多次连续迭代中被“稀释”的风险

第十六周周报_第28张图片
不同汇聚(MAX、sum、mean)的方式对AUC的影响:基本上是等价的。
第十六周周报_第29张图片
不同传递消息的方式,对整个模型AUC的影响。
总的来说,我们看到通信的图属性越多,平均模型的性能就越好。我们的任务以全局表示为中心,因此明确学习该属性也往往会提高性能。我们的节点表示似乎也比边缘表示更有用,这是有道理的,因为这些属性中加载了更多信息。

为了获得更好的性能,您可以从这里走很多方向。我们希望两位强调两个一般方向,一个与更复杂的图算法相关,另一个与图本身相关。

相关技术

还介绍了其他图形:

multigraphs:顶点之间可以有多个边。
第十六周周报_第30张图片

超图:一个边可以连接多个顶点。
第十六周周报_第31张图片

GNN 中的图采样和批处理

因为如果一个图的连通性足够好的情况下,在最后一层的节点可能汇聚了所有其他节点的信息,那么在进行梯度下降的时候,需要把整个图中间结果都存下来,计算量是非常大,因此作者给了四个方法,对图进行采样,每次在采样出的小图上做信息的汇聚。这样算梯度的时候,只要在小图上的中间结果记录下就行了。

1)一种方法是随机采样统一数量的节点,即我们的节点集。然后添加与节点集相邻的距离为 k 的相邻节点,包括它们的边。
每个邻域都可以被视为一个单独的图,并且可以在这些子图的批次上训练 GNN。可以屏蔽损失以仅考虑节点集,因为所有相邻节点都将具有不完整的邻域。
第十六周周报_第32张图片
2)随机游走:从某个顶点开始,随机在里面找到一条边,沿着这条边走到下一个节点,可以规定最多随机走多少布。
第十六周周报_第33张图片
3)结合1)2),先随机指定一个节点,走几步,然后再找其他几步的邻居。
第十六周周报_第34张图片

4)随机找一个点,进行宽度遍历。生成子图。

第十六周周报_第35张图片

而且和其他神经网络一样,我们希望将节点也是批量的进行更新计算,但是每个节点的汇聚的各个信息是不一样的,因此需要合并成一个规则的张量,这是一个有挑战信的问题。

归纳偏差

例如,在图像上进行标记时,我们希望利用这样一个事实:无论是在图像的左上角还是右下角,狗仍然是狗。因此,大多数图像模型使用具有平移不变性的卷积。对于文本,标记的顺序非常重要,因此循环神经网络按顺序处理数据。此外,一个标记的存在(例如“not”一词)可能会影响句子其余部分的含义,因此我们需要可以“参与”文本其他部分的组件,这些组件可以转换 BERT 和 GPT 等模型-3 可以。这些是归纳偏差的一些示例,其中我们识别数据中的对称性或规律性,并添加利用这些属性的建模组件。
作者认为,任何一个机器学习、神经网络都有一些假设再里面,在CNN中是假设的空间循环不变性,RNN中,假设的是时许的延续性,GNN 的假设是1)保持了图的对称性,2)保持了图的连续性。

比较聚合操作

池化来自相邻节点和边缘的信息是任何相当强大的 GNN 架构中的关键步骤。因为每个节点都有可变数量的邻居,并且因为我们需要一种可微分的方法来聚合这些信息,所以我们希望使用对节点排序和提供的节点数量不变的平滑聚合操作。

聚合操作的一个理想特性是相似的输入提供相似的聚合输出,反之亦然。一些非常简单的候选排列不变运算是总和、平均值和最大值。方差之类的汇总统计数据也有效。所有这些都采用可变数量的输入,并提供相同的输出,无论输入顺序如何。让我们探讨一下这些操作之间的区别。
第十六周周报_第36张图片
如上图所示:各个方法都有不适用的情况出现。
没有一种聚合方法是一致的最佳选择。当节点的邻居数量变化很大或者您需要局部邻居特征的归一化视图时,均值运算会很有用。当您想要突出显示本地社区中的单个显着特征时,max 操作会很有用。Sum 通过提供特征局部分布的快照来提供两者之间的平衡,但由于它没有标准化,因此也可以突出显示异常值。实践中,常用sum。

GCN(图卷积神经网络):有汇聚的图神经网络

它具有的性质:
1)GCN 作为子图函数逼近器,可以把每一个点作为一个子图,最后汇聚在一起。
2)具有对偶性,可以把边变成点、点变成边。
3)将图卷积视为矩阵乘法,将矩阵乘法视为在图上行走

图注意力网络

图属性之间传递信息的另一种方式是通过注意力。
例如,当我们考虑节点及其 1 度相邻节点的和聚合时,我们还可以考虑使用加权和。接下来的挑战是以排列不变的方式关联权重。一种方法是考虑标量评分函数,该函数根据节点对分配权重在这种情况下,评分函数可以解释为测量相邻节点相对于中心节点的相关程度的函数。权重可以被归一化,例如使用 softmax 函数将大部分权重集中在与任务相关的节点最相关的邻居上。
并设置transform。排列不变性得以保留,因为评分适用于节点对。常见的评分函数是内积,并且在评分之前通常通过线性映射将节点转换为查询向量和关键向量,以增加评分机制的表达能力。此外,为了可解释性,评分权重可以用作边缘相对于任务的重要性的度量。
第十六周周报_第37张图片

图的可解释性

GNN 时,我们可能会关心模型的可解释性,以建立可信度、调试或科学发现。我们要解释的图形概念因上下文而异。例如,对于分子,我们可能关心特定子图的存在或不存在,而在引文网络中我们可能关心一篇文章的关联程度。由于图形概念的多样性,构建解释的方法有很多种。GNN解释器将此问题转化为提取对任务最重要的最相关的子图。归因技术将排序的重要性值分配给与任务相关的图表部分。由于可以综合生成现实且具有挑战性的图问题,因此 GNN 可以作为评估归因技术的严格且可重复的测试平台。
第十六周周报_第38张图片

生成建模

除了学习图的预测模型之外,我们可能还关心学习图的生成模型。使用生成模型,我们可以通过从学习的分布中采样或完成给定起点的图来生成新图。一个相关的应用是新药的设计,其中需要具有特定性质的新型分子图作为治疗疾病的候选药物。

图生成模型的一个关键挑战在于对图的拓扑进行建模,图的大小可能变化很大。一种解决方案在于使用自动编码器框架像图像一样直接对邻接矩阵进行建模。
边缘存在或不存在的预测被视为二元分类任务。
可以通过仅预测已知边缘和不存在的边缘的子集来避免术语。graphVAE 学习对邻接矩阵中的正连接模式和一些非连接模式进行建模。
另一种方法是顺序构建图,从图开始并迭代应用离散操作(例如添加或减去节点和边)。为了避免估计离散动作的梯度,我们可以使用策略梯度。这是通过自回归模型(例如 RNN)完成的,或者在强化学习场景中。
此外,有时图可以被建模为带有语法元素的序列。

评论

图是一种强大且丰富的结构化数据类型,其优点和挑战与图像和文本截然不同。在本文中,我们概述了研究人员在构建处理图形的基于神经网络的模型时提出的一些里程碑。我们已经介绍了使用这些架构时必须做出的一些重要设计选择,希望 GNN 游乐场能够直观地了解这些设计选择的经验结果是什么。近年来 GNN 的成功为解决各种新问题创造了绝佳的机会,我们很高兴看到该领域将带来什么。

总结

我们从头到尾读下来, 就整个流程是非常流畅的, 我们回顾一下作者是怎么写的, 他先介绍了一下什么是图, 它说图的属性 , 我们应该用向量来表示对顶点, 对于边, 对全局都用向量来表示它的属性, 然后它说, 现实生活中的这些数据, 要怎么表示成图, 然后呢我怎么样对图上做预测, 对顶点做预测, 对边做预测对整个图做预测, 接下来它说我机器学习的算法, 用到图上的时候有一些什么样的挑战, 这个都是我的上下文 , 接下来它开始真正意义上的讲GNN, 所以到此为止整个文章, 完成了它主要的信息的介绍, 最后, 它对GNN相关的一些问题进行了展开,。

你可能感兴趣的:(机器学习,图像处理,深度学习)