深度语言模型-Transformer-XL

2021-02-20  本文已影响0人  南朝容止

简介

2019年提出《Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context》论文,是在Transformer基础上的改进或变种,名字中的XL是extra long的缩写,顾名思义,旨在解决长序列问题。 这是一个一直困扰着前辈们很久的问题。

个人见解

看了好几遍论文,其实个人觉得最主要的一点,就是它采用的Masked Attention,并非Transformer中的Self-Attenttion。 二者有些区别。可以见本人的另一篇文章《深度语言模型-GPT》。

确定的Masked Attention后,接下来就好理解了。先看下Transformer-XL为什么被提出来的?

其实严肃的算下来,Transformer应该是Transformer-XL的祖父,其他的父亲是谁呢?正是Vanilla Transformer, 也是一种特征提取器,但是为父有三个问题:

面对Transformer先辈们遗留下来的问题,后人Transformer-XL决定要改变一下,一穷二白,毕竟不是社会主义。

算法流程

Transformer-XL

Transformer-XL架构在vanilla Transformer的基础上引入了两点创新:

循环机制(Recurrence Mechanism)

相对位置编码(Relative Positional Encoding)。

上面的循环机制虽然好,但是直接引入循环机制是否有问题,有什么问题,怎么克服。

问题

最大的问题就是:位置编码问题,再用之前的问题编码就有问题了。 比如同一个词,在滑动窗口内部, 在前后两个segment里面都有,而且位置相同怎么办? 那不就相当于在滑动窗口内部出现了完全相同的两个东西了吗?表示序列中token的顺序关系就不复存在了, 打乱了序列顺序关系,学出来的模型肯定有问题,因为token的顺序对语义很重要。

解决

引入相对位置编码 Ri-j.

图片2
第一个图片公式是vanilla Trm计算attention的方式,其实Attention的最初的公式用绝对位置时,是下面这样的, 图片3
分解展开之后就是图片1了。
针对图片1, 其中 Ex是token的Embedding。
U是绝对位置编码的embedding。WqWk分别为Q,K的初始参数矩阵。

而对于图片2,是Transform-XL计算attention的方式。做了以下变化:

最终公式

image.png

注意点:

特点

*优点
Transformer-XL 在 vanilla Transformer 模型基础上改进,通过引入循环机制和注意力机制,允许模型学习长期依赖性, 有以下几点优势:
1. 解决长距离依赖问题
2. 解决segment间语义不完整问题
3. 解决计算慢的问题
按照论文的描述,TransformerXL学习的依赖关系比RNN长80%,比传统Transformer长450%,在短序列和长序列上都获得了更好的性能,并且在评估阶段比传统Transformer快1800+倍。
XLNET以其为base,又搞了个新模型。

*缺点

上一篇下一篇

猜你喜欢

热点阅读