博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2021-06-12
阅读量:4290 次
发布时间:2019-05-27

本文共 2100 字,大约阅读时间需要 7 分钟。



作者:韩

单位:燕山大学



目录

一、前言

  2018 年,谷歌发布了基于双向 Transformer 的大规模预训练语言模型 BERT,刷新了 11 项 NLP 任务的最优性能记录,为 NLP 领域带来了极大的惊喜。很快,BERT 就在圈内普及开来,也陆续出现了很多与它相关的新工作。

  BERT 带来的震撼还未平息,2020年又一全新模型出现:来自卡耐基梅隆大学(CMU)与谷歌大脑(Google Brain)的研究者提出新型预训练语言模型 XLNet,在 SQuAD、GLUE、RACE 等 20 个任务上全面超越 BERT。

二、概述

  在NLP中预训练模型越来越重要。两个最重要的预训练方式是自回归Autoregressive Language Model和自编码AutoEncoder。AR LM的目的是学习条件概率分布,比如ELMo,AE的目的是学习隐变量进行重构,比如Bert。二者各有优缺点,如何利用两种方法的优点,弥补各自的缺点将可以做很好的预训练,本文的XLNet就是这样一个尝试。很多人认为XLNet的潜力很大,未来发展会比Bert更好。同时,作者表示,BERT 这样基于去噪自编码器的预训练模型可以很好地建模双向语境信息,性能优于基于自回归语言模型的预训练方法。然而,由于需要 mask 一部分输入,BERT 忽略了被 mask 位置之间的依赖关系,因此出现预训练和微调效果的差异(pretrain-finetune discrepancy)。

  基于这些优缺点,该研究提出了一种泛化的自回归预训练模型 XLNet。XLNet 可以:1)通过最大化所有可能的因式分解顺序的对数似然,学习双向语境信息;2)用自回归本身的特点克服 BERT 的缺点。此外,XLNet 还融合了当前最优自回归模型 Transformer-XL 的思路。  以前超越 BERT 的模型很多都在它的基础上做一些修改,本质上模型架构和任务都没有太大变化。但是在这篇新论文中,作者从自回归(autoregressive)和自编码(autoencoding)两大范式分析了当前的预训练语言模型,并发现它们虽然各自都有优势,但也都有难以解决的困难。为此,研究者提出 XLNet,并希望结合大阵营的优秀属性。

三、Auto Regressive & Auto Encoder

  1)AR

  给定一个序列X=( X 1 X_1 X1,…, X T X_T XT),AR要计算前向概率P(x)= ∏ 1 T \prod_{1}^T 1Tp( x t x_t xt| x < t x<t x<t)或者 后向P(x)= ∏ 1 T \prod_{1}^T 1Tp( x t x_t xt| x > t x>t x>t)或者二者融合。这样会建立较好的语言模型,但是不能同时考虑双向的信息。以前向为例,目标为:

  其中 h ( ∗ ) h_{}(*) h() 是经过神经网络得到的上下文表达,e( x t x_t xt)是embedding。

  2)AE

   AE的代表是Bert,具体来说Bert是Denoising AE(DAE)。BERT需要将句子中的部分单词进行MASK标记,然后来预测这些MASK位置的值。这样就可以考虑双向的信息。但是存在两个大问题:一是在fine-tuning的时候没有MASK,会造成不一致discrepancy;二是,预测MASK位置的时候都是独立的。

  面对现有语言预训练模型的优缺点,在这项工作中,作者提出了XLNet,这是一种通用的自回归方法,它充分利用了AR语言模型和AE的优点,同时避免了它们的局限性。

四、模型:排列语言模型(Permutation Language Modeling)

  根据上述比较,AR语言建模和BERT具有各自的优势。一个自然而然的问题是,是否存在一个预训练模型,即能在避免其弱点的同时带来两者的优势。借用无序NADE的思想,作者提出了排列语言模型,它不仅保留了AR模型的优点,而且还允许模型捕获双向上下文。具体来说,对于长度为T 的序列X ,有T !个不同的排列顺序来执行有效自回归因式分解。直观地说,如果模型参数在所有因式分解排列中共享,那么在期望上,模型将学会从双向的所有位置收集信息。

五、架构:目标感知表示的双向自注意

  (a)内容流注意力,与标准自注意力相同;(b)Query 流注意力,没有获取内容 x z t x_{z_{t}} xzt 的信息;(c)利用双流注意力的排列语言建模概览图。

  由于目标函数适用于 AR 框架,研究者整合了当前最佳的 AR 语言模型——Transformer-XL 到预训练框架中,并将其体现在方法名字中。具体来说,他们借鉴了 Transformer-XL 中的两项重要技术——相对位置编码范式和分割循环机制。现在,结合双流注意力和 Transformer-XL 的改进,上面图 2c展示了最终的排列语言建模架构。

六、实验结果

  与BERT的比较

  与RoBERT的比较

转载地址:http://mhmgi.baihongyu.com/

你可能感兴趣的文章
va_start va_end
查看>>
共享内存,共享缓冲区 一对多
查看>>
无锁队列的实现
查看>>
CAS原子操作实现无锁及性能分析
查看>>
太上老君为何不能将孙悟空炼化
查看>>
Linux 互斥锁、原子操作实现原理
查看>>
搭建简单hls直播测试服务
查看>>
共享内存的数据同步
查看>>
LVS-入门试用
查看>>
Cache和Buffer的区别
查看>>
50个sql语句
查看>>
MYSQL sql 语句性能分析
查看>>
C++操作Redis数据库
查看>>
python yield用法
查看>>
python pipe模块用法
查看>>
安装完 MySQL 后必须调整的 10 项配置
查看>>
开发者必备的 12 个 JavaScript 库
查看>>
http错误码
查看>>
python 多线程
查看>>
sipp命令 各参数含义
查看>>