paper:https://mila.quebec/wp-content/uploads/2018/07/d1ac95b60310f43bb5a0b8024522fbe08fb2a482.pdf
code & data:https://github.com/PetarV-/GAT
通过新型神经网络对图形结构数据进行操作,利用隐藏的自注意层赋予邻域节点不同重要性,并无需提前了解整个网络结构
通过堆叠这样的一些层,这些层里的节点能够注意其邻近节点的特征,不需要进行成本高昂的矩阵运算(例如反演),也无需事先知道图的结构
通过线性变换生成新的更强的 feature
输入:node feature的集合
( N 为node 数量, F 为每个node 的 feature 数--feature vector 长度)
输出:
( 使用W 将每个特征转换为可用的表达性更强的特征)
每两个node 间都有了相互关注机制(用来做加权平均,卷积时,每个node 的更新是其他的加权平均
共享的关注机制
通过node feature 计算两个node 间的关系
用来做加权平均需要转换一下参数
(这个系数 α 就是每次卷积时,用来进行加权求和的系数)
本文采取的计算attention coefficient的函数a是一个单层的前馈网络,LeakyReLU 处理得
( || 表示串联/ 连接,一旦获得,归一化的相互注意系数用来计算对应特征的线性组合,以用作每个节点的最终输出特征)
左图:
在模型中应用相互注意机制a(Whi,Whj),通过权重向量 a 参数化,应用 LeakyReLU 激活
右图:
节点1在邻域中具有多端注意机制,不同的箭头样式表示独立的注意力计算,通过连接或平均每个头部获取 h1`
不只用一个函数a进行attention coefficient的计算,而是设置K个函数,每一个函数都能计算出一组attention coefficient,并能计算出一组加权求和用的系数,每一个卷积层中,K个attention机制独立的工作,分别计算出自己的结果后连接在一起,得到卷积的结果,即
假如有 k 个独立的相互注意机制同时计算,则集中其特征,可得到特征表示
对于最后一个卷积层,如果还是使用multi-head attention机制,那么就不采取连接的方式合并不同的attention机制的结果了,而是采用求平均的方式进行处理,即
两个任务都是用Glorot初始化初始的,并且是用Adam SGD来最小化交叉熵进行优化