前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Graph Attention Networks

Graph Attention Networks

作者头像
超然
发布2018-10-11 09:54:36
1.1K0
发布2018-10-11 09:54:36
举报
文章被收录于专栏:超然的博客超然的博客

 Graph Attention Networks

paper:https://mila.quebec/wp-content/uploads/2018/07/d1ac95b60310f43bb5a0b8024522fbe08fb2a482.pdf

code & data:https://github.com/PetarV-/GAT

1. 创新点

通过新型神经网络对图形结构数据进行操作,利用隐藏的自注意层赋予邻域节点不同重要性,并无需提前了解整个网络结构

通过堆叠这样的一些层,这些层里的节点能够注意其邻近节点的特征,不需要进行成本高昂的矩阵运算(例如反演),也无需事先知道图的结构

1.1. attention 引入目的

  • 为每个节点分配不同权重
  • 关注那些作用比较大的节点,而忽视一些作用较小的节点
  • 在处理局部信息的时候同时能够关注整体的信息,不是用来给参与计算的各个节点进行加权的,而是表示一个全局的信息并参与计算

1.2. 框架特点

  • attention 计算机制高效,为每个节点和其每个邻近节点计算attention 可以并行进行
  • 能够按照规则指定neighbor 不同的权重,不受邻居数目的影响
  • 可直接应用到归纳推理问题中

2. 模型

2.1. feature 处理

通过线性变换生成新的更强的 feature

输入:node feature的集合

( N 为node 数量, F 为每个node 的 feature 数--feature vector 长度)

输出:

( 使用W 将每个特征转换为可用的表达性更强的特征)

2.2. 计算相互关注

每两个node 间都有了相互关注机制(用来做加权平均,卷积时,每个node 的更新是其他的加权平均

共享的关注机制

通过node feature 计算两个node 间的关系

用来做加权平均需要转换一下参数

(这个系数 α 就是每次卷积时,用来进行加权求和的系数)

本文采取的计算attention coefficient的函数a是一个单层的前馈网络,LeakyReLU 处理得

( || 表示串联/ 连接,一旦获得,归一化的相互注意系数用来计算对应特征的线性组合,以用作每个节点的最终输出特征)

左图:

在模型中应用相互注意机制a(Whi,Whj),通过权重向量 a 参数化,应用 LeakyReLU 激活

右图:

节点1在邻域中具有多端注意机制,不同的箭头样式表示独立的注意力计算,通过连接或平均每个头部获取 h1`

2.3. multi-head attention机制

不只用一个函数a进行attention coefficient的计算,而是设置K个函数,每一个函数都能计算出一组attention coefficient,并能计算出一组加权求和用的系数,每一个卷积层中,K个attention机制独立的工作,分别计算出自己的结果后连接在一起,得到卷积的结果,即

假如有 k 个独立的相互注意机制同时计算,则集中其特征,可得到特征表示

对于最后一个卷积层,如果还是使用multi-head attention机制,那么就不采取连接的方式合并不同的attention机制的结果了,而是采用求平均的方式进行处理,即

3. 对比

  • 计算很高效,attention机制在所有边上的计算是可以并行的,输出的feature的计算在所有节点上也可以并行
  • 和GCN不同,本文的模型可以对同一个 neighborhood 的node分配不同的重要性,使得模型的容量(自由度)大增。
    • 分析这些学到的attentional weights有利于可解释性(可能是分析一下模型在分配不同的权重的时候是从哪些角度着手的)
  • attention机制是对于所有edge共享的,不需要依赖graph全局的结构以及所有node的特征
  • 2017年Hamilton提出的inductive method 对于neighborhood的模式处理固定,不灵活

4. 实验

  • transductive learning
  • inductive learning

4.1. transductive learning

  • 两层 GAT
  • 在Cora 数据集上优化网络结构的超参数,应用到Citeseer 数据集
  • 第一层 8 head, F`=8 ELU 作为非线性函数
  • 第二层为分类层,一个 attention head 特征数C,后跟 softmax 函数
    • 为了应对小训练集,正则化(L2)
  • 两层都采用 0.6 的dropout
    • 相当于计算每个node位置的卷积时都是随机的选取了一部分近邻节点参与卷积

4.2. inductive learning

  • 三层GAT 模型
  • 前两层 K=4, F1=256 ELU作为非线性函数
  • 最后一层用来分类 K=6, F`=121 后跟logistics sigmoid 激活函数
  • 该任务中,训练集足够大不需要使用 正则化 和 dropout

两个任务都是用Glorot初始化初始的,并且是用Adam SGD来最小化交叉熵进行优化

4.3. 实验结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  Graph Attention Networks
    • 1. 创新点
      • 1.1. attention 引入目的
      • 1.2. 框架特点
    • 2. 模型
      • 2.1. feature 处理
      • 2.2. 计算相互关注
      • 2.3. multi-head attention机制
    • 3. 对比
      • 4. 实验
        • 4.1. transductive learning
        • 4.2. inductive learning
        • 4.3. 实验结果
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档