这一篇论文是我读研期间,本校(安徽大学)计算机学院的江波老师在2022年5月份发表的一篇论文,由于我自己学习的是图神经网络的方向,而且也是我本校的老师所发的paper,所以在此写下我对此篇论文的笔记,如有不足和错误,请包涵~

- 引言 -

图注意网络已经在图数据学习的任务中得到了广泛的研究和应用。但是各种GAT模型都通常都存在两种限制

1、现有方法普遍采用自注意机制计算所有图边的注意系数,这通常需要昂贵的计算量

2、现有的图注意模型返回所有边的密集注意系数,用于消息聚合,因此通常对图中的噪声边敏感,如错误或不希望的冗余连接。

而稀疏的图注意网络SGAT提出可以通过引入额外的掩码指示来学习稀疏连通图来解决问题2。但是其中稀疏遗传算法的优化往往带来较高的计算负担。

而在峰值神经网络(SNNs)中,可以通过将输入信号数据传输到离散的峰值序列中进行廉价的计算,也可以返回稀疏的输出。作者从中收到启发,提出利用SNN学习图注意,并提出了一种新的图峰值注意网络(GSAT)用于图数据表示和学习。


- 尖峰神经网络(SNNs) -

众所周知,SNNs的关键在于以较低的能量消耗对离散的锋电位序列进行信息传播和转换。

脉冲神经元主要包含三个操作:神经元充电神经元放电神经元复位

设X(t)X^{(t)}X(t)和V(t−1)V^{(t-1)}V(t−1)为步骤t的输入和膜电位,V(0)=0V^{(0)}=0V(0)=0

1、充电C:V(t)=C(V(t−1),X(t))V^{(t)} = C(V^{(t−1)}, X^{(t)})V(t)=C(V(t−1),X(t))

并且不同的尖峰神经元模型可以具有不同形式的充电函数。

2、放电:S(t)=F(V(t)−µ)S^{(t)} = F(V^{(t)} − µ)S(t)=F(V(t)−µ)

其中S(t)S^{(t)}S(t)代表神经元放电后的输出脉冲,µ是放电阈值

F(x)通常叫阶跃函数:

F(x) = 1 , x>=0

F(x) = 0 , otherwise

3、复位:V(t)=R(V(t),µ)V^{(t)} = R(V^{(t)}, µ)V(t)=R(V(t),µ)

其中V(t)V^{(t)}V(t)是放电后的膜电位,用于下一个迭代步骤。在许多SNN中,可以简单的将复位R定义为R(V(t),µ)=V(t)−µR(V^{(t)}, µ) = V^{(t)}−µR(V(t),µ)=V(t)−µ


图尖峰注意网络

SNNs使用离散脉冲来传播和转换边缘信息,因此需要较低的能量成本,并且还可以返回稀疏输出。因此,作者提出利用基于SNN模型的注意力学习来学习稀疏注意力系数。

总体而言,所提出的GSAT主要由两个模块组成:尖峰注意力计算特征聚合,如Figure 1所示。


- 尖峰注意力计算 -

改写GAT中获取注意系数公式

首先将θ∈[1,2d']拆分成两个维度为[1,d']的向量θ1和θ2,则获取注意力的公式则变成:

αij=[hi∣∣hj]θTα_{ij} = [h_{i} || h_{j}]θ^Tαij​=[hi​∣∣hj​]θT -> αij=hiθ1T+hjθ2Tα_{ij} = h_{i}θ_1^T+ h_{j}θ_2^Tαij​=hi​θ1T​+hj​θ2T​

所有节点获取注意系数的过程变成:

S=HΘS = HΘS=HΘ

α=S[:,1]L+(S[:,2]L)Tα = S[:, 1]L + (S[:, 2]L)^Tα=S[:,1]L+(S[:,2]L)T,

这里的S其实是由后面峰值神经元的放电函数得到的,这也是为什么可以利用SNN替换自注意力的地方。

