1. GNN
图神经网络 (Graph Neural Networks, GNNs) 是受卷积神经网络 (CNN) 启发发展而来的,主要用于处理图结构数据。相较于 CNN 适用于图像数据,循环神经网络 (RNN) 适用于序列数据,GNN 则专注于不规则的图结构数据。这些图结构数据往往缺乏明确的邻接关系和数据存储结构,因此 GNN 通过消息传递机制 (Message Passing Mechanism) 来汇总节点间的信息。
下图可以直观的展示一下二者结构上的区别:
2. 核心概念
2.1 消息传递机制 (Message Passing Mechanism)
GNN 的核心机制在于每个节点在每次迭代时汇总来自其邻居节点的信息。节点可以同时获取以下两类信息:
- 图结构信息 (Structural Information): 例如节点的度数。
- 基于特征的信息 (Feature-based Information): 例如节点或边的特征。
通过这种机制,每次迭代的过程不仅仅只聚合最近邻节点的信息,还可以逐步获取更远邻居的信息。简单来说,第一次聚合的是距离为1的信息,第二次聚合的是距离为2的信息,以此类推。实际上每次看的都是邻居节点,但是由于这套机制,每次更新都会聚合旁边的节点,导致后续的iteration,每次都会从更远的一层得到信息。
3. 后续出现的优化方法
3.1 自环 (Self-loops)
自环是为每个节点添加一条指向自身的边,这使得节点自身的特征也可以参与到聚合过程中。这可以帮助模型捕捉节点自身的特征,但同时也可能带来信息模糊的问题(模糊了信息是来自节点本身还是其邻居节点的界限),影响模型性能。
3.2 邻域归一化 (Neighborhood Normalization)
在GNN中,对节点的邻居特征进行归一化处理,以提高模型的稳定性和性能。因为之前的 m N ( u ) ( k ) m_{N(u)}^{(k)} mN(u)(k)不稳定且对于节点的度(degree)高度敏感,即随着节点邻居数量的增加,其值的变化范围也会显著扩大。为了提高模型的稳定性,GNN 采用邻域归一化来处理节点的邻居特征。主要有两种归一化方案:
-
平均归一化 (Mean Normalization): 对邻居节点特征取平均值,从而减少因节点度数不同导致的差异。
-
-
对称归一化 (Symmetric Normalization): 常用于 GCN,通过图的拉普拉斯矩阵对邻接矩阵进行归一化处理。
4. 图卷积网络 (GCN)
图卷积网络 (Graph Convolutional Networks, GCN) 是 Tomas Kipf 和 Max Welling 提出的 GNN 变体,它的主要目标是将 CNN 的卷积操作扩展到图结构数据上。其核心概念包括:
4.1 权重共享与局部性
GCN 通过类似 CNN 的权重共享机制,在图上使用卷积滤波器对节点及其邻居信息进行聚合。不同于 CNN 在规则网格上滑动滤波器,GCN 滤波器整合了节点及其邻居的信息,从而捕捉图的局部结构特征。
4.2 邻域聚合
GCN 的卷积操作涉及对节点及其邻居特征进行聚合。与 CNN 的局部区域固定不同,GCN 的邻域大小是动态的,取决于每个节点的度数,并通过邻接矩阵进行归一化处理。
4.3 层次化结构
GCN 采用多层结构,每一层通过卷积和聚合步骤来细化节点表示。随着层数增加,GCN 能够逐步捕获图中的复杂模式和长距离依赖。
4.4 频谱图理论 (Spectral Graph Theory)
GCN 的卷积操作与频谱图理论密切相关,其卷积操作通过图的拉普拉斯矩阵及其特征向量在频谱域中定义。这为 GCN 在图数据上的表现提供了理论支持。
可以对比一下之前的公式,可以发现是应用上了加上自环和对称归一化。
5. CNN 与 GCN 的对比
GCN可以视为CNN的泛化。简而言之,CNN通过滤波器(filter)处理固定大小的网格数据区域(e.g. n*n),而GCN则通过自环和对称归一化(symmetric normalization)处理节点及其邻居的信息,实现卷积效果。与CNN不同的是,GCN适用于处理连接数不同和无序节点的图结构数据,这在现实世界的图数据中非常常见。以下是CNN和GCN在卷积操作方面的一些关键区别:
特性 | CNN | GCN |
---|---|---|
数据结构 | 规则网格数据,如图像,像素排列成矩阵。 | 图结构数据,节点连接不规则,邻居数量可变。 |
卷积操作 | 滤波器滑动计算局部加权和,实现权重共享。 | 聚合节点及邻居特征,通过邻接矩阵权重共享。 |
邻域聚合 | 固定大小的局部区域。 | 动态邻域,取决于节点度数。 |
适用性 | 图像、视频等具有空间结构的网格数据。 | 社交网络、分子结构等复杂拓扑结构数据。 |
6. GNN 的广泛应用
GNN 尤其适用于处理复杂的图结构数据,应用领域包括:
- 社交网络分析: GNN 可以帮助分析社交网络中的用户行为和社交关系。
- 推荐系统: 在推荐系统中,GNN 可以用来挖掘用户与物品间的关联。
- 引文网络分析: 在学术引文网络中,GNN 能够识别论文与其引用的关系。
- 分子结构建模: 在化学领域,GNN 被用于分析分子结构及其性质。
7. 总结
GNN 是 CNN 在图数据领域的扩展,通过消息传递机制捕捉局部和全局模式,适用于处理复杂的关系数据任务。其应用范围广泛,未来可以进一步结合其他模型(如大语言模型)来增强其在不同领域的表现和解释能力。
8. 参考资料:
- Khemani, B., Patil, S., Kotecha, K. et al. A review of graph neural networks: concepts, architectures, techniques, challenges, datasets, applications, and future directions. J Big Data 11, 18 (2024). https://doi.org/10.1186/s40537-023-00876-4
- William L. Hamilton. (2020). Graph Representation Learning. Synthesis Lectures on Artificial Intelligence and Machine Learning, Vol. 14, No. 3 , Pages 1-159
如果有帮助到你,能点个赞嘛!!谢谢!!!
目前在整理内容,尝试做自己的博客网站,敬请期待。