XLNet学习:究极总结

XLNet是一种预训练模型,采用Permutation Language Modeling解决了BERT的预训练和finetune不匹配问题,实现了编码器-解码器的一体化。它结合Transformer-XL的相对位置编码和片段循环机制,提高了对长序列的理解能力。实验表明,XLNet在多个NLP任务上表现出色,尤其是在长文档处理和生成任务中优于BERT。
摘要由CSDN通过智能技术生成

XLNet:

XLNet方法介绍:

编码器-解码器的一体化

Objective: Permutation Language Modeling

Incorporating Ideas from Transformer-X

Discussion and Analysis

Comparison with BERT

Comparison with Language Model

Experiments

Pretraining and Implementation

Ablation Study

Important Design:

Conclusions


XLNet

XLNet 的核心思想:PermutationLM 使用双向上下文 + Transformer-XL 对架构进行改进。

Bert在预训练阶段的两个问题:

  1. 自编码语言模型在预训练过程中会使用 MASK 符号,但在下游 NLP 任务中并不会使用,所以导致预训练和finetune不匹配;
  2. BERT 假设要预测的词之间是相互独立的,即 Mask 之间相互不影响。(独立性假设)                                                                                                                                                      

由于意识到BERT 这种自编码模型强大的理解能力,本质上是由于同时考虑了上下文信息,如何优化自回归模型使其也拥有在学习当前词时能结合上下文信息?

XLNet方法介绍:

 

首先,如上图,因为随机排列是带有位置信息的,所以扰乱词顺序并不影响句子的序列建模。如果我们知道所有词的内容及位置,那么是不是顺序的拆解句子就不那么重要了。相反这种随机 分解顺序还会构建双向语义;如上利用[语言]和[喜欢]预测[处理]就利用了上下文的词。

这理解起来其实也非常直观,如果我们知道某些词及词的位置,那么完形填空式地猜某个位置可能出现哪些词也是没问题的。此外,我们可以发现,这种排列语言模型就是传统自回归语言模型的推广,它将自然语言的顺序拆解推广到随机拆解。当然这种随机拆解要保留每个词的原始位置信息,不然就和词袋模型没什么差别了。

如果读者了解一些 Transformer,那么就会知道某个 Token 的内容和位置向量在输入到模型前就已经加在一起了,后续的隐向量同时具有内容和位置的信息。但杨植麟说:「新任务希望在预测下一个词时只能提供位置信息,不能提供内容相关的信息。因此模型希望同时做两件事,首先它希望预测自己到底是哪个字符,其次还要能预测后面的字符是哪个。

如果模型预测当前词,则只能使用位置向量;如果模型预测后续的词,那么使用位置加内容向量。因此这就像我们既需要标准 Transformer 提供内容向量,又要另一个网络提供对应的位置向量。

 

 

 

调整Transformer 以适应任务提出了 Two-Stream Self-Attention它通过构建两条路径解决这个条件句。如上图所示为 Two-Stream 的结构,其中左上角的 a 为 Content 流,左下角的 b 为 Query 流,右边的 c 为排列语言模型的整体建模过程。

 

在 Content 流中,它和标准的 Transformer 是一样的,第 1 个位置的隐藏向量 h_1 同时编码了内容与位置。在 Query 流中,第 1 个位置的隐向量 g_1 只编码了位置信息,但它同时还需要利用其它 Token 的内容隐向量 h_2、h_3 和 h_4,它们都通过 Content 流计算得出。因此,我们可以直观理解为,Query 流就是为了预测当前词,而 Content 流主要为 Query 流提供其它词的内容向量。

 

在 finetuning 时可以丢掉 query representation,使用 content representation 作为标准 Transformer。

由于不同排列导致的 Language Modeling 优化问题,这里只选择预测最后一个 token,具体是将 z 分为目标和非目标两部分 (Partial Prediction):

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值