Graph-Neural-Network 图神经网络
1. 图数据结构
1.1 Graph结构的两种特征
图数据结构由顶点和边组成,顶点为目标研究的实体,边则表示顶点之间的联系。
图数据结构包含两种特征:
- 顶点自己的特征,其通常是一个高维向量,也就是研究目标的特征。
- 对于任意一个节点 i ,它在图上的相邻节点 Ni 构成图的结构关系(特征)
任何图神经网络的目的,就是试图更好的学习Graph结构的这两种特征。
2. Graph Attention Network (GAT)图注意力网络
- 注意力机制认为,对于中心节点来说,相邻节点对它而言重要程度不一样,要量化这一指标。
- 图注意力机制的本质,是给边赋予权重,即给 节点及其相邻节点 构成的边 赋予不同的注意力系数。
- 边的注意力系数是通过计算得到的,这也是GAT理论的根本点。
- 图注意力机制是从图的 结构关系特征 入手的。
2.1 计算注意力系数(attention coefficient)##
①计算节点的相关系数
对于节点i,逐个计算它的相邻节点(j∈Ni)和它自己之间的相似系数。
计算公式如下:
其中:
- 为共享参数矩阵,其用于对节点特征增维,是一种常见的 特征增强 的方法。
- [·||·]表示对于节点 变换之后的 特征进行拼接(concatenate)。
- 最后把拼接后的高维特征映射到一个实数上,作为该公式的输出。这是通过 single-layer feedforward neural network实现的。
显然,节点 之间的相关性是通过可学习参数$ W a(·) $完成的。
②计算注意力系数
在 相关系数 的基础上,进行归一化处理得到注意力系数,这是通过softmax函数完成的。
计算公式如下:
此式输出 即为两节点的边的注意力系数。
2.2 加权求和
根据计算好的注意力系数,把特征加权求和(aggregate)一下。公式如下:
其中, 就是GAT输出的节点 的新特征(这是融合了领域信息得到的)。
这就是基本的,图注意力机制。
2.3 多通道注意力机制
常见的,使用multi-head机制增强注意力机制。
其类似于CNN的多维卷积,有多个卷积核且每个卷积核相互独立,使得输出的特征图也具有更多的通道数。
公式如下:
其中** 为通道数**,下图中的曲线数表示了这一点。
这3条波浪线就代表3个独立的attention系数,独立学习,并且有着独立的注意力系数矩阵。
这在代码中是使用for循环实现的。
2.4 最终的输出
多头注意力机制输出层最终的输出如下:
这里的激活函数为softmax。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能