注意力 网络,关系图注意力网络-Relational Graph Attention Networks

2021/05/18 22:12 · 提高注意力训练 ·  · 注意力 网络,关系图注意力网络-Relational Graph Attention Networks已关闭评论
专注力注意力训练提升
摘要:

注意力网络,关系图注意力网络-RelationalGraphAttentionNetworks展开全文导读关系图卷积网络(RGCNs)是GCNS对关系图域的一种扩展。本文以RGCN为出发点,研究了一类关系图注意力网络(RGATs)模型,将关注机制扩展到关系图域。作者|DanBusbridge,DaneSherburn,PietroCavallo&NilsY.Hammerla编译|Xiaowe

注意力 网络,关系图注意力网络-Relational Graph Attention Networks

展开全文
导读
关系图卷积网络(RGCNs)是GCNS对关系图域的一种扩展。本文以RGCN为出发点,研究了一类关系图注意力网络(RGATs)模型,将关注机制扩展到关系图域。
作者 | Dan Busbridge, Dane Sherburn, Pietro Cavallo & Nils Y. Hammerla
编译 | Xiaowen
【论文便捷下载】
请关注专知公众号(点击上方蓝色专知关注)
后台回复“RGAT”就可以获取《关系图注意力网络》的论文PDF下载链接~
我们研究了关系图注意力网络,这类模型扩展了非关系图的注意力机制以合并关系信息,从而为更广泛的问题开辟了一些方法。我们对这些模型进行了彻底的评估,并与既定的基准进行了比较。为了提供一个有意义的比较,我们重新训练了关系图卷积网络(Relational Graph Convolutional Networks),即关系图注意力网络的谱对应体(spectral counterpartof Relational Graph Attention Networks),并在相同的条件下对它们进行了评价。我们发现关系图注意力网络的性能比预期差,尽管一些配置对模拟分子特性有一定的帮助。我们对此提出了见解,并建议对评价战略的修改,以及今后工作的研究方向。
本文以RGCN为出发点,研究了一类关系图注意力网络(RGATs)模型,将关注机制扩展到关系图域。我们考虑两个变体,内部关系图注意力(WIRGAT)和跨关系图注意力(ARGAT),每个变量都具有加性和乘性注意力。我们进行了广泛的超参数搜索,并对具有挑战性的传感器节点分类和归纳图分类任务进行了评估。将这些模型与已建立的基准以及重新调整的RGCN模型进行比较。
内部关系图注意力(WIRGAT)结构图
跨关系图注意力(ARGAT)
结点分类任务
注意力 网络,关系图注意力网络-Relational Graph Attention Networks  第1张

注意力 网络,图注意力网络(GAT) ICLR2018, Graph Attention Network论文详解

背景:ICLR2018 论文,Graph Attention Network在GNN中非常重要,再之前图卷积网络GCN的基础之上引入了注意力机制,非常实用。

论文地址:https://arxiv.org/abs/1710.

代码地址: https://github.com/Diego999/pyGAT

相关论文详解:

GCN (Graph Convolutional Network) 图卷积网络概览

图注意力网络(GAT) ICLR2018, Graph Attention Network论文详解

旷视CVPR2019图卷积多标签图像识别Multi-Label Image Recognition with Graph Convolutional Networks论文详解

无监督图嵌入Unsupervised graph embedding|基于对抗的图对齐adversarial graph alignment详解

Graph特征提取方法:谱聚类(Spectral Clustering)详解

目录

一、背景与概览

1.1 相关研究

1.2 贡献点

1.3 相关工作

谱方法 spectral approaches

非谱方法 non-spectral approaches

注意力机制 self-attention

二、方法(重点)

2.1 方法特性

2.2 图注意力层Graph Attention layer

输入与输出

特征提取与注意力机制

Output features

multi-head attention

2.3 与同类工作的对比

算法复杂度低

更好鲁棒性

不需要整张Graph

比LSTM更强

与MoNet的对比

三、实验与评估

3.1 数据集

3.2 半监督学习transductive learning

3.3 归纳学习inductive learning

四、结论与个人总结

图注意力网络(GAT)Graph attention network缩写为GAT,若按照首字母大写,会与对抗生成网络GAN混淆。所以后面GAT即本文的图注意力网络。

下面三篇论文递进关系:

Semi-Supervised Classification with Graph Convolutional Networks,ICLR 2017,图卷积网络 https://arxiv.org/abs/1609. Graph Attention Networks,ICLR 2018.? 图注意力网络,就是此篇文章所解析的论文 https://arxiv.org/abs/1710.Relational Graph Attention Networks ,ICLR2019? 关联性图注意力网络,整合了GCN+Attention+Relational

引入masked self-attentional layers 来改进前面图卷积graph convolution的缺点对不同的相邻节点分配相应的权重,既不需要矩阵运算,也不需要事先知道图结构四个数据集上达到state of the art的准确率Cora、Citeseer、Pubmed、protein interaction

