CCF等级:A
发布时间:2018年
代码位置
25年4月21日交
目录
一、简介
二、原理
1.注意力系数
2.归一化
3.特征组合与非线性变换
4.多头注意力
4.1特征拼接操作
4.2平均池化操作
三、实验性能
四、结论和未来工作
一、简介
图注意力网络(GATs),可以在图结构数据上操作的神经网络架构。在GAT模型中,节点能够在它们的邻域特征上进行“关注”,从而隐式地为邻域中的不同节点指定不同的权重。简单理解为节点能够知道关联的每个节点对自己的影响权重是多少。
二、原理
首先将节点转化为向量,然后通过自我注意机制计算每个节点对其邻居的重要性权重(即注意力系数),并通过softmax函数进行归一化。接下来,利用这些归一化的注意力系数对邻近节点的特征加权求和,得到每个节点的新特征表示,并通常应用非线性激活函数进一步处理。为了增强模型的表现力和稳定性,GAT可以采用多头注意力机制独立执行上述过程多次,并将结果拼接或平均,最终生成用于分类或其他任务的节点特征表示。
1.注意力系数
先将节点转化为向量,节点的向量为
。(这一部分不重要,就不展开讲解)
- 和 - 分别是节点 - 和节点 - 的特征向量。 
- 是一个权重矩阵,用于线性变换这些特征向量。 
- 是一个注意力机制函数,用于计算两个变换后的特征向量之间的相似度或相关性。 
使用权重矩阵对节点进行线性变换,再通过注意力机制函数
计算这两个变换后特征向量之间的注意力分数
。

节点对其邻居节点
的注意力系数
注意:只衡量了节点
关注节点
的程度,而不是同时考虑
对
关注程度。换句话说
和
是独立计算的,它们分别代表了从节点
到节点
和从节点
到节点
的注意力权重,这允许模型对每个方向的重要性进行不同的赋值。
2.归一化
- 是注意力分数 - 的指数函数值。 
- 是节点 - 所有邻居节点 - 的注意力分数的指数函数值之和。 
- 表示节点 - 的邻居节点集合。 
通过函数,每个节点
对其邻居节点
的注意力权重
被归一化到
区间内,并且所有邻居节点的注意力权重之和为 1。归一化不仅提高了模型性能,还增强了模型的鲁棒性和解释性。
计算注意力系数和归一化的公式可以合并为
3.特征组合与非线性变换
利用标准化后的注意力系数,对邻近节点
的特征进行加权求和,从而得到每个节点的新特征表示。
- 是节点 - 更新后的特征向量。 
- 表示经过 - 归一化后,邻居节点 - 对节点 - 的注意力权重。 
- 是一个可学习的权重矩阵,用于对输入特征进行线性变换。 
- 表示节点 - 的邻居集合。 
- 是一个非线性激活函数,例如 - 或 - ,用于引入非线性。 
通过上述步骤,图注意力网络(GATs)能够动态地调整每个节点对其邻居节点的关注度,并据此更新自身的特征表示,以捕捉更丰富的局部结构信息。
4.多头注意力
通过为每个注意力头使用不同的权重矩阵,模型可以捕捉到不同类型的特征关系。
类似于卷积神经网络中使用不同的卷积核计算。
多头注意力机制 类似于多尺度特征提取,不同尺度的特征通过不同的卷积核提取。

多头注意力机制来计算节点的新特征表示
4.1特征拼接操作
- 表示将 - 个注意力头的结果进行拼接,形成最终的特征表示。 
- 是第 - 个注意力头对应的权重矩阵,用于对邻居节点 - 的特征向量 - 进行线性变换。 
- 表示对所有邻居节点 - 的特征向量进行加权求和。这里的 - 是节点 - 的邻居节点集合。 
4.2平均池化操作
- 表示对 - 个注意力头的结果进行平均池化,即将 - 个注意力头的结果相加后除以 - 。 
总结:
使用单一的注意力权重和权重矩阵,适用于简单的注意力机制。
使用多头注意力机制,特征拼接操作,并通过特征拼接操作组合多个注意力头的结果,从而增强模型的表达能力。
使用多头注意力机制,平均池化操作,并通过平均池化操作组合多个注意力头的结果,从而增强模型的表达能力。
三、实验性能

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

对于PPI数据集,以微平均F1分数表示的结果摘要。GraphSAGE*对应于我们仅通过修改其架构即可获得的最佳GraphSAGE结果。
四、结论和未来工作
1.解决稀疏矩阵运算限制的问题:使用的张量操作框架仅支持秩2张量的稀疏矩阵乘法,这限制了批次处理的能力。
2.扩展模型深度:采用跳连接等技术可以适当扩展模型的深度,从而提高其表达能力。



















