当前位置: 首页 > news >正文

图注意力网络GATs - 《Graph Attention Networks》论文详解

目录

  • 前言
  • 正文
    • 图注意力机制层(Graph Attentional Layer)
      • 层的输入
      • 注意力系数
      • 归一化注意力系数
      • 通过邻居节点更新自身节点
      • 层的输出
  • 附作者简介

前言

之前在推荐排序上开发的一个算法,取得了不错的效果。其中就用到了图神经网络模块,该模块的一部分思想源于GraphSage和GATs,因此对GATs的算法及代码理解还是比较深的,上一篇博文介绍了GraphSage:《GraphSage -《Inductive Representation Learning on Large Graphs》论文详解》,本文对GATs算法部分进行剖析。

GATs的核心思想就是 加权聚合周围邻居的信息。其原理与GraphSage的Mean aggregator基本一致,只是作者增加了一些Tricks。

正文

图注意力机制层(Graph Attentional Layer)

层的输入

层的输入是节点特征的集合:
h = { h ⃗ 1 , h ⃗ 2 , … , h ⃗ N } , h ⃗ i ∈ R F \bold{h}=\{\vec{h}_1,\vec{h}_2,\ldots,\vec{h}_N\},\vec{h}_i\in\mathbb{R}^F h={h 1,h 2,,h N},h iRF 其中, N N N 是节点个数, F F F 是每个节点输入的特征维度。

注意力系数

注意力系数是每两个直接邻居节点之间的权重,包括节点本身的注意力系数。(作者表示,使用直接邻居而不是整个图的两个节点之间求注意力系数,相当于注入了结构信息。

e i j = a ( W h ⃗ i   , W h ⃗ j ) = L R e L U ( a ⃗ T [ W h ⃗ i ∥ W h ⃗ j ] ) \begin{align} e_{ij}=a\Big(\bold{W}\vec{h}_i\,, \bold{W}\vec{h}_j\Big) =LReLU\Big( \vec{a}^T [ \bold{W}\vec{h}_i \| \bold{W}\vec{h}_j ] \Big) \end{align} eij=a(Wh i,Wh j)=LReLU(a T[Wh iWh j]) 其中, a → T ∈ R 2 F ′ \overrightarrow{a}^T\in\mathbb{R}^{2F'} a TR2F,为全连接层 a a a 的参数; W ∈ R F ′ × F \bold{W}\in\mathbb{R}^{F'\times F} WRF×F 是对节点特征的一个线性变换的参数,目的是为了增强表达能力; ∥ \| 是concat操作;(1)式的结果生成的注意力系数 e i j ∈ R e_{ij}\in\mathbb{R} eijR,图示如下:
在这里插入图片描述
e i j e_{ij} eij 表示节点 j j j 的特征对节点 i i i 的重要性。


归一化注意力系数

为了使系数在不同节点之间易于比较,对注意力系数进行归一化。
α i j = s o f t m a x j ( e i j ) = e x p ( e i j ) ∑ k ∈ N i e x p ( e i k ) \begin{align} \alpha_{ij}=softmax_j(e_{ij})={\frac {exp(e_{ij})} {\sum_{k\in\mathcal{N_i}} exp(e_{ik})}} \end{align} αij=softmaxj(eij)=kNiexp(eik)exp(eij) 其中, N i \mathcal{N}_{i} Ni 是节点 i i i 的直接邻居节点集合。(2)式表示对节点 i i i 的直接邻居节点之间进行归一化。

综合(1)式可得归一化注意力系数的表达式为:
α i j = e x p ( L R e L U ( a ⃗ T [ W h ⃗ i ∥ W h ⃗ j ] ) ) ∑ k ∈ N i e x p ( L R e L U ( a ⃗ T [ W h ⃗ i ∥ W h ⃗ k ] ) ) \begin{align} \alpha_{ij}={\frac {exp(LReLU\Big( \vec{a}^T [ \bold{W}\vec{h}_i \| \bold{W}\vec{h}_j ] \Big))} {\sum_{k\in\mathcal{N_i}} exp(LReLU\Big( \vec{a}^T [ \bold{W}\vec{h}_i \| \bold{W}\vec{h}_k ] \Big))}} \end{align} αij=kNiexp(LReLU(a T[Wh iWh k]))exp(LReLU(a T[Wh iWh j]))


通过邻居节点更新自身节点

这里使用过注意力机制,对邻居进行加权求和,然后聚合到自己身上,其原理与GraphSage基本一致,只是作者做了一些trick。

  1. 加权求和
    h ⃗ i ′ = σ ( ∑ j ∈ N i α i j W h ⃗ j ) \begin{align} \vec{h}_i'=\sigma\Big( \sum_{j\in\mathcal{N}_i} \alpha_{ij} \bold{W} \vec{h}_j \Big) \end{align} h i=σ(jNiαijWh j) 从上式可以看到,Attention的K,Q,V均来自输入节点,因此GATs的Attention是Self-Attention

  2. Multi-head Attention
    使用 Multi-head 可以稳定 Self-Attention 的学习过程,然后将每个 head 的输出进行concat。
    h ⃗ i ′ = ∥ k = 1 K σ ( ∑ j ∈ N i α i j k W k h ⃗ j ) \begin{align} \vec{h}_i^{\prime}=\|_{k=1}^K \sigma\left(\sum_{j \in \mathcal{N}_i} \alpha_{i j}^k \mathbf{W}^k \vec{h}_j\right) \end{align} h i=k=1Kσ jNiαijkWkh j 其中, ∥ \| 是concat操作, α i j k \alpha_{i j}^k αijk 由第 k k k 个注意机制计算的归一化注意力系数;由于是concat,因此 h ⃗ i ′ ∈ R K F ′ \vec{h}_i^{\prime}\in\mathbb{R}^{KF^{\prime}} h iRKF
    在Transformer的Multi-Head Attention中,对拼接起来的Attention结果,使用一个线性变换再变化原来的维度
    作者认为在在网络的最终(预测)层concat多头注意力结果不合理,因此作者对多头进行了平均:
    h ⃗ i ′ = σ ( 1 K ∑ k = 1 K ∑ j ∈ N i α i j k W k h ⃗ j ) \begin{align} \vec{h}_i^{\prime}= \sigma\left({\frac 1 K}\sum_{k=1}^{K}\sum_{j \in \mathcal{N}_i} \alpha_{i j}^k \mathbf{W}^k \vec{h}_j\right) \end{align} h i=σ K1k=1KjNiαijkWkh j 生成注意力系数及Multi-head Attention的解释如下图:
    在这里插入图片描述
    右图中不同颜色表示不同的head,一共有三个head。

层的输出

输出节点也是节点特征的集合:
h ′ = { h → 1 ′ , h → 2 ′ , … , h → N ′ } , h → i ′ ∈ R F ′ \bold{h}'=\{\overrightarrow{h}_1',\overrightarrow{h}_2',\ldots,\overrightarrow{h}_N'\},\overrightarrow{h}_i'\in\mathbb{R}^{F'} h={h 1,h 2,,h N},h iRF F ′ F' F 是每个节点输出的特征维度。

