当前位置: 首页 > news >正文

GAT-GRAPH ATTENTION NETWORKS(论文笔记)

 CCF等级:A

发布时间:2018年

代码位置

25年4月21日交

目录

一、简介

二、原理

1.注意力系数

2.归一化

3.特征组合与非线性变换

4.多头注意力

4.1特征拼接操作

4.2平均池化操作

三、实验性能

四、结论和未来工作


一、简介

图注意力网络(GATs),可以在图结构数据上操作的神经网络架构。在GAT模型中,节点能够在它们的邻域特征上进行“关注”,从而隐式地为邻域中的不同节点指定不同的权重。简单理解为节点能够知道关联的每个节点对自己的影响权重是多少。


二、原理

首先将节点转化为向量,然后通过自我注意机制计算每个节点对其邻居的重要性权重(即注意力系数),并通过softmax函数进行归一化。接下来,利用这些归一化的注意力系数对邻近节点的特征加权求和,得到每个节点的新特征表示,并通常应用非线性激活函数进一步处理。为了增强模型的表现力和稳定性,GAT可以采用多头注意力机制独立执行上述过程多次,并将结果拼接或平均,最终生成用于分类或其他任务的节点特征表示。

1.注意力系数

先将节点转化为向量,节点h_i的向量为\overrightarrow{h_i}。(这一部分不重要,就不展开讲解)

e_{ij} = a(W\overrightarrow{h_i},W\overrightarrow{h_j})

  • \overrightarrow{h_i}\overrightarrow{h_j}分别是节点i和节点j的特征向量。
  • W是一个权重矩阵,用于线性变换这些特征向量。
  • a(\cdot , \cdot )是一个注意力机制函数,用于计算两个变换后的特征向量之间的相似度或相关性。

使用权重矩阵W对节点进行线性变换,再通过注意力机制函数a(\cdot , \cdot )计算这两个变换后特征向量之间的注意力分数e_{ij}

节点i对其邻居节点j的注意力系数a_{ij}

注意:e_{ij}只衡量了节点i关注节点j的程度,而不是同时考虑ji关注程度。换句话说e_{ij}e_{ji}是独立计算的,它们分别代表了从节点i到节点j和从节点j到节点i的注意力权重,这允许模型对每个方向的重要性进行不同的赋值。

2.归一化

a_{ij} = softmax_j(e_{ij}) = \frac{\exp (e_{ij})}{\sum_{k \in N_i} \exp (e_{ik})}

  • \exp(e_{ij})是注意力分数e_{ij}的指数函数值。
  • \sum_{k \in N_i} \exp(e_{ik})是节点i所有邻居节点k的注意力分数的指数函数值之和。
  • N-i表示节点i的邻居节点集合。

通过softmax函数,每个节点i对其邻居节点j的注意力权重a_{ij}被归一化到[0,1]区间内,并且所有邻居节点的注意力权重之和为 1。归一化不仅提高了模型性能,还增强了模型的鲁棒性和解释性。

计算注意力系数和归一化的公式可以合并为

\alpha_{ij} = \frac{\exp\left(\text{LeakyReLU}\left(\tilde{\mathbf{a}}^T [\mathbf{W} \vec{h}_i \| \mathbf{W} \vec{h}_j]\right)\right)}{\sum_{k \in N_i} \exp\left(\text{LeakyReLU}\left(\tilde{\mathbf{a}}^T [\mathbf{W} \vec{h}_i \| \mathbf{W} \vec{h}_k]\right)\right)}

3.特征组合与非线性变换

利用标准化后的注意力系数a_{ij},对邻近节点j的特征进行加权求和,从而得到每个节点的新特征表示。

