zoukankan      html  css  js  c++  java
  • Transformer及其改进型总结

    Transformer是Google提出的用来解决LSTM建模长期依赖乏力的问题全新架构模型,同时其网络架构的设计全部考虑如何并行化,包括self-attenion机制、multi-head self-attention机制、FFW全部都是可以并行计算的,Add&Norm中Add类似预ResNet的shortcut,是为了解决深层模型梯度消失的问题,LayerNorm可以加速计算,这全部都是在为后面的大规模预训练模型做准备。Transformer的提出在NLP中具有里程碑式的意义,现在取得成功的Bert系列基于Transforner Encoder,GPT系列基于Transformer Decoder。这篇文章将不再赘述Tranformer的架构,想必大家应该已经跟熟悉了,这方面有大量的文章可供阅读。本篇博客聚焦于Transformer的改进路线,也是NLP面试常见问题。

    Transformer

    Attention is all you need
    完全图解GPT-2:看完这篇就够了(一)
    BERT大火却不懂Transformer?读这一篇就够了

    Transformer-XL

    Transformer作为一种特征提取器,在NLP中有广泛的应用。但Trm需要对序列设置一个固定长度,如果序列超过该长度,需要将句子划分成多个segment,训练的时候每个segment单独处理,各segment之间没有联系,最长的依赖关系长度就取决于segment长度。

    预测的时候会对固定长度的segment做计算,一般取最后一个隐向量作为输出,为了充分利用上下文关系,每做一次预测,就对整个序列向右移动一个位置,在做一次计算,这导致效率非常低。
    在这里插入图片描述

    • Segment-Level Recurrence
      为了解决上面提到的问题,Transformer-XL提出一个改进,对当前Segment进行处理的时候,缓存并利用上一个segment中所有layer的隐向量序列,这些隐向量序列只参与前向计算,不再进行反向传播,这就是所谓的Segment-Level Recurrence。
      在这里插入图片描述

    • Relative Position Encodings
      Vanliia Trm使用position embedding或者正弦/余弦函数来对位置进行编码,这是一种绝对距离位置编码,而Transformer-XL使用相对位置编码。
      A t t e e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k V ) Atteention(Q, K, V) = softmax(frac{QK^T}{d_k}V) Atteention(Q,K,V)=softmax(dkQKTV)
      Q K T QK^T QKT可以分解为以下:
      在这里插入图片描述
      在这里插入图片描述

    U i U_i Ui U j U_j Uj即为绝对距离,替换为相对距离,得到以下计算公式:
    在这里插入图片描述

    • R R R表示相对距离,是一个 s i n sin sin函数,没有参数
    • u u u v v v都是可训练参数

    即对绝对距离做替换,一部分替换成sin函数,一部分替换成可训练参数。

    XL-Net

    在Transformer-XL的基础上,增加了排列语言模型和双流注意力机制,详见这里

    排列语言模型

    传统的自回归语言模型按文本顺序进行顺序建模,这无法充分利用上下文信息,所以才有了BERT这种双向模型。而XL-Net采用了排列语言模型来获取更多更丰富的信息。

    XL-NET最大化所有可能的序列的因式分解顺序的期望对数似然。
    在这里插入图片描述

    基于表征的双向注意力机制

    在这里插入图片描述

    • Content Representation内容表述,即 h θ ( x ≤ t ) h_{ heta}(x_{leq t}) hθ(xt),下文本用 h z t h_{z_t} hzt表示,该表述和传统的transformer一样,同样编码了自身。
      在这里插入图片描述
    • Query Representation查询表述,即 g θ ( x z < t , z t ) g_ heta(x_{z<t}, z_t) gθ(xz<t,zt),下文用 g z t g_{z_t} gzt表示,该表述包含上下文信息 x z < t x_{z<t} xz<t(注意区别),和目标地位置信息 z t z_t zt,但是不包括目标的内容信息 x z t x_{z_t} xzt
      在这里插入图片描述
      在这里插入图片描述
  • 相关阅读:
    BZOJ 3924: [Zjoi2015]幻想乡战略游戏
    codevs 4244 平衡树练习
    BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊
    BZOJ 2038: [2009国家集训队]小Z的袜子
    luogu P3709 大爷的字符串题
    BZOJ 2120: 数颜色
    luogu P2056 采花
    luogu P2709 小B的询问
    BZOJ 1878: [SDOI2009]HH的项链
    Codeforces 221d D. Little Elephant and Array
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842427.html
Copyright © 2011-2022 走看看