【神经网络学习日记(8)】一些图神经网络的简单介绍(GCN、GAT、rGCN)

本文是笔者进行神经网络学习的个人学习日记

图片和链接均源自网络,侵删

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=jA~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=kN(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)=σ jN(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σ jN(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=1KjN(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)=σ rRjNr(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)

文中引用部分都尽可能写出了,如果有侵犯其他人文章版权的问题,请务必联系我,谢谢!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值