论文笔记 Graph Attention Networks

2018 ICLR

1 intro

1.1. GCN的不足

  • 无法完成inductive任务
    • inductive任务是指:
      • 训练阶段与测试阶段需要处理的graph不同。
      • 通常是训练阶段只是在子图上进行,测试阶段需要处理未知的顶点。
    • GGN 的参数依赖于邻接矩阵A/拉普拉斯矩阵L,所以换了一张图,就会有不同的A和L
  • 处理有向图的瓶颈,不容易实现分配不同的学习权重给不同的邻居

1.2 本文思路

  • 引入masked self-attentional layers 来改进前面图卷积的缺点
    • 对不同的相邻节点分配相应的权重,既不需要矩阵运算,也不需要事先知道图结构
    • attention为每个节点分配不同权重,关注那些作用比较大的节点,而忽视一些作用较小的节点

2 GAT

  • 和一般注意力机制一样,GAT的计算也分为两步
    • 计算注意力系数
    • 加权求和

2.1 输入 输出

2.1.1 输入

单个 graph attentional layer的输入是一个节点特征向量集合

  • N是节点数量
  • F是每个节点特征维度

2.1.2 输出

新的节点特征集合

 

 2.2 计算注意力系数

2.2.1 全局attention的弊端

  • self-attention是一种Global graph attention,会将注意力分配到图中所有的节点上,但是这样会存在以下问题
    • 1,丢失结构信息
      • 基于空间相似假设,一个样本与一定范围内的样本关系较密切
    • 2,样本较多的时候,计算量非常大

2.2.2 masked self-attention

  • 为了解决这一问题,作者使用了一种 masked attention 的方法
    • 对于一个样本来说只利用邻域内的样本计算注意力系数和新的表示
    • 即仅将注意力分配到节点的一阶邻居节点集上
  • 针对每个节点执行 self-attention机制
      • eij就是i点和其邻居j点的注意力相关系数
      • 为一个映射函数(这边计算eij的时候漏了一个激活函数,论文中使用的是LeakyReLU)
      • hi,hi是点i和点j的特征向量 
  • 计算完点i和所有邻居的注意力相关系数后,引入softmax对所有相邻节点进行正则化
    • || 表示拼接(concat)操作

2.2.3 加权求和

  • 得到归一化的注意力系数后,使用归一化的值计算对应特征的线性组合,作为每个顶点这一层最后的输出特征
    • 论文笔记 Graph Attention Networks_第1张图片

     

2.2.4 多头自注意力

  • 使用K个独立的 attention 机制,然后他们的特征拼接在一起

     

    • 论文笔记 Graph Attention Networks_第2张图片
    • 这样每一层输出的维度为KF‘
  • 对于最后一个卷积层,不采用拼接的方式合并不同的attention机制的结果了,而是采用求平均的方式进行处理
    • 论文笔记 Graph Attention Networks_第3张图片

     

3 实验

3.1 数据集

论文笔记 Graph Attention Networks_第4张图片 3.2 实验结果

3.2.1 transductive learning

训练和测试在一张图上

论文笔记 Graph Attention Networks_第5张图片

 3.2.2 inductive learning

训练和测试不在一张图上

论文笔记 Graph Attention Networks_第6张图片

 

论文笔记 Graph Attention Networks_第7张图片

 

你可能感兴趣的:(论文笔记,论文阅读)