GAT
这个模型其实就是求取i节点周围节点的ATTENTION系数,我再通过这个ATTENTION系数对周围邻居节点进行一个在线求和,那么我就求得了节点聚合了周围节点的特征。
α
i
j
\alpha_{ij}
αij是i节点和j节点的注意力机制权重系数;
W
W
W是关于
h
→
i
\overrightarrow{h}_i
hi和
h
→
j
\overrightarrow{h}_j
hj的可学习的参量;
①将这两个向量拼接在一起,再经过一个可学习的参数
α
→
T
\overrightarrow{\alpha}^T
αT,就可以得到i节点和j节点的ATTENTION的值;
②再对它进行一个归一化的操作,类似Softmax;
③再用这个系数
α
i
j
\alpha_{ij}
αij,聚合i节点周围的邻居节点
h
→
j
\overrightarrow{h}_j
hj,乘以可学习的参数W,那这样就聚合了周围邻居节点的特征
h
→
i
’
\overrightarrow{h}_i^’
hi’,作为下一层节点的特征;
举个例子:
多头注意力机制:
多次使用ATTENTINO系数来计算节点的特征,能更加表达节点i和节点j之间的相关性;
三种颜色,代表了不同的ATTENTION系数;(类似于多通道,不同的通道提取的信息方式不同)
cocat:将向量拼在一起;如果是最后一层是直接连接softmax,则这种cocat方式是没有必要的,同个节点的三种表示使用,softmax不能很好的表示每一个类别是怎么样的,而是要计算平均值;如果最后一层是连接全连接层,那就无所谓了;
图网路的应用
有一些节点我们知道它的label,有一些节点我们不知道它的label,求未知节点的label;
加了一个新的节点x,我们可以推理出它所属的label;
先在老的图上面学习,给了一张新的图,我们要推理出来这张图中每个节点所属的类别;
为什么不能用GCN呢?
因为我们使用GCN的时候需要对邻接矩阵进行相乘 ,这个时候邻接矩阵变化了;