其他分享
首页 > 其他分享> > 图表示学习——GAT 19年学习记录

图表示学习——GAT 19年学习记录

作者:互联网

论文标题:

GRAPH ATTENTION NETWORKS——ICLR2018

论文链接:

https://openreview.net/pdf?id=rJXMpikCZicon-default.png?t=L9C2https://openreview.net/pdf?id=rJXMpikCZ

文章背景、解决问题

针对图结构数据,本文提出了一种GAT(graph attention networks)网络。该网络使用masked self-attention层解决了之前基于图卷积(或其近似)的模型所存在的问题(这些模型都依赖于图的结构,因此,在特定图结构上训练得到的模型往往不可以直接被使用到其他图结构上)。

masked attention的含义 :只计算节点 i 的相邻的节点 j

在GAT中,图中的每个节点可以根据邻节点的特征,为其分配不同的权值。

GAT的另一个优点在于,无需使用预先构建好的图。因此,GAT可以解决一些基于谱的图神经网络中所具有的问题。

GAT模型可以有效地适用于(基于图的)归纳学习问题与转导学习问题。

创新点

(1)引入masked self-attentional layers 来改进前面图卷积graph convolution的缺点

(2)对不同的相邻节点分配相应的权重,既不需要矩阵运算,也不需要事先知道图结构

(3)针对每一个节点运算相应的隐藏信息,在运算其相邻节点的时候引入注意力机制:

高效:针对相邻的节点对,并且可以并行运算

灵活:针对有不同度的节点,可以运用任意大小的weight与之对应。

可移植:可以将模型应用于从未见过的图结构数据,不需要与训练集相同。

解决方案

1. Input : node feature 的集合,(F表示特征维度)

 

2.为了能够让特征更具表达能力,采用了线性变换先对原始特征进行处理

3.任意两个样本之间注意力系数的计算公式:

a表示共享注意力机制 

4:一般来说,通过注意力机制可以计算任意两个样本的关系,使一个样本用其他所有样本来表示,但是第一,基于空间相似假设,一个样本与一定范围内的样本关系较密切,第二,样本较多的时候,计算量非常大。——因此,对于一个样本xi来说只利用邻域内的样本计算注意力系数和新的表示。

重点:邻域的计算 、邻域的取值 

利用样本邻域计算新的表示公式如上,为方便比较计算,使用softmax函数进行归一化处理。 

5. 利用权重向量参数化的单层前馈神经网络表示注意力机制a,并使用LeakyRuLU激活结点,所以计算公式具体表示为:

  LeakyRelu的非线性激活,小于零是斜率为0.2。

(回顾下几种Relu函数,relu:小于0就是0,大于零斜率为1; LRelu:小于零斜率固定一个值,大于零斜率为1; PRelu:小于零斜率可变,大于零斜率为1;

表示特征转换,注意力机制,激活,归一化生成两个样本之间注意力系数的过程。

 

 表示用结点邻域的以不同注意力机制表示样本结点的过程

6:每个结点根据其邻域结点及邻域结点的注意力权重系数计算其新的表示:

这个公式表示就是,该节点的输出feature与与之相邻的所有节点有关,是他们的线性和的非线性激活 这个线性和的线性系数是前面求得的注意力互相关系数 

7:图右,不同的箭头表示不同的注意力机制,在非最后一层多头注意力以concat形式结合 concate操作为||              

                               

8:最后一层,计算各个注意力机制下的均值——对于最终的输出,concate操作可能不那么敏感了,所以直接用K平均来取代concate操作,得到最终的公式::

 

实验分成两部分,transductive learning(半监督学习)和inductive learning(归纳学习)。模型用了两层的GAT

实验数据集

 

 半监督学习transductive learning

两层 GAT:在Cora 数据集上优化网络结构的超参数,应用到Citeseer 数据集

第一层 8 head, F`=8 , ELU 作为非线性函数;第二层为分类层,一个 attention head 计算特征数C(C个类别),后跟 softmax 函数,为了应对小训练集,正则化(L2)

两层都采用 0.6 的dropout,相当于计算每个node位置的卷积时都是随机的选取了一部分近邻节点参与卷积

归纳学习inductive learning

三层GAT 模型:前两层 K=4, F1=256 ,ELU作为非线性函数

;最后一层用来分类 K=6, F`=121 , 激活函数为sigmoid 该任务中,训练集足够大不需要使用 正则化 和 dropout;

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

总结和思考:    

    实验实现的过程没有邻域的计算,根据数据生成图谱是事先数据处理完成的,无论是训练,交叉验证,还是测试,都是一张完整的图和训练数据,标签数据也是完整的,只是在不同的阶段只有那一部分为真实标签,其余全为0,也就是半监督学习

引用了注意力机制,并且模型性能达到state of the art. 运算相邻节点,

更加具有鲁棒性,不需要整张图。 

标签:样本,19,GAT,邻域,注意力,学习,计算,节点
来源: https://blog.csdn.net/zhang_fu_guan/article/details/121061998