图神经网络(GNN)中的邻居聚合函数(Neighbor Aggregation Functions)详解
1. 知识点描述
在图神经网络中,邻居聚合函数是消息传递机制的核心组成部分。其基本思想是:为了更新一个中心节点的表示,GNN会收集其邻居节点的信息,并通过一个特定的聚合函数将这些信息融合起来。不同的聚合函数在表达能力、计算效率和适用场景上有显著差异。理解和设计有效的聚合函数,是提升GNN模型性能、缓解过平滑等问题的重要基础。
2. 核心概念与背景
在消息传递框架中,每一层GNN通常执行两个关键操作:
- 聚合(Aggregate): 对中心节点邻居的特征或消息进行整合。
- 更新(Update): 将聚合后的邻居信息与中心节点自身的信息结合,生成中心节点的新表示。
这里的“聚合”操作,就是由邻居聚合函数完成的。其目标是生成一个能够有效代表该节点局部邻域结构的、固定大小的特征向量。
3. 常见聚合函数及其原理
让我们循序渐进地看几种主要的聚合函数:
- 3.1 平均聚合(Mean Aggregation)
- 描述: 计算所有邻居节点特征的算术平均值。这是最常用、最简单的聚合方式之一,在图卷积网络(GCN)中得到应用。
- 数学形式: 对于节点 \(v\),其第 \(l\) 层的聚合输出 \(a_v^{(l)}\) 为:
\[ a_v^{(l)} = \frac{1}{|N(v)|} \sum_{u \in N(v)} h_u^{(l-1)} \]
其中,$N(v)$ 是节点 $v$ 的邻居集合,$h_u^{(l-1)}$ 是邻居节点 $u$ 在第 $l-1$ 层的特征表示。
* **优点**: 计算简单,具有排列不变性(与邻居顺序无关),能平滑邻域信息,对邻居数量不敏感。
* **缺点**: 将每个邻居视为同等重要,忽略了节点与不同邻居之间可能存在的关系强度差异。当邻居特征分布差异大时,平均操作可能会丢失重要信息。
- 3.2 求和聚合(Sum Aggregation)
- 描述: 将所有邻居节点特征直接相加。
- 数学形式:
\[ a_v^{(l)} = \sum_{u \in N(v)} h_u^{(l-1)} \]
* **优点**: 同样具有排列不变性,且能够保留邻域信息的总体“强度”或“容量”。对于某些任务(如预测分子性质,其中原子数量是关键因素),求和聚合比平均聚合更有优势。
* **缺点**: 聚合结果对邻居数量敏感,邻居数多的节点其特征范数容易变得很大,可能给后续网络层带来不稳定性。
- 3.3 最大值聚合(Max Pooling Aggregation)
- 描述: 在邻居节点的特征向量的每个维度上,取最大值。
- 数学形式(按元素操作):
\[ a_v^{(l)}[d] = \max_{u \in N(v)} \{ h_u^{(l-1)}[d] \}, \quad \forall d \]
其中,$[d]$ 表示特征向量的第 $d$ 维。
* **优点**: 具有排列不变性,能有效地捕捉邻域中最显著、最有区分度的特征模式,对异常值有一定鲁棒性。在图同构网络(GIN)的理论分析中被证明是表达能力强大的聚合器之一。
* **缺点**: 完全忽略了邻域的整体分布信息,只关注极端值,可能丢失大量细节。
- 3.4 注意力聚合(Attention-based Aggregation)
- 描述: 为每个邻居节点分配一个可学习的注意力权重,再进行加权求和。图注意力网络(GAT)首次系统性地应用了此方法。
- 数学形式:
- 计算注意力系数: 计算中心节点 \(v\) 和其邻居 \(u\) 之间的未归一化注意力分数:
\[ e_{vu} = \text{LeakyReLU} \left( \mathbf{a}^T [\mathbf{W}h_v \| \mathbf{W}h_u] \right) \]
其中,$\mathbf{W}$ 是共享的线性变换权重矩阵,$\mathbf{a}$ 是注意力向量, $\|$ 表示向量拼接。
2. **归一化**: 使用Softmax函数对所有邻居的注意力系数进行归一化:
\[ \alpha_{vu} = \frac{\exp(e_{vu})}{\sum_{k \in N(v)} \exp(e_{vk})} \]
3. **加权聚合**: 对归一化的注意力权重进行加权求和:
\[ a_v^{(l)} = \sum_{u \in N(v)} \alpha_{vu} \mathbf{W} h_u^{(l-1)} \]
* **优点**: 能够动态地、有区别地衡量不同邻居的重要性,模型表达能力更强,尤其适用于异质图或图中不同边重要性差异大的场景。
* **缺点**: 计算开销更大,需要存储所有节点对的注意力权重,在大规模图上可能成为瓶颈。对噪声或对抗性攻击可能更敏感。
- 3.5 集合聚合器(Set Aggregator)与高级聚合
- 描述: 由于节点的邻居本质上是一个无序集合,一些聚合函数专门设计来更好地处理集合数据。例如:
- GIN中的聚合: 图同构网络(GIN)理论证明了,为了达到与WL图同构测试相同的判别能力,其聚合函数应为:
- 描述: 由于节点的邻居本质上是一个无序集合,一些聚合函数专门设计来更好地处理集合数据。例如:
\[ a_v^{(l)} = \sum_{u \in N(v)} h_u^{(l-1)} \]
即使用**求和聚合**,并在更新时加入一个可学习的、中心节点自身的缩放因子 $\epsilon^{(l)}$。
* **池化聚合**: 可以先用一个前馈神经网络(MLP)对每个邻居节点的特征进行变换,然后再进行**求和**或**平均**聚合。这比简单的线性变换更强大。
* **LSTM聚合**: 将邻居节点排序后输入LSTM,用LSTM的最终状态作为聚合输出。但LSTM本身对顺序敏感,需要先对邻居进行随机或启发式排序,破坏了排列不变性的严格保证。
4. 聚合函数的选择与设计考量
选择或设计聚合函数时,需考虑:
- 任务需求: 节点分类任务可能偏好均值或注意力聚合;图分类任务中,求和聚合有时能更好捕捉图的全局规模信息。
- 图的特性: 社交网络(关系强度不一)适合注意力聚合;分子图(节点类型和连接性关键)可能适合求和或均值聚合。
- 计算效率: 均值、求和、最大值聚合的计算和存储效率远高于注意力聚合。
- 过平滑(Over-smoothing): 深层的GNN中,所有节点表示可能趋于相同。均值聚合会加速这一过程,而注意力、最大值聚合或结合了跳跃连接(Skip-connection)的设计有助于缓解。
- 排列不变性: 聚合函数必须对邻居节点的输入顺序保持不变,这是GNN的基本要求。上述聚合函数(除简单LSTM外)均满足。
总结: 邻居聚合函数是GNN消息传递的基石,从简单的均值/求和/最大值,到复杂的注意力机制,不同的选择直接影响了模型对图结构信息的提取能力、计算复杂度和最终性能。实际应用中,需要根据具体图数据的特点和任务目标,进行实验性的选择和验证。