BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

Abstract

作者引入了一种新的语言表示模型BERT,只需增加一个输出层,就可以对预先训练的BERT模型进行微调,无需对特定于任务的架构进行重大修改。

1 Introduction

语言模型预训练已经证明对很多下游NLP任务有帮助,比如:自然语言推理,释义(通过整体分析来预测句子之间的关系);命名实体识别,问答(模型需要在词牌(token)级别产生细粒度输出)

目前有两种应用预训练语言表示的策略:

  • 基于特征的方法。例如,ELMo,用包含预训练表示的基于任务的架构作为额外特征。

  • 基于微调的方法。OpenAI GPT,引入最少的基于任务的参数,并且通过简单微调所有预训练参数对下游任务进行训练。

这两种方法在训练前具有相同的目标函数,即使用单向语言模型学习一般语言表征。

在本文中,我们改进了基于微调的方法,BERT通过使用“掩码语言模型”(MLM)预训练目标减轻了前面提到的单向性约束,不同于从左到右的语言模型预训练MLM目标能够让表示融合左侧和右侧的上下文,这使我们能预训练一个深度双向Transformer。

本文的贡献:

  • 说明了对语言表示来说双向预训练的重要性(之前的模型在pre-training阶段是单向的)

    BERT使用MLM来启用预训练深度双向表示

  • 预训练表示降低了许多精心设计的特定任务架构的需求

    BERT是第一个基于微调的表示模型,其性能超过了许多特定任务架构。

2 Related work

Unsupervised Feature-based Approaches(基于无监督特征的方法)
  • word representation

    预训练词嵌入 > 从头开始学习的嵌入

    为了预训练词嵌入向量,使用了从左到右语言建模目标 + 在左右上下文中区分正确单词和错误单词的目标

  • coarser granularities(更粗粒度)

    为了训练句子表示,之前的工作使用目标对候选的下一个句子进行排序,给出一个之前句子的表示,从左到右生成下一个句子单词。

  • traditional word embedding

    从一个left-to-right和一个
    right-to-left语言模型中抽取上下文敏感特征

    每个词牌(token)的上下文表示是 从左到右 和 从右到左 表示的串联。

    LSTMs与ELMo类似,它们的模型都是基于特征的,都不是深度双向的

Unsupervised Fine-tuning Approaches(基于无监督微调的方法)

该方向的第一批工作只能从未标记文本中预训练词嵌入参数。

最近,生成上下文词牌(token)表示的句子或文本编码器已经从未标记的文本中进行了预训练,并且针对有监督的下游任务进行了微调。优点:几乎没有参数需要从头开始学习。

Transfer Learning from Supervised Data(基于监督数据的迁移学习)

计算机视觉研究表明来自大规模预训练模型的迁移学习的重要性

一个有效方法是微调用ImageNet预训练的模型

3 BERT

BERT框架主要有两步:预训练和微调

  • 预训练:模型在不同预训练任务的未标记数据上进行训练
  • 微调:BERT模型首先用预训练参数进行初始化,并且所有的参数用来自下游任务的标签数据进行微调

每一个下游任务有独立的微调模型,即使它们用相同的预训练参数进行初始化。BERT的一个显著特征就是跨不同任务的统一架构,预训练架构和最终的下游架构之间的差异很小。

Model Architecture(模型架构)

BERT的模型架构是一个多层双向变压器编码器(a multi-layer bidirectional Transformer en
coder)

L:层数;H:隐藏层大小;A:self-attention的头数

两种模型大小:

  • BERTbaseBERT_{base}BERTbase​ (L=12, H=768, A=12, Total Parameters=110M)

  • BERTlargeBERT_{large}BERTlarge​​ (L=24, H=1024, A=16, Total Parameters=340M)

BERTbaseBERT_{base}BERTbase​ Transformer与OpenAI GPT Transformer比较:

BERT使用双向self-attention;而OpenAI GPT使用受限的self-attention,其中每个词牌(token)只能关注左侧的上下文。

Input/Output Representations(输入输出表示)

为了使BERT处理不同的下游任务,

我们的输入表示(input representation)能够在每个词牌序列(token sequence)中清楚明确地表示单个句子和句子对。

其中,句子是连续文本一段任意范围,而不是一个真实的语言句子;序列指的是输入词牌序列到BERT中,它可能是单个句子,也可能是打包在一起的真实句子。

