BERT Pre-training of Deep Bidirectional Transformers/zh
| Research Paper | |
|---|---|
| Authors | Jacob Devlin; Ming-Wei Chang; Kenton Lee; Kristina Toutanova |
| Year | 2019 |
| Venue | NAACL |
| Topic area | NLP |
| Difficulty | Research |
| arXiv | 1810.04805 |
| Download PDF | |
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 是 Devlin 等人于 2019 年发表于 Google AI Language 的论文,该论文提出了 BERT(Bidirectional Encoder Representations from Transformers),一种用于预训练深度双向语言表示的方法。BERT 通过证明单个预训练模型经过 fine-tuning 即可在各种下游任务上取得最先进的结果,且仅需对架构做最小化的任务特定修改,从而彻底变革了自然语言处理领域。
概述
在 BERT 之前,预训练的语言表示要么是单向的(如 GPT,从左到右读取),要么使用独立训练的从左到右和从右到左模型的浅层拼接(如 ELMo)。这些方法并不理想,因为标准语言模型本质上是单向的,无法让 token 同时关注两侧的上下文。
BERT 通过引入一种新颖的预训练目标——掩码语言建模(MLM)——解决了这一局限,使真正的双向预训练成为可能。结合下一句预测(NSP)任务,BERT 学习到了丰富的上下文表示,这些表示可以通过简单的 fine-tuning 迁移到下游任务,消除了对任务特定架构的需求。
主要贡献
- 掩码语言建模(MLM):一种预训练目标,随机掩盖输入 token 并训练模型从双向上下文中预测它们,实现真正的双向表示学习。
- 下一句预测(NSP):一种二元分类预训练任务,教导模型理解句对之间的关系。
- 一种简单而有效的 fine-tuning 范式:在预训练模型上添加单个输出层即足以应对各种 NLP 任务,从分类到问答。
- 证明了深度双向预训练对于学习通用语言表示至关重要。
方法
BERT 使用 Transformer 架构的编码器部分。该模型以 token 序列作为输入,并为每个 token 生成上下文化的 embedding。共发布了两种模型规模:BERT-Base(12 层,768 个隐藏单元,12 个 attention 头,1.1 亿参数)和 BERT-Large(24 层,1024 个隐藏单元,16 个 attention 头,3.4 亿参数)。
掩码语言建模目标的工作方式是随机掩盖 15% 的输入 token。在这些被掩盖的位置中,80% 被替换为 [MASK] token,10% 被替换为随机 token,10% 保持不变。模型使用交叉熵损失在每个被掩盖的位置预测原始 token:
$ L_{\text{MLM}} = -\sum_{i \in \mathcal{M}} \log P(x_i \mid \mathbf{x}_{\backslash \mathcal{M}}) $
其中 $ \mathcal{M} $ 是被掩盖位置的集合,$ \mathbf{x}_{\backslash \mathcal{M}} $ 表示被破坏的输入。
对于下一句预测,模型接收句子对(A 和 B),并预测 B 是否是语料库中 A 之后的真实下一句,还是一个随机采样的句子。输入开头的特殊 [CLS] token 捕获了用于此二元分类的聚合序列表示。
输入表示结合了 token embedding、段 embedding(指示句子 A 或 B)以及位置 embedding。BERT 使用 WordPiece 分词,词表包含 30,000 个 token。
预训练使用了 BooksCorpus(8 亿单词)和英文维基百科(25 亿单词),运行 100 万步,batch 大小为 256 个序列。在当时,预训练所需的总计算量相当可观,需要在 4 到 16 个 Cloud TPU 上运行四天(分别对应 Base 和 Large)。
Fine-tuning 非常直接:对于每个下游任务,将任务特定的输入和输出接入预训练模型,所有参数进行端到端的 fine-tuning。对于 token 级任务(如命名实体识别),将每个 token 的最终隐藏向量输入到分类层。对于序列级任务(如情感分析),则使用 [CLS] token 的表示。
结果
在论文发表时,BERT 在十一个 NLP 基准上取得了最先进的结果:
- GLUE 基准:BERT-Large 取得了 80.5 的平均分,比之前的最先进水平提高了 7.7 分。
- SQuAD v1.1(问答):F1 得分 93.2,超过了人类表现(91.2 F1)。
- SQuAD v2.0:F1 得分 83.1,比之前的系统提高了 5.1 分。
- SWAG(常识推理):准确率 86.3%,超过了人类专家的表现(85.0%)。
消融研究表明,两个预训练任务都很重要,而双向性是最显著的因素——移除它会导致所有任务上的大幅下降。增加模型规模始终能提升结果,即使在小规模任务上,只要进行适当的 fine-tuning 也是如此。
该论文还表明,BERT 的表示可以作为固定的特征提取器使用(无需 fine-tuning)并仍能取得强劲的结果,尽管 fine-tuning 始终优于基于特征的方法。
影响
BERT 推动了 NLP 领域向"预训练再 fine-tuning"方法论的范式转变。它催生了一个庞大的衍生模型家族,包括 RoBERTa(改进了预训练)、ALBERT(参数高效的变体)、DistilBERT(知识蒸馏),以及 BioBERT 和 SciBERT 等领域特定变体。该方法还通过 mBERT 和 XLM 等模型影响了多模态模型和跨语言表示。
BERT 证明了大规模无监督预训练能够有效地将语言知识迁移到下游任务,减少了对任务特定标注数据和工程的需求。这种预训练再 fine-tuning 的范式至今仍是现代 NLP 实践的基础。
该论文在发表后的前五年内获得了超过 10 万次引用,是计算机科学领域被引用最多的著作之一。Google 于 2019 年将 BERT 集成到其搜索引擎中,标志着神经语言模型在信息检索领域最大规模的部署之一。该模型的影响超越学术界,在工业界获得广泛采用,基于 BERT 的系统驱动着搜索、内容审核、客户服务以及许多其他应用。
参见
- Attention Is All You Need
- Language Models are Few-Shot Learners
- Efficient Estimation of Word Representations
参考文献
- Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. Proceedings of NAACL-HLT 2019. arXiv:1810.04805
- Peters, M. E., Neumann, M., Iyyer, M., et al. (2018). Deep Contextualized Word Representations. NAACL 2018.
- Radford, A., Narasimhan, K., Salimans, T., & Sutskever, I. (2018). Improving Language Understanding by Generative Pre-Training. OpenAI.