文章目录
- GCN/RGCN图卷积网络概述--运作原理
- **1. GCN(Graph Convolutional Network,图卷积网络)**
- **1.1 核心思想**
- **1.2 公式**
- **1.3 特点**
- **1.4 总结**
- **2. RGCN(Relational Graph Convolutional Network,关系型图卷积网络)**
- **2.1 核心思想**
- **2.2 公式**
- **2.3 特点**
- **2.3 特点**
- **3. GCN 与 RGCN 的区别**
- **4. GCN 与 RGCN 的联系**
- **5. 总结**
GCN/RGCN图卷积网络概述–运作原理
本文主要探究GCN以及RGCN和他们的变体模型,对于理解图数据和图神经网络(GNN)有重要的意义。首先我们需要理解什么是图卷积网络。
正如处理图像的CNN一样,处理图数据的图卷积(Graph Convolutional)也是通过聚合处理点和周围点的特征进行计算和处理。在CNN中,是通过卷积核聚合像素点极其周围像素的信息,然后生成权重,进一步进行处理。在GCN中,也是通过节点和其周围的节点共同作用下生成矩阵,再循环遍历节点进行拼接,就可以得到图的特征,再通过一层层网络处理后,图的行为模式和逻辑信息就可以得到很好的捕捉。
1. GCN(Graph Convolutional Network,图卷积网络)
1.1 核心思想
GCN 是一种用于处理图结构数据的神经网络,通过聚合邻居节点的特征来更新当前节点的特征。其核心思想是将传统卷积操作扩展到图数据上,利用局部信息提取特征。
1.2 公式
GCN 的节点特征更新公式为:
h i ( l + 1 ) = σ ( ∑ j ∈ N ( i ) 1 d i d j h j ( l ) W ( l ) ) h_i^{(l+1)} = \sigma\left(\sum_{j \in \mathcal{N}(i)} \frac{1}{\sqrt{d_i d_j}} h_j^{(l)} W^{(l)}\right) hi(l+1)=σ j∈N(i)∑didj1hj(l)W(l)
其中:
- $ h_i^{(l)} $:节点 $ i $ 在第 $ l $ 层的特征。
- $ h_j^{(l)} $邻居节点特征
- $ \mathcal{N}(i) $:节点 $ i $ 的邻居集合。
- $ d_i, d_j $:节点 $ i $ 和 $ j $ 的度数(邻居数量)。
- $ W^{(l)} $:第 $ l $ 层的权重矩阵。
- $ \sigma $:激活函数(如 ReLU)。
建议卷积层用sigmoid或者tanh,如果卷积层过于复杂可能会出现卷积网络的通病:梯度消失或者是梯度信号下降,这一问题在Resnet提出的残差网络得到了解决,所以在设计你的卷积网络时,如果卷积层过多,可以考虑设计残差连接避免梯度消失。$ d_i, d_j 是为了平衡各个邻居节点,得到最为平衡统一的效果。在这里 是为了平衡各个邻居节点,得到最为平衡统一的效果。在这里 是为了平衡各个邻居节点,得到最为平衡统一的效果。在这里 W^{(l)} $就是卷积层的权重矩阵,是动态更新的。
1.3 特点
- 适用于同构图(单一关系类型)。
- 所有邻居一视同仁,不区分关系类型。
- 通过多层卷积逐步提取全局特征。
1.4 总结
GCN适合处理边的关系单一的同构图,特别是当图的节点数目也比较集中的时候,GCN学习效果会很好,通常3层GCN可以得到很好的效果。
2. RGCN(Relational Graph Convolutional Network,关系型图卷积网络)
2.1 核心思想
RGCN 是 GCN 的扩展,专门用于处理异构图(多种关系类型)。其核心思想是为每种关系类型分配独立的权重矩阵,区分不同关系对节点特征的影响。
2.2 公式
RGCN 的节点特征更新公式为:
h i ( l + 1 ) = σ ( ∑ r ∈ R ∑ j ∈ N r ( i ) 1 c i , r h j ( l ) W r ( l ) + h i ( l ) W 0 ( l ) ) h_i^{(l+1)} = \sigma\left(\sum_{r \in R} \sum_{j \in \mathcal{N}_r(i)} \frac{1}{c_{i,r}} h_j^{(l)} W_r^{(l)} + h_i^{(l)} W_0^{(l)}\right) hi(l+1)=σ r∈R∑j∈Nr(i)∑ci,r1hj(l)Wr(l)+hi(l)W0(l)
其中:
- $ \mathcal{N}_r(i) $:节点 $ i $ 在关系类型 $ r $ 下的邻居集合。
- $ h_j^{(l)} $邻居节点特征。
- $ h_i^{(l)} $本层本节点特征。
- $ W_r^{(l)} $:关系类型 $ r $ 在第 $ l $ 层的权重矩阵。
- $ W_0^{(l)} $:节点自身的权重矩阵。
- $ c_{i,r} $:归一化系数(如邻居数量 $ |\mathcal{N}_r(i)| $)。
归一化系数是为了平衡邻居节点的特征,达到统一的均匀的效果。
2.3 特点
- 适用于异构图(多种关系类型)。
- 每种关系类型对应独立的权重矩阵。
- 通过区分关系类型,增强模型对复杂图结构的建模能力。
2.3 特点
RGCN适合处理异构图,即存在不同的边,或者是图的节点数目不是很统一,RGCN在学习异构图方面取得的效果是很好的,如果节点也比较集中或者单一,RGCN效果要比RGAT好得多。
3. GCN 与 RGCN 的区别
GCN | RGCN | |
---|---|---|
适用场景 | 同构图(单一关系类型) | 异构图(多种关系类型) |
邻居处理 | 所有邻居一视同仁 | 按关系类型分组处理邻居 |
权重矩阵 | 单一权重矩阵 $ W $ | 每个关系类型对应一个权重矩阵 $ W_r $ |
表达能力 | 适用于简单关系 | 能捕捉复杂关系的影响 |
4. GCN 与 RGCN 的联系
- 基础架构:
- RGCN 基于 GCN 的框架,扩展了多关系处理能力。
- 两者都通过聚合邻居信息更新节点特征。
- 消息传递机制:
- GCN 和 RGCN 都采用消息传递机制,将邻居特征聚合到当前节点。
- 可扩展性:
- GCN 是 RGCN 的特例,当关系类型 $ R = 1 $ 时,RGCN 退化为 GCN。
5. 总结
- GCN 是处理同构图的基础模型,通过单一权重矩阵聚合邻居信息。
- RGCN 是 GCN 的扩展,支持多关系类型,通过独立的权重矩阵区分不同关系的影响。
- 区别:RGCN 适用于异构图,GCN 适用于同构图。
- 联系:RGCN 基于 GCN 的框架,扩展了多关系处理能力。
通过理解 GCN 和 RGCN 的区别与联系,可以更好地选择和应用适合的模型来处理不同的图结构数据。