[XLNet]论文解读:XLNet:Generalized Autoregressive Pretraining for Language Understanding

简介: [XLNet]论文解读:XLNet:Generalized Autoregressive Pretraining for Language Understanding

论文:XLNet: Generalized Autoregressive Pretraining for Language Understanding

作者:Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le

时间:2020

地址:https://github.com/zihangdai/xlnet

1. 介绍

自回归语言模型(AR):具有代表性的是GPT;

AR模型是单向的,其要么是从左到右,要么是从右到左,不能考虑到所有的上下文信息,这里以从左到右为例,其目的就是最大化:

其中e(xt)表示 xt的位置编码,而 hθ(x1:t1)表示1到t-1位置上神经网络的非线性函数,或者说上下文表示,这样得到的结果经过softmax就得到了要预测的值;

这里有一点儿缺陷,就是AR模型不能结合上下文;

自编码模型(AE):具有代表性的是BERT;

AE模型是双向的,其是通过一个整体的上下文表示来预测另一整体的上下文表示,每一个位置上的token都可以获得任何位置上的token的信息,其训练方式有两种,一种是mask,一种是NSP,但是NSP被认为效果不好,这里我们以mask来进行分析;首先,其目的是最大化:

其中 mt=1表示  xt被mask掉了, Hθ(x^)t表示隐藏t位置的隐藏状态, image.png 表示mask的原来的token, image.png 表示带有mask的序列;

从公式中可以看出,这里有一些缺陷:

  1. 假设mask独立,因为这里是直接累计的形式,其本质是假设各个mask之间是独立的;
  2. 训练时input里含有mask,而在下游任务中并不会出现;

2. 模型架构

尝试建立一个模型去结合AR的优点和AE的优点;

2.1 Permutation Language Modeling

长度为T的序列,一共有T!总不同的排列,如果每个位置的token都可能为序列中的任意一个token,由于参数共享这一原理,就相当于结合了上下文;其本质是使用类GPT模型去构造一个集合类BERT和类GPT模型;

如图:

图中利用了transformer-xl机制,所以有memory

看起来挺合理的,其目标函数如下,从排列中抽样来训练模型;

但是在这里会出现一种情况,就是相同的序列可以会预测不同的token;如图:

如何解决这个问题呢,这里就要用到改变编码方式的方法;文章中叫做Architecture: Two-Stream Self-Attention for Target-Aware Representations

2.2 Two-Stream Self-Attention for Target-Aware Representations

Architecture: Two-Stream Self-Attention for Target-Aware Representations

其采取的方式就是集合content stream attentionquery stream attention的方式:

content stream attention:  hθ(xzt),和普通的transformer采取的注意力机制一样;这种表示可以看到上下文和自己;

query stream attention: gθ(xzt),和普通的不同,这种表示只可以看到自己的位置和上下文的信息,不包含自己;

如图所示:

论文中非常详细,下图是content stream的流程:

下图是query stream的流程:

模型架构用公式表示如下所示:

在这里要提的一点是,这里不是在输入层进行排序,而是在attention中的mask进行;

同时,这里如果考虑所有的排序会非常不现实,毕竟阶乘比指数更加可怕,这里采用的办法是partial prediction,即部分预测;

总结就是在c位置时,只选择 image.png 个排列进行预测,而不是考虑全部;

2.3 超参数设置

训练时:

可以看到这是一个较大的模型,这里有24层layers

微调时:

说明作者不心虚~

2.4 相对编码

这里采取的编码方式不同于BERT,这里采用的是transformer-xl的位置编码方式,相对位置编码;

2.5 模型比较

下面是一些模型的对比:

可以看到,XLNet要显著的优于BERT,和RoBERTa比,其性能还是要高于RoBERTa的;

消融实验结果如下:

从中我们可以看到XLNet要明显优于BERT,但要是删除memory机制即transformer-xl性能会明显下降,第6 - 7行表明,span-based predbidirectional dataXLNet中都发挥着重要作用,nect-sentence prediction效果好像并不显著,这里在原始的XLNet中并没有加入NSP任务进行预训练;

3. 总结

XLNet主要就是两个东西,一个是Permutation Language Modeling,一个是transformer-xl;感觉性能相对于roberta也没提升多少,这个模型的架构应该是不太行;


目录
相关文章
|
机器学习/深度学习 搜索推荐 算法
Learning Disentangled Representations for Recommendation | NIPS 2019 论文解读
近年来随着深度学习的发展,推荐系统大量使用用户行为数据来构建用户/商品表征,并以此来构建召回、排序、重排等推荐系统中的标准模块。普通算法得到的用户商品表征本身,并不具备可解释性,而往往只能提供用户-商品之间的attention分作为商品粒度的用户兴趣。我们在这篇文章中,想仅通过用户行为,学习到本身就具备一定可解释性的解离化的用户商品表征,并试图利用这样的商品表征完成单语义可控的推荐任务。
23847 0
Learning Disentangled Representations for Recommendation | NIPS 2019 论文解读
|
4月前
|
机器学习/深度学习 PyTorch 语音技术
【文献学习】Conformer: Convolution-augmented Transformer for Speech Recognition
文章介绍了Conformer模型,这是一种结合了Transformer的自注意力机制和CNN卷积模块的混合模型,旨在提高语音识别任务的性能,通过自注意力捕捉全局上下文信息,同时利用卷积模块有效捕获局部特征。
115 0
|
7月前
|
机器学习/深度学习 JSON 自然语言处理
[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training
[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training
129 1
|
7月前
|
机器学习/深度学习 自然语言处理 并行计算
[Bert]论文实现:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
[Bert]论文实现:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
114 1
|
7月前
|
机器学习/深度学习 数据采集 自然语言处理
[GPT-2]论文解读:Language Models are Unsupervised Multitask Learners
[GPT-2]论文解读:Language Models are Unsupervised Multitask Learners
275 1
|
7月前
|
自然语言处理 PyTorch 测试技术
[RoBERTa]论文实现:RoBERTa: A Robustly Optimized BERT Pretraining Approach
[RoBERTa]论文实现:RoBERTa: A Robustly Optimized BERT Pretraining Approach
84 0
|
机器学习/深度学习 自然语言处理 算法
【论文精读】COLING 2022-KiPT: Knowledge-injected Prompt Tuning for Event Detection
事件检测旨在通过识别和分类事件触发词(最具代表性的单词)来从文本中检测事件。现有的大部分工作严重依赖复杂的下游网络,需要足够的训练数据。
184 0
【论文精读】COLING 2022-KiPT: Knowledge-injected Prompt Tuning for Event Detection
|
机器学习/深度学习 自然语言处理 数据可视化
SimCSE: Simple Contrastive Learning of Sentence Embeddings论文解读
本文介绍了SimCSE,一个简单的对比学习框架,极大地推进了最先进的句子嵌入。我们首先描述了一种无监督方法,该方法采用一个输入句子,并在一个对比目标中预测自己
317 0
|
机器学习/深度学习 XML 自然语言处理
【预训练语言模型】XLNet: Generalized Autoregressive Pretraining for Language Understanding
【预训练语言模型】XLNet: Generalized Autoregressive Pretraining for Language Understanding
286 0
【预训练语言模型】XLNet: Generalized Autoregressive Pretraining for Language Understanding
|
机器学习/深度学习 人工智能 算法
CVPR‘2023 | Cross-modal Adaptation: 基于 CLIP 的微调新范式
CVPR‘2023 | Cross-modal Adaptation: 基于 CLIP 的微调新范式
1450 0