赞
踩
改进版本的各种former在如下三个方面改进了vanilla Transformer:
提出一个新的分类,根据三个方面:模型改进、预训练、应用。
是一种灵活的可以处理可变长度的机制,可以理解为一个权重从输入动态生成。优势如下:
(1)和全连接层拥有同样的最大路径长度,更能建模长期依赖,和全连接层相比,参数更少,在处理可变长度输入时更加灵活。
(2)和卷积层相比不需要叠加很多层
(3)和RNN相比更容易并行
Transformer通常跟CNN和RNN相比较,CNN通过共享卷积核参数增强了平移不变形和局部性的归纳偏置,RNN通过携带他的马尔科夫结构携带了时序不变性以及局部性的归纳偏置,但是,Transformer架构对于数据的结构信息做出了较少的假设,却也使得其容易在小规模数据及上过拟合。
另外一个与之相关的架构是具有消息传递的图神经网络。Transformer可以视作定义在完全有向图(具有自循环)的图神经网络,每一个输入为图中的一个点。所不同的是,Transformer没有引入关于数据结构的先验知识,消息传递机制仅仅依赖于输入之间的相似性
按照三个来分类:架构改变、预训练方法、应用
在实际应用中仍然有两个挑战:
在标准的Transformer里,每一个记号都要attend其他记号。然而在训练好的Transformer里,注意力矩阵在大部分输入点都很稀疏,限制每个query 所attend的数目。
根据确定稀疏连接的方法,将其分为两种。position-based
和content-based
attention权重矩阵根据某种预定义的模式来确定,可以解构为一些原子模式
1.为了处理Sparse Attention在建模长期以来的不足,添加一些全局结点作为信息传递的中转站
2.band attention
3.dilated attention
4.random attention
5.block attention
Star-Transformer、Longformer、ETC、Bigbird、Sparse Transformer
其中一个,应用于文本,BP-Transformer
以输入为条件
routing transformers
reformer
SAC
sparse sinkhorn attention
Q
K
T
QK^{T}
QKT的计算与T的平方成正比,如果可以
Q
、
(
K
、
T
V
)
Q^{、}(K^{、T}V)
Q、(K、TV)这样算的话,就可以有用O(T)的复杂度,即使用
ϕ
(
Q
)
ϕ
(
K
)
T
\phi(Q)\phi(K)^{T}
ϕ(Q)ϕ(K)T代替
e
x
p
(
Q
K
T
)
exp(QK^{T})
exp(QKT),
ϕ
\phi
ϕ被称之为feature map
,
主要有两个关键点,feature map
,融合方法
仍然是为了降低复杂度,两个方法,降级query数目,降低 key-value pair 数目
cluster attention 将query分为一簇一簇的,每一簇的质心代表这一簇来进行注意力计算
降低key-value对的数目
memory compressed transformer
经验和理论都表明,self-Attention matrix 通常很低秩,有了两种思路:
Attention分布也可以来自于除了
Q
K
T
QK^{T}
QKT的其他来源,我们将之称之为 prior
,
多头注意力 吸引力:不同头将注意力集中在不同位置的输入子空间中,然而,没有机制能保证这一特性。
方法:通过引入更加复杂的机制来保证每个头的不同表现或者允许头之间的交互
一个方法:引入正则项
注意到,一些头关注于局部上下文,而一些头更加关注更宽的上下文,因此,限制注意力span可能有用
不同头所得表示的融合方法
对于文本,建模位置信息很重要,比较值得提的就是sin cos的频率。
建模token之间的位置关系,有一个 relative position embedding
一些杂交的表示,花里胡哨的
将嵌入泛化为 具有连续位置信息的函数,例如说建模局部序列的R-Transformer,再经过每个分块处理之前,首先经过RNN,RNN捕捉了顺序信息,建模了短期依赖
masked self-Attention不含有顺序不变性,所以,只含有decoder的Transformer可以不含有显式位置编码,就已经建模了位置信息。
LN使得深层网络的训练更加稳定
有两种,post-LN以及pre-LN.各有一些探讨
可学习参数在大部分情况下不工作,而LN中的均值和方差再缩放对LN至关重要,因此提出了一个新的正则化方法
使用一种可学习的residual connector来代替
GLU GELU
一直都没怎么看懂这个是啥
funnel-Transformer,比如说逐步缩短序列的长度
在原始的Transformer中,每一层使用上一层的输出作为输入,我们可不可以创造更多的路径,使得输入路径可以贯穿全程呢。比如在 decoder cross-attention的时候,使用一个weight sum
使得计算时间根据输入的不同而不同,例如 universal transformer
还有就是,early-exit系统,
处理长序列,使用分而治之的办法,就是分段
有一个缓存,缓存包含了历史信息;
处理更长的序列时,比如对于document summerization,首先处理句子级别的表示,然后使用这些句子级别的表示来生成文件级别的表示
亦或是用来生成富含更多信息的表示、
MAN在self-Attention之前添加了一个 dynamic mask attention module,mask基于token表示以及token和头编号之间的相对距离,很好的建模了文本数据的局部性。
Transformer对于数据结构做出了很少的假设,在大规模文本上进行预训练使得模型不捉了一些全局语言信息。使用不同的自监督任务进行预训练。
1)仍需理论描述
2)更好的全局信息交互
3)对于多形式的数据拥有一个统一的架构
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。