对待图结构的数据有两种方法,谱方法和非谱方法

即Semi-Supervised Classification with Graph Convolutional Networks,ICLR 2017这篇文章中的方法

解析 :GCN (Graph Convolutional Network) 图卷积网络概览

Finally, Kipf & Welling (2017) simplified the previous method by restricting the filters to operate in a 1-step neighborhood around each node.在每个节点周围对卷积核做一阶邻接近似。但是此方法也有一些缺点:

必须基于相应的图结构才能学到拉普拉斯矩阵L对于一个图结构训练好的模型,不能运用于另一个图结构(所以此文称自己为半监督的方法)

One of the challenges of these approaches is to define an operator which works with different sized neighborhoods and maintains the weight sharing property of CNNs. 即每个节点的相邻链接数量是不一样的,如何能设置相应的卷积尺寸来保证CNN能够对不同的相邻节点进行操作。下文这种方法运用GraphSAGE, 取得了不错的结果

William L Hamilton, Rex Ying, and Jure Leskovec. Inductive representation learning on largegraphs. Neural Information Processing Systems (NIPS), 2017.

这种方法是将相邻节点设置为固定的长度,然后进行specific aggregator,例如mean over all the sampled neighbors’ feature vectors, or the result of feeding them through a recurrent neural network。这种方法在几个大的benchmarks上取得了非常好的效果。

优点:可以处理任意大小输入的问题,并且关注最具有影响能力的输入。

注意力机制再RNN与CNN之中,都取得了不错的效果,并且可以达到state of the art的性能。

Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. arXiv preprint arXiv:1706., 2017

一整套推导下来,并不算难,没有过于复杂的推导。下面每个公式以及每个变量我都明确的给出了其中的意义。

The idea is to compute the hidden representations of each node in the graph, by attending over its neighbors, following a self-attention strategy. 针对每一个节点运算相应的隐藏信息,在运算其相邻节点的时候引入注意力机制:

高效:针对相邻的节点对,并且可以并行运算灵活:针对有不同度(degree)的节点,可以运用任意大小的weight与之对应。(这里我们解释一个概念,节点的度degree:表示的是与这个节点相连接的节点的个数)可移植:可以将模型应用于从未见过的图结构数据,不需要与训练集相同。

输入

N为节点的个数,F为feature的个数,这表示输入为N个节点的每个节点的F个feature

输出

表示对这N个节点的 F' 个输出,输出位N个节点的每个节点的F'个feature

这里我们明确一下,针对的是N个节点,按照其输入的feature预测输出的feature。

为了得到相应的输入与输出的转换,我们需要根据输入的feature至少一次线性变换得到输出的feature,所以我们需要对所有节点训练一个权值矩阵:,这个权值矩阵就是输入与输出的F个feature与输出的F'个feature之间的关系。

We then perform self-attention on the nodes—a shared attentional mechanism,针对每个节点实行self-attention的注意力机制,机制为 ?

注意力互相关系数为attention coefficients:

这个公式表示的节点 j 对于节点 i 的重要性,而不去考虑图结构性的信息如前面所言,向量h就是 feature向量下标i,j表示第i个节点和第j个节点
作者通过masked attention将这个注意力机制引入图结构之中,masked attention的含义 :只计算节点 i 的相邻的节点 j

?节点 j 为,其中Ni为 节点i的所有相邻节点。为了使得互相关系数更容易计算和便于比较,我们引入了softmax对所有的i的相邻节点j进行正则化:

实验之中,注意力机制a是一个单层的前馈神经网络,通过权值向量来确定,并且加入了 LeakyRelu的非线性激活,这里小于零斜率为0.2。(这里我们回顾下几种Relu函数,relu:小于0就是0,大于零斜率为1;LRelu:小于零斜率固定一个值,大于零斜率为1;PRelu:小于零斜率可变,大于零斜率为1;还有CRelu,Elu,SELU)。注意力机制如下:

,也是我们前面需要得到的注意力互相关系数

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

模型权重为转置表示为Tconcatenation 用 || 表示公式含义就是权值矩阵与F'个特征相乘,然后节点相乘后并列在一起,与权重相乘,LRelu激活后指数操作得到softmax的分子
相应代码:

通过上面,运算得到了正则化后的不同节点之间的注意力互相关系数normalized attention coefficients,可以用来预测每个节点的output feature:

我们再回顾一下含义,W为与feature相乘的权值矩阵a为前面算得的注意力互相关系数sigema为非线性激活遍历的j 表示所有与i 相邻的节点这个公式表示就是,该节点的输出feature与与之相邻的所有节点有关,是他们的线性和的非线性激活这个线性和的线性系数是前面求得的注意力互相关系数

multi-head attention与下面这个工作类似:

Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. arXiv preprint arXiv:1706., 2017.

在上面的output feature加入计算multi-head的运算公式:

concate操作为||第k个注意力机制为共大K个注意力机制需要考虑,小k表示大K中的第k个输入特征的线性变换表示为最终的输出为h' 共由KF' 个特征影响
例如,K=3时候,结构如下

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

