图卷积网络(GCN)基础
2. 图卷积网络(GCN)基础
图卷积网络(Graph Convolutional Network, GCN)是图神经网络中最经典和常用的模型之一。它将传统卷积操作推广到图结构上,用于捕捉节点间的结构化信息。GCN的设计主要是为了利用邻居节点的信息来更新每个节点的特征表示,从而在图结构数据中提取更深层次的关系。
2.1 卷积操作在图上的推广
在传统卷积神经网络(CNN)中,卷积操作用于提取图像的局部特征。CNN的卷积操作是对图像上的像素邻域(通常是矩阵)进行加权求和,从而提取出局部的模式。在图结构中,节点与邻居节点之间的关系也是一种局部结构,但图是非欧几里得结构,节点的邻居数量和关系并不固定。
图卷积的基本思想是将每个节点的特征与其邻居节点的特征进行聚合,实现类似CNN的卷积操作。因此,GCN将节点特征和邻居特征聚合的过程看作一种“图上的卷积”。
2.2 GCN模型结构
在GCN中,模型通过一个或多个卷积层进行节点特征的更新。每个卷积层包含以下三个核心步骤:
-
邻居节点聚合:在每一层,每个节点从其邻居节点接收特征信息。
-
权重共享:每一层的权重是共享的,即所有节点在同一层使用相同的权重矩阵。这与CNN中的卷积核共享权重的方式类似,使得模型参数数量得到控制,便于训练。
-
非线性激活:每层聚合后的特征通常通过非线性激活函数(例如ReLU),以增强模型的表达能力。
通过多层堆叠,每一层的节点特征包含更多来自邻居的特征信息,逐渐扩展到更远的图结构范围。
2.3 GCN的基本算法
GCN的核心算法包括特征传播和信息聚合。简化公式如下:
- 假设图中节点数为 ( N ),节点特征维度为 ( F )。
- 邻接矩阵为 ( A ),节点特征矩阵为 ( X ),层的权重矩阵为 ( W )。
GCN的每一层的输出可以表示为:
[
H^{(l+1)} = \sigma \left( \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} H^{(l)} W^{(l)} \right)
]
其中:
- ( \tilde{A} = A + I ):给邻接矩阵加上单位矩阵,以确保每个节点包含自身的信息。
- ( \tilde{D} ):图的度矩阵,对 ( \tilde{A} ) 的行进行归一化,使得节点特征聚合的贡献得到均衡。
- ( \sigma ):激活函数,通常选择ReLU。
- ( H^{(l)} ):第 ( l ) 层的节点特征矩阵,第0层为输入特征矩阵 ( X )。
- ( W^{(l)} ):第 ( l ) 层的权重矩阵。
这种归一化操作可以防止特征在多层卷积后出现过度增大的问题,使特征值保持在合理的范围内。
2.4 GCN的数学公式与推导
GCN的数学推导基于谱图理论(Spectral Graph Theory),其中核心思想是通过拉普拉斯矩阵对图进行卷积。下面是相关概念:
-
图拉普拉斯矩阵(Graph Laplacian):
- 图的无向拉普拉斯矩阵 ( L ) 定义为 ( L = D - A ),其中 ( D ) 是图的度矩阵,( A ) 是邻接矩阵。
- 归一化拉普拉斯矩阵 ( L_{\text{norm}} = I - D^{-1/2} A D^{-1/2} ),它用于平衡不同节点的度数差异,提升训练稳定性。
-
谱卷积:
- 谱卷积是通过图的特征向量对信号进行变换,实现图卷积的本质过程。
- 但是谱卷积在实际操作上计算开销大,GCN使用了一种近似方法,将卷积简化为前述的特征传播公式,实现了高效的邻居信息聚合。
2.5 GCN的层级设计与多层堆叠
在实际应用中,GCN通常由多层卷积层构成,通过多层堆叠使节点的特征信息逐层传播。比如:
- 第一层:将每个节点的特征向量与其直接邻居的特征相结合。
- 第二层:包含第一层邻居的特征更新后,再与下一层邻居特征相结合,逐步捕捉图的结构信息。
这种多层设计可以逐渐扩大节点的信息接收范围,使得节点特征能够更全面地反映其局部结构。
2.6 GCN的优势与局限
- 优势:GCN利用了图的结构信息,可以有效地建模节点间复杂关系;通过共享权重和邻接矩阵的归一化,大幅减少了参数数量,使得训练更高效。
- 局限:
- 过平滑问题:多层堆叠后,节点特征可能趋于一致,导致模型难以区分不同的节点。
- 只能处理同质图:GCN对异质图处理效果较差,异质图的不同类型节点和边会导致简单的邻接矩阵不再适用,需要更复杂的模型。