X-former:不止一面,你想要的Transformer这里都有

更新时间:2023-05-26 11:09:06 阅读: 评论:0

X-former:不⽌⼀⾯,你想要的Transformer这⾥都有
©原创作者 | FLPPED 参考论⽂:
A Survey of Transformers
论⽂地址:
研究背景:
Transformer在⼈⼯智能的许多领域取得了巨⼤的成功,例如⾃然语⾔处理,计算机视觉和⾳频处理,也⾃然吸引了⼤量的学术和⾏业研究⼈员的兴趣。
其最初是针对q2q的机器翻译模型⽽设计的,在后续的其他⼯作中,以Transformer为基础的预训练模型,在不同的任务中取得了state-of-the-art 的表现,有关Transformer的变种也是层出不穷(“x-former”)。
本⽂将从传统的vanilla Transformer⼊⼿,从模型结构改进、预训练等两个⾓度全⾯的介绍各种不同形式的x-former,并对其未来的可能发展⽅向提出可⾏的建议。
01 Vanilla Transformer
Vanilla Transformer[1]是⼀个q2q的模型结构,包含encoder和decoder两个部分,每个部分由L个相同的block组成。其中每个encoder包含多头注意⼒机制和piece-wi的前馈神经⽹络。
Decoder相⽐于encoder额外增加了cross-attention的模块,并且在⾃注意⼒机制中加⼊了mask,防⽌当前位置看到未来的信息。
模型的具体组成如图1所⽰。下⾯具体介绍⼏个重要的模块:
Ø Attention 模块:
Transformer采⽤了Query-Key-Value(QKV) 组成的注意⼒机制,其计算公式如下所⽰。为了缓解softmax 在计算时产⽣的梯度消失问题,
苏州营养师培训query和key在做点乘时需要除以
图1. Vanilla Transformer的模型⽰意图
在Transformer内部中,共有三种不同形式的attention:
● Self-attention:encoder中,Q=K=V。
● Masked Self-attention: Decoder中,当前位置只能注意到其位置之前的信息,通过将注意⼒矩阵做mask实现,如图1所⽰。
● Cross-attention: query 来⾃于decoder中上⼀层的输出,⽽K 和V使⽤的是encoder中的输出。
● Cross-attention: query 来⾃于decoder中上⼀层的输出,⽽K 和V使⽤的是encoder中的输出。
Ø Position-wi FFN、Residual connection and Normalization
安徽会计全连接:
残差连接:在每个模块之间,transformer采⽤了残差连接的⽅法,并且都会经过layer normalization 层。
⾃注意⼒机制在Transformer中发挥着重要的作⽤,但在实际应⽤中也⾯临着两个挑战:
queues(1) complexity:lf-attention的时间复杂度是O(T2·D),在处理长序列问题上存在较⼤瓶颈。
(2) structural prior:lf-attention没有对输⼊做输⼊做任何结构偏差的假设,因此对于⼩数据集可
能存在过拟合现象。
下⾯从这两个⽅⾯的改进,进⼀步介绍Transformer的各种变体。
02 模型结构: Attention
2.1 Spar Attention
Spar attention 在计算attention matrix时不会attend 每个token,⽽是遵循下⾯的公式(6).根据确定spar connection的⽅法⼜可以细分为 position-bad 和 content-bad 两种。
2.1.1 Position-bad Spar Attention
对于position-bad spar attention来说,其主要的特点在于attention matrix模式的设计,这⾥⾸先介绍⼀下⼏种具有代表性的模式:brembo
fpc是什么
Ø Global Attention
为了缓解稀疏注意⼒在中长距离依赖关系上模型能⼒的退化,这⼀类模式增加了⼀些全局节点作为节点间信息传播的枢纽。这些全局节点可以关注序列中的所有节点,并且整个序列也都会关注这些全局节点。
Ø Band Attention
这⼀类attention 也可以成为局部attention或者滑动窗⼝attention,设计的主要思路在于,由于⼤部分的数据都有很强的局部关系特性,因此可以限制query只关注附近的⼀些节点从⽽做到稀疏化的效果。
Ø Dilated Attention
这种attention的⽅法与dilated CNN的⽅法⼗分相似,可以在不增加计算复杂度的情况下扩⼤感受野的⼤⼩,并且通过调整dilation 的间距可以扩展⾄strided attention.
Ø Random Attention
为了提⾼⾮局部位置之间的联系,每个query随机的选择⼀些位置去attend.
Ø Block Local Attention
将整个序列划分为⼏个没有重叠部分的block,每个block内部之间做attention.
提到的⼏种attention matrix如下图2所⽰。
图2 具有代表性的⼏种spar attention 模式
在实际提出的⼏种变体中,其实往往是上⾯⼏种模式的组合。
下⾯具体介绍⼏个compound spar attention的⽅法。
(1) Star Transformer[2]
Star Transformer使⽤了band attention 和global attention的组合⽅法,具体来说,⽂章中定义了⼀个global node 和带宽为三的band attention, 因此任意⼀对不相连的节点之间通过⼀个共享的global node 相连接,位置相邻的节点之间可以直接相连,如图3(a)所⽰。
(2) Longformer[3]
Longformer 使⽤的是band attention 和内部global node attention的组合。在分类任务中,global node被选作[CLS]token;在问答任务中,所有question中的token被当作global nodes. 此外,在band attention之前的⼏层block中,⽂章还使⽤了dilated attention以此来加⼤感受野,如图3(b)所⽰。
(3) Extended Transformer Consturction(ETC)[4]
ETC使⽤了band attention和external global-node attention的组合,并且使⽤mask⽅法来处理结构化的输⼊,如图3(c)所⽰。
(4) BigBird[5]
BigBird中相⽐于上⾯提到的⼏种模型,还使⽤了额外的random attention 来近似full attention, 如图3(d)所⽰。并且通过理论分析,⽂章证明了使⽤spar encoder 和decoder可以模拟任何图灵机。
图3 ⼏种compound spar attention 模式
(5)Extended Spar Attention
除了上述⼏种模式,还有⼀些针对特殊数据的扩展稀疏模式。对于⽂本数据,BP-Transformer[6] 构建了⼀个⼆叉树,所有token都是叶⼦节点,其内部的节点为包含多个节点的span nodes. 其中⼆叉树边的构建是来⾃每个叶⼦节点和它相连的邻居叶⼦节点和更⾼层的 span nodes, 与span nodes之间边的连接可以获取更长时间依赖的信息。
下图(a)展⽰了BP-Transformer的模式图,其中全局节点是分层组织的,任何⼀对 token 都与⼆叉树中的路径相连。
图4 Spar attentions of BP-Transformer
2.1.2 Content-bad Spar Attention
(1) Reformer[7]
Reformer使⽤了Locality-nsitive hashing(LSH) 对每个query选择对应的key-value对。
基本思想是,⾸先利⽤LSH⽅程去对query和key做hash,相似的有更⾼的概率放到相同的buckets中,只对相同hashing bucket⾥的token做attention的计算。具体来说,LSH⽅程采⽤了random matrix⽅法,假设b为buckets的数量,对于⼀个random matrix R, 其size 为[Dk, b/2], 那么LSH的计算⽅法为:
LSH⽅法只允许第i个query attend 具有相同h值得key-value对。
(2) Route Transformer[8]
相⽐于reformer,该⽅法采⽤了k-means聚类的⽅法对query和key进⾏聚类,每个query 只attend 属于同⼀类cluster的keys. 聚类中⼼的向量根据被赋予向量的指数移动平均值来计算,同时除以cluster中数⽬的移动平均值,具体计算如下式所⽰。
2.2 Linearized attention[9]
图5 标准lf-attention和linearized lf-attention的计算复杂度
Attention 计算的⼀般形式为,
这⾥可将原始的指数内积的计算形式替换为核函数,从⽽提出新的计算⽅式,
对于⾃回归的attention⽽⾔,上式中的累积和项可以通过上⼀个时间步的结果计算叠加⽽来,因此对于transformer的decoder来说,整个计算过程类似于RNN的计算过程。
在Linear Transformer中,linear map采⽤了⼀种简单的计算⽅法,
erma>so that这种feature map的⽬的不是为了近似内积attention,但是通过实验证明它和标准的Transformer的结果表象相当。
2.3 Query Prototyping和memory Compression
remind的用法除了使⽤spar attention或者核函数的linearized attention外,另⼀个改进的思路就是减少query和key-value对的数量。
2.3.1 Query Prototyping
Query Prototyping⽅法这⾥主要以informer为例进⾏介绍。
Informer[10]的主要⽬标是通过改善⾃注意⼒机制的计算和内存开销,从⽽使得Transformer能够更有效的处理长序列数据。
主要创新点为:
图6 informer的模型⽰意图
Informer的模型框架图如上图所⽰。
左:编码器接收⼤量的长序列输⼊(绿⾊序列)。采⽤ProbSpar attention 来代替常规的lf-attention。蓝⾊梯形是⾃注意⼒的蒸馏操作来提取主要的attention,⼤⼤减⼩了⽹络规模。层叠加复制副本的操作增加了鲁棒性。
右:解码器接收长序列输⼊,将target中元素填充为零,根据特征图的加权注意⼒组成,⽴即以⽣成⽅式预测输出元素(橙⾊系列)英语胎教
(橙⾊系列)
2.3.2 Attention with Compresd Key-Value Memory
相⽐于减少query数量的⽅法,这⼀类⽅法的主要特点在于通过减少key-value对的数量来减少复杂度。
这⼀领域较早的尝试来⾃于Memory Compresd Attention(MCA),它是通过跨步卷积的⽅法来减少key和value的数量,减少的⼤⼩和kernel size k的数值有关,这种⽅法相⽐于之前提到局部注意⼒⽽⾔,增加了对全局上下⽂的捕捉。
Linformer[11] 利⽤线性投影将键和值从长度n投射到⼀个更⼩的长度的nk。这也将lf attention的复杂性降低到线性。这种⽅法的缺点是必须假定输⼊序列的长度,因此不能⽤于⾃回归的问题上。
在最新的研究⼯作中,由微软提出的PoolingFormer[12] 将原始的全注意⼒机制修改为⼀个两级注意⼒机制:第⼀级采⽤滑动窗⼝注意⼒机制,限制每个词只关注近距离的邻居;第⼆级采⽤池化注意⼒机制,采⽤更⼤的窗⼝来增加每个token 的感受野,同时利⽤池化操作来压缩键和值向量,以减少要参加注意⼒运算的token数量。
这种结合滑动注意⼒机制和池化注意⼒机制的多级设计可以显著降低计算成本和内存消耗,同时还能获得优异的模型性能,模型的具体设计如下图所⽰。
与原始的注意⼒机制相⽐,PoolingFormer 的计算和内存复杂度仅随序列长度线性增加。
图7 PoolingFormer中两阶段lf attention⽰意图
左边的block是第⼀级滑动窗⼝attention,右边的block是第⼆级的池化attention
实验结果⽅⾯,在长⽂档QA任务上,Poolingformer实现了新的state of art 表现,并且展现出了较强的模型优越性。2.4 多头机制的改进
多头注意⼒的⼀⼤优势在于它能够共同关注来⾃不同⼦空间的不同位置的信息。然⽽,⽬前还没有⼀种机制可以保证不同的注意头确实捕捉了不同的特征。
为此,不同学者在这个问题上提供了两⼤类改进的思路:
图8 三种span masking ⽅法
2.5 其他模块级别的改进
2.5.1 Layer Normalization
层归⼀化(LN)与残差连接被认为是稳定深度⽹络训练的⼀种机制(例如,缓解不理想的梯度和模型退化)。因此很多研究将注意⼒放在分析和改进LN模块,尤其是Layer normalization 放置的位置。
在vanilla Transformer中,LN层位于residual block之间,称为post-LN。后来的Transformer实现将LN层放在注意⼒或FFN之前的残差连接内,在最后⼀层之后设置⼀个额外的LN来控制最终输出的⼤⼩,这被称为pre-LN。Pre-LN[15]
已被许多后续的研究和实现所采⽤,pre-LN和post-LN的区别如图所⽰
图9 Transformer encoder中 Pre-LN 和post-LN的对⽐
Xiong等⼈[16]从理论上研究了tranformer的梯度,并发现在post-LN transformer中,输出层附近的梯度在初始化时很⼤,这可能是是没有学习率warm-up的post-LN Transformer 训练不稳定的原因。⽽Pre-LN Transformer则不存在同样的问题。
因此,他们推断并从经验上验证了warm-up阶段在Pre-LN中被去掉。尽管Post-LN经常导致不稳定的训练和发散,但它在收敛后通常优于pre-LN变体。通过理论和实证分析,Post-LN在训练和发散⽅⾯的效果要好于pre-LN。
小学英语三年级上册

本文发布于:2023-05-26 11:09:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/123291.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:注意   机制   计算
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图