前言
图神经网络(GCNS)分为了五类,图卷积网络(Graph Convolutional Networks)、图注意力网络(Graph Attention Networks)、图自编码机(Graph Auto-encoder)、图生成网络(Graph Generative Networks)、图时空网络(Graph Spatial-Temporal Networks),时空图卷积(ST-GCN)是在Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition一文中提出用于动作识别的,它可以自动从数据中学习空间和时间模式,因此具有更强大大的表达能力和泛化能力。
参考:https://staging.distill.pub/2021/gnn-intro/?ref=https://githubhelp.com
介绍
基本结构
图是一种数据结构,分为有向图和无向图,它表示了边和结点之间的联系
上面三张图表示了图的三个属性,图的全局信息,图的顶点和图的边,这些属性可以用于存储信息,用一个长度为5的向量来表示顶点,长度为8的向量来表示边,整个全局的信息用一个长度为5的向量来表示。
数据如何表示成图
数据主要分为两种,图片和文本。
图片:通常认为图像是带有图像通道的矩形网格,将它们表示为数组,另一种方法把图像当成是一种具有规则结构的图,读入彩色图像时,读出的是一个二维矩阵,其中每个像素(有RGB三个值)代表一个结点,并通过边与相邻像素相连,每个非边界像素有8个像素点相邻。
文本:通过将索引与每个字符、单词或标记联系起来,并将文本表示为索引的序列,然后将文本数字化,这创建了一个简单的有向图,其中每个字符或索引都是一个结点,并通过边连接到后面的结点。
图神经网络
因为图是一个排列不变的矩阵,所以可以使用图神经网络来进行图预测问题,GNN是对图上所有的属性进行的一个可以优化的变换,这个变换可以保持住图的对称信息,它接受一个图作为输入,将信息加载到它的节点、边和全局上下文中,并逐步转换这些嵌入,但是不会改变图的一个连接性,输出的也是一个图。
图神经网络是通过图与图之间节点来进行交互的,它展现了每个结点的上一层和下一层都是由哪些结点计算而来的,只要层数足够深,就可以处理到比较大范围的一个信息,这也是图神经网络怎么利用图的结构化信息来处理信息的基本原理。
上图是一个最简单的GNN模型,对于顶点状态向量、边状态向量还有全局的状态向量,我们构造一个输入大小等于输出大小的多层感知机,经过MLP之后,我们就得到了更新后的状态向量,GNN可以像神经网络一样进行多层叠加,并对向量进行多次更新。由于GNN不更新输入图的连通性,所以我们可以用与输入图相同的邻接表和相同数量的特征向量来描述GNN的输出图。 但是,输出图更新了嵌入,因为GNN更新了每个节点、边和全局上下文表示。