在以前的文章中,咱们探讨过Transformer并不适宜工夫序列预测工作。为了解决这个问题Google创立了Hybrid Transformer-LSTM模型,该模型能够实现SOTA导致工夫序列预测工作。
然而我理论测试成果并不好,直到2022年3月Google钻研团队和瑞士AI实验室IDSIA提出了一种新的架构,称为Block Recurrent Transformer [2]。
从名字中就能看到,这是一个新型的Transformer模型,它利用了lstm的递归机制,在长期序列的建模工作中实现了显著改良。
@``
在介绍它之前,让咱们简要探讨与LSTMS相比,Transformer的劣势和毛病。这将帮忙你理解这个新架构的工作原理。
Transformer vs LSTM
Transformer 最显著的长处总结如下
并行性
LSTM实现了程序解决:输出(比如说句子)逐字解决。
Transformer 应用非程序解决:句子是作为一个整体解决的,而不是一个字一个字地解决。
图1和图2更好地阐明了这种比拟。
图1:序列长度为4的LSTM单元。
图2:Bert体系结构(简化)
LSTM须要8个工夫步来解决句子,而BERT[3]只须要2个工夫步!所以BERT可能更好地利用古代GPU减速所提供的并行性。
下面两个插图都通过了简化:假如批大小为1。另外也没有思考BERT的非凡令牌,比方它须要2个句子等等。
长期记忆
在挪动到将来的令牌之前,LSTM被迫将它们学习到的输出序列示意状态向量。尽管LSTMs解决了梯度隐没的问题,但他依然容易产生梯度爆炸。
Transformer有更高的带宽,例如在Encoder-Decoder Transformer[4]模型中,Decoder能够间接解决输出序列中的每个令牌,包含曾经解码的令牌。如图3所示:
图3:Transformer中的编码和解码
更好的注意力机制
transformer应用了一种名为Self-Attention的非凡注意力机制:这种机制容许输出中的每个单词援用输出中的每个其余单词。所以能够应用大的留神窗口(例如512,1048)。因而,它们十分无效地捕捉了长范畴内程序数据中的上下文信息。
让咱们看看Transformer的毛病:
自注意力的计算成本o(n²)
这其实Transformer最大的问题。初始BERT模型的极限为512 令牌。解决此问题的粗爆的办法是间接截断输出句子。为了解决这个问题能够应用surpass的办法,将令牌裁减到到4096。然而对于句子的长度,自注意力的命中老本也是二次的
所以可伸缩性变得十分具备挑战性。这也是为什么前面有许多想法来重组原始的自注意力机制:
图4:不同类型自注意力的老本矩阵
Longformer[6]和Transformer XL[7]等模型针对长格局文本进行了优化,并获得了显著的改良。
然而挑战依然存在:咱们是否在不就义效率的前提下进一步升高计算成本?
工夫序列的挑战性
尽管Transformer在NLP畛域占了主导地位,但它们在时序数据方面的胜利却无限。为什么呢?工夫序列不也是间断数据吗?
Transformer能够更好地从长期历史中计算工夫步长的输入,而不是以后输出和暗藏状态。这对于本地时态依赖项来说效率较低。总来来说就是短期记忆和长期记忆对工夫序列来说同样重要。
这就是为什么谷歌钻研人员公布了一个用于工夫序列预测的混合深度学习模型[1]:该模型应用了Attention,但也包含一个LSTM编码器-解码器堆栈,它在捕捉部分工夫依赖性方面施展了重要作用。
最初,工夫序列能够是多元的,不仅蕴含静态数据,还有季节性,趋势等等。它们通常须要更非凡的解决。
Block-Recurrent Transformer
该模型的次要冲破是循环单元:他是一个批改的Transformer层,然而它以循环的形式工作。
让咱们疾速概述次要特色,而后咱们将深入研究模型的体系结构。
- 块级并行性:块中的循环单元的过程令牌和块内的所有令牌都并行处理。
- 大注意力窗口:因为该模型将输出合成为块,因而能够应用很大的注意力窗口(已测试能够达到4096个令牌)。因而,这个模型属于长距离Transformer的家族(例如Longformer)。
- 线性复杂性:因为循环单元打将输出进行了宰割,所以模型应用Sliding Self-Attention将注意力计算的工夫复杂度缩小到了O(n)。
- 更稳固的训练:解决块中的程序对于在长距离内流传信息和梯度可能很有用,并且不会呈现灾难性忘记问题。
- 信息扩散:块循环在状态向量的块而不是单个向量(例如RNNS)上运行。该模型能够充分利用循环的特色并更好地捕捉过来的信息。
- 互操作性:循环单元能够与惯例Transformer层连贯。
- 模块化:循环单元能够程度重叠或垂直重叠,因为循环单元能够以两种模式运行:程度(用于循环)和垂直(用于重叠层)。。
- 操作老本:增加循环就像增加额定的层一样简略,并且不会引入额定的参数。
- 效率:与其余长距离的Transformer相比,该模型显示出显着改善。
以下两个将具体介绍Block-Recurrent Transformer的两个次要组成部分:循环单元Recurrent Cell 构造和带有循环个性的滑动自注意力Sliding Self-Attention with Recurrence。
循环单元构造
循环单元时该模型的骨干。然而不要被其形容为“单元”的特色感到困惑。这其实是一个Transformer层,然而却通过循环的形式调用
循环单元将接管以下类型的输出类型:
- 一组带有块大小令牌嵌入W。
- 一组“以后状态”向量S。
输入是:
- 输入令牌的嵌入W_out。
- 一组“下一个状态”嵌入向量。
图5显示了循环单元构造。该体系结构非常简单,并且从新应用了许多现有的Transformer代码,咱们甚至能够更加“简略”的总结就是把LSTMCell替换为Transformer Cell。
上面将逐渐解释图5所示的每个组件:
Self-Attention和Cross-Attention
循环单元反对两种类型的操作:自注意力和穿插注意力。更具体地说:
- Self-Attention在雷同嵌入(K、V和Q矩阵)中生成的键、值和查问上执行。
- Cross-Attention是从其余嵌入生成的K、V中执行的自身嵌入生成Q进行查问。
回忆一下原始的Transformer编码器-解码器模型[4],编码器执行自注意力,而解码器中的“编码器-解码器注意力”层执行穿插注意力。这是因为查问Q来自前一个Decoder层,而K和V来自Encoder输入。循环单元在同一层执行这两种操作。换句话说:
循环单元同时进行自我留神(编码)和穿插留神(解码)!
程度与垂直模式
如图5所示。之前提到的循环单元有两种运作模式:
垂直(重叠):在这种模式下,模型对输出嵌入执行自留神,对循环状态执行穿插留神。
程度(循环):与垂直相同,模型在循环状态上执行自留神,在输出嵌入上执行穿插留神。
地位偏差
在图5中一个名为Learned State id的方框(浅黄色)。让咱们解释一下这是什么,以及为什么须要它。
循环单元之间的状态转移不是单个向量(例如RNN),而是大量状态向量。因为对每个状态向量利用雷同的MLP层(一种规范做法),会导致状态向量无奈辨别。通过几个训练轮次后,它们往往会变得雷同。
为了避免这个问题,作者在状态向量中增加了一组额定的可学习的“状态IDS”。作者称这种景象为功能性地位偏差。这相似于地位编码,一般Transformer将其利用于输出嵌入。Block-Recurrent Transformer的作者将这种技术利用于循环状态向量,这就是为什么他们应用一个不同的名称以防止混同。
地位编码
Block-Recurrent Transformer不会将惯例的地位编码利用于输出,因为它们在长序列中不太好。取而代之的是作者应用了T5体系结构中引入的驰名技巧[8]:它们在垂直模式下的输出嵌入中增加了地位绝对偏置向量。偏置向量是键和查问之间绝对间隔的学习函数。
门配置
循环单元与其Transformer模型之间的另一个区别是残差连贯的应用。
Block Recurrent Transformer的作者尝试了以下配置:
- 用门代替残差连贯。(如图5所示)。
- 在 fixed gate和LSTM gate之间进行抉择。
作者进行了几项试验以找到最佳配置。无关更多详细信息,请查看原始论文。
带有循环个性的滑动自注意力
Block Recurrent Transformer的注意力机制能够说是革命性的摸索,可梳理以下概念:
- 产生的QK^TV矩阵变为“线性化”操作。
- 用O(n)逐渐替换O(n²)。
- 能够循环调用。
前两个概念曾经在相干工作中被提出[6],[9]。因为它们的发现Attention实现了计算量的缩减,然而会十分长的文档中失去成果。Block Recurrent Transformer将前两种思维与循环联合在一起,这一概念借鉴自传统的RNN。
线性矩阵产生
在Transformer的生态系统中,注意力围绕着3个矩阵:查问Q、键K和值v。
传统的注意力如下图所示:
Block-Recurrent Transformer 以不同的形式计算注意力评分:首先删除了softmax操作。而后依据[9]将其重新排列为Q(K^TV)(如图5所示),并以线性化的形式计算。
滑动自注意力
给定长序列的N个令牌s,一个滑动窗口利用了一个因果掩码,因而令牌s只能计入本身和先前的W 令牌。(W是块大小)。
咱们可视化留神矩阵如下:
图6:单个训练步骤的优化注意力矩阵。只计算2个彩色图块外部的分数,而不是计算残缺矩阵。)
在图6中,一个窗口大小W = 8和序列langth n = 16。在先前的训练步骤中计算并缓存了第一个W遮蔽令牌。其余的N个未遮蔽令牌来自以后输出。
输出序列中的每个令牌都以滑动形式间断地关注上一个W = 8的令牌。因而在每一行中都会有W次计算。矩阵的高度为n(咱们句子中的长度)。总成本为o(nw),而不是全副矩阵O(n(w+n))。zheyang 绝对于序列n的老本是线性的,而不是二次!
在咱们的例子中,Attention被用于两个大小为Wx2W的tile。让咱们来剖析一下这一连串的事件:
- 在第一个留神步骤中,输出句子的第一个W个令牌将解决前一个句子中最初缓存的W个键和值。
- 在第二个留神步骤中,输出句子的最初W个令牌将关注输出句子的第一个W个令牌。
- 这将完结咱们的训练步骤,并将输出句子的最初一个w键和值缓存,以用于下一个训练步骤。
- 这种滑动模式就是为什么咱们称这种机制为滑动自我留神。
留神:当我说令牌X关注令牌Y时,咱们并不是指令牌自身:我指的是那些各自令牌的K,Q,V!
循环时如何提供帮忙的
滑动自注意力(非循环版本)曾经在晚期论文[6] [7]中应用,不过有一些不同:
- 在以前的版本中,输出的句子没有分块。应用简略的滑动自我留神的模型是一次获取所有的输出。这就限度了他们可能无效解决的信息量。
- 后面训练步骤中应用的缓存k和v是不可微的——这意味着它们在反向流传期间不会更新。然而在循环版本中,滑动窗口有一个额定的劣势,因为它能够在多个块上反向流传梯度。
- 原滑动自留神模型最顶层的实践承受域为W*L,其中L为模型层数。在循环版本中,接管域实际上是有限的!这就是为什么在近程内容中表现出色的起因。
试验后果
最初,对Block-Recurrent Transformer进行了测试。
应用的工作是自回归语言建模,指标是在给定一个句子的状况下预测下一个单词。
该模型在3个数据集上进行测试:PG19、arXiv和Github。它们都蕴含很长的句子。
作者测试了Block-Recurrent Transformer,并应用Transformer XL作为基线。Block-Recurrent Transformer配置为两种模式:
单循环模式:作者应用了一个12层的Transformer,只有循环在第10层。
循环模式:应用雷同的模型,只是这一次第10层不只是循环输入给本人:第10层的输入在解决下一个块时播送给所有其余层。因而,层1-9能够穿插解决输出,使模型更弱小,但在计算上更低廉。
这些模型应用perplexity (语言模型的罕用度量规范)进行评估。
对于那些不晓得的人:perplexity被定义为P=2^L,其中L是惯例熵。
直观上讲在语言建模的环境中,能够这样思考perplexity:如果perplexity的值是30,那么预测句子中的下一个单词就像猜对一个有30面骰子的后果一样不确定。perplexity越低越好。
试验结果表明,Block-Recurrent Transformer在复杂度和速度方面都显著优于Transformer XL。
反馈模式优于单循环模式。然而作者指出,额定的性能晋升并不能补救额定的复杂性。
论文作者还尝试了各种配置,如增加或跳过门。无关更多信息,请查看原始论文[2]。
总结
Block-Recurrent Transformer是一篇突破性的论文,利用传统的RNN递归来减少长文档中的Transformer。
我强烈建议浏览原始论文[2]并应用本文作为辅助来帮忙了解。
因为这篇论文很新作者没有公布任何源代码,然而在Github上有一些非官方的实现,有趣味的能够自行搜寻
援用
- Dosovitskiy et al., An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (2020)
- DeLesley Hutchins et al. Block Recurrent Transformers (March 2022)
- Jacob Devlin et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (May 2019)
- A. Vaswani et al. Attention Is All You Need (Jun 2017)
- Kyunghyun et al. On the Properties of Neural Machine Translation: Encoder-Decoder Approaches
- Iz Beltagy et al. Longformer: The Long-Document Transformer, Allen Institute for Artificial Intelligence (2020)
- Zihang Dai et al. Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context (2019)
- Colin Raffel et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (2019)
- Angelos Katharopoulos et al. Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention (2020)
https://avoid.overfit.cn/post/b813e4e85ab9457fa9553230109a37ae
作者:Nikos Kafritsas