对于最终的输出,concate操作可能不那么敏感了,所以我们直接用K平均来取代concate操作,得到最终的公式:

因为我们比较重点关注于运用,这部分我们粗略的看一下就好,需要的话再来细看更新。

GAT运算得到F'个特征需要的算法复杂度

F':为输出特征的个数F:为输入特征的个数|V| :节点的个数|E|:节点之间连接的个数
并且引入K之后,对于每个head的运算都独立并且可以并行

与GCN的不同在于,GAT针对不同的相邻节点的重要性进行预测,模型具有更好的性能并且对于扰动更加鲁棒。

引入注意力机制之后,只与相邻节点有关,即共享边的节点有关,无需得到整张graph的信息。

即使丢失了i,j之间的链接,则不计算即可可以将模型运用于inductive learning,更好解释性,即使graph完全看不到completely unseen,也可以运行训练过程

The recently published inductive method of Hamilton et al. (2017) samples a fixed-size neighborhood of each node, in order to keep its computational footprint consistent; this does not allow it access to the entirety of the neighborhood while performing inference. Moreover, this technique achieved some of its strongest results when an LSTM (Hochreiter & Schmidhuber, 1997)-based neighborhood aggregator is used. This assumes the existence of a consistent sequential node ordering across neighborhoods, and the authors have rectified it by consistently feeding randomly-ordered sequences to the LSTM. Our technique does not suffer from either of these issues—it works with the entirety of the neighborhood (at the expense of a variable computational footprint, which is still on-par with methods like the GCN), and does not assume any ordering within it.

2017年Hamilton提出的inductive method为每一个node都抽取一个固定尺寸的neighborhood,为了计算的时候footprint是一致的(指的应该是计算的时候处理neighborhood的模式是固定的,不好改变,因此每次都抽样出固定数量的neighbor参与计算),这样,在计算的时候就不是所有的neighbor都能参与其中。此外,Hamilton的这个模型在使用一些基于LSTM的方法的时候能得到最好的结果,这样就是假设了每个node的neighborhood的node一直存在着一个顺序,使得这些node成为一个序列。但是本文提出的方法就没有这个问题,每次都可以将neighborhood所有的node都考虑进来,而且不需要事先假定一个neighborhood的顺序

As mentioned in Section 1, GAT can be reformulated as a particular instance of MoNet (Monti et al., 2016). More specifically, setting the pseudo-coordinate function to be u(x, y) = f(x)kf(y), where f(x) represent (potentially MLP-transformed) features of node x and k is concatenation; and the weight function to be wj(u) = softmax(MLP(u)) (with the softmax performed over the entire neighborhood of a node) would make MoNet’s patch operator similar to ours. Nevertheless, one should note that, in comparison to previously considered MoNet instances, our model uses node features for similarity computations, rather than the node’s structural properties (which would assume knowing the graph structure upfront). GAT可以看做一个MoNet的特例。

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

图结构的数据集,以及数据集之中的信息如下:

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

