图注意力网络GAT的理论部分可移步这里:向往的GAT(图注意力模型)
简单梳理其中的重点:(有简单改变)
对于顶点i,通过计算它与它的邻接节点(
有了注意力系数(未归一化),再只需softmax即可得到注意力权重,原文在softmax之前加了个LeakyReLU。
此外,论文参考了self-attention的多头注意力机制(multi-head attention),通过多个注意力头来增强节点表示。
OK,现在来到代码模式下才能更深刻地理解其原理。
图注意力层的简单实现,注释较为详细,如有问题可在评论区讨论。
class
简单实验,可以得到更新后的节点表示
![69a29d5e89c4f819d90932fcb462486b.png](https://i-blog.csdnimg.cn/blog_migrate/994be02a4c240fa2007d3bf9af105bc9.png)
下面在图注意力层基础上加入multi-head机制
class
简单实验,实现一个三分类功能
![bfef5b96eb4193d2f50eb4a07f35370b.png](https://i-blog.csdnimg.cn/blog_migrate/60635f26711d2f07bdebd6e435552693.png)
---------------------------------
完结-