图神经网络的表示方法和使用案例
https://blog.csdn.net/deephub/article/details/119924127
任何GNN都可以表示为一个包含两个数学算子的层,即聚合函数和组合函数。使用MPNN(消息传递神经网络)框架可以最好地理解这一点。
聚合
如果我们考虑上面的一个例子图,聚合器函数专门用于结合邻域信息。更正式地说,聚合可以表示为;
简单来说,第k层GNN层中节点v的邻域聚合是使用相邻节点u的激活,k-1层的hᵤ来表示的。 v 的邻居表示为 N(v)。 在第一层 k-1=0,回退到当前节点特征。 在第一层,我们简单地聚合相邻节点的初始特征。 在 GCN 的情况下,聚合器只是归一化度(degree)的平均值(每个消息都由 v 和 u 的度的乘积的平方根归一化)。 只要操作是顺序不变的(结果不会因打乱而改变),就可以想到各种聚合器,例如 max、mean、min 等。
组合
相邻节点信息与节点本身的组合在下面的等式中正式表示。
这里可以使用不同的操作,例如连接、求和或wise pooling操作。不同的 GNN 架构依赖于不同的功能。例如 GCN 使用平均值,我们将在接下来讨论。
在上图中,我们可以通过 X1/(sqrt(7×2)) 来聚合节点 1 到 6 的特征 X1 是节点 1 的特征,7、2 分别是节点 6 和 1 的度数。对于每个节点,我们都可以这样做。直观地,我们可以将其视为每个节点通过对其出度进行平均来将其消息传递给其他节点,并且他们通过对入度进行平均来接收其他人的消息。因此得名 MPNN(Message Passing Neural Network)。
对于具有邻接矩阵 A 和具有特征 X 的度矩阵 D(degree matrix) 的图 G(V, E),这可以通过 D(-1/2)XAD(-1/2) 轻松实现。通常,邻接矩阵加上I(单位矩阵)以结合节点自身的特征。在这种情况下,A 表示为 Â (A-hat),而 D 被 D-hat 替换,其中 D-hat 对应于 A-hat。在这一点上,我们已经在几个矩阵运算中执行了聚合和组合。得到的矩阵被传递到一个可训练的可微函数 ɸ,它通常是一个 MLP(多层感知器),即神经网络。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理