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做计算,一般取最后一个隐向量作为输出,为了充分利用上下文关系,每做一次预测,就对整个序列向右移动一个位置,在做一次计算,这导致效率非常低。
Transformer及其改进型总结

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

  • Relative Position Encodings
    Vanliia Trm使用position embedding或者正弦/余弦函数来对位置进行编码,这是一种绝对距离位置编码,而Transformer-XL使用相对位置编码。
    Atteention(Q,K,V)=softmax(QKTdkV)Atteention(Q, K, V) = softmax(\frac{QK^T}{d_k}V)
    QKTQK^T可以分解为以下:
    Transformer及其改进型总结
    Transformer及其改进型总结

UiU_iUjU_j即为绝对距离,替换为相对距离,得到以下计算公式:
Transformer及其改进型总结

  • RR表示相对距离,是一个sinsin函数,没有参数
  • uuvv都是可训练参数

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

XL-Net

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

排列语言模型

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

XL-NET最大化所有可能的序列的因式分解顺序的期望对数似然。
Transformer及其改进型总结

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

Transformer及其改进型总结

  • Content Representation内容表述,即hθ(xt)h_{\theta}(x_{\leq t}),下文本用hzth_{z_t}表示,该表述和传统的transformer一样,同样编码了自身。
    Transformer及其改进型总结
  • Query Representation查询表述,即gθ(xz<t,zt)g_\theta(x_{z<t}, z_t),下文用gztg_{z_t}表示,该表述包含上下文信息xz<tx_{z<t}(注意区别),和目标地位置信息ztz_t,但是不包括目标地内容信息xztx_{z_t}
    Transformer及其改进型总结
    Transformer及其改进型总结