Pretrained-Model-02-Transformer-XL阅读笔记

文章题目:Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

发表会议及时间:2019-ACL

Pretrained-Model-02-Transformer-XL阅读笔记_第1张图片

1、背景知识

Pretrained-Model-02-Transformer-XL阅读笔记_第2张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第3张图片

2、相关工作

Pretrained-Model-02-Transformer-XL阅读笔记_第4张图片

Valilla Transformer ( https://arxiv.org/abs/1808.04444 )的训练和测试阶段信息流过程

Pretrained-Model-02-Transformer-XL阅读笔记_第5张图片

 训练阶段:

在这里插入图片描述

测试阶段:

在这里插入图片描述

  • 训练阶段:将文本分割为多个片段,进行单独的训练,片段之间的信息无法交流
  • 测试阶段:首先使用X1~X4(假设片段长度为4)来预测X5,然后使用X2~X5的信息来预测X6,需要不断的迁移信息来进行预测,造成了时间的浪费

Pretrained-Model-02-Transformer-XL阅读笔记_第6张图片

3、模型结构

参考博客

https://www.lyrn.ai/2019/01/16/transformer-xl-sota-language-model/

https://blog.csdn.net/Magical_Bubble/article/details/89060213

针对上述问题,本文提出了Transformmer-XL,其中包括两个创新点

  1. 片段级递归机制
  2. 相对位置编码

3.1、片段级递归机制

为了解决 Vallina Transformer 训练过程中不同片段之间无法信息交流的问题,作者提出了片段级递归机制,与Vanilla Transformer的基本思路一样,Transformer-XL仍然是使用分段的方式进行建模,但其与Vanilla Transformer的本质不同是在于引入了段与段之间的循环机制,使得当前段在建模的时候能够利用之前段的信息来实现长期依赖性。处理过程如下图公式所示

Pretrained-Model-02-Transformer-XL阅读笔记_第7张图片

在训练阶段,处理后面的段时,每个隐藏层都会接收两个输入:

  1. 该段的前面隐藏层的输出,与vanilla Transformer相同(上图的灰色线)。
  2. 前面段的隐藏层的输出(上图的绿色线),可以使模型创建长期依赖关系。

这两个输入会被拼接,然后用于计算当前段的Key和Value矩阵。对于某个段的某一层的具体计算公式如下:

Pretrained-Model-02-Transformer-XL阅读笔记_第8张图片

  • 其中,\tau表示第几段,n表示第几层,h表示隐层的输出
  •  SG() 表示在进行 \tau+1 片段 信息处理时不再计算 \tau 片段的梯度 
  • 第二个公式则与 Transformer 中Q,K,V计算方法相同,不过此时的输入 拼接了上一个片段的隐藏状态
  • 第三个公式则进行Transformer的计算

原则上只要GPU内存允许,该方法可以利用前面更多段的信息,测试阶段也可以获得更长的依赖。

训练阶段 :

 

在这里插入图片描述  

测试阶段 :

在这里插入图片描述

  • 其中绿色部分为segemnt-level recurrence机制,实际使用时的缓存的segemnt可以是不仅限于上一状态
  • RNN的语言模型的recurrence dependency在同一层layer之间,而本模型可以在不同layer之间,因此depency 
    length为 O(N*L)
  • 在测试阶段,与vanilla Transformer相比,其速度也会更快。在vanilla Transformer中,一次只能前进一个step,并且需要重新构建段,并全部从头开始计算;而在Transformer-XL中,每次可以前进一整个段,并利用之前段的数据来预测当前段的输出。

3.2、相对位置编码

在原始的Vallina Transformer模型中,不同片段中相同位置采用的编码机制获得的编码结果是相同的,因此无法区分不同片段中相同位置的元素信息,因此本文提出了相对编码机制 

Pretrained-Model-02-Transformer-XL阅读笔记_第9张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第10张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第11张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第12张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第13张图片

3.3、加速计算小技巧

对应原文附录B

Pretrained-Model-02-Transformer-XL阅读笔记_第14张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第15张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第16张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第17张图片

4、实验结果与分析

4.1、数据集介绍

Pretrained-Model-02-Transformer-XL阅读笔记_第18张图片

4.2、实验结果对比

Pretrained-Model-02-Transformer-XL阅读笔记_第19张图片

Pretrained-Model-02-Transformer-XL阅读笔记_第20张图片

 

本文为深度之眼paper论文班的学习笔记,仅供自己学习使用,如有问题欢迎讨论!关于课程可以扫描下图二维码

 

 

你可能感兴趣的:(论文阅读总结,NLP)