论文阅读笔记-XLNet: Generalized Autoregressive Pretraining for Language Understanding

前言

Google发布的XLNet在问答、文本分类、自然语言理解等任务上都大幅超越BERT,XLNet提出一个框架来连接语言建模方法和预训练方法。我们所熟悉的BERT是denoising autoencoding模型,最大的亮点就是能够获取上下文相关的双向特征表示,所以相对于标准语言模型(自回归)的预训练方法相比,基于BERT的预训练方法具有更好的性能,但是这种结构同样使得BERT有着它的缺点:

  • 生成任务表现不佳:预训练过程和生成过程的不一致,导致在生成任务上效果不佳;
  • 采取独立性假设:没有考虑预测[MASK]之间的相关性(位置之间的依赖关系),是对语言模型联合概率的有偏估计(不是密度估计);
  • 输入噪声[MASK],造成预训练-精调两阶段之间的差异;
  • 无法适用在文档级别的NLP任务,只适合于句子和段落级别的任务;

鉴于这些利弊,作者提出一种广义自回归预训练方法XLNet,该方法:

  • enables learning bidirectional contexts by maximizing the expected likelihood over all permutations of the factorization orde
  • overcomes the limitations of BERT thanks to its autoregressive formulation

前情提要

首先在此之前需要了解一下预训练语言模型的相关联系和背景,这里推荐两篇文章,一篇是邱锡鹏老师的关于NLP预训练模型的总结Paper:Pre-trained Models for Natural Language Processing: A Survey,我之前对它有写过阅读笔记:论文阅读笔记:超详细的NLP预训练语言模型总结清单!,还有一篇就是:nlp中的预训练语言模型总结(单向模型、BERT系列模型、XLNet),其中总结的也相当的全面精辟到位。

目前无监督表示学习这一块,自回归(autogression)语言建模和自动编码(autoencoding)无疑是最成功的两个。对于ELMO、GPT等预训练模型都是基于传统的语言模型(自回归语言模型AR),自回归语言模型天然适合处理生成任务,但是无法对双向上下文进行表征,因此人们反而转向自编码思想的研究(如BERT系列模型)。

那AE就完美了嘛?自编码语言模型(AE)虽然可以实现双向上下文进行表征,但是依旧存在不适于生成任务的问题,就和上面说的BERT的缺点一样,以BERT为代表的系列模型:

  • BERT系列模型引入独立性假设,没有考虑预测[MASK]之间的相关性;
  • MLM预训练目标的设置造成预训练过程和生成过程不一致;
  • 预训练时的[MASK]噪声在finetune阶段不会出现,造成两阶段不匹配问题;

对于AE和AR两种模型在各自的方向优点,有什么办法能构建一个模型使得同时具有AR和AE的优点并且没有它们缺点呢?这也是XLNet诞生的初衷,对于XLNet:

  • 不再像传统AR模型中那样使用前向或者反向的固定次序作为输入,XLNet引入排列语言模型,采用排列组合的方式,每个位置的上下文可以由来自左边和右边的token组成。在期望中,每个位置都要学会利用来自所有位置的上下文信息,即,捕获双向上下文信息。
  • 作为一个通用的AR语言模型,XLNet不再使用data corruption,即不再使用特定标识符号[MASK]。因此也就不存在BERT中的预训练和微调的不一致性。同时,自回归在分解预测tokens的联合概率时,天然地使用乘法法则,这消除了BERT中的独立性假设。
  • XLNet在预训练中借鉴了Transformer-XL中的segment recurrence机制的相对编码方案,其性能提升在长文本序列上尤为显著。
  • 由于分解后次序是任意的,而target是不明确的,所以无法直接使用Transformer-XL,论文中提出采用“reparameterize the Transformer(-XL) network”以消除上述的不确定性。

排列语言模型

受无序NADE(Neural autoregressive distribution estimation)的想法的启发,提出一个排列组合语言模型,该模型能够保留自回归模型的优点,同时能够捕获双向的上下文信息。例如一个长度为T的序列,其排序组合为T!,如果所有排列组合次序的参数共享,那么模型应该会从左右两个方向的所有位置收集到信息。但是由于遍历 T! 种路径计算量非常大(对于10个词的句子,10!=3628800)。因此实际只能随机的采样 T! 里的部分排列,并求期望;
在这里插入图片描述

