十六、XLNet

XLNet(Generalized AutoRegressive Pretraining for Language Understanding) 的出发点是:能否融合自回归 AutoRegressive (AR) Language Model 与自编码 AutoEncoding (AE) Language Model 两种语言模型的优点(就是说如果站在 AR 的角度,如何引入与双向语言模型等价的效果;如果站在 AE 的角度看,它本身是融入双向语言模型的,如何抛掉表面的 [Mask] 标记,让预训练 Pre-Training 和微调 Fine-Tuning 数据保持一致),本质上还是一种自回归模型。

1 排列语言模型(Permutation Language Model, PLM)

排列组合语言模型(PLM)能够保留自回归(AR)语言模型的优点,同时能够捕获双向的上下文信息(AE 的优点)。该模型采用排列组合的方式,每个位置的上下文可以由来自左边和右边的 Token 组成。参考排列语言模型

排列组合语言模型排列过程如下:

假设输入的序列是 [1,2,3,4],排列共有 4! = 4x3x2x1 = 24 种,如下:

[('x1', 'x2', 'x3', 'x4'),
 ('x1', 'x2', 'x4', 'x3'),
 ('x1', 'x3', 'x2', 'x4'),
 ('x1', 'x3', 'x4', 'x2'),
 ('x1', 'x4', 'x2', 'x3'),
 ('x1', 'x4', 'x3', 'x2'),
 ('x2', 'x1', 'x3', 'x4'),
 ('x2', 'x1', 'x4', 'x3'),
 ('x2', 'x3', 'x1', 'x4'),
 ('x2', 'x3', 'x4', 'x1'),
 ('x2', 'x4', 'x1', 'x3'),
 ('x2', 'x4', 'x3', 'x1'),
 ('x3', 'x1', 'x2', 'x4'),
 ('x3', 'x1', 'x4', 'x2'),
 ('x3', 'x2', 'x1', 'x4'),
 ('x3', 'x2', 'x4', 'x1'),
 ('x3', 'x4', 'x1', 'x2'),
 ('x3', 'x4', 'x2', 'x1'),
 ('x4', 'x1', 'x2', 'x3'),
 ('x4', 'x1', 'x3', 'x2'),
 ('x4', 'x2', 'x1', 'x3'),
 ('x4', 'x2', 'x3', 'x1'),
 ('x4', 'x3', 'x1', 'x2'),
 ('x4', 'x3', 'x2', 'x1')]

选其中的四种分别为 [3,2,4,1],[2,4,3,1],[1,4,2,3],[4,3,1,2]。在预测位置 3 的单词时,第一种排列看不到任何单词,第二种排列能看到 [2,4],第三种排列能看到 [1,2,4],第四种排列能看到 [4],所以预测位置 3 的单词时,不仅能看到上文 [1, 2],也能看到下文的 [4],所以通过这种方式,排列语言模型能同时编码上下文信息。

​​

排列组合语言模型的本质就是语言模型联合概率的多种分解机制的体现,将语言模型的顺序拆解推广到随机拆解,但是需要保留每个词的原始位置信息(注:排列组合语言模型只是语言模型建模方式的因式分解或排列,并不是词的位置信息的重新排列)

排列组合语言模型缺点:

在实现过程中,排列语言模型会存在一个问题,输入序列 [1, 2, 3, 4] 肯定会有如下的排列 [1, 2, 3, 4] 和 [1,2,4,3],其中第一个排列预测位置 3,得到如下公式 P(3|1, 2) ,第二个排列预测位置 4,得到如下公式 P(4|1, 2) ,这会造成预测出位置 3 的单词和位置 4 的单词是一样的。

2 双流注意力

为了解决排列组合语言模型目标(target)位置信息的缺点,引入双流注意力(Two-Stream Self-Attention)机制,结构图如下:

​​

  • Content Stream Attention:上面图(a),与自注意力机制 Self-Attention 相似,在预测其他单词的时候,主要为 Query Stream Attention 提供其它词的内容向量,包含位置信息和内容信息;
  • Query Stream Attention:上面图(b),在预测当前单词的时候,只能使用当前单词的位置信息,不能使用单词的内容信息。
  • Overview of the PLM Training with Two-Stream Attention:上面图(c),首先查询流是随机初始化了一个向量,然后内容流是采用的词向量,Self-Attention 的计算过程中两个流的网络权重是共享的,最后在微调阶段,只需要把 Query Stream移除,只采用 Content Stream 即可。

XLNet 中的双流注意力和 BERT 中的注意力有什么不同:

XLNet 包含两种自注意力。一个是content stream attention,它是Transformer中的标准自注意力。另一个是query stream attention。XLNet引入它来替换BERT中的[MASK] token。

​​

当它被用作内容来预测其他标记时,我们可以使用内容表示(通过内容流注意力来学习)来表示 x3。但是如果我们想要预测 x3,我们应该只知道它的位置而不是它的内容。这就是为什么 XLNet 使用查询表示(通过查询流注意力来学习)来保留 x3 之前的上下文信息,只保存 x3 的位置信息。

3 Transformer-XL(eXtra Long)

参考论文笔记—Tranformer-XL

Transformer 缺点如下:

  • Transformer 无法建模超过固定长度的依赖关系,对长文本编码效果差。
  • Transformer 把要处理的文本分割成等长的片段,片段之间没有任何的信息交互,通常不考虑句子(语义)边界,导致上下文碎片化(Context Fragmentation)。通俗来讲,一个完整的句子在分割后,一半在前面的片段,一半在后面的片段。

3.1 片段级别递归机制

片段级递归机制(Segment-Level Recurrence Mechanism)增加 Transformer 处理文本的长度,解决超长序列的依赖问题(指的是之前的 Transformer 最大处理长度为定长 MAX_LEN,超过 MAX_LEN 则会截断,这样导致截断处文本信息断裂,连接不上上下文),使得片段之间产生交互,解决上下文碎片化问题。

3.2 相对位置编码机制

相对位置编码机制(Relative Position Embedding Scheme)解决了绝对位置编码在不同片段的位置编码是一样的(不同片段中相同的 Token 无法区分的问题),采用相对距离的方式可以得到相应的位置编码。

Transformer-XL 比 Transformer 具有更长的有效上下文,并且 Transformer-XL 能够在不需要重新计算前一段的情况下处理新段中的所有元素,显著提高了速度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

瑞雪兆我心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值