引言
本次的两篇文章主要和Attention相关。第一篇是FaceBook AI团队基于Transformer提出的一种自适应注意力跨度算法,该算法在Transform的时候能够显著的扩展上下文的跨度。第二篇提出了一种新的Tree Transformer模型,该模型只需通过注意力机制进行递归遍历,就可以捕获用于选区树的短语语法,以及用于依赖树的单词依赖性。
本文概要
1
First Blood
2
Double Kill
3
Aced
4
Attention
正文开始
1
First Blood
TILE: Adaptive Attention Span in Transformers
Contributor : FaceBook AI研究
Paper: aclweb.org/anthology/P1
Code: None
提出一种新的自注意力机制,并且可以学习其最佳注意力广度。在使用Transformer的时候,能够显著扩展上下文的跨度,同时保持对其内存占用和计算时间的控制。在字符级语言建模任务上,验证了本文方法的有效性,通过使用最大8k字符上下文,我们在text8和enwiki8上实现了最先进的性能。
提出了一个替代自我注意层,以减少变压器的计算负担的方法。我们的构建的层学习他们最佳上下文大小,从而形成一个网络,在这个网络中,每个注意力层收集关于它们自己上下文的信息。在实践中,观察到Transformer在低级层中具有小的上下文而在最后层中具有非常大的上下文。通过这种修改,我们可以将输入序列扩展到超过8k的tokens,而不会损失性能,也不会增加计算或内存成本。在字符级语言建模的任务中对本文方法进行了验证,结果显示达到了最先进的性能。
语言建模的目的是为了将概率分配给tokens序列
的问题。
Transformer的核心机制是自注意层,它由多个并行工作的注意头组成。每个注意头都将Bahdanauetal.(2015)的注意机制应用于它自己的输入。给定一个序列中的token t,那么首先会计算它与过去的相似性。然后通过softmax函数得到这些相似性的注意权值。最后通过对过去注意力权重表示进行加权平均,输出一个向量
。对于Attention不是很了解的可以看一下我之前发的关于attention的一篇文章。
「自然语言处理(NLP)」良心推荐:一文了解注意力机制(Attention)
Transform的每个注意力头共享相同的注意力广度s,这假设每个注意力头需要相同的注意广度来形成其表示形式。如下图所示,
但是以上这种假设不适用于字符级语言建模:为此本文提出独立地学习每个头的注意广度,以减少它们的计算和内存开销。
作为扩展,考虑一个动态计算方法,其中注意跨度根据当前输入动态变化。在时间步骤t,注意力头的跨度参数
是以向量v、标量b为输入的函数,例如:
。我们用与以前相同的方式惩罚
,并与其余参数一起学习参数v,b。
基于text8的字符级语言建模
ENWIK8上的结果
12层模型中每个注意点的自适应跨度
作为输入序列函数的平均动态注意跨度
2
Double Kill
TILE: You Only Need Attention to Traverse Trees
Contributor : University of Western Ontario (安大略西部大学)
Paper: aclweb.org/anthology/P1
Code: None
针对单词序列,完全基于Attention的模型存在两个主要的问题:1、随着句子长度的增长,其对内存的消耗会呈2次方增长;2、不能有效的抓取和利用语义信息。递归神经网络可以通过遍历树结构来提取很好语义信息。为此,我们提出了一个Tree Transformer模型,该模型只需通过注意力机制进行递归遍历,就可以捕获用于选区树的短语语法,以及用于依赖树的单词依赖性。与标准转换器、基于lstm的模型以及树结构的LSTMs相比,本文模型在四个任务上的评估得到了比较好的结果。并进行了进一步的研究以确定位置信息是否在树中固有地编码以及哪种类型的注意适合于进行递归遍历。
本文提出了一种新的递归神经网络结构,该结构由一个可分解的注意框架构成,称之为模型树转换器。其原理主要是:给定依赖关系树或选择树结构,任务是仔细遍历其中的每一个子树,并推断出其根表示向量。该模型使用复合函数将一组子表示转换为一个单亲表示。该模型结构图如下图所示。
Tree Transform与一些最先进的句子编码器的性能比较.
位置编码的影响对比
不同注意力模块作为一个复合函数产生的结果对比