1 GNN的设计pipeline
1.1 获取图结构
- 结构化场景
- 图结构在应用问题中是已知的
- 比如分子结构、物理系统
- 图结构在应用问题中是已知的
- 非结构化场景
- 图结构在应用问题中是未知的
- 需要根据任务人为地建图
- 图结构在应用问题中是未知的
1.2 判断图的类型 & 尺寸
- 图的类型
- 有向图/无向图//+
- 异构图/同构图
- 图中的点和边类型是不是一样的
- 静态图/动态图
- 如果输入特征/图的拓扑关系会随着时间变化,那么图是一个动态图
- 这类类型之间是正交的,也就是可以有各种类型的组合
- 尺寸
- 没有明确的规定大图和小图
- 评判标准会随着计算硬件设备的发展而变化
- 在这篇论文中,如果邻接矩阵/拉普拉斯矩阵(复杂度)无法被设备存储,那么我们认为这是一个大图
1.3设计损失函数
- 点级别的任务
- 点分类、点回归、点聚类等
- 边级别的任务
- 边分类、连边预测
- 图级别的任务
- 图分类、图回归
- 有监督图学习
- 提供供训练的标签数据
- 半监督学习
- 提供少量标记节点和大量未标记节点进行训练
- 测试阶段有两种配置:
- 传导设置:要求模型预测给定未标记节点的标签
- 归纳设置:提供相同分布下的新未标记节点进行推断
- 无监督学习
- 只提供未标记数据,供模型查找模式
1.4 创建模型
- 传播模块
- 在节点之间传播信息,以便聚合的信息可以捕获特征和拓扑信息
- 通常使用卷积运算符和循环运算符来从邻居中聚合信息
- skip-connection用于从节点的历史表示中收集信息并缓解过度平滑问题
- 采样模块
- graph很大的时候,通常需要采样模块来在图形上进行传播
- 池化模块
- 使用池化模块从节点中提取high-level信息
2 计算模组介绍
2.1 传播模块(卷积算子)
- 卷积算子是传播模块中最常使用的算子
- 将其他领域中的卷积计算推广到图领域中
- 可以分为:空域方法/谱域方法
2.1.1 谱域方法
- 基于图的谱域表征
- 在谱域方法中,首先利用图傅里叶转换F,将空域图信号x转换至谱域
- 然后使用谱域上的卷积
- 谱域卷积完成后,使用逆傅里叶转换将结果信号转换回去
- U是正则化拉普拉斯矩阵的特征向量组成的矩阵
- D是图的度矩阵,A是图的邻接矩阵
- 正则化拉普拉斯矩阵是一个对称半正定矩阵,所以他可以被分解成,其中是特征值组成的对角矩阵
- 在谱域方法中,首先利用图傅里叶转换F,将空域图信号x转换至谱域
- ——>图上的谱域卷积可以表示成
- 是谱域上的filter
- 可以使用一个可学习的对角矩阵gw来简化之
- 为什么可以用对角矩阵简化呢:
- 为什么可以用对角矩阵简化呢:
- 可以使用一个可学习的对角矩阵gw来简化之
- 是谱域上的filter
之后论文介绍了几种经典的谱域卷积方法,来研究不同的gw
Spectral Network(2014) |
|
ChebNet(2016) |
是L最大的特征值 中的特征值是[-1,1] 此时的参数是(切比雪夫多项式的参数) 切比雪夫多项式
|
GCN(2017) |
|
AGCN(2018) |
|
DGCN(2018) |
|
GWNN(2019) |
图小波神经网络(GWNN)(Xu等人,2019a)使用图小波变换来替代图傅里叶变换。它具有几个优点:(1)图小波可以快速获得,无需进行矩阵分解;(2)图小波是稀疏且局部化的,因此结果更好且更可解释。GWNN在半监督节点分类任务上优于几种频谱方法。 |
谱域卷积的一个问题:几乎所有上述提到的频谱方法中,所学习的滤波器依赖于图结构。换句话说,这些滤波器不能应用于具有不同结构的图。
2.1.2 基本空域方法
- 直接基于图的拓扑结构在图上定义卷积操作。
- 空域卷积的主要挑战是如何定义具有不同大小邻域的卷积操作,并保持卷积神经网络的局部不变性
Neural FPs(2015) | 给不同度的点不同的权重
缺点:不能应用到太大的图中 |
DCNN(2016) |
|
PATCHY-SAN(2016) |
|
GraphSAGE(2017) |
|
MPNN(2017) | (论文是划归到 空域方法的一般框架中),实际上还是空域卷积,但和之前和空域卷积的方法不同的是,这是一个通用框架
|
Graph Network | (论文是划归到 空域方法的一般框架中),实际上还是空域卷积,但和之前和空域卷积的方法不同的是,这是一个通用框架
|
2.1.3 基于attention的方法
- 基于attention的算子对权重施加不同的权重
- ——>减缓噪声,获得更好的结果
GAT(2018) | 在传播阶段使用attention机制 每一个点的hidden state可以表示成:
|
GaAN(2018) | 也使用了多头注意力机制。然而,它使用了自注意力机制来从不同的注意力头中收集信息,以替代GAT中的平均操作。 |
2.2 传播模块(recurrent 算子)
循环运算符和卷积运算符之间的主要区别在于,卷积运算符中的层使用不同的权重,而循环运算符中的层共享相同的权重。
2.2.1 基于收敛的模型
和MPNN这种很类似,也是先将自己、邻边、邻点的feature,和邻点的hidden state一起加总,然后送到输出去
令 H、O、X 和 XN 分别是由所有状态(点+边)、所有输出、所有特征和所有节点特征堆叠而成的矩阵。那么可以使用如下的紧凑形式表示基于收敛的模型:
如果堆叠几层这样的GNN-recurrent,会不断迭代(21)式,直至收敛(Banach不动点理论)
尽管实验证据表明GNN-recurrent是一种用于建模结构数据的强大架构,但仍存在一些限制:
- GNN-recurrent要求f是一个收缩映射,这限制了模型的能力。而且,迭代更新节点的隐藏状态直至达到稳定点的过程效率较低。
- 如果我们关注的是节点的表示而不是图的表示,使用稳定点是不合适的,因为稳定点中表示的分布在值上会更加平滑,对于区分每个节点的信息量较少。
2.2.2 基于门的方法
- 在propagation阶段使用类似于GRU或者LSTM的门机制来减少计算限制+提升图结构中信息的长距离传递
- 信息传递估计的轮数,不必要求收敛
2.3 基于skip-connection的传递模组
- 许多模型会堆叠图神经网络层,旨在通过增加更多层,使每个节点从k-hop邻居处聚合更多信息,以获得更好的结果。
- 然而,在许多实验证明,更深的模型并不能改善性能,甚至可能表现更差。
- 因为更多的层也会传播来自指数级增加的邻居成员的噪声信息。
- 还会导致过度平滑的问题,因为当模型变得更深时,节点在聚合操作后往往具有相似的表示。
- ——>很多模型尝试使用skip-connection的方法来解决这个问题
Highway GCN(2018) |
|
CLN(2017) | 也使用了highway network,但是不同的方法来计算门权重 |
JKN(2018) |
|
DeepGCN |
|
2.4 采样
- GNN模型通过从上一层的邻域中为每个节点聚合信息。
- 如果我们回溯多个GNN层,邻居的数量将随着深度呈指数级增长。
- 为了缓解这种“邻居爆炸”问题,一种高效而有效的方法是进行采样。
- 此外,当处理大型图时,我们不能始终存储和处理每个节点的所有邻域信息
- ——>因此需要采样模块来辅助进行信息传播。
2.4.1 点采样
- 减小邻居节点数量的一种直接方法是从每个节点的邻域中选择一个子集。
GraphSAGE(2017) | 采样固定数量的邻居,确保每个节点的邻域大小在2到50之间 |
PinSage(2018) |
|
2.4.2 层采样
层采样在每个层保留一小组节点进行邻居信息聚合。
FastGCN(2018) | 使用重要性采样,其中重要节点在每一层更有可能被采样到 |
Adaptive sampling towards fast graph representation learning.(2018) | 引入了一个参数化和可训练的采样器,用于在前一层的条件下进行逐层采样 |
2.4.3 子图采样
- 与在完整图上进行节点和边的采样不同,一种根本不同的方式是采样多个子图,并在这些子图中限制邻域搜索。
ClusterGCN(2019) | 通过图聚类算法对子图进行采样 |
GraphSAINT(2020) | 直接对节点或边进行采样以生成子图 |
2.5 池化模块
在一些模型中称为readout函数
简单点池化 | 对节点特征进行节点级的最大/平均/求和/注意力等操作,以获得全局图表示 |
Set2Set | 如MPNN中基于LSTM的Readout 操作 |
SortPooling(2018) |
|
层次池化 |
3 不同类型的图
3.1 有向图
- 有向边通常包含比无向边更多的信息。
- 可以通过在卷积操作中采用不对称的邻接矩阵来模拟边的正向和反向方向,而不仅仅是简单地采用一个不对称的邻接矩阵。
- DGP(2019)在正向和反向方向上使用两种权重矩阵Wp和Wc进行卷积操作。
3.2 异质图
- 图中的点/边是多模态/多类型的
- 在一个异质图中,每个点都有他的类别φ,每条边也有相应的类别ψ
3.2.1 基于元路径的方法
- 元路径确定了路径中每个位置上节点的类型
- 通过连接元路径实例的两个端点节点,元路径捕捉到了两个可能没有直接连接的节点之间的相似性
- ——>一个异构图可以被转化为多个同质图,然后可以应用图学习算法。
3.2.2 基于边的方法
在采样、聚合等方面针对不同类型的邻居和边使用不同的函数。
HetGNN( 2019) | 在采样、特征编码和聚合步骤中直接对不同类型的邻居进行区分处理 |
HGT( 2020) |
|
3.2.3 关系图问题
- 有些图的边可能包含的信息比类型更多,或者类型的数量过大
- ——>应用基于元路径或元关系的方法变得困难
- ——>我们将这种图称为关系图
3.2.4 多重图/多视图图 Multiplex graph
- 在更复杂的情况下,图中的一对节点可以与多种不同类型的边相关联
- 针对不同类型的边进行观察,图可以形成多个层次,其中每一层代表一种关系类型
- ——>边的类型不被假设为相互独立,因此简单地将图分割为只包含一种类型边的子图可能不是最优解
3.3 动态图
- 图中边/点的信息随时间不断变化
DCRNN(2018)、STGCN(2018) |
|
Structural-RNN(2016),ST-GCN(2018) |
|
DGNN(2020) |
|
EvolveGCN(2020) |
|
3.4 超图
- 一个超图可以用G = (V, E, We)表示
- 其中边e ∈ E连接两个或多个顶点,并被赋予权重w ∈ We。
- 超图的邻接矩阵可以用一个大小为|V| × |E|的矩阵L来表示
HGNN | Dv——点度数矩阵 We——边权重矩阵 De——边度数矩阵 X——点特征 W——可学习参数 |
3.5 有符号图
- 有符号图是具有有符号边的图,即边可以是正或负的。
- 一种思路是将负边简单地视为缺失的边或另一种类型的边
- SGCN(2018)利用平衡理论来捕捉正边和负边之间的相互作用。
- 直观地说,平衡理论认为我的朋友的朋友也是我的朋友(正边),而我的敌人的敌人是我的朋友(负边)。
- 直观地说,平衡理论认为我的朋友的朋友也是我的朋友(正边),而我的敌人的敌人是我的朋友(负边)。
4 无监督训练场景
- 对于监督学习和半监督学习的情景,由于提供了标签,所以可以轻松地为这些带标签的样本设计损失函数。
- 对于无监督学习的情景,没有标记的样本,因此损失函数应该依赖于图本身提供的信息,例如输入特征或图的拓扑结构。
4.1 图自编码器
GAE(2016) | 首先使用GCN来编码图中的点
|
MGAE(2017) |
|
GALA(2019) |
|
4.2 对比学习
Deep Graph Infomax,DGI(2019) | 最大化节点表示和图表示之间的互信息 |
Infograph(2020) | 通过不同尺度(包括节点、边和三角形)的子结构级表示和图级表示之间的互信息最大化来学习图表示 |
Multi-view(2020) | 对比来自一阶邻接矩阵和图扩散的表示,在多个图学习任务上实现了最先进的性能 |
5 GNN的分析
5.1 理论分析
5.1.1 图信号处理
- Deeper insights into graph convolutional networks for semi-supervised learning (2018)
- 首次指出图神经网络中的图卷积实际上是拉普拉斯平滑(Laplacian smoothing)
- ——》拉普拉斯平滑了特征矩阵,反映了相似性假设,即附近的节点应该是相似的
- SGC(201b)进一步去除了层间的权重矩阵和非线性操作,表明低通滤波器是GNN有效的原因。
- 在低通滤波的思想下,后续很多论文分析了不同的滤波器
-
AGC(2019) 为了实现所有特征值的低通滤波,设计了图滤波器 AGE(2020) 进一步证明了使用的滤波器可以获得更好的结果 NT(2019) 图卷积主要是对输入特征进行去噪的过程,模型的性能在很大程度上取决于特征矩阵中的噪声量
-
- 在低通滤波的思想下,后续很多论文分析了不同的滤波器
5.1.2 图泛化能力
The vapnik–chervonenkis dimension of graph and recursive neural networks (2018) | 证明了一类有限GNN的VC维度 |
Generalization and representational limits of graph neural networks(2020) | 基于神经网络的Rademacher界给出了更紧密的泛化界限 |
Stability and generalization of graph convolutional neural networks(2019) |
|
Understanding attention and generalization in graph neural networks(2019) |
|
5.1.3 表达能力
How powerful are graph neural networks?(2019) Weisfeiler and leman go neural: higher-order graph neural networks(2019) |
|
GIN(2019) | 更有表达力的GNN |
The logical expressiveness of graph neural networks.(2019) |
|
Graph neural networks exponentially lose expressive power for node classification(2020) | 局部相关的GNN变体无法学习全局图属性,包括直径、最大/最小环或模式 |
5.1.4 不变性
由于图中没有节点顺序,GNN的输出嵌入应该是对输入特征进行排列不变或等变的。
Invariant and equivariant graph networks.(2019) | 通过表征排列不变或等变的线性层来构建不变的GNN |
On the universality of invariant networks.(2019) | 进一步证明了可以通过高阶张量化获得通用的不变GNN |
5.1.5 可迁移性
GNN的一个特征是其参数与图解耦,这意味着具备跨图传递(可迁移性)并具有性能保证的能力。
Transferability of Spectral Graph Convolutional Neural Networks.(2019) | 研究了谱图滤波器的可传递性,表明这样的滤波器能够在同一域中的图之间进行传递 |
Graphon neural networks and the transferability of graph neural networks(2020) |
|
5.1.6 标签效率
(半)监督学习对于GNN来说需要大量的标记数据才能达到令人满意的性能。
已有研究证明了通过选择高度节点和不确定节点等信息丰富的节点,可以大大提高标记效率。
5.2 实验角度
5.2.1 模型评估
- 评估机器学习模型是研究中的一个重要步骤。多年来,人们对实验的可重复性和可复制性提出了关切。
- GNN模型是否有效以及在多大程度上有效?
- 模型的哪些部分对最终性能起到贡献?
- 。。。
Pitfalls of graph neural network evaluation(2018) |
|
A fair comparison of graph neural networks for graph classification(2020) |
|
Design space for graph neural networks.(2020) |
|
5.2.2 基准benchmark
Benchmarking Graph Neural Networks.(2020) Open graph benchmark: datasets for machine learning on graphs.(2020) | 提供了可扩展和可靠的图学习基准 |
Benchmarking Graph Neural Networks.(2020) | 在多个领域和任务中构建了中等规模的基准数据集 |
Open graph benchmark: datasets for machine learning on graphs.(2020) | 提供了大规模数据集 |
6 应用
6.1 结构化场景
6.1.1 graph mining
图匹配、图聚类
6.1.2 物理
- 对实际物理系统进行建模
- 物理系统可以建模为系统中的对象和对象之间的成对相互作用
- 通过将对象建模为节点,成对相互作用建模为边,可以将系统简化为图
6.1.3 化学
分子指纹 molecular fingerprint | 编码分子结构 分子可以自然地被看作是图,其中原子是节点,化学键是边 |
化学反应预测 chemical reaction prediction | |
蛋白质界面预测 protein interface prediction |
|
生物医学工程 |
6.1.4 知识图谱
- 知识图谱(KG)表示一组现实世界的实体及其之间的关系
- 在KG上的任务包括学习低维度的嵌入
- 其中包含:
- 实体和关系的丰富语义信息
- 预测实体之间的缺失连接
- 对知识图谱进行多跳推理
- 。。。
- 其中包含:
6.1.5 生成模型
比如:发现新的化学结构、构建知识图谱。。
6.1.6 组合优化问题
图上的组合优化问题是一类NP难问题。一些特定的问题,如旅行商问题(TSP)和最小生成树(MST),已经有了各种启发式解法。最近,使用深度神经网络来解决这类问题成为热点,其中一些解决方案进一步利用了图神经网络的图结构特性。