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

©原创作者 | FLPPED

参考论文:

A Survey of Transformers

论文地址:

https://arxiv.org/abs/2106.04554

研究背景:

Transformer在人工智能的许多领域取得了巨大的成功,例如自然语言处理,计算机视觉和音频处理,也自然吸引了大量的学术和行业研究人员的兴趣。

其最初是针对seq2seq的机器翻译模型而设计的,在后续的其他工作中,以Transformer为基础的预训练模型,在不同的任务中取得了state-of-the-art 的表现,有关Transformer的变种也是层出不穷(“x-former”)。

本文将从传统的vanilla Transformer入手,从模型结构改进、预训练等两个角度全面的介绍各种不同形式的x-former,并对其未来的可能发展方向提出可行的建议。

01 Vanilla Transformer

Vanilla Transformer[1]是一个seq2seq的模型结构,包含encoder和decoder两个部分,每个部分由L个相同的block组成。其中每个encoder包含多头注意力机制和piece-wise的前馈神经网络。

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中的输出。

Ø Position-wise FFN、Residual connection and Normalization

全连接:

残差连接:在每个模块之间,transformer采用了残差连接的方法,并且都会经过layer normalization 层。

自注意力机制在Transformer中发挥着重要的作用,但在实际应用中也面临着两个挑战:

(1) complexity:self-attention的时间复杂度是O(T2·D),在处理长序列问题上存在较大瓶颈。

(2) structural prior:self-attention没有对输入做输入做任何结构偏差的假设,因此对于小数据集可能存在过拟合现象。

下面从这两个方面的改进,进一步介绍Transformer的各种变体。

02 模型结构: Attention

2.1 Sparse Attention

Sparse attention 在计算attention matrix时不会attend 每个token,而是遵循下面的公式(6).根据确定sparse connection的方法又可以细分为 position-based 和 content-based 两种。

2.1.1 Position-based Sparse Attention

对于position-based sparse attention来说,其主要的特点在于attention matrix模式的设计,这里首先介绍一下几种具有代表性的模式:

Ø 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 具有代表性的几种sparse attention 模式

在实际提出的几种变体中,其实往往是上面几种模式的组合。

下面具体介绍几个compound sparse attention的方法。

(1) Star Transformer[2]

Star Transformer使用了band attention 和global attention的组合方法,具体来说,文章中定义了一个global node 和带宽为三的band attention, 因此任意一对

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NLP论文解读

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值