其中H∈[n,d']代表经过线性变换后的节点表示矩阵,Θ = [θ1T∣∣θ2T][θ^T_1||θ^T_2 ][θ1T​∣∣θ2T​]∈[d',2],得到S∈[n,2]

由于拆分了自身的注意力系数和邻居节点的注意系数,所以利用L = (1,1,1,...,1)∈ [1,n],将自身的注意力系数和邻居节点的注意力系数聚合到一起得到所有节点的注意系数矩阵α,其中αijα_{ij}αij​表示节点j对节点i的注意系数。

利用尖峰神经网络实现图形注意力计算

该部分包括脉冲编码,神经元充电,神经元放电、神经元复位和注意力评估

1、Spiking encoding脉冲编码

将线性变换后的连续的节点表示H转换成离散的脉冲序列。

设P(t)=[pij(t)]∈Rn×d′P^{(t)} = [p^{(t)}_{ij} ] ∈ R^{n×d'}P(t)=[pij(t)​]∈Rn×d′为随机生成的矩阵, $p^{(t)}{ij} ∈ [0, 1] ,采用概率为,采用概率为,采用概率为p^{(t)}{ij}$的基于概率的泊松编码器将输入数据H传输到离散尖峰序列:

2、Neuronal charging神经元充电

经过上述离散锋电位编码后,得到作为峰值神经元输入的峰值序列Z(t)。然后,我们采用尖峰神经元充电操作来实现注意力计算:

其中的Θ也就是GAT中的可训练的参数矩阵,也是在改写获得注意力公式的时候,拆分的那个Θ

3、Neuronal firing神经元放电

使用尖峰神经元放电函数F()来进行离散操作:

4、Neuronal reset神经元复位

在放电操作之后,作者需要重置脉冲神经元的膜电位。在本文中,作者采用软复位将神经元复位函数R()定义为:

5、注意力估计

通过迭代T次之后,可以得到一些列系数的尖峰序列{S(1), S(2) · · · S(T)},利用平均运算来输出最终的尖峰序列后,计算注意系数就利用改写后的公式:

为了保持关注系数α的稀疏特性,我用对称归一化来将α归一化为:

整个过程可以通过算法1总结而得:


- 特征聚合 -

根据提出的尖峰注意计算,可以得到稀疏图的注意系数矩阵α,然后根据GAT的聚合方式,进行邻居聚合(后面和GAT一样使用多头注意稳定学习过程):

同样的,和传统的GAT类似,GSAT也同样可以采用多层神经网络架构学习下游任务的图节点表示,例如半监督学习、聚类等等。


- 总结 -

优点

1、由于SNN将输入数据传输到离散的spike train中,从而在离散的train空间中进行注意力计算,所以GSAT可以执行非常便宜的计算。

2、由于SNN返回稀疏输出,GSAT可以自然生成稀疏注意系数,从而对选择性邻居进行消息聚合,从而实现鲁棒的w.r.t图攻击和噪声。

论文贡献

1、我们提出了一种新的基于SNN的尖峰注意机制,以稀疏且高效地学习图边注意。

2、基于提出的峰值注意机制,我们开发了一种新型高效的图峰值注意网络(GSAT),用于鲁棒的图数据表示和学习。

3、在多个数据集上的实验结果证明了所提出的GSAT模型的有效性、效率和鲁棒性。

Spiking GATs(基于尖峰神经网络的学习图注意)论文学习笔记相关推荐

  1. 直播预告 | 基于层级超图匹配的图相似度学习网络

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 12月2日晚 7:30-8:30 AI TIME 特别邀请了新加坡国立大学博士后张震,给大家带来分享:<基于层级超图匹配的图相似度 ...

  2. 基于机器视觉的图像处理缺陷检测方法论文学习

    基于机器视觉的图像处理缺陷检测方法论文学习 Machine Vision based Defect Detection Approach using Image Processing Abstract ...

  3. 金融风控项目实战-银行信用卡流失预测模型_基于ANN神经网络_金融培训_论文科研_毕业设计

    业务背景 根据央行公布的数据显示,全国性银行信用卡和借贷合一卡的发卡量增速从2017年同比增速26.35%的高点逐年下降,截至2020年同比增速降至4.26%.银行信用卡发卡增速明显放缓的背景下,预防 ...

  4. 银行信用卡流失预测模型_基于ANN神经网络_金融培训_论文科研_毕业设计

    业务背景 根据央行公布的数据显示,全国性银行信用卡和借贷合一卡的发卡量增速从2017年同比增速26.35%的高点逐年下降,截至2020年同比增速降至4.26%.银行信用卡发卡增速明显放缓的背景下,预防 ...

  5. 图割论文阅读笔记:“GrabCut” — Interactive Foreground Extraction using Iterated Graph Cuts

    "GrabCut" - Interactive Foreground Extraction using Iterated Graph Cuts 摘要 经典的图像分割使用纹理(颜色) ...

  6. 场景图生成论文阅读笔记 之 Neural Motifs

    CVPR2018 <Neural Motifs: Scene Graph Parsing with Global Context> 文章目录 <Neural Motifs: Scen ...

  7. 场景图生成论文阅读笔记 之 Graph R-CNN for Scene Graph Generation

    2018 ECCV <Graph R-CNN for Scene Graph Generation> 比较早使用图网络进行场景图生成的论文,对后续工作具有一定的启发性,在这做一记录 文章目 ...

  8. 学习日记2020-11-23论文学习

    Attentive Feedback Network for Boundary-Aware Salient Object Detection. 1.Attentive Feedback Network ...

  9. 基于Python多元线性回归、机器学习、深度学习在近红外光谱分析中的实践应用培训班

    一 Python入门基础 [理论讲解与案例演示实操练习] 1.Python环境搭建( 下载.安装与版本选择). 2.如何选择Python编辑器?(IDLE.Notepad++.PyCharm.Jupy ...

最新文章

  1. 11.5. blockquote
  2. vsftp本地用户,虚拟用户,匿名用户同时工作
  3. android 填满手机磁盘空间方法
  4. 循环神经网络RNN的基本组件(五)
  5. 通过CMD命令行创建和使用Android 模拟器 AVD
  6. Opencv 图片 读取,显示,保存基本操作
  7. python+sklearn实现随机森林模型
  8. 树莓派GPIO引脚介绍
  9. 兔子会死怎么办? 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,假如兔子会死
  10. 2022-2028年中国SIP行业竞争现状及投资策略研究报告
  11. Unix/BSD/Linux的口令机制初探(转)
  12. SSD ECC中的LDPC编解码原理
  13. netcat使用总结
  14. 所有学习资源都给你你汇总好啦!
  15. 线搜索(line search)方法
  16. 基于Bootstrap的超酷jQuery开关按钮插件
  17. 二元Logistic回归
  18. 谁说必须多组学?非靶代谢基础研究思路及biomarker发现之路
  19. 【DDD落地实践系列】DDD 领域驱动设计落地实践:六步拆解 DDD
  20. IGMP Snooping和组播VLAN技术原理

热门文章

  1. oracle失效对象是什么意思,Oracle中无效数据库对象的处理方法
  2. Android SDK22以下 读写手机存储权限获取失败问题处理方法
  3. python 浮点数字符串转int类型
  4. VIC之PL192使用介绍
  5. 人工蜂群算法(ABC算法)Java实现
  6. python写井字棋_python实现简单井字棋游戏
  7. uniapp 实现富文本编辑器【小程序端】
  8. OFD文件怎么转换成PDF格式?这两种方法轻松实现转换
  9. 如何在Axure中动态加载图表(Axhub Charts)
  10. 《常用典型机械零件制图规范》