文章目录
本文是笔者进行神经网络学习的个人学习日记
图片和链接均源自网络,侵删
1 图卷积网络(Graph Convolutional Network, GCN)
通过在图上的卷积操作来聚合节点的邻居信息。
1.1 图和节点表示
- 图通常表示为 G = ( V , E ) G = (V, E) G=(V,E)。
- 图的结构通过邻接矩阵表示, A i j = 1 A_{ij} = 1 Aij=1表示节点 i i i和节点 j j j之间有边。
- 每个节点 i i i具有一个特征向量 x i x_i xi,所有节点的特征向量组成特征矩阵 X X X,其维度为 N × F N \times F N×F,其中 N N N是节点数量, F F F是特征维度。
1.2 GCN的卷积操作
GCN通过在图上定义的卷积操作来更新节点的特征。这个卷积操作的核心是聚合每个节点及其邻居节点的信息,以生成新的节点表示。具体来说,GCN的卷积操作可以分为以下几步:
-
邻接矩阵归一化:
通常使用对称归一化的邻接矩阵:
A ~ = A + I D ~ i i = ∑ j A ~ i j A ^ = D ~ − 1 / 2 A ~ D ~ − 1 / 2 \tilde{A} = A + I\\ \tilde{D}_{ii} = \sum_j \tilde{A}_{ij}\\ \hat{A} = \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} A~=A+ID~ii=j∑A~ijA^=D~−1/2A~D~−1/2
其中 I I I是单位矩阵, D ~ \tilde{D} D~是 A ~ \tilde{A} A~的度矩阵。 -
节点特征聚合和变换:
在每一层卷积中,节点特征通过与归一化的邻接矩阵 A ^ \hat{A} A^和权重矩阵 W W W的乘积进行更新:
H ( l + 1 ) = σ ( A ^ H ( l ) W ( l ) ) H^{(l+1)} = \sigma(\hat{A} H^{(l)} W^{(l)}) H(l+1)=σ(A^H(l)W(l))
其中, H ( l ) H^{(l)} H(l) 是第 l l l层的节点特征矩阵, W ( l ) W^{(l)} W(l)是第 l l l层的权重矩阵, σ \sigma σ是激活函数(如ReLU)。在初始层, H ( 0 ) = X H^{(0)} = X H(0)=X。 -
多层卷积:
通过堆叠多层卷积,GCN能够逐层聚合更远的邻居信息,从而捕捉图的全局结构。典型的GCN包含两到三层卷积层。
2 图注意力模型(Graph Attention Networks, GAT)
GAT旨在通过引入注意力机制,来解决传统GCN中对邻居节点特征进行简单平均或加权求和时缺乏灵活性的问题。通过注意力机制,GAT能够为每个节点的每个邻居分配不同的权重,允许模型在训练过程中学习到更有效的特征表示。
2.1 注意力机制
GAT中的注意力机制通过对每个节点及其邻居节点进行注意力计算,来动态分配权重。具体步骤如下:
-
线性变换:对每个节点的特征向量 h i h_i hi进行线性变换 h i ′ = W h i h_i'=Wh_i hi′=Whi,其中, W W W是一个可学习的权重矩阵。
-
注意力计算:对每个节点 i i i和其邻居节点 j j j,计算注意力得分 e i j = LeakyReLU ( a T [ h i ′ ∣ ∣ h j ′ ] ) e_{ij}=\text{LeakyReLU}(a^T[h_i'||h_j']) eij=LeakyReLU(aT[hi′∣∣hj′]),其中, a a a是一个可学习的注意力权重向量, ∣ ∣ || ∣∣表示向量拼接操作。
-
归一化得分:对每个节点 i i i的所有邻居节点注意力得分进行归一,得到注意力权重:
α i j = exp ( e i j ) ∑ k ∈ N ( i ) exp ( e i k ) \alpha_{ij}=\frac{\exp(e_{ij})}{\sum_{k\in\mathcal{N}(i)}\exp(e_{ik})} αij=∑k∈N(i)exp(eik)exp(eij)
其中, N ( i ) \mathcal{N}(i) N(i)表示节点 i i i的邻居节点集合。 -
特征聚合:使用注意力权重对邻居节点的特征进行加权求和,得到新的节点表示:
h i ( l + 1 ) = σ ( ∑ j ∈ N ( i ) α i j h j ′ ) \mathbf{h}_i^{(l+1)} = \sigma \left( \sum_{j \in \mathcal{N}(i)} \alpha_{ij} \mathbf{h}_j' \right) hi(l+1)=σ j∈N(i)∑αijhj′
2.2 多头注意力机制
为了提高模型的稳定性和表现力,GAT通常使用多头注意力机制(Multi-Head Attention)。在这种机制下,多个独立的注意力头并行计算,并将它们的输出进行拼接或平均:
-
拼接(用于中间层):
h i ( l + 1 ) = ∣ ∣ k = 1 K σ ( ∑ j ∈ N ( i ) α i j ( k ) W ( k ) h j ) \mathbf{h}_i^{(l+1)} = \big|\big|_{k=1}^K \sigma \left( \sum_{j \in \mathcal{N}(i)} \alpha_{ij}^{(k)} \mathbf{W}^{(k)} \mathbf{h}_j \right) hi(l+1)= k=1Kσ j∈N(i)∑αij(k)W(k)hj
其中, ∣ ∣ \big|\big| 表示拼接操作, K K K是注意力头的数量。 -
平均(用于最终层):
h i ( l + 1 ) = σ ( 1 K ∑ k = 1 K ∑ j ∈ N ( i ) α i j ( k ) W ( k ) h j ) \mathbf{h}_i^{(l+1)} = \sigma \left( \frac{1}{K} \sum_{k=1}^K \sum_{j \in \mathcal{N}(i)} \alpha_{ij}^{(k)} \mathbf{W}^{(k)} \mathbf{h}_j \right) hi(l+1)=σ K1k=1∑Kj∈N(i)∑αij(k)W(k)hj
3 关系图卷积网络(Relational Graph Convolutional Network, rGCN)
rGCN是一种专门用于处理多关系图(multi-relational graph)的图神经网络模型。例如,在知识图谱中,不同的边可以表示“是朋友”、“工作于”等不同类型的关系。rGCN通过引入关系类型的卷积操作,有效地处理这种复杂的图结构。
3.1 多关系图和节点特征
多关系图由节点集合 V V V 和多关系边集合 R R R 组成, R R R 包含多种不同类型的关系。每种关系类型 r r r 都有其对应的邻接矩阵 A r A^r Ar。
每个节点 v i v_i vi 有一个特征向量 h i h_i hi。所有节点的特征向量组成特征矩阵 H H H。
3.2 邻居特征聚合
对于每个节点
v
i
v_i
vi,聚合其所有邻居节点在不同关系下的特征表示:
h
i
(
l
+
1
)
,
r
=
W
r
(
l
)
h
i
(
l
)
h
i
(
l
+
1
)
=
σ
(
∑
r
∈
R
∑
j
∈
N
r
(
i
)
1
c
i
,
r
W
r
(
l
)
h
j
(
l
)
+
W
0
(
l
)
h
i
(
l
)
)
h_i^{(l+1), r} = W_r^{(l)} h_i^{(l)}\\ h_i^{(l+1)} = \sigma \left( \sum_{r \in R} \sum_{j \in \mathcal{N}_r(i)} \frac{1}{c_{i,r}} W_r^{(l)} h_j^{(l)} + W_0^{(l)} h_i^{(l)} \right)
hi(l+1),r=Wr(l)hi(l)hi(l+1)=σ
r∈R∑j∈Nr(i)∑ci,r1Wr(l)hj(l)+W0(l)hi(l)
其中:
- N r ( i ) \mathcal{N}_r(i) Nr(i) 表示节点 i i i 在关系 r r r 下的邻居节点集合。
- c i , r c_{i,r} ci,r 是节点 i i i 在关系 r r r 下的归一化系数,可以是节点度或其他归一化因子。
- W r ( l ) W_r^{(l)} Wr(l) 是第 l l l 层中对应关系类型 r r r 的权重矩阵。
- W 0 ( l ) W_0^{(l)} W0(l) 是第 l l l 层中的自环权重矩阵,用于保持节点自身特征。
个人神经网络学习日记:
【神经网络学习日记(1)】神经网络基本概念
【神经网络学习日记(2)】全连接神经网络(FCNN)及Pytorch代码实现
【神经网络学习日记(3)】卷积神经网络(CNN)
【神经网络学习日记(4)】循环神经网络(RNN、LSTM、BiLSTM、GRU)
【神经网络学习日记(5)】数据加载器(DataLoader)的调用
【神经网络学习日记(6)】Transformer结构详解
【神经网络学习日记(7)】Transformer的应用(BERT、Longformer、LLM)
【神经网络学习日记(8)】一些图神经网络的简单介绍(GCN、GAT、rGCN)
文中引用部分都尽可能写出了,如果有侵犯其他人文章版权的问题,请务必联系我,谢谢!