# 1812.08434_GNNs: Graph Neural Networks: A Review of Methods and Applications * * PDF: * 引用: 8027(2025-08-03) * 组织: * Tsinghua University * Beijing University of Posts and Telecommunications * Tencent Incorporation ## 论文解读 ### 背景 * 图神经网络(GNN)作为处理图结构数据的有效工具,近年来在多个领域取得了显著进展,推动了机器学习和深度学习的研究。 * 对相关研究工作的简述及评价: * 现有的GNN方法多样,涵盖了不同的架构和算法,适用于多种应用场景。 * 许多研究集中在GNN的理论基础和模型优化上,但对其实际应用的系统性总结较少。 * 现有文献在GNN的可解释性和泛化能力方面仍存在不足,亟需进一步探索。 * 本文创新动机:旨在系统性地回顾GNN的研究进展,分析其方法与应用,识别当前的挑战与未来的研究方向,以促进该领域的进一步发展。 ### 方法 作者提出了一系列图神经网络(GNN)的方法。以下是对方法章节的凝练概括: * 方法概述 * 本文主要探讨了图神经网络的基本概念、定义及其发展过程,并提出了一些关键方法。 * GNN的核心思想是通过节点的邻域信息进行特征学习,以捕捉图结构数据中的关系。 * 关键概念与定义 * 图(Graph):由节点(Vertices)和边(Edges)组成的结构,用于表示实体及其关系。 * 节点特征(Node Features):每个节点的属性信息,通常以向量形式表示。 * 邻域聚合(Neighborhood Aggregation):通过聚合邻居节点的信息来更新节点特征的过程。 * 方法步骤 * 初始化节点特征:为每个节点分配初始特征向量。 * 邻域信息聚合: * 对于每个节点,收集其邻居节点的特征。 * 使用聚合函数(如求和、平均或最大值)整合邻居特征。 * 特征更新: * 通过神经网络(如全连接层)将聚合后的特征与节点自身特征结合,生成新的节点特征。 * 多层堆叠: * 重复步骤2和3,形成多层GNN结构,以捕捉更深层次的图结构信息。 * 输出层: * 根据任务需求(如节点分类、图分类等)设计输出层,进行最终预测。 * 通过以上步骤,GNN能够有效地学习图数据中的复杂关系,并在多个应用领域中展现出优越的性能。 ## 结论 * 论文贡献点 * 方法综述: * 本文系统性地回顾了图神经网络(GNN)的各种方法,涵盖了不同的模型架构和算法,提供了对现有研究的全面理解。 * 应用领域: * 论文探讨了GNN在多个领域的应用,包括社交网络分析、推荐系统、药物发现等,展示了其广泛的适用性和潜力。 * 未来研究方向: * 提出了未来GNN研究的可能方向,强调了模型可解释性、计算效率和跨领域应用等重要问题。 * 论文局限性 * 方法更新速度: GNN领域发展迅速,本文可能未能涵盖最新的研究成果和技术进展。 * 应用案例的局限性: 尽管讨论了多个应用领域,但具体案例的深度分析可能不足,限制了对实际应用效果的全面评估。 * 理论与实践的结合: 论文在理论框架的构建上较为全面,但在如何将理论应用于实际问题上可能缺乏具体指导。 * 总结结论 * 本文对图神经网络的研究进行了全面的回顾,系统总结了其方法和应用,指出了该领域的研究现状和未来发展方向。 * 尽管存在一些局限性,如对最新研究的覆盖不足和应用案例的深度分析欠缺,但本文为研究人员和从业者提供了宝贵的参考资料,促进了对GNN的理解和应用。 * 未来的研究应关注模型的可解释性和效率,以推动GNN在更广泛领域的应用。 ## Abstract * 很多任务需要处理图数据,因为图能表示元素之间丰富的关系,比如模拟物理系统、分子分析、蛋白质预测和疾病分类等,都需要从图中学习。而在文本和图像这类非结构化数据中,也常常要先提取结构(如句法树、场景图)再进行推理,这也需要图推理模型。 * 图神经网络(GNN)就是一种通过节点之间的信息传递来建模图中依赖关系的神经网络。近年来,像图卷积网络(GCN)、图注意力网络(GAT)、图循环网络(GRN)等 GNN 的变体在很多任务中表现非常出色。 * 这篇综述提出了一个通用的 GNN 设计流程,讨论了每个组成部分的变体,对应用进行了系统分类,并指出了未来四个值得研究的开放问题。 ## 1. Introduction ![](https://img.zhaoweiguo.com/uPic/2025/08/vSn186.jpg) Fig. 1. Left: image in Euclidean space. Right: graph in non-Euclidean space. ### 简介 介绍了图结构数据、GNN 的发展背景、研究动机、模型种类、应用领域以及未来研究方向。 1. **图的定义与价值:** 图是一种非欧几里得数据结构,由节点(对象)和边(关系)组成,适用于社交网络、物理系统、蛋白质相互作用网络、知识图谱等各种领域。 2. **GNN 的发展动机:** * **早期尝试:** 90年代的递归神经网络(RNN)已尝试处理图,但受限于表达能力和扩展性。 * **深度学习推动:** CNN 在图像领域大放异彩后,研究者尝试将其原理推广到图结构中,这也促成了图深度学习(Geometric Deep Learning)的兴起。 * **图表示学习:** 通过学习节点/子图的低维向量表示(如 DeepWalk, node2vec),促进了无监督图学习的发展,但这些方法缺乏泛化能力。 3. **GNN 的优势:** GNN 能结合图结构信息,通过多层聚合邻居节点特征,有效地学习节点/图的表示,适用于节点分类、链接预测、图分类等任务。 4. **已有综述与本综述贡献:** * 其他综述聚焦于几何深度学习、图卷积、图自编码器、图注意力等方向。 * 本文则系统总结了不同图类型(异构图、动态图、组合优化图)上的 GNN 变体和应用场景。 * 同时提出了四个尚未解决的研究问题和未来发展方向。 * 简介2 * 图定义 * 图是一种数据结构,表示对象(节点)及其关系(边)。 * 图的机器学习分析受到关注,因其在社交科学、自然科学、知识图谱等领域的广泛应用。 * 图分析任务包括节点分类、链接预测和聚类。 * 发展动机 * 图神经网络(GNN)是基于深度学习的图分析方法,因其优越性能而被广泛应用。 * GNNs的起源与图神经网络的历史相关,90年代首次使用递归神经网络处理有向无环图。 * 随后引入递归神经网络和前馈神经网络以处理循环结构,但这些方法的局限在于状态转移系统的构建。 * 深度神经网络,尤其是卷积神经网络(CNNs)的进展,促使GNNs的重新发现,CNNs在提取多尺度局部特征方面表现出色。 * CNNs的关键在于局部连接、共享权重和多层结构,这些特性对图问题的解决也很重要。 * 然而,CNNs只能处理规则的欧几里得数据,难以直接应用于非欧几里得数据(如图)。 * 将深度学习扩展到非欧几里得领域的研究被称为几何深度学习,图上的深度学习受到广泛关注。 * 图表示学习通过低维向量表示图节点、边或子图,克服传统机器学习的手工特征限制。 * DeepWalk是首个基于表示学习的图嵌入方法,后续方法如node2vec、LINE和TADW也取得了突破,但存在参数共享不足和缺乏泛化能力的问题。 * 基于CNN和图嵌入的图神经网络(GNN)通过聚合图结构信息来建模输入/输出的依赖关系。 * 已有综述与本综述贡献: * 现有文献对GNN进行了多种综述,涵盖几何深度学习、图卷积网络及不同计算模块。 * 具体领域的综述包括对对抗学习、图注意力模型、异构图表示学习和动态图的研究。 * 本文贡献包括:详细回顾现有GNN模型,系统分类应用场景,提出未来研究的四个开放问题及方向。 * 后面章节说明 * 第2节介绍GNN设计流程,后续各节详细讨论模型变体。 * 第7节回顾GNN的理论与实证分析研究。 * 第8节介绍GNN在结构性、非结构性及其他场景的主要应用。 * 第9节提出四个GNN开放问题及未来研究方向。 * 第10节为总结部分。 ### 图的背景与重要性 #### 什么是图(Graph)? * 图是一种数据结构,由: * **节点(Node)**:表示实体,例如人、物品、网页等。 * **边(Edge)**:表示实体之间的关系,例如朋友关系、超链接等。 #### 为什么图重要? * 图能表示**非欧几里得结构**(即数据不在规则网格中,如图像是规则的像素网格),更符合现实世界中复杂结构的建模。 * 应用广泛: * 社会网络(如 Facebook) * 自然科学(如分子结构、物理系统) * 生物学(如蛋白质互作网络) * 知识图谱 * 推荐系统、交通网络等 ### GNN的起源与两大动机 图神经网络(GNN)是在图结构上进行学习的深度学习模型,其发展主要源于两个动机: #### ✴️ 动机一:从传统图神经网络到现代GNN * **1990年代初期:** * 使用递归神经网络(Recursive NN)来处理**有向无环图(DAG)** * 后来引入 RNN 和前馈网络(Feedforward NN)来处理有环图(图中有回路) * 但这些方法本质上是构建**状态转换系统**,反复迭代直到收敛,效率低且不易扩展 * **CNN的启发:** * CNN(卷积神经网络)能有效提取图像局部特征 * 核心思想:**局部连接、权重共享、多层结构** * 但 CNN 只能处理**欧几里得数据**(如 1D文本、2D图像),无法直接处理图结构 * **挑战:**如何定义在图上的“卷积”和“池化”操作? * 这引发了 **几何深度学习(Geometric Deep Learning)** 的发展,尝试将 CNN 原理推广到图结构上 #### ✴️ 动机二:图表示学习(Graph Representation Learning) * **图表示学习目标:** * 把图中的节点、边或子图,转换为**低维向量(Embedding)**,用于分类、预测等任务 * **传统方法的问题:** * 依赖手工特征设计(如度数、聚类系数),灵活性差、代价高 * **新方法:** * 借鉴 Word2Vec(Mikolov, 2013)提出的“SkipGram”模型: * **DeepWalk (2014):** 将随机游走(模拟节点访问序列)与词向量训练结合 * **node2vec、LINE、TADW 等:** 在 DeepWalk 基础上改进 * **这些方法的局限性:** 1. **参数无法共享:**每个节点都有独立的参数,导致内存和计算成本高 2. **泛化能力差:**无法适应动态变化的图,也不能泛化到新图结构 ### GNN 的核心思想 为解决上述问题,研究者提出了 GNN,它: * 将图结构与节点特征结合 * **聚合邻居信息(message passing)**,逐层更新节点表示 * 能够进行端到端训练,支持图分类、节点分类、链路预测等任务 ### GNN研究与应用综述 #### ✅ 1. GNN 模型发展 * 回顾了 GNN 的基本设计流程 * 讨论了各个模块的变体(如聚合函数、更新函数、跳连接等) * 总结了 GNN 的理论分析与实证研究成果 #### ✅ 2. 应用领域系统分类 * 将 GNN 应用分为两类: * **结构化场景(如社交网络、交通网络)** * **非结构化场景(如图文联合分析)** * 总结了每类场景下的主流方法和代表性成果 #### ✅ 3. 特殊图类型的GNN模型 * **异构图(Heterogeneous Graph):** 节点/边有不同类型 * **动态图(Dynamic Graph):** 图结构随时间变化 * **组合优化图:** 用于解决复杂的图优化问题,如路径规划、图着色等 #### ✅ 4. 开放研究问题(4个方向): * 本文还提出了未来研究的四大挑战,并提供初步分析和建议(具体在后文) ### 其他相关综述参考 * **几何深度学习综述:** Bronstein et al.(2017) * **图卷积网络综述:** Zhang et al.(2019) * **图注意力模型:** Lee et al.(2018) * **对抗学习在图上的应用:** Sun et al.(2018) * **异构图学习、动态图学习、图优化学习等方向综述** ### 总结 本文是一篇非常系统的图神经网络综述,主要贡献包括: 1. **系统梳理** GNN 的发展与各类模型设计 2. **分类整理** GNN 在不同类型图与场景下的应用 3. **分析挑战** 并提出未来研究方向 4. 为研究者提供了理论、方法和应用的全面参考 ## 2. General design pipeline of GNNs ![](https://img.zhaoweiguo.com/uPic/2025/08/Y74bCr.jpg) Table 1. Notations used in this paper. ### GNN模型的设计流程 * 包括四个步骤: * 寻找图结构 * 指定图类型和规模 * 设计损失函数 * 使用计算模块构建模型 * 图表示学习中,图记作G=(V,E),其中 * N=|V|为节点数 * |E|为边数 * 使用h_v和o_v表示节点v的隐藏状态和输出向量。 * 后续章节将详细讨论每个设计步骤的具体内容。 ### 2.1. Find graph structure * 应用中的图结构分为结构性和非结构性两种场景。 * 结构性场景中,图结构是显式的,如分子、物理系统和知识图谱。 * 非结构性场景中,图结构隐式,需要根据任务构建图,如文本的全连接“词”图或图像的场景图。 * 构建图后,后续设计过程旨在找到适合该特定图的最佳GNN模型。 ### 2.2. Specify graph type and scale * 图的类型分类: * 有向/无向图:有向图提供更多信息;无向图可视为两个有向边。 * 同质/异质图:同质图节点和边类型相同,异质图则不同,类型在异质图中重要。 * 静态/动态图:动态图的特征或拓扑随时间变化,时间信息需考虑。 * 图的规模: * “小”与“大”图没有明确界定,随计算设备发展而变化。 * 当图的邻接矩阵或图拉普拉斯矩阵无法存储时,视为大规模图,需考虑采样方法。 ### 2.3. Design loss function * 图学习任务分为三类: * 节点级(节点分类、回归、聚类)、 * 边级(边分类、链接预测)、 * 图级(图分类、回归、匹配)。 * 训练设置分为三种: * 监督(提供标签)、 * 半监督(少量标签与大量无标签)、 * 无监督(仅无标签数据)。 * 半监督任务中,测试阶段分为 * 传导(预测给定无标签节点) * 归纳(推断新无标签节点)。 * 针对不同任务类型和训练设置,可以设计特定的损失函数,例如节点级半监督分类任务可用交叉熵损失。 ### 2.4. Build model using computational modules * 构建GNN模型时常用的计算模块包括: * 传播模块 * 通过卷积和递归操作聚合邻居信息,使用跳跃连接缓解过平滑问题。 * 采样模块 * 在大图上进行信息传播,通常与传播模块结合使用。 * 池化模块 * 用于提取高层次子图或图的表示。 * GNN模型通常通过组合这些模块构建,典型架构包括卷积、递归、采样和池化模块。 * 其他模块 * 可以组合这些模块构建层叠式结构的 GNN 模型。 * 也存在连续时间的特殊结构(如 NDCN)。 * NDCN模型结合常微分方程和GNN,形成连续时间GNN模型。 * 文档后续部分将介绍计算模块实例、不同图类型和规模的变体、不同训练设置的变体,以及具体设计示例。 ![](https://img.zhaoweiguo.com/uPic/2025/08/SzZgXW.jpg) Fig.2 The general design pipeline for a GNN model. ## 3. Instantiations of computational modules ![](https://img.zhaoweiguo.com/uPic/2025/08/T0W9by.jpg) Fig.3 An overview of computational modules. ### 小结 * 介绍三种计算模块:传播模块、采样模块和池化模块。 * 传播模块的三个子组件:卷积算子(3.1节)、递归算子(3.2节)、跳跃连接(3.3节)。 * 采样模块(3.4节)和池化模块(3.5节)的介绍。 * 图3展示了计算模块的概述。 ### 3.1 Propagation modules - convolution operator * 小结 * 卷积算子是GNN模型中常用的传播算子。 * 卷积算子的主要思想是将卷积从其他领域推广到图领域。 * 相关进展通常分为谱方法和空间方法。 * 图神经网络(GNN)的核心是将卷积操作从图像等欧几里得空间推广到图这种非欧几里得结构上。 * 方法主要分为三类: #### 3.1.1. Spectral approaches(频谱方法) * 小结 * 光谱方法基于图信号处理,通过图傅里叶变换将图信号转换到光谱域进行卷积操作,再通过逆变换回到原域。 * 归一化图拉普拉斯算子L可分解为L = UΛU^T,其中U为特征向量矩阵,Λ为特征值对角矩阵。 * 卷积操作在光谱域定义为g * x = U(g^(-1)g)(U^T x),其中UT g为光谱域滤波器。 * 光谱网络使用可学习的对角矩阵作为滤波器,但计算效率低且滤波器不具空间局部性。 * ChebNet通过切比雪夫多项式近似滤波器,提出了基于此理论的操作。 * Chebyshev多项式用于K-localized卷积,Defferrard等人提出的卷积神经网络避免计算拉普拉斯特征向量。 * GCN(Kipf和Welling,2017)简化卷积操作,假设λ_max为2,使用参数约束以减轻过拟合问题,并引入重归一化技巧解决梯度消失/爆炸问题。 * AGCN(Li等,2018a)学习隐含关系,通过添加残差图拉普拉斯提高效果。 * DGCN(Zhuang和Ma,2018)同时考虑局部和全局一致性,使用PPMI矩阵替代邻接矩阵。 * GWNN(Xu等,2019a)用图小波变换替代图傅里叶变换,具有快速、稀疏和可解释性,表现优于多种谱方法。 * 以上谱方法理论基础扎实,但学习的滤波器依赖于图结构,限制了其在不同结构图上的应用,仅适用于图任务的“传导”设置。 基于图傅里叶变换(Graph Fourier Transform): * **基本原理**:把图上的信号变换到频谱域,在频域做卷积,再变换回来。 * **关键公式**: * 傅里叶变换:F(x) = Uᵗx;逆变换:Ux * 卷积操作:g⋆x = U g_w Uᵗ x(g_w 是学习到的频域滤波器) * 代表方法: * **Spectral Network**:早期方法,计算量大、不具备局部性。 * **ChebNet**:用切比雪夫多项式近似滤波器,支持K阶局部性,避免计算特征分解。 * **GCN**:简化ChebNet,仅用1阶近邻,提出归一化技巧,具有代表性。 * **AGCN / DGCN**:在GCN基础上增强图结构表达能力。 * **GWNN**:用图小波替代傅里叶变换,更稀疏和局部化。 ❗缺点:这些方法都依赖图结构,无法泛化到新图(只能用于transductive任务)。 #### 3.1.2. Basic spatial approaches(空间方法) * 小结 * 空间方法在图上直接定义卷积,面临不同邻域大小和局部不变性挑战。 * Neural FPs(Duvenaud et al., 2015)为不同度数的节点使用不同权重矩阵,但不适用于大规模图。 * DCNN(Atwood and Towsley, 2016)利用转移矩阵定义节点邻域,通过图扩散生成节点的扩散卷积表示。 * PATCHY-SAN(Niepert et al., 2016)为每个节点提取并标准化固定数量的邻域节点,作为传统卷积的感受野。 * LGCN(Gao et al., 2018a)使用CNN聚合器,通过最大池化获取邻域矩阵的特征元素。 * GraphSAGE(Hamilton et al., 2017a)通过采样和聚合局部邻域特征生成嵌入,提供均值、LSTM和池化三种聚合器。 直接在图结构上定义卷积操作: * **核心思想**:聚合每个节点的邻居信息,维持CNN的局部平移不变性。 * 代表方法: * **Neural FPs**:为不同度数的节点使用不同参数。 * **DCNN**:用图的扩散过程构造卷积。 * **PATCHY-SAN**:为每个节点选择固定数量的邻居,做类似CNN的处理。 * **LGCN**:利用局部最大池化与1D CNN。 * **GraphSAGE**:采样固定数量的邻居,设计多种聚合器(如mean, LSTM, pooling),可泛化到新图(inductive)。 #### 3.1.3. Attention-based spatial approaches(基于注意力的空间方法) * 小结 * 注意力机制在序列任务(如机器翻译、机器阅读)中表现出色,并已扩展到图结构的模型(如GAT、GaAN)。 * GAT(图注意力网络)通过自注意力策略计算节点的隐藏状态,利用多头注意力来稳定学习过程,具有并行计算、适应不同节点度数和易于处理归纳学习问题的优点。 * GaAN(门控注意力网络)也采用多头注意力机制,但用自注意力替代GAT的平均操作来整合信息。 通过注意力机制分配邻居不同权重,提高表达力: * 代表方法: * **GAT(Graph Attention Network)**: * 用注意力机制决定每个邻居对节点的影响权重。 * 支持多头注意力,稳定训练过程。 * **GaAN**:用门控机制在多个注意力头之间自适应组合结果。 #### 3.1.4. General frameworks for spatial approaches(空间方法的一般框架) * 小结 * 多种空间方法的整合框架被提出,包括: * MoNet(Monti et al., 2017):统一非欧几里得域的模型,如CNN和GNN。 * MPNN(Gilmer et al., 2017):通过消息传递函数统一多种变体。 * NLNN(Wang et al., 2018a):统一多种自注意力方法。 * GN(Battaglia et al., 2018):提供节点、边和图级表示学习的通用框架。 * MoNet的定义: * 将图的每个顶点视为伪坐标系的原点,邻居与伪坐标关联。 * MoNet的卷积算子通过特定函数定义,能够涵盖GCNN、ACNN、GCN和DCNN等实例。 * MoNet通过伪坐标为邻居分配权重,能够实例化多种方法,包括GCN,参数可学习。 * MPNN包含消息传递和读出两个阶段,使用消息函数M和更新函数U来聚合邻居信息和更新隐藏状态。 * NLNN扩展了经典的非局部均值操作,通过加权和计算隐藏状态,统一了多种自注意力方法。 * 图网络(GN)是一个更通用的框架,学习节点、边和图的表示,能够统一多种模型,如MPNN、NLNN等。核心计算单元为GN块,定义了更新和聚合函数。 为了统一和扩展不同的空间方法,提出了更通用的架构: * **MoNet**:使用伪坐标系表示邻居,包含CNN、GCN等特例。 * **MPNN**:通过消息传递 + 状态更新的方式抽象各种方法。 * **NLNN**:非局部神经网络,借鉴图像中的非局部均值思想,广义“自注意力”模型。 * **Graph Network (GN)**:最通用的框架,支持节点、边、全图三个层级的表示学习。 ### 3.2. Propagation modules - recurrent operator * 定义-recurrent operator * 图神经网络(GNN)发展最早的一类方法。 * 其特点是: * 每层使用相同的权重(即“权重共享”),不同于卷积方法的“层层独立权重”; * 每个节点的状态(向量)通过邻居节点的信息来更新; * 最终的目标是找到所有节点状态的“收敛解”。 * 小结 * 循环方法在该研究领域中处于先锋地位,循环算子与卷积算子的主要区别在于权重的共享。 * 早期的递归神经网络方法主要处理有向无环图(DAG)。 * 图神经网络(GNN)首次提出于2005年和2009年,扩展了现有神经网络以处理更多类型的图。 * 本文将模型称为GNN,以区别于一般名称。 * 介绍GNN及其后续变体,强调隐藏状态的收敛性。 * 讨论基于门控机制的方法。 #### 3.2.1. Convergence-based methods(基于收敛的方法) 这类方法使用固定点迭代来不断更新节点的表示,直到收敛为止: * **GNN(Scarselli et al., 2009)**:通过不断迭代函数 $H_{t+1} = F(H_t, X)$ 达到稳定状态, * 但缺点是: * 更新慢; * 对节点区分能力弱(平滑); * 要求函数是“收缩映射”,限制了模型表达能力。 * 一些改进方法: * **GraphESN**:引入回声状态网络思想,仅训练输出部分,更高效; * **SSE**:加入投影约束,使状态更容易达到稳态; * **LP-GNN**:将更新过程转化为优化约束问题,避免显式迭代。 * 小结 * GNN通过学习节点的状态嵌入h_v来捕捉节点及其邻域的信息,输出o_v用于预测节点标签。 * 状态嵌入的计算依赖于局部转移函数f和局部输出函数g,均可视为前馈神经网络。 * 通过全局转移函数F和全局输出函数G,GNN采用迭代方案H^{+1} = F(H, X)来更新状态,确保收敛。 * GNN的局限性包括:需要f为收缩映射,迭代更新效率低,固定点表示不够区分节点。 * GraphESN通过固定的收缩编码函数和训练读取函数,提高了效率。 * SSE通过参数化操作更新节点嵌入,并投影到稳态约束空间,提升GNN效率。 * LP-GNN将学习任务形式化为约束优化问题,避免了固定点的迭代计算。 #### 3.2.2. Gate-based methods(基于门的方法) 为解决收敛式方法的效率和表达能力问题,引入了**GRU**或**LSTM**结构,不再追求收敛,而是进行固定步数的传播: * **GGNN(Li et al., 2016)**: * 用 GRU 替代普通更新函数; * 消除了“收缩映射”的限制; * 使用 BPTT(时间反向传播)进行训练; * 节点通过 GRU 接收邻居信息后更新自身状态。 * **Tree-LSTM(Tai et al., 2015)**: * 把 LSTM 拓展到树结构; * 有两种:Child-Sum 和 N-ary; * 每个子节点有独立的遗忘门,更细致控制信息流。 * **Graph LSTM**: * 把 Tree-LSTM 进一步拓展到一般图结构; * 节点可以有多个不同类型的边,边的种类对应不同权重。 * **S-LSTM**: * 用图结构表示句子; * 在自然语言处理任务中效果很好。 * 小结 * 多个研究尝试在图神经网络(GNN)的传播步骤中使用门控机制(如GRU和LSTM),以减少计算限制并改善信息的长期传播。 * GGNN(Li et al., 2016)通过引入GRU在传播步骤中,解除GNN对收缩映射的要求,并使用时间反向传播(BPTT)计算梯度。 * GGNN的计算步骤包括:节点v从邻居聚合消息,GRU更新函数结合邻居信息和上一个时间步的信息更新节点的隐藏状态。 * LSTM也以类似方式在树或图的传播过程中使用。 * Tree LSTM: * Tai et al. (2015) 提出了 Child-Sum Tree-LSTM 和 N-ary Tree-LSTM,扩展了基本 LSTM 结构,允许每个节点从其子节点聚合信息。Child-Sum Tree-LSTM 使用单个遗忘门,而 N-ary Tree-LSTM 为每个子节点引入独立参数,适用于最多 K 个有序子节点的树。 * Graph LSTM: * Zayats 和 Ostendorf (2018) 将 N-ary Tree-LSTM 应用于图结构,简化为每个节点最多有 2 条入边。Peng et al. (2017) 针对关系提取任务提出了另一种 Graph LSTM,利用不同标签的边来使用不同的权重矩阵。 * Liang et al. (2016): 提出了用于语义对象解析的 Graph LSTM,采用自适应选择起始节点和节点更新顺序的方案,具有特定的更新顺序。 * S-LSTM: Zhang et al. (2018d) 提出的 Sentence LSTM (S-LSTM) 将文本转换为图,利用 Graph LSTM 学习表示,在多个 NLP 问题中表现出强大的表示能力。 #### 总结: * **收敛式方法**重视数学稳定性,但效率和表达力有限; * **门控方法**借助 RNN 技术(如 GRU/LSTM)提升效率和灵活性,是目前更常用的策略。 ### 3.3. Propagation modules - skip connection GNN 堆叠多层可以让节点获取更远邻居的信息,但层数太多可能导致性能下降,原因包括: * **噪声传播增加**(远邻信息不一定有用) * **过平滑(over-smoothing)**:不同节点最终表示趋于一致,失去区分度。 为了解决这个问题,引入了**跳跃连接(Skip Connection)**,主要有三种方法: 1. **Highway GCN**:每层通过门控机制决定保留多少输入和新信息,防止信息丢失。 2. **Jumping Knowledge Network (JKN)**:最后一层可以“跳跃”选取任意一层的表示进行组合,适应每个节点最优的信息范围。 3. **DeepGCNs**:借鉴 ResNet 和 DenseNet,通过残差连接和密集连接让模型更深、更稳定,避免梯度消失和过平滑。 * 小结 * 深层图神经网络(GNN)在节点聚合时可能引入噪声,导致性能下降和过平滑问题。 * 为解决这些问题,提出了“跳跃连接”方法,以下是三种实例: * Highway GCN:使用层级门控机制,输出与输入相加,性能在4层时达到峰值。 * JKN:跳跃知识网络,选择中间层的表示以适应每个节点的有效邻域大小,结合多种聚合方法表现良好。 * DeepGCNs:借鉴ResNet和DenseNet,采用残差和密集连接,解决梯度消失和过平滑问题,56层模型在点云语义分割任务中表现最佳。 ### 3.4. Sampling modules GNN 层数增加会导致邻居节点指数级增长(邻居爆炸),计算开销大。因此需要**采样策略**,主要有三种: 1. **节点采样(Node Sampling)**: * 例如 GraphSAGE 只从每个节点的邻居中采样一部分; * PinSage 使用随机游走后选择访问次数多的邻居; * 有些方法使用历史表示来减少方差。 2. **层采样(Layer Sampling)**: * FastGCN 每层采样部分节点进行传播; * LADIES 和其他方法使用训练的采样器,更智能地选择节点。 3. **子图采样(Subgraph Sampling)**: * ClusterGCN、GraphSAINT 直接对整个图做划分,生成多个子图,在子图上独立训练。 ### 3.5. Pooling modules * 小结 * 卷积层后通常跟随池化层,以提取更一般的特征。 * 复杂的大规模图具有重要的层次结构,适用于节点级和图级分类任务。 * 许多研究致力于设计图的层次池化层。 * 介绍两种池化模块:直接池化模块和层次池化模块。 * 3.5.1. Direct pooling modules * 直接池化模块通过不同的节点选择策略直接学习图级表示,也称为读出函数。 * 简单节点池化方法使用节点特征的最大/平均/求和/注意力操作获取全局图表示。 * Set2set方法使用LSTM生成无序集合的顺序不变表示。 * SortPooling首先根据节点的结构角色对节点嵌入进行排序,然后将排序后的嵌入输入CNN以获取表示。 * 3.5.2. Hierarchical pooling modules * 现有方法主要从节点学习图表示,未考虑图的层次结构。 * 图粗化方法:早期基于谱聚类,但效率低;Graclus提供更快的节点聚类,应用于池化模块(如ChebNet和MoNet)。 * ECC:边条件卷积,通过拉普拉斯最大特征向量的符号分割图进行递归下采样。 * DiffPool:使用可学习的层次聚类模块,通过训练分配矩阵S_t进行节点分配。 * gPool:通过投影向量学习节点得分,选择前k个节点,存储复杂度低,但未考虑图结构。 * EigenPooling:结合节点特征和局部结构,使用局部图傅里叶变换,但图特征分解效率低。 * SAGPool:基于自注意力的方法,合理的时间和空间复杂度,结合特征和拓扑学习图表示。 类似于图像中的池化层,GNN 也需要将节点信息整合成图级别表示,主要有两类方法: 1. **直接池化(Direct Pooling)**: * 简单方式如 max/mean/sum pooling; * Set2Set 使用 LSTM 汇总节点; * SortPooling 先排序再用 CNN 聚合。 2. **层次池化(Hierarchical Pooling)**: * Graph Coarsening:用图聚类方法(如 Graclus)合并节点; * DiffPool:每层学习一个分配矩阵,把节点聚成更粗的节点; * gPool:用投影向量选出 top-k 节点; * EigenPooling:用图傅里叶变换提取结构信息; * SAGPool:结合节点特征和结构,用自注意力选择重要节点。 ## 4. Variants considering graph type and scale(不同图类型与规模的GNN变体) 在前面讨论的基础上,这部分重点探讨了:现实世界中复杂图结构的建模方法,包括有向图、异构图、动态图、超图、签名图(Signed Graph)以及大规模图的处理方法。 ![](https://img.zhaoweiguo.com/uPic/2025/08/bEN2Mk.jpg) Fig. 4. An overview of variants considering graph type and scale. ### **4.1 有向图(Directed Graphs)** **特点:** * 有向图的边是有方向的,例如 A → B 表示信息从A指向B。 * 边的方向常常带有语义,比如“父类 → 子类”。 **挑战:** * 无法像无向图一样简单共享权重,因为方向性带来了不同的传播路径。 **解决方案:** * 使用不同的卷积权重矩阵: * `DGP (Kampffmeyer et al., 2019)` 中,使用两个不同的权重矩阵 `Wp` 和 `Wc`,分别处理正向传播和反向传播。 ### **4.2 异构图(Heterogeneous Graphs)** **定义:** * 节点和边有多种类型,包含多模态信息。 例如在学术网络中: * 节点:作者、论文、会议。 * 边:作者写论文、论文被会议接收等。 #### **4.2.1 基于元路径的方法(Meta-path-based methods)** **元路径:** * 一种预定义的类型路径结构,例如“作者 → 写作 → 论文 → 发表 → 会议”。 **代表方法:** * **HAN (2019)**:对每条元路径分别使用注意力机制聚合邻居信息,再通过语义注意力融合多条路径。 * **MAGNN**:不只考虑路径两端节点,还建模路径中间节点的信息,增强语义建模。 * **GTN**:自动学习不同类型之间的连接组合,生成“可学习的元路径”。 #### **4.2.2 基于边的方法(Edge-based methods)** **思路:** 直接对不同类型的邻居和边分别处理,无需定义元路径。 **代表方法:** * **HetGNN**:不同类型的邻居使用不同的编码方式。 * **HGT (Heterogeneous Graph Transformer)**: * 将一个三元组 `<节点类型、边类型、目标节点类型>` 定义为 meta-relation。 * 每种meta-relation使用不同的注意力矩阵建模,增强对异构图的建模能力。 #### **4.2.3 关系图方法(Relational Graphs)** **特点:** * 每条边都有具体的关系类型,比如“出生于”、“属于”等。 * 关系类型非常多时,元路径方法难以使用。 **代表方法:** * **R-GCN (Relational GCN)**: * 每种关系类型有一个传播权重矩阵。 * 为避免参数过多,引入: * **Basis分解**:少量基础变换矩阵组合出所有关系权重。 * **Block-diagonal分解**:参数更高但结构更细。 * **G2S**: * 将每条边转换成一个“边节点”,构成一个二分图。 * 使用 Gated GNN + RNN,把图信息转换成句子表示。 #### **4.2.4 多路图(Multiplex Graphs)** **特点:** * 一个节点对可能存在多条不同类型的边,例如 YouTube 用户之间有“关注”“评论”“分享”等多种关系。 **挑战:** * 各层之间的信息是相关联的,不应完全独立建模。 **代表方法:** * **mGCN**: * 为每种关系构建一层图。 * 每层学习“维度特定表示”,由通用表示投影得到。 * 然后汇聚这些维度特定表示生成新的通用表示。 ### **4.3 动态图(Dynamic Graphs)** **定义:** * 图结构会随时间变化,节点/边可能增加或消失。 **建模方式主要有两类:** * **时空分开建模(spatial→temporal)** * 先用 GNN 提取空间信息(邻居结构),再用 RNN 建模时间序列。 * **代表方法:** * **DCRNN**、**STGCN**:结合 GNN + Seq2Seq。 * **时空联合建模** * 将时间建成图中的一部分结构,直接做联合传播。 * **代表方法:** * **Structural-RNN**、**ST-GCN**:把静态图扩展为时空图。 * **DGNN**:每个节点使用共享的 LSTM 进行时间建模。 * **EvolveGCN**: * 提出:节点集变化大时,不适合建模节点表示。 * 创新:将 GCN 的参数(如权重矩阵)作为 RNN 的输入建模。 ### **4.4 其他图类型** #### **4.4.1 超图(Hypergraphs)** **定义:** * 一条边可以连接多个节点。 **代表方法:** * **HGNN**:定义超图卷积操作,建模高阶节点交互。 * 卷积公式中用到了超图拉普拉斯的近似计算。 #### **4.4.2 有符号图(Signed Graphs)** **定义:** * 边可为正(朋友)或负(敌人)。 **代表方法:** * **SGCN**: * 使用**平衡理论**:朋友的朋友是朋友,敌人的敌人也是朋友。 * 这种理论支持模型处理正负边之间的交互逻辑。 ### **4.5 大规模图(Large Graphs)** **问题:** * 图太大,无法一次性加载、计算所有节点邻居信息。 * 面临“邻居爆炸”问题。 **常见方法:** * **1)采样法** * 如 GraphSAGE、FastGCN:每次采样一部分邻居进行训练。 * **2)近似传播法** * **PageRank思想**: * 通过近似 Personalized PageRank,跳过多层传播。 * 示例:APPNP、GraphSAINT。 * **3)预计算图卷积滤波器** * 如 **Rossi 等人方法**:预先生成不同尺寸的卷积核,提高训练效率。 ### ✅ 总结表 | 图类型 | 代表模型 | 关键方法 | | ---- | ---------------- | -------------- | | 有向图 | DGP | 区分正向/反向卷积 | | 异构图 | HAN, MAGNN, HGT | 元路径/边类型建模 | | 关系图 | R-GCN, G2S | 关系类型+参数压缩 | | 多路图 | mGCN | 多层图、跨维度聚合 | | 动态图 | STGCN, EvolveGCN | GNN+RNN或结构联合建模 | | 超图 | HGNN | 超边建模高阶关系 | | 有符号图 | SGCN | 正负边+平衡理论 | | 大规模图 | GraphSAGE, APPNP | 采样/近似传播/预计算 | ## 5. Variants for different training settings ![](https://img.zhaoweiguo.com/uPic/2025/08/wXjMAa.jpg) Fig.5 An overview of methods with unsupervised loss. * **监督/半监督学习**:有标签,损失函数好设计。 * **无监督学习**:没有标签,只能用图的结构或特征来设计损失函数。 本节主要讲 **无监督训练的两种方法**: ### 🧠 5.1 图自编码器(Graph Auto-Encoders, GAE) * 核心思想:先用 GCN 编码节点,再尝试**重建图结构(邻接矩阵)或特征矩阵**,从重建误差中学习表示。 * 常见变体: * **GAE**:用 GCN 编码,用节点间相似性重建邻接矩阵。 * **VGAE**:GAE 的变种,引入变分推断(加入概率分布)。 * **ARGA**:加入 GAN(生成对抗网络)让表示更鲁棒。 * **MGAE**:用去噪自编码器重建特征矩阵。 * **GALA**:提出拉普拉斯“锐化”机制,缓解过平滑问题。 * **AGE**:不再重建图,而是学习节点对相似度,效果更好。 ### 🧲 5.2 对比学习(Contrastive Learning) * 核心思想:不重建图,而是**最大化图不同部分之间的相似性**(互信息)。 * 常见方法: * **DGI**:最大化节点表示和整个图表示之间的互信息。 * **Infograph**:最大化图与其不同子结构(如节点、边、三角形)之间的互信息。 * **Multi-view**:用不同视角(如邻接矩阵 vs. 扩散图)生成表示,再进行对比。 ## 6. A design example of GNN 这段内容讲的是如何设计一个GNN(图神经网络)模型,以GPT-GNN为例,主要用于异构图的预训练任务。简要总结如下: 1. **确定图结构**: * 在学术知识图中,图的结构是现成的; * 在推荐系统中,把用户、物品、评论当作节点,交互关系当作边,图结构也容易构建。 2. **确定图类型和规模**: * 属于**异构图**,节点和边有多种类型,需要在模型中体现; * 数据规模大(百万级节点),模型需要**高效**处理。 3. **设计损失函数**: * 目标是学到**节点表示(embeddings)**; * 预训练阶段没有标签,采用**自监督生成任务**; * 微调阶段有标签,使用具体任务的**监督损失函数**。 4. **构建模型(模块化设计)**: * **传播模块**:用的是 HGT 算子,能处理异构图,并加入了跳跃连接; * **采样模块**:用的是 HGSampling,一种适用于异构图的高效采样方法; * **池化模块**:不需要,因为任务是节点级别的; * 多层堆叠 HGT 层,以学习更好的节点表示。 ## 7. Analyses of GNNs ### 7.1. Theoretical aspect #### 7.1.1 图信号处理(Graph Signal Processing) * 从频谱角度看,GNN 的卷积其实是**图拉普拉斯平滑(Laplacian smoothing)**,相当于低通滤波器,让邻居节点的特征更相似。 * 有些研究去掉了中间的权重和非线性层,只保留低通滤波,效果依然好。 * 后续研究提出了不同的图滤波器,如热核滤波(GraphHeat),进一步分析了GNN其实是**去噪过程**,并提出“过度平滑”的度量指标。 #### 7.1.2 泛化能力(Generalization) * 探讨了GNN的泛化能力,如VC维、Rademacher界等。 * 注意机制能帮助模型在大图或噪声图中泛化更好。 #### 7.1.3 表达能力(Expressivity) * 传统GNN的判别能力弱于图同构测试(WL测试)。 * GIN模型更强,但仍难以学习复杂图结构(如图的直径、环等)。 * 有研究探讨了**有限深度与宽度下**GNN的表达力,以及模型加深时的表现。 #### 7.1.4 不变性(Invariance) * 图没有节点顺序,GNN输出应对节点顺序“**不变**或**等变**”。 * 有研究用高阶张量化等方式构建完全不变的GNN。 #### 7.1.5 可迁移性(Transferability) * GNN的参数和具体图结构无关,有**跨图迁移能力**。 * 研究表明频谱图滤波器可在同域图间迁移;对图极限(graphon)也能保持性能。 #### 7.1.6 标签效率(Label Efficiency) * GNN通常需要大量标签。通过**主动学习**(选取高价值节点如高阶节点、不确定节点)可提高学习效率。 ### 7.2 Empirical aspect(实证分析) #### 7.2.1 评估(Evaluation) * 实验复现性差,模型性能和数据划分方式强相关。 * 一些简单模型在调参得当时能超过复杂模型。 * 对结构信息利用不足,层数和聚合函数设计等对性能影响大。 #### 7.2.2 基准(Benchmarks) * 图学习缺乏类似 ImageNet 的统一大型数据集。 * 大多数图数据集太小(几千节点),不反映真实世界。 * 新的中大型基准(如 OGB)正在提供更可靠评估标准和排行榜。 ## 8. Applications ![](https://img.zhaoweiguo.com/uPic/2025/08/Ol1pyh.jpg) Fig. 6. Application scenarios. (Icons made by Freepik from Flaticon) 图神经网络(GNN)被广泛应用在多种任务中,包括监督学习、半监督学习、无监督学习和强化学习。 主要分两类应用场景: 1. **结构化场景**:数据本身就有明确的关系结构,比如: * 科研领域:图挖掘、物理系统建模、化学系统建模; * 工业领域:知识图谱、交通网络、推荐系统。 2. **非结构化场景**:数据原本没有明显的关系结构,需要通过建模挖掘,比如: * 图像处理(计算机视觉); * 文本处理(自然语言处理)。 ![](https://img.zhaoweiguo.com/uPic/2025/08/0HiMHA.jpg) Table 3. Applications of graph neural networks. ### 8.1. Structural scenarios 在这类场景中,数据本身天然具有图结构(nodes + edges),例如社交网络、交通路网、分子结构等。图神经网络(GNN)可以有效建模这些数据中的结构关系,进而在多个任务中表现优异。 #### **8.1.1 图挖掘(Graph Mining)** ##### ✅ 图匹配(Graph Matching) * **目标**:判断两个图是否相似,或者找到它们之间的对齐关系。 * **挑战**:传统图匹配算法如图编辑距离计算复杂度高。 * **GNN方案**:Riba 等人提出基于 Siamese 网络结构的 MPNN(消息传递神经网络),用于学习两个图的嵌入表示,并优化它们之间的“编辑距离”相似度。 * **Siamese结构**:两个共享参数的MPNN并行处理两个图,输出向量距离代表图间差异。 ##### ✅ 图聚类(Graph Clustering) * **目标**:将图中的节点按结构或属性划分为群组。 * **传统方法**:先学习节点表示,再用 K-Means、谱聚类等算法聚类。 * **GNN方案**: * Graph Pooling(图池化):将节点表示聚合成子图/群体表示。 * Tsitsulin 等人提出优化“谱模块度”(spectral modularity)的方法,提高聚类质量。 #### **8.1.2 物理建模(Physics)** ##### ✅ 背景 * **系统建模**:物理系统可被视为一组物体(节点)和相互作用(边)。 * **任务**:预测下一状态、控制动作、物理规律模拟。 ##### ✅ 应用示例 * **NRI (Neural Relational Inference)**: * 输入粒子的运动轨迹,推断隐式交互图,再预测未来轨迹。 * **机器人建模**: * 将身体部位视为节点,关节视为边。 * Sanchez 等人使用 GNN 结合强化学习学习控制策略。 #### **8.1.3 化学与生物(Chemistry & Biology)** ##### ✅ 分子指纹(Molecular Fingerprints) * **传统方法**:用手工设计的一维向量描述化学结构。 * **GNN方法**: * Duvenaud 提出 Neural Fingerprint,利用 GCN 计算每一层的子结构特征并汇总。 * Kearnes 等人建模原子对间的边表示,更精细刻画化学键。 ##### ✅ 化学反应预测(Chemical Reaction Prediction) * **Do 等人提出**图转换策略网络(Graph Transformation Policy Network),预测反应过程中的中间结构。 ##### ✅ 蛋白质接口预测(Protein Interface Prediction) * **任务**:预测哪些氨基酸参与蛋白质间的结合。 * **方法**: * Fout 等人使用 GCN 融合两个蛋白质残基信息。 * MR-GNN 引入多尺度机制,提取局部和全局信息。 ##### ✅ 生物医学工程(Biomedical Engineering) * 用于乳腺癌亚型分类、副作用预测、蛋白质交互网络建模等。 #### **8.1.4 知识图谱(Knowledge Graphs)** ##### ✅ 任务 * 实体嵌入、关系建模、链接预测、多跳推理等。 * 知识图谱通常是异构图,但其“语义关系”更为关键。 ##### ✅ 方法 * **R-GCN**:对不同关系使用不同变换矩阵,提升嵌入表示的区分能力。 * **Structure-Aware CN**:结合 GCN 编码器和 CNN 解码器,增强知识表示。 * **OOKB 实体建模**:对于训练中未出现的实体,通过邻居信息聚合其表示。 * **跨语言对齐**:Wang 等使用 GCN 将多语言实体映射到统一空间。 #### **8.1.5 图生成模型(Graph Generative Models)** ##### ✅ 应用 * 社交图、分子结构、知识图谱等生成任务。 ##### ✅ 方法分类: 1. **基于路径/序列生成**: * **NetGAN**:通过随机游走路径训练 GAN。 * **GraphRNN**:按顺序生成邻接向量,实现图的构建。 * **GraphAF**:引入流模型和自回归机制,按步骤生成图结构。 2. **一次性生成整个图结构**: * **MolGAN**:生成邻接矩阵,使用对称性不变性判别器解决节点排列问题。 * **Graphite**:将 VAE 中的 latent 表示解码为图结构,融入 GNN。 #### **8.1.6 组合优化(Combinatorial Optimization)** ##### ✅ 问题类型 * TSP(旅行商问题)、MST(最小生成树)、SAT(可满足性问题)等 NP-hard 问题。 ##### ✅ 方法 * **Pointer Network + RL**(Bello等):早期使用序列方法解决图问题。 * **Graph Attention + RL/Q-Learning**:引入 GNN 提取图结构,提升策略学习。 * **NeuroSAT**:使用消息传递网络预测公式是否可满足。 * **Sato等的理论分析**:分析 GNN 模型的上限,证明大多数现有模型无法突破某个最优比。 #### **8.1.7 交通网络(Traffic Networks)** ##### ✅ 问题 * 实时交通预测需同时建模空间结构(道路网络)与时间动态。 ##### ✅ 方法 * **STGCN**:构建空间-时间卷积块,同时处理空间邻接和时间序列。 * **GNN + LSTM**:融合时间与图的特征。 * **Attention机制**:进一步加强动态建模能力。 #### **8.1.8 推荐系统(Recommendation Systems)** ##### ✅ 用户-物品图建模 * **GC-MC**:将用户-评分-物品建成图,用 GCN 学习表示。 * **PinSage**:为应对大规模图引入邻居采样机制。 ##### ✅ 社交推荐 * **GraphRec**:融合用户与物品图、用户社交图,提升推荐准确率。 * **双注意力机制**:同时建模相似性与影响力。 #### **8.1.9 其他场景(Others)** * **金融市场**:建模股票之间的依赖关系,预测走势或指数。 * **软件定义网络**:用于路由优化。 * **AMR图-文本生成**:把语义图转换为自然语言。 ### 8.2. Non-structural scenarios 虽然图神经网络(GNN)天然适用于结构化数据(如社交网络、知识图谱),但它也能处理图像、文本等**非结构化数据**。主要有两种方式: 1. **引入结构信息(外部或构造)**:从其他领域(如知识图谱、句法依存树)引入图结构。 2. **推理或构造任务图结构**:根据图像间相似性或词语之间的共现关系构造图。 #### 8.2.1 Image ##### 1. Few-shot / Zero-shot 图像分类 * **背景**:在训练集中,某些类别只有很少(N个)样本(Few-shot)甚至没有样本(Zero-shot)。 * **挑战**:CNN 只靠像素信息难以泛化到新类别。 ###### 方法1:知识图谱辅助分类 * **做法**:构建类别之间的关系图,如"狗"与"动物"相关联。 * **代表方法**: * Wang et al. (2018d): 用6层 GCN 编码知识图谱,分类器不仅基于图像特征,还用类别名称的词向量和类别关系进行推理。 * Kampffmeyer et al. (2019): 发现层数太多会导致“过平滑”,所以使用**单层 GCN**但引入更大的邻居范围(多跳节点)。 * Marino et al. (2017): 用物体检测结果生成子图,再用 GGNN 推理。 * Lee et al. (2018b): 明确三类关系:上下位(super-subordinate)、正相关、负相关,增强标签传播。 ###### 方法2:基于图像相似度构图 * Garcia & Bruna (2018): 图像之间通过相似性构图,进行**全连接图上的信息传播**,帮助识别新类。 ##### 2. 视觉推理(Visual Reasoning) * **任务例子**:视觉问答(VQA)、目标交互检测、区域分类等。 * **核心思想**:构建图结构来表示物体间的 **空间关系** 或 **语义关系** ###### 方法: * Teney et al. (2017): 构建**图像场景图**和**问题语法图**,用 GGNN 联合编码来回答问题。 * Norcliffe-Brown et al. (2018): 条件图(根据问题构建图结构)来动态调整推理路径。 * Wang et al. (2018c), Narasimhan et al. (2018): 使用知识图谱提高可解释性。 * 在目标检测、区域分类等任务中,RoI 特征通过 GNN 聚合。 ##### 3. 语义分割(Semantic Segmentation) * **挑战**:图像中物体形状不规则,传统 CNN 不擅长建模**非局部关系**。 ###### 方法: * Liang et al. (2016, 2017): 使用 Graph-LSTM 对超像素图建图,捕捉长程依赖。 * Qi et al. (2017b): 在 3D 点云上构建 KNN 图,使用 3D GNN 进行语义传播。 * Landrieu & Simonovsky (2018): 引入 **Superpoint Graph** 来处理大规模点云。 * Wang et al. (2018e): 通过边向量编码点之间关系,并聚合边信息更新节点表示。 #### 8.2.2 Text ##### 1. 文本分类(Text Classification) * **传统方法**:TF-IDF 或 bag-of-words 忽略了单词之间语义联系。 * **改进思路**:将文本表示为**单词图(Graph of Words)**,建模长距离词语间语义关系。 ###### 方法: * Peng et al. (2018): 构建 word graph,使用 Graph-CNN。 * Zhang et al. (2018d): 使用 Sentence LSTM 模型,将句子视为整体状态 + 各个词的子状态。 * Yao et al. (2019): 构建语料库图(word + doc为节点),提出 TextGCN。 * Tree-LSTM(Tai et al., 2015)也可用于情感分类。 ##### 2. 序列标注(Sequence Labeling) 任务如词性标注(POS-tagging)、命名实体识别(NER): ###### 方法: * Zhang et al. (2018d): Sentence LSTM 用于序列标注。 * Marcheggiani & Titov (2017): 提出 **Syntactic GCN**,在依存句法树上操作,引入边门控(edge-wise gates)控制信息流。 ##### 3. 神经机器翻译(Neural Machine Translation, NMT) * **标准方法**:Transformer 将词之间建成全连接图。 * **GNN增强方式**: * Bastings et al. (2017): 用 Syntactic GCN 融入语法依存图。 * Marcheggiani et al. (2018): 加入谓词-论元结构(语义角色),比较语法/语义信息。 * Beck et al. (2018): 用 GGNN 并将依存图转成 Levi 图(边转为新节点)。 ##### 4. 关系抽取(Relation Extraction) * **目标**:提取实体之间的语义关系。 ###### 方法: * Zhang et al. (2018f): 基于句法依存树扩展 GCN,使用剪枝策略提高效率。 * Peng et al. (2017): 对跨句子的 n元关系抽取,使用 Graph-LSTM。 * Song et al. (2018b): 使用 Graph-State LSTM 并实现并行计算加速。 ##### 5. 事件抽取(Event Extraction) * **目标**:检测事件触发词及其参数(argument)。 ###### 方法: * Nguyen & Grishman (2018): 基于依存树的 Syntactic GCN。 * Liu et al. (2018): 提出 JMEE 框架,引入句法捷径(shortcut arcs)提升信息流。 ##### 6. 事实验证(Fact Verification) * **目标**:聚合证据来验证给定陈述的真伪。 ###### 方法: * Zhou et al. (2019) - GEAR,Liu et al. (2020) - KGAT:构建 fully-connected 证据图进行推理。 * Zhong et al. (2020):基于语义角色标注构建内部句图。 ##### 7. 其他文本任务 * **问答、阅读理解**: * Song et al. (2018c), De Cao et al. (2019), Qiu et al. (2019), Tu et al. (2019), Ding et al. (2019) * **关系推理(Relational Reasoning)**: * Relational Network (Santoro et al., 2017) * Interaction Network (Battaglia et al., 2016) * Recurrent Relational Network (Palm et al., 2018) ## ✅ 总结表格(图像 vs 文本): | 类型 | 任务 | 结构构建方式 | GNN应用方式 | | -- | ----------- | ---------------- | ------------------- | | 图像 | Zero-shot分类 | 知识图谱 / 相似图 | GCN, GGNN | | 图像 | 视觉问答 | 物体关系图 / 问题图 | GGNN | | 图像 | 语义分割 | 超像素图 / KNN点云图 | Graph-LSTM, GCN | | 文本 | 文本分类 | word graph / 文档图 | Graph-CNN, TextGCN | | 文本 | 序列标注 | 依存树图 | Syntactic GCN | | 文本 | NMT | 依存/语义图 | Syntactic GCN, GGNN | | 文本 | 关系抽取 | 句法/语义依赖图 | Graph-LSTM, GCN | | 文本 | 事件抽取 | 句法图 | GCN, JMEE | | 文本 | 事实验证 | 证据图 | GEAR, KGAT | ## 9. Open problems 虽然图神经网络(GNN)取得了很大成功,但仍存在许多待解决的问题: 1. **鲁棒性(Robustness)**:GNN容易受到对抗攻击,攻击方式不仅修改节点特征,还可能破坏图结构。目前已有一些攻击与防御方法,但仍需更强的模型。 2. **可解释性(Interpretability)**:GNN像其他神经网络一样是黑箱模型,缺乏清晰解释。虽然有少量研究尝试提供个别案例的解释,但在真实应用中,提高可解释性仍是关键。 3. **图预训练(Graph Pretraining)**:标注数据稀缺且昂贵,自监督学习可以用未标注的数据进行预训练。虽然已经有些图预训练方法被提出,但任务设计、结构与特征的学习效果仍有待研究。 4. **复杂图结构(Complex Graph Structures)**:现实中的图通常很复杂,比如动态图、异构图等。随着社交网络等应用发展,GNN需要更强的能力来处理这些复杂情况。 ## 10. Conclusion 过去几年,图神经网络(GNN)在图相关的机器学习任务中变得非常强大和实用,这是因为模型表达能力、灵活性和训练算法的发展。 这篇综述做了如下工作: * 回顾了多种GNN模型,包括按计算模块、图类型和训练方式分类的变种; * 总结了一些通用框架和理论分析; * 将GNN应用分为结构化、非结构化和其他场景,并逐一详细介绍; * 提出了四个未来挑战:鲁棒性、可解释性、预训练和复杂结构建模。 ## Appendix A. Datasets ![](https://img.zhaoweiguo.com/uPic/2025/08/NDx1V3.jpg) Table A.4 Datasets commonly used in tasks related to graph. ![](https://img.zhaoweiguo.com/uPic/2025/08/Wa7vOX.jpg) Table A.5 Popular graph learning dataset collections.