[CLS]作为每个序列的第一个标记

[SEP]句子间的分割符(是分割而不是区分)

3.1 Pre-training BERT

作者没有使用传统的从左到右或从右到左语言模型去预训练BERT,使用了两个非监督任务来预训练BERT。

Task #1:Masked LM

问题:标准的条件语言模型只能从左到右或从右到左训练,因为双向条件会让每个词间接地“看到自己”

目的:训练一个深层双向表示

解决方法:我们只是随机掩盖一部分输入词牌(input tokens),然后预测那些掩码词牌(masked tokens)

掩码语言模型(masked LM ,MLM),与掩码词牌相对应的最终隐含向量被输送到词汇表上的输出softmax,就像在标准语言模型中一样。随机屏蔽了15%的WordPiece标记,我们只预测被掩码的单词而不是重建整个输入。

问题:尽管获得了一个双向的预训练模型,但真正完全遮盖屏蔽的掩码会造成预训练和微调不匹配

解决方法:随机选择15%的词牌位置用于预测。其中,80%词牌用[MASK]掩盖,10%用随机词牌替代,剩下的10%保持不变。Ti将用于预测具有交叉熵损失的原始令牌

Task #2:Next Sentence Prediction (NSP)

许多重要的下游任务,例如问答和自然语言推理,都基于理解两个句子之间的关系。

问题:语言模型无法捕捉句子之间的关系

解决方法:对二分类的下一句预测任务进行预训练,该任务可以从任意单语语料库中生成

当为每一个预训练实例选择句子A、B时,其中50%是真实的下一个句子,标记为IsNext;而另外50%是随机句子,标记为NotNext。C用于下一句预测任务,它和表征学习目标密切相关。在之前的工作中,只有句子插入能够被传递到下游任务中,但BERT能够将所有参数都以初始化终端任务模型参数。

Pre-training data BooksCorpus(800万字)和英语维基百科(2500万字,只提取文本段落,忽略列表、表和标题)

3.2 Fine-tuning BERT

微调是很简单的(straightforward ),因为Transformer中的self-attention允许BERT通过交换适当的输入输出对许多下游任务建模。

问题:对于包含文本对的应用,一种常见的模式就是在应用双向交叉attention之前独立编码文本对。

解决方法:BERT使用self-attention机制统一这两个阶段,因为编码具有self-attention的连接文本对有效地包括了两个句子之间的双向交叉注意力。

对于每一个任务,我们只需要将特定于任务的输入和输出插入到BERT,并且端到端地微调所有参数。

在输出端,词牌表示被输入到输出层用于词牌级任务,比如 序列标记 或 问题回答 , 而[CLS]表示被输入到输出层中用于分类,比如文本蕴含或情感分析。

4 Experiments

4.1 GLUE

GLUE是多种自然语言理解任务的集合,为了在GLUE上进行微调,像第三节描述的表示输入序列(对单个句子或句子对),使用与第一个输入标记([CLS])相对应的最终隐含向量C作为聚合表示。微调过程中引入的唯一新参数是分类层权值,用C和W计算一个标准分类损失,即log(softmax(CWT))log(softmax(CW^T))log(softmax(CWT))

设置batch size为32,并对所有GLUE任务进行3个epoch的微调。

结果如上表所示,BERTbaseBERT_{base}BERTbaseBERTlargeBERT_{large}BERTlarge都比所有系统有显著优势。BERTlargeBERT_{large}BERTlarge在所有任务中显著优于BERTbaseBERT_{base}BERTbase​,特别是那些训练数据很少的任务。

4.2 SQuAD v1.1

斯坦福问答数据集(SQuAD v1.1)收集了100k条众包的问题/答案。给定一个问题和一篇来自Wikipedia带答案的文章,任务是预测文章中答案文本的范围。

在问答任务中,作者将输入的问题和段落表示为一个单独的打包序列。单词i作为答案范围起始的概率 = 计算Ti与向量s的点积,然后对段落中所有单词进行softmax

相似的公式用于答案范围的结尾。

从位置i到位置j的候选答案范围分值 = STi + ETj,其中,最大分值的范围用作预测。

训练目标是正确开始和结束位置的对数似然之和。

