图神经网络与pytorch

目录

一、图神经网络架构pytorch

1.GCNConv

[(1)、数学公式(标准 GCN)](#(1)、数学公式(标准 GCN))

(2)一个例子

(3)、解释一下

2.归一化层

(1).定义

(2).一个例子

3.GATConv

(1)、如何计算的

🕐计算原始注意力系数:

(2)、多头注意力机制


一、图神经网络架构pytorch

1.GCNConv

python 复制代码
        self.conv1 = GCNConv(in_dim, hidden_dim)

(1)、数学公式(标准 GCN)

(2)一个例子

图结构内容如下

邻接矩阵 A(不含自环)

计算归一化系数

假设每个节点 1 维特征(为了好算):

线性变换权重 W

先算 XW

之后有

(3)、解释一下

对于每个结点来说,他的来源包括自己以及和自己相连的其他结点的内容。归一化就是让自己的数据/根号下结点的度 + 其他数据/根号下结点的度。但是由于度越大,结合的数据越多,所以还要在外面进行归一化,/根号下结点的度。

第一步计算每个结点和权重矩阵处理后的结果

第二步是每个结点的数据与他相连的数据,归一化后求和

第三步是 对计算的结果进行最后的归一化

2.归一化层

python 复制代码
self.norm1 = nn.LayerNorm(hidden_dim)

不跨节点、不跨 batch、不关心图大小

(1).定义

(2).一个例子

假设某个节点经过 GCNConv 后:

h_i = [100, 0.1, -3, 2, 50]

这会导致:

  • 后面的 ReLU / Linear 非常不稳定

  • PPO 的 value / logit 很容易炸

LayerNorm 会把它拉成:

h_i ≈ [1.2, -0.8, -1.1, -0.6, 1.3]

👉 形状不变,尺度统一

3.GATConv

python 复制代码
self.conv1 = GATConv(in_dim, hidden_dim, heads=heads, concat=True)  # 注意:concat=True 表示将每个头的输出拼接

(1)、如何计算的

🕐计算原始注意力系数

🕑对所有邻居进行计算

对于节点 i 的每个邻居节点 j,都需要计算上述的注意力系数。通过这种方式,我们可以得到所有邻居节点的注意力系数。注意这个邻居也包括他自己

🕑注意力系数的归一化

🕑加权聚合邻居特征

(2)、多头注意力机制

把上面的过程复制几次,那么每个结点都可以得到很多个维度一样的特征,把这个特征拼接在一起,就是多头注意力机制。

下图中一条颜色的线,就可以表示一个注意力头。

相关推荐
Shockang3 小时前
AI 智能体安全沙盒实战
人工智能
yuhulkjv3354 小时前
Claude表格复制到word不再崩溃,AI导出鸭批量导出+格式无损一键搞定
人工智能·ai·c#·word·ai导出鸭
大明者省5 小时前
WSL2 Ubuntu22.04 GPU训练环境配置指南
人工智能·算法·计算机视觉
抱抱宝5 小时前
Agent-study项目教程(03):手写 Mini-ReAct Agent(不依赖框架)
javascript·人工智能·gpt·react.js·prompt·agent
抱抱宝5 小时前
大模型应用开发教程08 | 构建完整 RAG 应用(Chroma/FAISS 实战)
人工智能·gpt·prompt·agent
美团技术团队6 小时前
KDD‘26 美团学术论文精选及KDD Cup‘26 DataAgents赛道冠军思路解读
人工智能
AKAMAI6 小时前
当AI模型超出存储增长时
人工智能·云计算
科技绘图6 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比
数据库·人工智能·自动化
DS随心转小程序6 小时前
ChatGPT 文字怎么转为 word?解析各类转换方案,AI 导出鸭成为高效文档转换新选择
人工智能·chatgpt·word·豆包·deepseek·ai导出鸭
乌恩大侠7 小时前
【AI-RAN】硬件产品:DELL 前传交换机
人工智能·spark·aerial·o-ru·ai-ran