为了更好的理解,看下面这张图:
在这里插入图片描述
假设输入的序列是[1,2,3,4], 排列共有4x3x2=24种,选其中的四种分别为[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],所以通过这种方式,XLNet模型能同时编码上下文信息。

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

但是有个问题需要注意,上面提出的排列语言模型,在实现过程中,会存在一个问题,举个例子,还是输入序列[1, 2, 3, 4]肯定会有如下的排列[1, 2, 3, 4],[1,2,4,3],第一个排列预测位置3,得到如下公式 P ( 3 ∣ 1 , 2 ) P(3|1,2) P(31,2),第二个排列预测位置4,得到如下公式 P ( 4 ∣ 1 , 2 ) P(4|1,2) P(41,2),这会造成预测出位置3的单词和位置4的单词是一样的,尽管它们所在的位置不同。论文给出具体的公式解释如下:
在这里插入图片描述
那怎么解决没有目标(target)位置信息的问题?那就是下面要讲的Two-Stream Self-Attention。

Two-Stream Self-Attention

除了上述之外,模型的实现过程中还有两点要求

  • 在预测当前单词的时候,只能使用当前单词的位置信息,不能使用单词的内容信息。
  • 在预测其他单词的时候,可以使用当前单词的内容信息

为了满足同时这两个要求,XLNet提出了双流自注意力机制,结构如下:
在这里插入图片描述

下文用 g z t g_{z_t} gzt 表示,上下文的内容信息用 x z < t x_{z<t} xz<t 表示,目标的位置信息 z t z_t zt ,目标的内容信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AIGC】ChatGPT提示词Prompt高效编写模式:结构化Prompt、提示词生成器与单样本/少样本提示

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;结构化Prompt (Structured Prompt)组成元素应用实例优势结论 &#x1f4af;提示词生成器 (Prompt Creator)如何工作应用实例优势结论 &#x1f4af;单样本/少样本提示 (O…

什么是安全运营中心 SOC?

SOC 代表安全运营中心&#xff0c;它是任何企业中负责组织安全、保护企业免受网络风险的单一、集中的团队或职能。 安全运营中心将管理和控制业务运营的所有安全要素&#xff0c;从监控资产到雇用合适的人员和流程&#xff0c;再到检测和应对威胁。 在本文中&#xff0c;我们…

PHP变量(第④篇)

本栏目教学是php零基础到精通&#xff0c;如果你还没有安装php开发工具请查看下方链接&#xff1a; Vscode、小皮面板安装-CSDN博客 今天来讲一讲php中的变量&#xff0c;变量是用于存储信息的"容器"&#xff0c;这些数据可以在程序执行期间被修改&#xff08;即其…

ThinkBook 16+ 锐龙6800h 安装ubuntu键盘失灵

问题&#xff1a;在ThinkBook 16 锐龙6800h 安装ubuntu18.04 出现笔记本键盘按下延迟非常高&#xff0c;输出卡死的情况&#xff0c;但是外接键盘可以正常使用 解决&#xff1a;更新内核 1、进入 https://kernel.ubuntu.com/~kernel-ppa/mainline/ 下载所需内核版本&#x…

Node.js+Express毕设论文选题最新推荐题目和方向

目录 一、前言 二、毕设选题推荐 三、总结 四、附录&#xff08;手册、官网、资源教程等&#xff09; 1. Node.js 官方资源 2. Express 官方资源 3.安装方法 4 创建示例 一、前言 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;它允许开发者使用…

智能医疗:Spring Boot医院管理系统开发

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…

x++、++x的一些问题

x、x在字面上无非就说一个先前置递增然后再运算&#xff0c;另一个是运算完再递增&#xff0c;是不是有些许模棱两可的感觉&#xff0c;接下来引用一个简单的for循环就能够大致理解&#xff1a; 先是x&#xff1a; int i0,x0;for(i0;(i)<5;){xi;printf("%d\n",x)…

ubuntu 安装baget

一、安装netcore3.1 环境 二、下载运行文件 下载&#xff1a;github.com/loic-sharma/BaGet/releases 修改&#xff1a;appsettings.json文件 mkdir -p /root/apps/baget mkdir -p /root/apps/datas touch /root/apps/baget.db cd /root/apps/baget dotnet BaGet.dll --urls&…

Android Framework(八)WMS-窗口动效概述