\overrightarrow{h'_i} = \sigma (\sum_{j \in N_i} \alpha_{ij}W\overrightarrow{h_j})

  • \overrightarrow{h'_i}是节点i更新后的特征向量。
  • \alpha _{ij}表示经过softmax归一化后,邻居节点j对节点i的注意力权重。
  • W是一个可学习的权重矩阵,用于对输入特征进行线性变换。
  • N_i表示节点i的邻居集合。
  • \sigma是一个非线性激活函数,例如ReLULeakyReLU,用于引入非线性。

通过上述步骤,图注意力网络(GATs)能够动态地调整每个节点对其邻居节点的关注度,并据此更新自身的特征表示,以捕捉更丰富的局部结构信息。

4.多头注意力

通过为每个注意力头使用不同的权重矩阵,模型可以捕捉到不同类型的特征关系。

类似于卷积神经网络中使用不同的卷积核计算。

多头注意力机制 类似于多尺度特征提取,不同尺度的特征通过不同的卷积核提取。

多头注意力机制来计算节点\overrightarrow{h_i}的新特征表示\overrightarrow{h'i}

4.1特征拼接操作

\vec{h}_i' = \parallel_{k=1}^{K} \sigma\left( \sum_{j \in N_i} \alpha_{ij}^k \mathbf{W}^k \vec{h}_j \right)

  • \parallel_{k=1}^{K}表示将K个注意力头的结果进行拼接,形成最终的特征表示。
  • W^k是第k个注意力头对应的权重矩阵,用于对邻居节点j的特征向量\overrightarrow{h_j}进行线性变换。
  • \sum_{j \in N_i} \alpha_{ij}^k \mathbf{W}^k \vec{h}_j表示对所有邻居节点j的特征向量进行加权求和。这里的N_i是节点i的邻居节点集合。

4.2平均池化操作

\vec{h}_i' = \sigma\left( \frac{1}{K} \sum_{k=1}^{K} \sum_{j \in N_i} \alpha_{ij}^k \mathbf{W}^k \vec{h}_j \right)

  • \frac{1}{K} \sum_{k=1}^{K}表示对K个注意力头的结果进行平均池化,即将K个注意力头的结果相加后除以K

总结:

使用单一的注意力权重和权重矩阵,适用于简单的注意力机制。

使用多头注意力机制,特征拼接操作,并通过特征拼接操作组合多个注意力头的结果,从而增强模型的表达能力。

使用多头注意力机制,平均池化操作,并通过平均池化操作组合多个注意力头的结果,从而增强模型的表达能力。


三、实验性能

Cora、Citeseer和Pubmed分类准确率的结果总结。GCN-64 *对应于计算64个隐藏特征的最佳GCN结果。

对于PPI数据集,以微平均F1分数表示的结果摘要。GraphSAGE*对应于我们仅通过修改其架构即可获得的最佳GraphSAGE结果。


四、结论和未来工作

1.解决稀疏矩阵运算限制的问题:使用的张量操作框架仅支持秩2张量的稀疏矩阵乘法,这限制了批次处理的能力。

2.扩展模型深度:采用跳连接等技术可以适当扩展模型的深度,从而提高其表达能力。

相关文章:

  • 计算机组成原理笔记(十四)——3.4指令类型
  • 某益网络面经总结
  • 单链表专题(C语言)
  • 基于SpringBoot的电影订票系统(源码+数据库+万字文档+ppt)
  • 架构师面试(三十):IM 分层架构
  • 架构生命周期(高软57)
  • CSS padding(填充)学习笔记
  • C# Winform 入门(16)之图片合成
  • Linux--线程概念与控制
  • 突破边界:从 C# 到 Python 的范式跃迁与实战指南
  • 图像分割基础学习
  • vLLM部署Qwen2.5-Omni 提供API的详细步骤
  • CSE lesson2 chrony服务器
  • CSS margin(外边距)学习笔记
  • Redash 25.1.0 简配部署
  • vscode中gcc编译器中文路径调试成功方法
  • 免费送源码:Java+SpringBoot+MySQL SpringBoot网上宠物领养管理系统 计算机毕业设计原创定制
  • zk源码—7.ZAB协议和数据存储一
  • 五子棋(测试报告)
  • Web前端之Vue+Element实现表格动态复杂的合并行功能、localeCompare、forEach、table、push、sort、Map
  • 空调+零食助顶级赛马备战,上海环球马术冠军赛即将焕新登场
  • 美的集团一季度净利增长38%,库卡中国机器人接单增超35%
  • 2025年度中国青年五四奖章暨新时代青年先锋奖评选揭晓
  • 工行一季度净赚841亿元降3.99%,营收降3.22%
  • 王毅:妥协退缩只会让霸凌者得寸进尺
  • 太好玩了!坐进大卫·霍克尼的敞篷车进入他画笔下的四季