4.3 SQuAD v2.0

斯坦福问答数据集2.0扩展数据集1.1,

  • 通过允许在提供的段落中不存在简短的答案来增强问题的实际性。
  • 认为没有答案的问题有一个从start开始到[CLS]结束的答案范围

论文阅读——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding相关推荐

  1. 论文阅读笔记:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    提示:阅读论文时进行相关思想.结构.优缺点,内容进行提炼和记录,论文和相关引用会标明出处. 文章目录 前言 介绍 背景知识 相关工作 具体实现结构 Pre-training BERT Fine-tun ...

  2. 【论文阅读笔记】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    BERT的出现使我们终于可以在一个大数据集上训练号一个深的神经网络,应用在很多NLP应用上面. BERT: Pre-training of Deep Bidirectional Transformer ...

  3. BERT(一)--论文翻译:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    转载请注明出处:https://blog.csdn.net/nocml/article/details/124860490 传送门: BERT(一)–论文翻译:BERT: Pre-training o ...

  4. bert论文解析——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 前言 bert是google在NLP方 ...

  5. 【文本分类】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    ·阅读摘要:   Bert是继Transformer之后的又一杰出的模型.Bert是一种预训练语言模型,是在GPT.Elmo.Transformer的基础上提出的.基于Bert的多个NLP领域任务都取 ...

  6. 预训练模型:BERT深度解析《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》

    目录 1. 背景 2. 什么是 Bert 及原理? 3. 论文内容<BERT: Pre-training of Deep Bidirectional Transformers for Langu ...

  7. 《BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding》

    目录 <BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding> 1.Bert研究意 ...

  8. Paper:《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding用于语言理解的深度双向Tr

    Paper:<BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding用于语言理解的深度双 ...

  9. BERT论文阅读(一): Pre-training of Deep Bidirectional Transformers for Language Understanding

    BERT三大核心: pre-training bidirectional==>alleviates the unidirectionality constriant of fine-tuning ...

最新文章

  1. 论文速递:智能作为信息处理系统
  2. PHP之Session与Cookie:存放 安全 应用场景 过期设定 依赖关系
  3. Oracle 11g 之自动收集统计信息
  4. ubuntu19.10下面的redis的启动与关闭
  5. 匿名方法,lambad表达式,匿名类
  6. Spark SQL运行原理和架构
  7. rocket mq 监听端口_如何使用Jmeter实现MQ数据的发送和接收?性能测试实战篇
  8. Matplotlib库-Python数据可视化
  9. python包裹和运费_使用shopifyapipython,添加新产品并注明价格和“需要运费”:Fals...
  10. 编程猫海龟编辑器(python)_编程猫海龟编辑器(少儿编程软件)
  11. 408计算机考研真题推荐,2017计算机408考研真题.pdf
  12. 推荐几款非常好用且免费的在线绘图工具
  13. 中青杯数学建模竞赛是什么级别的比赛_2018年中青杯全国大学生数学建模竞赛...
  14. 电脑w ndows无法自动修复,电脑无法自动修复,开不了机怎么办
  15. php博客 程序 论文,php博客系统论文 (附加程序代码)
  16. 《c语言入门经典》Ivor Horton第十章练习题4
  17. HUAWEI华为MateBook13 2020锐龙版R5集显16G+512GB(HNL-WFQ9)原装出厂系统恢复原厂系统
  18. cannot be cast to javax.servlet.Servlet 解决
  19. 3合1集成充电宝移动电源IC
  20. 零基础入门学习Python(19)--函数:我的地盘听我的

热门文章

  1. Ubuntu 10.04 在 Vmware 虚拟机下安装 vmware tools
  2. 微信浏览器 点击 出现卡顿现象及解决方案
  3. 智能合约和去中心化应用DAPP
  4. JavaScript判断对象中每一项属性都不为空
  5. python close_wait_服务器TIME_WAIT和CLOSE_WAIT分析和解决办法
  6. 灰度图转bmp文件 C++
  7. 朋友介绍对象加微信后,对方不搭理你的真实原因都在这里面
  8. 如何用PowerBI做损益计算书
  9. 【endnote】在word中插入的参考文献:字体大小、样式,段前、段后,缩进 ,行间距 怎么改
  10. VUE单页面应用的内页很难被百度收录