图神经网络(GNN)
什么是图神经网络?
在过去的几年中,神经网络的兴起与应用成功推动了模式识别和数据挖掘的研究。许多曾经严重依赖于手工提取特征的机器学习任务(如目标检测、机器翻译和语音识别),如今都已被各种端到端的深度学习范式(例如卷积神经网络(CNN)、长短期记忆(LSTM)和自动编码器)彻底改变了。有人将此次人工智能浪潮兴起归因于三个条件:
- 计算资源的快速发展(如GPU)
- 大量训练数据的可用性
- 深度学习从欧氏空间数据中提取潜在特征的有效性
然而传统深度学习算法在处理非欧氏空间数据上的表现难以令人满意:
- 图的复杂性。图是不规则的,每个图都有一个大小可变的无序节点,每个节点上有不同数量的相邻节点
- 图的数据样本存在相互依赖关系,并非相互独立
近年来,人们对深度学习方法在图上的扩展越来越感兴趣。图神经网络(Graph Neural Networks,GNN)应运而生,它主要用于处理图数据。注意,GNN的研究与图嵌入(见下一篇笔记)或网络嵌入密切相关。
图嵌入旨在通过保留图的网络拓扑结构和节点内容信息,将图中顶点表示为低维向量,以便使用简单的机器学习算法(例如,支持向量机分类)进行处理。
它们可以大致可以划分为三个类别,即矩阵分解、随机游走和深度学习方法。
它与GNN的关系如下图。
GNN的分类
对于GNN的框架,可以看这个文章图神经网络(GNN)模型原理及应用综述的推导。
- 图卷积网络(Graph convolutional networks)和图注意力网络(graph attention networks),因为涉及到传播步骤(propagation step)。
- GCN:核心在于学习一个函数映射,通过这个映射节点$v_i$可以聚合自己和邻居特征来生成节点$v_i$的新表示
- 基于谱(spectral-based):从图信号处理的角度引入滤波器来定义图卷积,其中图卷积操作被解释为从图信号中去除噪声
- 缺点:它们需要将整个图加载到内存中以执行图卷积,这在处理大型图时是不高效的
- 基于空间(spatial-based):将图卷积表示为从邻域聚合特征信息,当图卷积网络的算法在节点层次运行时,图池化模块可以与图卷积层交错,将图粗化为高级子结构
- 优点
- 有潜力处理大型图
- 可以轻松地在不同的位置和结构之间共享权重,添加新的节点
- 更灵活地处理多源输入,可以应用于有向图
- 优点
- 基于谱(spectral-based):从图信号处理的角度引入滤波器来定义图卷积,其中图卷积操作被解释为从图信号中去除噪声
- GAN:广泛应用到基于序列的任务中,优点为能放大数据中最重要的部分的影响
- 图注意力网络(GAT)是一种基于空间的图卷积网络,它的注意机制是在聚合特征信息时,将注意机制用于确定节点邻域的权重
- GCN:核心在于学习一个函数映射,通过这个映射节点$v_i$可以聚合自己和邻居特征来生成节点$v_i$的新表示
- 图的空域网络(spatial-temporal networks),因为该模型通常用在动态图(dynamic graph)上。
- 图时空网络同时捕捉时空图的时空相关性。时空图具有全局图结构,每个节点的输入随时间变化。
- 图的自编码(auto-encoder),因为该模型通常使用无监督学习(unsupervised)的方式。
- 目的:一类图嵌入方法,想利用神经网络结构将图的顶点表示为低维向量
- 图生成网络(generative networks),因为是生成式网络
具体的原理推导可以看图神经网络(Graph Neural Networks,GNN)综述),只不过注意GNN的分类还是四种,因为他翻译的论文偏早,有些内容在后续的发展中有一些更新。
GNN的变体
主要是从图类型、传播类型和训练方法三个方面来对图神经网络的一些变体进行探讨
图类型
- 有向图(Directed Graphs):即图中的边是存在方向的。有向边可以带来比无向边更多的信息。
- 异构图(Heterogeneous Graphs):即图中存在多种类型的节点。处理异构图的最简单方法是将每个节点的类型转换为与原始特征连接的 One-hot 特征向量。(其中,论文《Deep Collective Classification in Heterogeneous Information Networks》提出将元路径(meta path)概念用在异质图的信息传播上,根据节点类型和距离来对局部范围内节点进行分组,对于每一组,Graph Inception将它作为异构图的一个子图,然后在子图内进行传播,并将不同异构图得到的结果进行连接得到综合的节点表示。)
- 带有边信息的图(Graphs with Edge Information):即图中的每条边也存在权重或类型等信息。这种类型的图有两种解决办法:
- 动态图(Dynamic Graphs):动态图类型有静态的图结构,并且能够处理动态的输入信号。
- DCRNN和STGCN首先使用GNN获空间结构信息,然后将outputs馈入到一个序列模型(如sequence-to-sequence或者CNN)
- 与此相反的是,Structural-RNN和ST-GCN同时获取时间信息和空间信息
传播类型
论文中的传播(propagation)***指的是汇集从邻居节点和连接的边的信息,来对节点进行更新的过程**,对于获取节点或者边的隐藏状态,神经网络中的传播步骤(propagation step)和输出步骤(output step)至关重要。在*传播步骤方面的改进**主要有卷积、注意力机制、门机制和跳跃连接(skip connection),而在**输出步骤通常遵循简单的前馈神经网络设置。
训练方法
原始的图卷积神经网络在训练和优化方法上有一些缺点,比如,GCN需要计算整个图拉普拉斯矩阵,这个操作对于大型的图计算量非常大,另外,在第L LL层的节点的embedding,是通过第L − 1 L-1L−1层其周围所有邻居节点的embedding递归循环得到的,因此,单个节点的感知域(receptive field)相对于层数呈指数增长,单个节点的计算梯度成本很高。另外,GCN是对固定的图结构进行训练,缺乏归纳学习的能力。有以下几种改进的方法:
- 采样(Sampling):GraphSAGE将full graph Laplacian替换为可学习的聚合函数(aggregationfunction)。在学习到聚合函数和传播函数后,GraphSAGE能够对未⻅过的节点产生embedding。另外,GraphSAGE使用邻居节点采样(neighbor sampling)的方法来缓和感受野扩展的扩展速度。
- 感受野控制(Receptive Field Control)
- 数据增强(Data Augmentation):论文考虑到GCN需要许多额外的标签数据集用于验证,以及卷积核局部化问题,为了解决这些问题,这篇论文提出Co-Training GCN和Self-Training GCN来扩充训练数据集。
- 无监督训练(Unsupervised Training)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)