文章目录 动画简述本地、远端动画的定义什么是“leash”图层“leash”图层的命令与创建 Winscope流程小结 动画流程概览分析Activity启动app_transition 动画的主要事件触发动画执行的套路动画真正执行动画的结束回调触发远端动画的Target 动画简述 1、动画的原理也是利用了视觉…

思科dhcp的配置

以路由器为例 让pc3 自动获取ip地址并获取的网段为172.16.4.100-172.16.4.200 配置如下&#xff1a; R1(config)#interface GigabitEthernet0/2 R1(config)#ip address 172.16.4.254 255.255.255.0 R1(config)# no shutdown R1(config)#ip dhcp pool 4_pool //创建dhcp地址池…

如何使用 Python 读取数据量庞大的 excel 文件

使用 pandas.read_excel 读取大文件时&#xff0c;的确会遇到性能瓶颈&#xff0c;特别是对于10万行20列这种规模的 .xlsx 文件&#xff0c;常规的 pandas 方法可能会比较慢。 要提高读取速度&#xff0c;关键是找到更高效的方式处理 Excel 文件&#xff0c;特别是在 Python 的…

毕业设计项目——基于transformer的中文医疗领域命名实体识别(论文/代码)

完整的论文代码见文章末尾 以下为核心内容 摘要 近年来&#xff0c;随着深度学习技术的发展&#xff0c;基于Transformer和BERT的模型在自然语言处理领域取得了显著进展。在中文医疗领域&#xff0c;命名实体识别(Named Entity Recognition, NER)是一项重要任务&#xff0c;旨…

uniapp实战教程:如何封装一个可复用的表单组件

在uniapp开发过程中&#xff0c;表单组件的使用场景非常广泛。为了提高开发效率&#xff0c;我们可以将常用的表单组件进行封装。本文将带你了解如何在uniapp中封装一个表单组件&#xff0c;让你只需要通过属性配置轻松实现各种表单&#xff0c;效果图如下&#xff1a; 一、准备…

如何利用免费音频剪辑软件制作出精彩音频

现在有许多免费的音频剪辑软件可供选择&#xff0c;它们为广大用户提供了丰富的功能和便捷的操作体验&#xff0c;让音频编辑变得更加轻松和有趣。接下来&#xff0c;让我们一起走进这些免费音频剪辑软件的世界&#xff0c;探索它们的独特魅力和强大功能。 1.福昕音频剪辑 链…

【Nacos入门到实战十四】Nacos配置管理:集群部署与高可用策略

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

点云补全 学习笔记

目录 Depth completion with convolutions and vision transformers 依赖项&#xff1a; DCNv2 softpoolnet Depth completion with convolutions and vision transformers Zhang, Y., Guo, X., Poggi, M., Zhu, Z., Huang, G., Mattoccia, S.: Completionformer: Depth co…

docker运行arm64架构的镜像、不同平台镜像构建

背景 Docker 允许开发者将应用及其依赖打包成一个轻量级、可移植的容器&#xff0c;实现“一次构建&#xff0c;到处运行”的目标。然而&#xff0c;不同的操作系统和硬件架构对容器镜像有不同的要求。例如&#xff0c;Linux 和 Windows 系统有不同的文件系统和系统调用&#…

【预备理论知识——2】深度学习:线性代数概述

简单地说&#xff0c;机器学习就是做出预测。 线性代数 线性代数是数学的一个分支&#xff0c;主要研究向量空间、线性方程组、矩阵理论、线性变换、特征值和特征向量、内积空间等概念。它是现代数学的基础之一&#xff0c;并且在物理学、工程学、计算机科学、经济学等领域有着…

css3-----2D转换、动画

2D 转换&#xff08;transform&#xff09; 转换&#xff08;transform&#xff09;是CSS3中具有颠覆性的特征之一&#xff0c;可以实现元素的位移、旋转、缩放等效果 移动&#xff1a;translate旋转&#xff1a;rotate缩放&#xff1a;scale 二维坐标系 2D 转换之移动 trans…

OpenGL笔记十九之相机系统

OpenGL笔记十九之相机系统 —— 2024-10-02 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十九之相机系统1.运行1.1.游戏相机1.2.轨迹球相机 2.游戏相机与轨迹球相机切换3.博主笔记本要运行需要更改的文件更改1:28_OpenGL_CameraSystem/applicat…