附作者简介

Petar Velickovic: 佩塔尔·维利奇科维奇,DeepMind的研究员,剑桥大学的附属讲师,剑桥大学克莱尔霍尔的副研究员,研究涉及几何深度学习,由于Petar的突出贡献,被公认为几何深度学习计划中的ELLIS学者。Petar 拥有剑桥大学(三一学院)的计算机科学博士学位。
Guillem Cucurull: 吉列姆·库库尔,Blue Prism研究工程师,从事机器学习和计算机视觉方面的工作。
Arantxa Casanova:蒙特利尔综合理工大学/蒙特利尔学习算法研究所博士生。目前在FAIR, Meta AI工作。
Adriana Romero:Meta AI的研究科学家,也是麦吉尔大学的兼职教授。研究重点是开发能够从多模态数据中学习的算法,推理概念关系,并利用主动和自适应数据采集策略。
Pietro Lio:剑桥大学计算机科学与技术系的正教授、人工智能小组的成员、剑桥人工智能医学中心的成员。研究兴趣集中在开发人工智能和计算生物学模型,以了解疾病的复杂性并解决个性化和精准医学问题。目前的重点是图神经网络建模。Pietro Lio拥有剑桥大学的硕士学位,复杂系统和非线性动力学博士学位(意大利佛罗伦萨大学信息学院工程系)和(理论)遗传学博士学位(意大利帕维亚大学)。
Yoshua Bengio:大牛!

相关文章:

  • 常州网站建设代理商/谷歌下载
  • 私活做网站/百度网盘资源搜索引擎入口
  • 淮北公司做网站/官网seo
  • 什么网站做的靠枕比较有创意/网店推广方式有哪些
  • ai效果图网站/乐事薯片软文推广
  • 淄博网站建设0533cl/seo培训机构排名
  • Java基础和面试题-语言特点,保留字,数据类型
  • 【小嘟陪你刷题10】二叉树的基础面试题
  • 【快速排序】
  • 大闸蟹提货系统asp版源码提供
  • 【简单dp】舔狗舔到最后一无所有
  • QML 应用程序
  • cicd的部署--gitlab
  • 基于JAVA地铁舆情管理系统计算机毕业设计源码+系统+lw文档+部署
  • 【leetcode24-----1比特与2比特字符】
  • Redis第二天
  • 【计算机毕业设计】Java ssm 高校运动会管理系统(开题+源码+论文)
  • Linux文件目录指令