论文里面实现的GAT网络是多注意力机制的,直接理解起来很困难,这里我们就先从单注意力机制的GAT网络说起。
一、单注意力机制
先来看看单注意力下,GAT网络的工作流程(以代码中的demo为例):
上述流程图也可以简化为:
这里将特征提取层、attention layer与hidden layer(output layer)合并为了一个attn head layer,论文中也明确指出GAT仅仅attn head layer组成。
接下来我们将attn head layer视为一层,来介绍其中每个子层的作用:
1、 特征提取层
这里给出几个符号定义:
(1) F1:表示输入attn head layer的特征向量长度
(2) F2:表示attn head layer输出的特征向量长度
(3) nodes:表示图的顶点个数
(4) Feature_in:输入特征向量矩阵,大小为:(nodes,F1)
(5) Feature_out:输出特征向量矩阵,大小为:(nodes,F2)
(6) W1:表示该层的权重矩阵,大小为:(F2,1,F1)。
(7) W1_1:表示W1的第一个卷积核,大小为(1,F1)。
算法流程: