简略版理解
背景
当前的局限性:
CNN数据具有规则的网格结构,但现实数据往往是不规则的(即图结构)
本文的核心思想:
每个节点在计算表示时:对邻居节点进行 attention 加权
GAT 架构
GAT 通过堆叠多个图注意力层构建深层网络,每一层都会对节点及其邻居的特征进行加权聚合
GAT 的计算流程
每一层:
线性变换
对所有节点的输入特征进行一次共享的线性变换
计算邻居 attention
在得到新的特征表示后,模型会为每个节点计算其与邻居节点之间的注意力系数,所有邻居的注意力系数会通过Softmax 函数进行归一化
加权聚合
在得到注意力权重后,节点会对所有邻居节点的特征进行加权求和:
-
权重越大的邻居,对节点表示的贡献越大
-
权重较小的邻居影响会被削弱
激活函数
Multi-head attention
用多个 attention:
-
稳定训练
-
提高表达能力
GCN:
邻居平均
GraphSAGE:
邻居聚合
GAT:
邻居加权(attention)