趋近智
图神经网络 (neural network)的核心思想是学习一个函数,为每个节点生成新的特征向量 (vector)或“嵌入 (embedding)”(embedding)。这个新的嵌入是由节点自身的特征及其直接邻居的特征推导出来的。这一过程通常被称为“邻域聚合”,可以通过将单个 GNN 层分解为两个不同的步骤来形式化:**聚合(AGGREGATE)步骤和更新(UPDATE)**步骤。
这个两步过程是几乎所有现代 GNN 的基本计算模块。首先,一个节点收集来自其所有直接邻居的特征向量。然后,它利用这些聚合后的信息,结合其自身的当前特征向量,计算出下一层的新特征向量。
中心节点 的两步消息传递过程示意图。来自邻居 的信息首先在“聚合”步骤中结合,其结果随后在“更新”步骤中与节点自身的信息结合,从而生成新的表示 。
让我们更仔细地观察这些步骤。
设计图神经网络 (neural network)的首要挑战是节点的邻居数量是可变的。社交网络中的一个节点可能有两名好友,也可能有两千名。标准的神经网络层(如全连接层)需要固定大小的输入向量 (vector)。我们该如何处理任意数量的邻居向量呢?
**聚合(AGGREGATE)**函数解决了这个问题。它的任务是接收一组邻居特征向量 ,并将它们合并为一个单一的、固定大小的向量。这个向量充当了节点整个邻域的摘要。
在这里, 表示在第 层从节点 的邻域聚合而来的“消息”。
聚合函数的一个基本属性是它必须是**置换不变性(permutation invariant)**的。这意味着无论邻居向量出现的顺序如何,该函数都应产生相同的输出。简单的求和(sum)、平均值(mean)或最大值(max)运算是常见的选择,因为它们天然具备这种属性。我们将在下一节讨论这些选项。
一旦我们得到了代表邻域消息的单一向量 (vector),**更新(UPDATE)**步骤就负责为下一层创建节点的新特征向量 。
该函数有两个输入:
聚合步骤的邻域聚合消息 。在这一步中包含节点自身的表示 非常有用。如果我们只使用聚合后的消息,节点就会丢失其原始信息,完全变成其周围环境的反映。通过结合现有状态和传入的消息,GNN 允许节点既保留自身特征,又整合来自局部图结构的信息。更新函数通常实现为标准的神经网络 (neural network)层,往往是一个线性变换后接一个非线性激活函数 (activation function)(如 ReLU)。
通过结合这两个步骤,我们得到了消息传递 GNN 中单层计算的通用公式。该等式描述了任何节点 的特征向量 (vector)在通过第 层以产生第 层输出时是如何变换的。
让我们拆解每个组成部分:
聚合函数(如 mean 或 sum)将所有邻居的特征向量 压缩为一个向量。更新函数(通常是带有可学习参数 (parameter)的神经网络 (neural network))将节点自身的向量 与聚合后的邻居向量相结合。对聚合和更新函数的具体选择,决定了 GCN、GraphSAGE 和 GAT 等不同 GNN 架构的区别。GNN 的可学习参数包含在这两个函数中。通过这一机制处理图中的所有节点,并堆叠多个此类层,GNN 就能从图结构中学习到复杂的模式。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•