三层GAT 模型前两层 K=4, F1=256 ,ELU作为非线性函数最后一层用来分类 K=6, F`=121 , 激活函数为sigmoid该任务中,训练集足够大不需要使用 正则化 和 dropout
两个任务都是用Glorot初始化初始的,并且是用Adam SGD来最小化交叉熵进行优化

引用了注意力机制,并且模型性能达到state of the art.

运算相邻节点,更加具有鲁棒性,不需要整张图。

更具有可解释性,公式也更直观。

相关论文详解:

GCN (Graph Convolutional Network) 图卷积网络概览

图注意力网络(GAT) ICLR2018, Graph Attention Network论文详解

旷视CVPR2019图卷积多标签图像识别Multi-Label Image Recognition with Graph Convolutional Networks论文详解

无监督图嵌入Unsupervised graph embedding|基于对抗的图对齐adversarial graph alignment详解

Graph特征提取方法:谱聚类(Spectral Clustering)详解
注意力 网络,关系图注意力网络-Relational Graph Attention Networks  第2张

注意力 网络,图注意力网络

在论文笔记《Inductive Representation Learning on Large Graphs》中,我们介绍了一种归纳式学习图节点特征表示的算法--GraphSAGE。 在该笔记的最后提到了该方法的一些不足,如1)为了计算方便,每个节点采样同等数量的邻居节点;2)邻居的特征通过Mean、 LSTM、Max-Pooling等方式聚集,平等对待所有邻居节点。基于GraphSAGE,本篇论文引入了注意力机制,通过学习赋予不同邻居节点差异化的重要性且避免了采用过程。同时,邻居节点的特征是根据权值来聚集的,即相似的节点贡献更大。

模型:

给定图上所有节点在当前层的输入h,假设我们当前需要更新节点i的表示,j表示节点i的一个邻居。那么节点j对i的重要性系数的计算公式如下:

其中,a为注意力模型,线性变换参数W为可学习的权值矩阵,h_i和h_j分别是i和j节点在上一层的输出,亦即本层的输入。在上面的计算中,节点i是可以attend到全部的节点。考虑图本身的结构特征后,使用掩码将节点i的非邻居节点全部掩盖。由于下面的公式使用了softmax函数,mask中非i邻居节点的位置可以置为负无穷。

N_i表示节点i的所有邻居。本篇论文中,注意力机制是由一层全连接网络实现的,如下:

Alpha为权值向量。在最终的聚集过程中,按注意力机制得到的权值进行加权求和并紧跟一层非线性变换,如下:

进一步,参考谷歌机器翻译中采用的“multi-head self attention",本文也使用了“multi-head”机制,最后将各个头attention的结果进行拼接或取平均(本文实验用了拼接)。

模型的优点:

计算高效。模型中的注意力机制可以在所有的边上并行,节点的特征计算也是可以并行的。模型不需要类似特征分解这样高复杂度的矩阵操作。

不同于GCN,模型允许为不同的邻居赋予不同的权值。对注意力权值的分析可以增加模型的解释性。

注意力机制的参数是共享的,且可以区分对待有向边,因此可以扩展到有向图上。同时,使用局部邻居聚集的方式也保证了模型可以扩展到训练过程未见过的节点。

避免了GraphSAGE中采用固定数量的邻居。

模型的缺点:

因为attention本质上是在所有的节点(不仅仅是邻居节点)上计算的,当图的节点数目过大时,计算会变得非常低效。作者在论文中提出了这个问题,并留作未来的工作。

评估:

使用的数据集有:Cora,Citeseer和PPI。 在transductive learning任务上,GAT相比之前的state-of-the-art GCN有显著提升。 在inductive learning任务航,GAT相比GraphSAGE的提升更为明显,micro-averaged F1由0.612提升到0.942。

总结:

本篇论文提出的方法能够有效的进行邻居特征聚集,但是问题是还不能在大规模图上应用(全局attention的限制)。

注意力 网络,关系图注意力网络-Relational Graph Attention Networks  第3张

注意力 网络,层次注意力网络

层次注意力网络(HAN)是一种用于文档分类的神经网络,该模型有两个鲜明的特征:(i)它具有层次结构(单词构成句子,句子形成文档),反映了文档的层次结构,我们通过首先构建句子的表示然后将它们聚合成文档表示来构造文档表示; (ii)它在单词和句子级别应用了两个级别的注意机制,使其能够在构建文档表示时区别地参与越来越重要的内容。下图对这一点给出了一个例子:
这是一个简短的Yelp评论,其任务是按1-5的等级对评论预测评级。直观地说,第一句和第三句在帮助预测评级方面有更强的信息;在这些句子中,单词delicious,a-m-a-z-i-n-g在暗示本评论中包含的积极态度方面做出了更多贡献。
分层注意网络的总体结构如下图所示。它由几个部分组成:一个字序列编码器,一个字级关注层,一个句子编码器和一个句子层注意层。
假设文档具有L个句子s_i并且每个句子包含T_i个单词。 w_i与t∈[1,T]代表第i个句子中的单词。 HAN会将原始文档投影到矢量表示中,然后在其上构建分类器以执行文档分类。
字编码器(word encoder):给定一个带有单词w_{it},t∈[0,T]的句子,我们首先通过嵌入矩阵W_e,x_{ij}=W_e w_{ij}将这些单词嵌入到向量中。 我们使用双向GRU(RNN的一个变种,使用门机制来记录序列当前的状态),通过总结来自两个方向的信息来获得单词的注释,并因此将上下文信息结合到注释中。 双向GRU包含前向GRU \vec{f}——它从w_{i1}到w_{iT}读取句子s_i——和从w_{iT}到w_{i1}读取的后向GRU \gets{f}:
x_{it}=W_e w_{it}, t \in [1, T],
\overrightarrow{h}_{it}=\overrightarrow{GRU}(x_{it}}, t \in [1, T],
\overleftarrow{h}_{it}=\overleftarrow{GRU}(x_{it}}, t \in [1, T].
我们通过连接前向隐藏状态\vec{h_{it}}和后向隐藏状态\gets{h_{it}}来获得给定单词w_i的注释,即h_{it}=[\vec{h_{it}}, \gets{h_{it}}]。
单词注意机制(word attention):并非所有单词对句子含义的表示都有同等作用。 因此,我们引入注意机制来提取对句子含义重要的词,并汇总那些信息词的表示以形成句子向量。 特别地:
u_{it}=tanh(W_wH_{it} + b_w)
\alpha_{it}=\frac{exp(u_{it}^T u_w}{\sum_t exp(u_{it}^T u_w)}
s_i=\sum_t \alpha_[it} h_{it}
也就是说,我们首先通过对单层MLP输入单词注释h_{it}以获取h_{it}的隐藏表示u_{it},然后我们测量u_{it}与单词级别上下文向量u_w的相似性,作为该单词的重要性表示,并通过softmax函数进行归一化,得到重要性权重\alpha_{it}。 之后,我们将句子向量s_i表示为基于权重的单词注释的加权和。 上下文向量u_w可以被视为固定查询“传递信息的词是什么”的高级表示,前者在memory network中有广泛使用。u_w 在训练过程中随机初始化并共同学习。
句子编码器(sentence encoder):给定句子矢量s_i,我们可以以类似的方式获得文档向量。 我们使用双向GRU来编码句子:
\overrightarrow{h}_{i}=\overrightarrow{GRU}(s_i}, i \in [1, L],
\overleftarrow{h}_{i}=\overleftarrow{GRU}(s_i}, i \in [L, 1].
我们连接\vec{h_{i}}和\gets{h_{i}}得到句子i的注释,即h_{i}=[\vec{h_{i}}, \gets{h_{i}}]。 h_i总结句子i周围的句子但仍然集中注意力在句子上。
句子注意机制(sentence attention):为了奖励能够作为正确分类文档的线索的句子,我们再次使用注意机制并引入句子级别的上下文向量,并使用向量来衡量句子的重要性。 即:
u_{i}=tanh(W_sH_{i} + b_s)
\alpha_{i}=\frac{exp(u_{i}^T u_s}{\sum_i exp(u_{i}^T u_s)}
v=\sum_i \alpha_i h_i
其中v是文档向量,它总结了文档中句子的所有信息。 类似地,句子级上下文向量可以在训练过程中随机初始化并共同学习。
[图片及描述来源:Yang, Z. et al. (2016). Hierarchical Attention Networks for Document Classification. NAACL. ]
描述
2014年Dzmitry Bahdanau和Yoshua Bengio等学者提出了神经机器翻译,当时神经机器翻译的目标是建立一个单一的神经网络,可以共同调整以最大化翻译性能。他们推测,使用固定长度矢量,是提高这种基本编码器 - 解码器架构性能的瓶颈,并且给出了相关解决建议。他们还在机器翻译中引入了将原始序列元素和输出序列元素相关联的注意力机制,进一步使得神经机器翻译性能得到大幅提高。从此时开始注意力机制逐渐被引入了神经机器翻译。
2015年,受当时机器翻译和物体检测工作的启发,Kelvin Xu等人引入了一种基于注意力的模型,该模型可自动学习描述图像的内容。他们描述了如何使用标准反向传播技术以确定的方式训练该模型,并通过最大化变分下限来随机地训练该模型。 他们还通过可视化显示模型如何能够在输出序列中生成相应的单词时,同时自动学习如何将注意力固定在显着对象上。
Zichao Yang和Eduard Hovy等人提出的这个HAN模型中的注意力机制也参考了以上两项工作。他们在六个大规模文本分类任务上进行的实验表明,所提出的架构在很大程度上优于以前的方法。
同年,Yilin Wang等人也提出了HAN,将静态空间信息,短期运动信息和长期视频时间结构结合起来,用于复杂的人类行为理解。他们将所提出的模型在标准视频动作基准上进行训练和评估,即UCF-101和HMDB-51,结果显示它明显优于当时的技术。
2017年,Nikolaos Pappas, Andrei Popescu-Belis将HAN扩展,提出了多语言分层注意网络,用于学习文档结构,使用跨语言的共享编码器和/或共享注意机制,使用多任务学习和对齐的语义空间作为输入。他们使用不相交的标签集,在大型数据集上评估所提出的多语言文档分类模型,以及8种语言的600k新闻文档和5k标签。
主要事件
年份事件相关论文/Reference2014不同团队的研究者都开发出了神经机器翻译 (NMT);注意力机制也开始被引入神经机器翻译Bahdanau, D., Cho, K., and Bengio, Y. (2014). Neural machine translation by jointly learning to align and translate. abs/1409.0473.2015Kelvin Xu等人引入了一种基于注意力的模型,该模型可自动学习描述图像的内容Xu, K. et al. (2015). Show, attend and tell: Neural image caption generation with visual attention. arXiv preprint arXiv:1502..2016Zichao Yang和Eduard Hovy等人提出的HAN模型Yang, Z. et al. (2016). Hierarchical Attention Networks for Document Classification. NAACL.2016Yilin Wang等人也提出了HAN,将静态空间信息,短期运动信息和长期视频时间结构结合起来,用于复杂的人类行为理解Wang, Y. et al. (2016). Hierarchical Attention Network for Action Recognition in Videos. arXiv:1607..2017Nikolaos Pappas, Andrei Popescu-Belis将HAN扩展,提出了多语言分层注意网络Pappas, P.; Popescu-Belis, A. (2017). Multilingual Hierarchical Attention Networks for Document Classification. arXiv:1707..
瓶颈
HAN中使用的注意力机制虽然是模仿人的习惯设计的,但其不像人一样可以忽略某些部位,它是通过权重来分配注意力,因此需要矩阵来存储权重,增加了开销。
未来发展方向
使用注意力机制进行自然语言处理是目前非常流行的一个方向,首先是其模型表现效果往往比以往的模型都更好;二是能够可视化模型对哪些词汇和句子赋予更多注意力。
Contributor: Yuanyuan Li
注意力 网络,关系图注意力网络-Relational Graph Attention Networks  第4张

注意力 网络,注意力模型深度综述,注意力类型和网络架构都有什么

选自arXiv
作者:Sneha Chaudhari 等
机器之心编译
参与:王淑婷、杜伟
注意力模型已成为神经网络中的一种重要概念,并在很多应用领域展开了研究。本文提出了一种分类方法,对这些研究进行了全面有序地综述,并对注意力模型在一些应用领域产生的重大影响进行了讨论。
注意力背后的直觉可以用人类的生物系统来进行最好的解释。例如,我们的视觉处理系统往往会选择性地聚焦于图像的某些部分上,而忽略其它不相关的信息,从而有助于我们感知。类似地,在涉及语言、语音或视觉的一些问题中,输入的某些部分相比其它部分可能更相关。通过让模型仅动态地关注有助于有效执行手头任务的部分输入,注意力模型引入了这种相关性概念。
图 1 显示了使用注意力模型对 Yelp 评论进行情感分类的例子 [Yang et al., 2016]。在这个例子中,注意力模型知道了在五个句子中,第一句和第三句更相关。
图 1:用注意力建模对 Yelp 评论进行分类的例子。
此外,在这些句子中,单词 delicious 和 amazing 在决定评论的情感方面更有意义。
神经网络中建模注意力的快速发展主要源于三个方面。首先,这些模型对多个任务(如机器翻译、问答、情感分析、词性标注、句法解析和对话系统)来说是当前最佳的模型;其次,除了提高主要任务的性能,它们还有一些其它优势。它们还被广泛用于提高神经网络的可解释性,无法解释的神经网络被视为黑箱模型;第三,它们还有助于克服循环神经网络的一些挑战,如随着输入长度的增加而导致的性能下降,以及输入的序列处理所带来的计算效率低下。因此,本文旨在对注意力模型进行简短而又全面的综述。
论文:An Attentive Survey of Attention Models
论文地址:https://arxiv.org/abs/1904.
注意力模型已成为神经网络中的一种重要概念,并在各种应用领域进行了研究。本次综述全面有序地概述了建模注意力方面的发展。研究者特别提出了一种分类法,该方法将现有技术归并到连贯类别中。研究者对各种引入了注意力的神经架构进行了回顾,还展示了注意力如何提高神经模型的可解释性。最后,研究者讨论了建模注意力起到重大影响的一些应用。希望本次综述可以简明扼要地介绍注意力模型,为从业者提供指导,同时为其应用开发可行的方法。
注意力模型
注意力模型意在通过让解码器访问完整的编码输入序列 {h_1, h_2, ..., h_T } 来减轻这些挑战。中心思想是在输入序列中引入注意力权重α,来对具有相关信息的位置集合进行优先级排序,以生成下一个输出 token。
图 2:编码器-解码器架构:(a) 为传统结构,(b) 为带注意力机制的结构。
具有注意力的相应编码器-解码器架构如图 2(b) 所示。架构中的注意力模块负责自动学习注意力权重α_ij,该权重会捕获 h_i(编码器隐状态,被称之为候选状态)和 s_j(解码器隐状态,被称之为查询状态)之间的相关性。这些注意力权重之后会被用于构建语境向量 c,而该向量被作为输入传递给解码器。
研究者将注意力分为四大类,并阐明了每一大类中不同类型的注意力,如下表所示(表 1)。
表 1:各大类别中的注意力类型。
为了理解这一概念,研究者提供了一系列重要的技术论文,并在表 2 中详细说明了本文方法所用到的多种注意力类型。
表 2:有关注意力模型技术方法的重要论文。『-』表示「不适用」。
注意力网络架构
在这一部分,研究者描述了与注意力相关的三种显著的神经架构:(1)编码器-解码器框架;(2)将注意力扩展至单个输入序列之外的记忆网络;(3)利用注意力规避循环模型序列处理组件的架构。
编码器-解码器
注意力最早用作基于 RNN 的编码器-解码器框架的一部分,以编码较长的输入语句。一个有趣的事实是,注意力模型可以接受任何输入表征,并将其减少为固定长度的单个语境向量,该向量可用于解码步骤。因此,研究者可以从输出中解耦输入表征。
记忆网络
像问答和聊天机器人这样的应用需要具备根据事实数据库中的信息进行学习的能力。端到端的记忆网络通过使用记忆模块阵列来存储事实数据库,并使用注意力来建模记忆中每个事实的相关性来回答问题,从而实现了这一点。
不带 RNN 的网络
Transformer 架构中,编码器和解码器由一堆相同的层组成,这些层则皆由两个子层组成:对应位置的前馈神经网络(FNN)层和多头自注意力层。Transformer 架构实现了重要的并行处理、更短的训练时间和更高的翻译准确率,而无需任何重复的组件。
用于可解释性的注意力
由于模型的性能以及透明性和公平性,人们对 AI 模型的可解释性产生了巨大的兴趣。从可解释性的角度来看,建模注意力尤其有趣,因为它让我们可以直接观察深度学习架构的内部工作机制。
如图 4(a) 所示,Bahdanau 等人可视化了注意力权重,这些权重清楚地展示了法语和英语句子的自动对齐,尽管这两种语言中动词和名词的位置不同。
图 4:注意力权重的可视化例子。
图 4(b) 显示,注意力权重有助于识别用户的兴趣。用户 1 似乎偏好「卡通」视频,而用户 2 偏好关于「动物」的视频。
最后,Xu 等人提供了相关图像区域(即具有高注意力权重的区域)的大量可视化列表,这些区域对图像字幕任务(图 4(c))中生成的文本具有重大的影响。
虽然注意力机制有助于提高模型可解释性的这种观点比较普遍,但有研究者经过实验证明,标准的注意力模块在解释模型方面基本没什么用。

注意力 网络,神经网络中注意力机制概述

总结来自这篇论文的第7章
注意力机制是一种在编码器-解码器结构中使用到的机制, 现在已经在多种任务中使用:
机器翻译(Neural Machine Translation, NMT)
图像描述(Image Captioning (translating an image to a sentence))
文本摘要(Summarization(translating to a more compact language))
而且也不再局限于编码器-解码器结构, 多种变体的注意力结构, 应用在各种任务中.
总的来说, 注意力机制应用在:
允许解码器在序列中的多个向量中, 关注它所需要的信息, 是传统的注意力机制的用法. 由于使用了编码器多步输出, 而不是使用对应步的单一定长向量, 因此保留了更多的信息.
作用于编码器, 解决表征问题(例如Encoding Vector再作为其他模型的输入), 一般使用自注意力(self-attention)
1.1 编码器-解码器结构
如上图, 编码器将输入嵌入为一个向量, 解码器根据这个向量得到输出. 由于这种结构一般的应用场景(机器翻译等), 其输入输出都是序列, 因此也被称为序列到序列的模型Seq2Seq.
对于编码器-解码器结构的训练, 由于这种结构处处可微, 因此模型的参数\( heta\)可以通过训练数据和最大似然估计得到最优解, 最大化对数似然函数以获得最优模型的参数, 即:
\[\arg\max\limits_{ heta}\{\sum\limits_{(x,y)\in{corpus}}\log{p(y|x; heta)}\}
\]
这是一种端到端的训练方法.
1.2 编码器
原输入通过一个网络模型(CNN, RNN, DNN), 编码为一个向量. 由于这里研究的是注意力, 就以双向RNN作为示例模型.
对于每个时间步\(t\), 双向RNN编码得到的向量\(h_t\)可以如下表示:
1.3 解码器
这里的解码器是单向RNN结构, 以便在每个时间点上产生输出, 行程序列. 由于解码器仅使用最后时间步\(T\)对应的编码器的隐藏向量\(h_{T_x}\), \(T_x\)指的是当前样本的时间步长度(对于NLP问题, 经常将所有样本处理成等长的). 这就迫使编码器将更多的信息整合到最后的隐藏向量\(h_{T_x}\)中.
但由于\(h_{T_x}\)是单个长度一定的向量, 这个单一向量的表征能力有限, 包含的信息量有限, 很多信息都会损失掉.
注意力机制允许解码器在每一个时间步\(t\)处考虑整个编码器输出的隐藏状态序列\((h_1, h_2, \cdots, h_{T_x})\), 从而编码器将更多的信息分散地保存在所有隐藏状态向量中, 而解码器在使用这些隐藏向量时, 就能决定对哪些向量更关心.
具体来说, 解码器生产的目标序列\((y_1, \cdots, y_{T_x})\)中的每一个输出(如单词)\(y_t\), 都是基于如下的条件分布:
\[P[y_t|\{y_1,\cdots,y_{t-1}\},c_t]=softmax(W_s ilde{h}_t)
\]
其中\( ilde{h}_t\)是引入注意力的隐藏状态向量(attentional hidden state), 如下得到:
\[ ilde{h}_t= anh(W_c[c_t;h_t])
\]
\(h_t\)为编码器顶层的隐藏状态, \(c_t\)是上下文向量, 是通过当前时间步上下文的隐藏向量计算得到的, 主要有全局和局部两种计算方法, 下午中提到. \(W_c\)和\(W_s\)参数矩阵训练得到. 为了式子的简化没有展示偏置项.
1.4 全局注意力
通过全局注意力计算上下文向量\(c_t\)时, 使用整个序列的隐藏向量\(h_t\), 通过加权和的方式获得. 假设对于样本\(x\)的序列长度为\(T_x\), \(c_t\)如下计算得到:
\[c_t=\sum\limits_{i=1}^{T_x}\alpha_{t,i}h_i
\]
其中长度为\(T_x\)的校准向量alignment vector \(\alpha_t\)的作用是在\(t\)时间步, 隐藏状态序列中的所有向量的重要程度. 其中每个元素\(\alpha_{t,i}\)的使用softmax方法计算:
\[\alpha_{t,i}=\frac{\exp(score(h_t, h_i))}{\sum\limits_{j=1}^{T_x}\exp(score(h_t, h_j))}
\]
值的大小指明了序列中哪个时间步对预测当前时间步\(t\)的作用大小.
score函数可以是任意的比对向量的函数, 一般常用:
点积: \(score(h_t, h_i)=h_t^Th_i\)
这在使用全局注意力时有更好的效果
使用参数矩阵:
\(score(h_t, h_i)=h_t^TW_{\alpha}h_i\)
这就相当于使用了一个全连接层, 这种方法在使用局部注意力时有更好的效果.
全局注意力的总结如下图:
1.5 局部注意力
全局注意力需要在序列中所有的时间步上进行计算, 计算的代价是比较高的, 可以使用固定窗口大小的局部注意力机制, 窗口的大小为\(2D+1\). \(D\)为超参数, 为窗口边缘距离中心的单方向距离. 上下文向量\(c_t\)的计算方法如下:
\[c_t=\sum\limits_{i=p_t-D}^{p_t+D}\alpha_{t,i}h_i
\]
可以看到, 只是考虑的时间步范围的区别, 其他完全相同. \(p_t\)作为窗口的中心, 可以直接使其等于当前时间步\(t\), 也可以设置为一个变量, 通过训练获得, 即:
\[p_t=T_x\sigma(v_p^T anh(W_ph_t))
\]
其中\(\sigma\)为sigmoid函数, \(v_p\)和\(W_p\)均为可训练参数. 因此这样计算得到的\(p_t\)是一个浮点数, 但这并没有影响, 因为计算校准权重向量\(\alpha_t\)时, 增加了一个均值为\(p_t\), 标准差为\(\frac{D}{2}\)的正态分布项:
\[\alpha_{t,i}=\frac{\exp(score(h_t, h_i))}{\sum\limits_{j=1}^{T_x}\exp(score(h_t, h_j))}\exp(-\frac{(i-p_t)^2}{2(D/2)^2})
\]
当然, 这里有\(p_t\in\mathbb{R}\cap[0, T_x]\), \(i\in\mathbb{N}\cap[p_t-D, p_t+D]\). 由于正态项的存在, 此时的注意力机制认为窗口中心附近的时间步对应的向量更重要, 且与全局注意力相比, 除了正态项还增加了一个截断, 即一个截断的正态分布.
局部注意力机制总结如下图:
2.1 与编码器-解码器注意力机制的不同
最大的区别是自注意力模型没有解码器. 因此有两个最直接的区别:
上下文向量\(c_t\)在seq2seq模型中, \(c_t=\sum\limits_{i=1}^{T_x}\alpha_{t,i}h_i\), 用来组成解码器的输入$$ ilde{h}_t= anh(W_c[c_t;h_t])$$, 但由于自注意力机制没有解码器, 所以这里就直接是模型的输出, 即为\(s_t\)
在计算校准向量\(\alpha_t\)时, seq2seq模型使用的是各个位置的隐藏向量与当前隐藏向量的比较值. 在自注意力机制中, 校准向量中的每个元素由每个位置的隐藏向量与当前时间步\(t\)的平均最优向量计算得到的, 而这个平均最优向量是通过训练得到的
2.2 自注意力机制实现
首先将隐藏向量\(h_i\)输入至全连接层(权重矩阵为\(W\)), 得到\(u_i\):
\[u_i= anh(Wh_i)
\]
使用这个向量计算校正向量\(\alpha_t\), 通过softmax归一化得到:
\[\alpha_{t,i}=\frac{\exp(score(u_i, u_t))}{\sum\limits_{j=1}^{T_x}\exp(score(u_j, u_t))}
\]
这里的\(u_t\)是当前时间步\(t\)对应的平均最优向量, 每个时间步不同, 这个向量是通过训练得到的.
最后计算最后的输出:
\[s_t=\sum\limits_{i=1}^{T}a_{t, i}h_i
\]
一般来说, 在序列问题中, 只关心最后时间步的输出, 前面时间步不进行输出, 即最后的输出为\(s=s_T\)
2.3 层级注意力
如下图, 对于一个NLP问题, 在整个架构中, 使用了两个自注意力机制: 词层面和句子层面. 符合文档的自然层级结构:
词->句子->文档. 在每个句子中, 确定每个单词的重要性, 在整片文档中, 确定不同句子的重要性.

您可能感兴趣的文章

本文地址:https://www.wskee.cn/18720.html
文章标签:
版权声明:本文为原创文章,版权归 专注力训练与注意力训练网 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!