:双向 Transformer 预训练模型解读)
BERT(语言模型):双向 Transformer 预训练模型解读原文:Devopedia, BERT (Language Model)许可:除另有说明外,Devopedia 文章内容采用 Creative Commons Attribution-ShareAlike 4.0 International License 授权。本文为中文翻译,保留原文结构、图注、来源与引用链接。原文主要围绕 Jacob Devlin、Ming-Wei Chang、Kenton Lee、Kristina Toutanova 的经典论文 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 展开。摘要BERT 使用多层双向 Transformer。来源:改编自 Devlin et al. 2019,图 3。自然语言处理(NLP)包含许多不同任务,而每个任务通常都需要自己的训练数据。很多时候,单个任务只有几千条标注样本,这不足以训练出一个优秀模型。不过,网上有大量容易获得的未标注数据。这些数据可以用来训练一个基础模型,再把它复用于多个 NLP 任务。**Bidirectional Encoder Representations from Transformers(BERT,来自 Transformer 的双向编码器表示)**就是这样的模型之一。BERT 使用未标注数据在语言建模任务上进行预训练。对于具体 NLP 任务,可以再把这个预训练模型针对该任务进行微调。预训练好的 BERT 模型及其变体已经开源,这让 NLP 研究者更容易微调 BERT,并快速推进各自任务的最新水平。讨论使用 BERT 的典型流程是什么?针对多种 NLP 任务微调 BERT。来源:Devlin et al. 2019,图 4。BERT 是自注意力和 Transformer 架构演进而来的模型,而这类架构正逐渐成为神经网络模型中的重要方向。BERT 是一个只使用编码器的 Transformer。它是深度双向的,也就是说,它在所有层中都会同时利用左侧和右侧上下文。BERT 包含两个阶段:先进行无监督预训练,再进行有监督的特定任务微调。BERT 模型一旦完成预训练,就可以被共享。这样,下游任务只需要在小得多的数据集上继续训练。不同 NLP 任务因此可以共享同一个基础模型。从某种意义上说,这与计算机视觉中常见的迁移学习很相似。预训练通常需要在多台 Cloud TPU 上运行数天,而微调只需要在单台 Cloud TPU 上运行约 30 分钟。在微调阶段,通常会在 BERT 之上添加一个或多个输出层。类似地,输入嵌入也会反映具体任务的需求。对于问答任务,输入序列会同时包含问题和答案,模型被训练去学习答案的起始位置和结束位置。对于分类任务,输出端的[CLS]标记会被送入分类层。BERT 是在哪些任务上预训练的?BERT 使用基础的 token 掩码,而 ERNIE 使用三类掩码。来源:Liu 2019,图 2。BERT 在两个任务上进行预训练:Masked Language Model(MLM,掩码语言模型):给定一串 token,其中一部分会被遮盖。目标是预测这些被遮盖的 token。掩码机制使模型能够同时利用左、右两侧上下文进行训练。具体来说,系统会随机选取 15% 的 token 用于掩码;在这些 token 中,80% 会被替换成[MASK],10% 会被替换成随机词,另外 10% 保持不变。Next Sentence Prediction(NSP,下一句预测):给定两个句子,模型要预测第二个句子是否在逻辑上接续第一个句子。这个任务用于捕捉句子之间的关系,因为单纯的语言建模并不会处理这一点。与 word2vec 或 GloVe 这类词嵌入不同,BERT 会产生上下文化嵌入。这意味着 BERT 会为一个词生成多个嵌入,每个嵌入都表示该词周围的语境。例如,对于单词bank,word2vec 的嵌入不会区分 “bank account” 和 “bank of the river” 两种短语,但 BERT 能够分辨其中差异。BERT 有哪些可能的应用?在情感分析中,Target-Dependent BERT 使用目标位置的 token,而不是[CLS]。来源:Gao et al. 2019,图 2。2019 年 10 月,Google Search 开始使用 BERT 来更好地理解搜索查询背后的意图。BERT 的另一类应用是根据用户的描述性请求来推荐产品。BERT 在 SQuAD 和 NQ 数据集上的问答应用已经广为人知。BERT 也被用于文档检索。BERT 还被用于基于方面的情感分析。Xu 等人使用 BERT 同时完成情感分析和产品评论理解,以便系统能够自动回答关于这些产品的问题。在分类任务中,BERT 已经被用于假新闻分类和句子对分类。为了辅助教师,BERT 还被用于根据新闻文章生成语法或词汇题。模型会构造一个问题并给出若干选项,其中只有一个选项是正确的。BERT 仍然很新,未来还可能出现许多新应用。它也可能用于量化交易。BERT 可以被应用到特定领域,但这通常需要特定领域的预训练模型。SciBERT 和 BioBERT 就是两个例子。BERT 模型有哪些关键参数或技术细节?BERT 的预训练模型有两个规模:Base:12 层,隐藏层大小 768,12 个自注意力头,1.1 亿参数。Large:24 层,隐藏层大小 1024,16 个自注意力头,3.4 亿参数。上述模型分别需要 4 天训练时间:Base 使用 4 台 Cloud TPU,Large 使用 16 台 Cloud TPU。在预训练中,批大小设为 256 个序列。每个序列包含 512 个