图神经网络中的图注意力网络(Graph Attention Network, GAT)原理与计算细节
题目描述
图注意力网络(GAT)是一种基于注意力机制的图神经网络,用于处理图结构数据。它通过自适应地学习节点之间关系的权重,替代传统图卷积网络(GCN)中固定的邻接矩阵权重,从而更灵活地捕捉节点间的重要性差异。GAT的核心思想是为每个节点的邻居分配不同的注意力系数,并基于这些系数聚合邻居信息。
解题过程
-
输入与初始化
- 假设图有 \(N\) 个节点,每个节点的特征向量为 \(\mathbf{h}_i \in \mathbb{R}^F\)(\(F\) 为特征维度)。
- GAT 的输入是节点的特征矩阵 \(\mathbf{H} = \{\mathbf{h}_1, \mathbf{h}_2, ..., \mathbf{h}_N\}\)。
- 目标:通过多层注意力机制生成节点的新表示 \(\mathbf{h}'_i \in \mathbb{R}^{F'}\)(\(F'\) 为输出维度)。
-
计算注意力系数
- 对于每个节点 \(i\),计算其与邻居 \(j \in \mathcal{N}(i)\)(包括自身)的注意力系数 \(e_{ij}\):
\[ e_{ij} = \text{LeakyReLU}\left(\mathbf{a}^T [\mathbf{W}\mathbf{h}_i \| \mathbf{W}\mathbf{h}_j]\right) \]
其中:
- $\mathbf{W} \in \mathbb{R}^{F' \times F}$ 是可学习的权重矩阵,用于线性变换输入特征;
- $\mathbf{a} \in \mathbb{R}^{2F'}$ 是注意力机制的参数向量;
- $\|$ 表示拼接操作;
- LeakyReLU(斜率设为 0.2)引入非线性。
- 归一化注意力权重
- 使用 softmax 对注意力系数进行归一化,得到权重 \(\alpha_{ij}\):
\[ \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k \in \mathcal{N}(i)} \exp(e_{ik})} \]
归一化后,$\sum_{j \in \mathcal{N}(i)} \alpha_{ij} = 1$,确保权重可解释性。
- 加权聚合邻居信息
- 节点 \(i\) 的新特征为其邻居特征的加权和:
\[ \mathbf{h}'_i = \sigma\left(\sum_{j \in \mathcal{N}(i)} \alpha_{ij} \mathbf{W} \mathbf{h}_j\right) \]
其中 $\sigma$ 是非线性激活函数(如 ELU)。
- 多头注意力增强稳定性
- 为了稳定学习过程,GAT 使用 \(K\) 个独立的注意力头(即重复步骤 2-4 \(K\) 次):
\[ \mathbf{h}'_i = \|_{\text{concat}} \sigma\left(\sum_{j \in \mathcal{N}(i)} \alpha_{ij}^k \mathbf{W}^k \mathbf{h}_j\right) \]
其中 $\|_{\text{concat}}$ 表示拼接所有头的输出(最终维度为 $K F'$)。
- 对于输出层,可改用平均聚合:
\[ \mathbf{h}'_i = \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) \]
- 复杂度分析
- 计算 \(e_{ij}\) 的复杂度为 \(O(N F F')\),与边数无关,适用于稀疏图;
- 注意力机制允许模型隐式学习邻居的重要性,无需预先知道图结构。
关键点总结
- GAT 通过注意力系数动态调整邻居权重,比 GCN 更灵活;
- 多头注意力提升模型表达能力,避免过拟合;
- 无需矩阵分解或特征值计算,适用于归纳式学习(如动态图)。