BERT論文地址:https://arxiv.org/abs/1810.04805
翻譯 https://arxiv.org/pdf/1810.04805.pdf
BERT:預(yù)訓(xùn)練的深度雙向 Transformer 語(yǔ)言模型
Jacob Devlin;Ming-Wei Chang;Kenton Lee;Kristina Toutanova
Google AI Language
{jacobdevlin,mingweichang,kentonl,kristout}@google.com
摘要
我們提出了一種新的稱為 BERT 的語(yǔ)言表示模型,BERT 代表來(lái)自 Transformer 的雙向編碼器表示(Bidirectional Encoder Representations from Transformers)。不同于最近的語(yǔ)言表示模型(Peters et al., 2018,Radford et al., 2018), BERT 旨在通過(guò)聯(lián)合調(diào)節(jié)所有層中的左右上下文來(lái)預(yù)訓(xùn)練深度雙向表示。因此,只需要一個(gè)額外的輸出層,就可以對(duì)預(yù)訓(xùn)練的 BERT 表示進(jìn)行微調(diào),從而為廣泛的任務(wù)(比如回答問(wèn)題和語(yǔ)言推斷任務(wù))創(chuàng)建最先進(jìn)的模型,而無(wú)需對(duì)特定于任務(wù)進(jìn)行大量模型結(jié)構(gòu)的修改。
BERT 的概念很簡(jiǎn)單,但實(shí)驗(yàn)效果很強(qiáng)大。它刷新了 11 個(gè) NLP 任務(wù)的當(dāng)前最優(yōu)結(jié)果,包括將 GLUE 基準(zhǔn)提升至 80.4%(7.6% 的絕對(duì)改進(jìn))、將 MultiNLI 的準(zhǔn)確率提高到 86.7%(5.6% 的絕對(duì)改進(jìn)),以及將 SQuAD v1.1 的問(wèn)答測(cè)試 F1 得分提高至 93.2 分(提高 1.5 分)——比人類表現(xiàn)還高出 2 分。
1. 介紹
語(yǔ)言模型預(yù)訓(xùn)練可以顯著提高許多自然語(yǔ)言處理任務(wù)的效果(Dai and Le, 2015;Peters et al., 2018;Radford et al., 2018;Howard and Ruder, 2018)。這些任務(wù)包括句子級(jí)任務(wù),如自然語(yǔ)言推理(Bow-man et al., 2015;Williams et al., 2018)和釋義(Dolan and Brockett, 2005),目的是通過(guò)對(duì)句子的整體分析來(lái)預(yù)測(cè)句子之間的關(guān)系,以及標(biāo)記級(jí)任務(wù),如命名實(shí)體識(shí)別(Tjong Kim Sang and De Meulder, 2003)和 SQuAD 問(wèn)答(Rajpurkar et al., 2016),模型需要在標(biāo)記級(jí)生成細(xì)粒度的輸出。
現(xiàn)有的兩種方法可以將預(yù)訓(xùn)練好的語(yǔ)言模型表示應(yīng)用到下游任務(wù)中:基于特征的和微調(diào)。基于特征的方法,如 ELMo (Peters et al., 2018),使用特定于任務(wù)的模型結(jié)構(gòu),其中包含預(yù)訓(xùn)練的表示作為附加特特征。微調(diào)方法,如生成預(yù)訓(xùn)練 Transformer (OpenAI GPT) (Radford et al., 2018)模型,然后引入最小的特定于任務(wù)的參數(shù),并通過(guò)簡(jiǎn)單地微調(diào)預(yù)訓(xùn)練模型的參數(shù)對(duì)下游任務(wù)進(jìn)行訓(xùn)練。在之前的工作中,兩種方法在預(yù)訓(xùn)練任務(wù)中都具有相同的目標(biāo)函數(shù),即使用單向的語(yǔ)言模型來(lái)學(xué)習(xí)通用的語(yǔ)言表達(dá)。
我們認(rèn)為,當(dāng)前的技術(shù)嚴(yán)重地限制了預(yù)訓(xùn)練表示的效果,特別是對(duì)于微調(diào)方法。主要的局限性是標(biāo)準(zhǔn)語(yǔ)言模型是單向的,這就限制了可以在預(yù)訓(xùn)練期間可以使用的模型結(jié)構(gòu)的選擇。例如,在 OpenAI GPT 中,作者使用了從左到右的模型結(jié)構(gòu),其中每個(gè)標(biāo)記只能關(guān)注 Transformer 的自注意層中該標(biāo)記前面的標(biāo)記(Williams et al., 2018)。這些限制對(duì)于句子級(jí)別的任務(wù)來(lái)說(shuō)是次優(yōu)的(還可以接受),但當(dāng)把基于微調(diào)的方法用來(lái)處理標(biāo)記級(jí)別的任務(wù)(如 SQuAD 問(wèn)答)時(shí)可能會(huì)造成不良的影響(Rajpurkar et al., 2016),因?yàn)樵跇?biāo)記級(jí)別的任務(wù)下,從兩個(gè)方向分析上下文是至關(guān)重要的。
在本文中,我們通過(guò)提出 BERT 改進(jìn)了基于微調(diào)的方法:來(lái)自 Transformer 的雙向編碼器表示。受完形填空任務(wù)的啟發(fā),BERT 通過(guò)提出一個(gè)新的預(yù)訓(xùn)練任務(wù)來(lái)解決前面提到的單向約束:“遮蔽語(yǔ)言模型”(MLM masked language model)(Tay-lor, 1953)。遮蔽語(yǔ)言模型從輸入中隨機(jī)遮蔽一些標(biāo)記,目的是僅根據(jù)被遮蔽標(biāo)記的上下文來(lái)預(yù)測(cè)它對(duì)應(yīng)的原始詞匯的 id。與從左到右的語(yǔ)言模型預(yù)訓(xùn)練不同,MLM 目標(biāo)允許表示融合左右上下文,這允許我們預(yù)訓(xùn)練一個(gè)深層雙向 Transformer。除了遮蔽語(yǔ)言模型之外,我們還提出了一個(gè)聯(lián)合預(yù)訓(xùn)練文本對(duì)來(lái)進(jìn)行“下一個(gè)句子預(yù)測(cè)”的任務(wù)。
本文的貢獻(xiàn)如下:
- 我們論證了雙向預(yù)訓(xùn)練對(duì)語(yǔ)言表征的重要性。與 Radford et al., 2018 使用單向語(yǔ)言模型進(jìn)行預(yù)訓(xùn)練不同,BERT 使用遮蔽語(yǔ)言模型來(lái)實(shí)現(xiàn)預(yù)訓(xùn)練深層雙向表示。這也與 Peters et al., 2018 的研究形成了對(duì)比,他們使用了一個(gè)由左到右和由右到左的獨(dú)立訓(xùn)練語(yǔ)言模型的淺層連接。
- 我們表明,預(yù)訓(xùn)練的表示消除了許多特定于任務(wù)的高度工程化的的模型結(jié)構(gòu)的需求。BERT 是第一個(gè)基于微調(diào)的表示模型,它在大量的句子級(jí)和標(biāo)記級(jí)任務(wù)上實(shí)現(xiàn)了最先進(jìn)的性能,優(yōu)于許多特定于任務(wù)的結(jié)構(gòu)的模型。
- BERT 為 11 個(gè) NLP 任務(wù)提供了最先進(jìn)的技術(shù)。我們還進(jìn)行大量的消融研究,證明了我們模型的雙向本質(zhì)是最重要的新貢獻(xiàn)。代碼和預(yù)訓(xùn)練模型將可在 goo.gl/language/bert 獲取。
2 相關(guān)工作
預(yù)訓(xùn)練通用語(yǔ)言表示有很長(zhǎng)的歷史,我們將在本節(jié)簡(jiǎn)要回顧最流行的方法。
2.1 基于特征的方法
幾十年來(lái),學(xué)習(xí)廣泛適用的詞語(yǔ)表示一直是一個(gè)活躍的研究領(lǐng)域,包括非神經(jīng)網(wǎng)絡(luò)學(xué)領(lǐng)域(Brown et al., 1992;;Blitzer et al., 2006)和神經(jīng)網(wǎng)絡(luò)領(lǐng)域(Collobert and Weston, 2008;Mikolov et al., 2013;Pennington et al., 2014)方法。經(jīng)過(guò)預(yù)訓(xùn)練的詞嵌入被認(rèn)為是現(xiàn)代 NLP 系統(tǒng)的一個(gè)不可分割的部分,詞嵌入提供了比從頭開(kāi)始學(xué)習(xí)的顯著改進(jìn)(Turian et al., 2010)。
這些方法已被推廣到更粗的粒度,如句子嵌入(Kiros et al., 2015;Logeswaran and Lee, 2018)或段落嵌入(Le and Mikolov, 2014)。與傳統(tǒng)的單詞嵌入一樣,這些學(xué)習(xí)到的表示通常也用作下游模型的輸入特征。
ELMo(Peters et al., 2017)從不同的維度對(duì)傳統(tǒng)的詞嵌入研究進(jìn)行了概括。他們建議從語(yǔ)言模型中提取上下文敏感的特征。在將上下文嵌入與特定于任務(wù)的架構(gòu)集成時(shí),ELMo 為幾個(gè)主要的 NLP 標(biāo)準(zhǔn)提供了最先進(jìn)的技術(shù)(Peters et al., 2018),包括在 SQuAD 上的問(wèn)答(Rajpurkar et al., 2016),情感分析(Socher et al., 2013),和命名實(shí)體識(shí)別(jong Kim Sang and De Meul-der, 2003)。
2.2 基于微調(diào)的方法
語(yǔ)言模型遷移學(xué)習(xí)(LMs)的一個(gè)最新趨勢(shì)是,在對(duì)受監(jiān)督的下游任務(wù)的模型進(jìn)行微調(diào)之前,先對(duì) LM 目標(biāo)上的一些模型構(gòu)造進(jìn)行預(yù)訓(xùn)練(Dai and Le, 2015;Howard and Ruder, 2018;Radford et al., 2018)。這些方法的優(yōu)點(diǎn)是只有很少的參數(shù)需要從頭開(kāi)始學(xué)習(xí)。至少部分得益于這一優(yōu)勢(shì),OpenAI GPT (Radford et al., 2018)在 GLUE 基準(zhǔn)測(cè)試的許多句子級(jí)任務(wù)上取得了此前最先進(jìn)的結(jié)果(Wang et al.(2018))。
2.3 從有監(jiān)督的數(shù)據(jù)中遷移學(xué)習(xí)
雖然無(wú)監(jiān)督預(yù)訓(xùn)練的優(yōu)點(diǎn)是可用的數(shù)據(jù)量幾乎是無(wú)限的,但也有研究表明,從具有大數(shù)據(jù)集的監(jiān)督任務(wù)中可以進(jìn)行有效的遷移,如自然語(yǔ)言推理(Con-neau et al., 2017)和機(jī)器翻譯(McCann et al., 2017)。在NLP之外,計(jì)算機(jī)視覺(jué)研究也證明了從大型預(yù)訓(xùn)練模型中進(jìn)行遷移學(xué)習(xí)的重要性,有一個(gè)有效的方法可以微調(diào)在 ImageNet 上預(yù)訓(xùn)練的模型(Deng et al., 2009;Yosinski et al., 2014)
3 BERT
本節(jié)將介紹 BERT 及其具體實(shí)現(xiàn)。首先介紹了 BERT 模型結(jié)構(gòu)和輸入表示。然后我們?cè)?3.3 節(jié)介紹本文的核心創(chuàng)新——預(yù)訓(xùn)練任務(wù)。在 3.4 和 3.5 節(jié)中分別詳細(xì)介紹了預(yù)訓(xùn)練過(guò)程和微調(diào)模型過(guò)程。最后,在 3.6 節(jié)中討論了 BERT 和 OpenAI GPT 之間的區(qū)別。
3.1 模型結(jié)構(gòu)
BERT 的模型結(jié)構(gòu)是一個(gè)基于 Vaswani et al.(2017) 描述的原始實(shí)現(xiàn)的多層雙向 Transformer 編碼器,并且 Transformer 編碼器發(fā)布在 tensor2tensor 代碼庫(kù)中。由于最近 Transformer 的使用已經(jīng)非常普遍,而且我們的實(shí)現(xiàn)與最初的實(shí)現(xiàn)實(shí)際上是相同的,所以我們將省略對(duì)模型結(jié)構(gòu)的詳盡的背景描述,并向讀者推薦 Vaswani et al.(2017) 以及優(yōu)秀的指南,如“帶注釋的 Transformer”。
在這項(xiàng)工作中,我們表示層的數(shù)量(即,Transformer 塊)為 ,隱藏尺寸為
,自注意頭的個(gè)數(shù)為
。在所有例子中,我們將前饋/過(guò)濾器的大小設(shè)置為
,即當(dāng)
時(shí)是
;當(dāng)
是
。我們主要分析兩個(gè)模型大小的結(jié)果:
為了方便比較, 選擇了與 OpenAI GPT 一樣的模型大小。然而,重要的是,BERT Transformer 使用的是雙向的自注意力,而 GPT Transformer 使用的是受限的自注意力,每個(gè)標(biāo)記只能關(guān)注其左邊的語(yǔ)境。我們注意到,在文獻(xiàn)中,雙向 Transformer 通常被稱為“Transformer 編碼器”,而只有標(biāo)記左側(cè)語(yǔ)境的版本由于可以用于文本生成而被重新定義為“Transformer 解碼器”。BERT、OpenAI GPT 和 ELMo 之間的比較如圖 1 所示。

圖 1:預(yù)訓(xùn)練模型結(jié)構(gòu)的不同。BERT 使用雙向 Transformer。OpenAI GPT 使用 從左到右的 Transformer。ELMo 使用獨(dú)立訓(xùn)練的從左到右和從右到左的 LSTM 的連接來(lái)為下游任務(wù)生成特征。其中,只有 BERT 表示在所有層中同時(shí)受到左右語(yǔ)境的制約。
3.2 輸入表示
我們的輸入表示能夠在一個(gè)標(biāo)記序列中清楚地表示單個(gè)文本句子或一對(duì)文本句子(例如,[Question, Answer])。(注釋:在整個(gè)工作中,“句子”可以是連續(xù)的任意跨度的文本,而不是實(shí)際語(yǔ)言意義上的句子。“序列”是指輸入到 BERT的標(biāo)記序列,它可以是單個(gè)句子,也可以是兩個(gè)句子組合在一起。)通過(guò)把給定標(biāo)記對(duì)應(yīng)的標(biāo)記嵌入、句子嵌入和位置嵌入求和來(lái)構(gòu)造其輸入表示。圖 2 給出了輸入表示的可視化表示。
細(xì)節(jié)是:

圖 2:BERT 的輸入表示。輸入嵌入是標(biāo)記嵌入(詞嵌入)、句子嵌入和位置嵌入的總和。
- 我們使用含 3 萬(wàn)個(gè)標(biāo)記詞語(yǔ)的 WordPiece 嵌入(Wu et al., 2016)。我們用 ## 表示拆分的單詞片段。
- 我們使用學(xué)習(xí)到的位置嵌入,支持的序列長(zhǎng)度最長(zhǎng)可達(dá) 512 個(gè)標(biāo)記。
- 每個(gè)序列的第一個(gè)標(biāo)記始終是特殊分類嵌入([CLS])。該特殊標(biāo)記對(duì)應(yīng)的最終隱藏狀態(tài)(即,Transformer 的輸出)被用作分類任務(wù)中該序列的總表示。對(duì)于非分類任務(wù),這個(gè)最終隱藏狀態(tài)將被忽略。
- 句子對(duì)被打包在一起形成一個(gè)單獨(dú)的序列。我們用兩種方法區(qū)分這些句子。方法一,我們用一個(gè)特殊標(biāo)記([SEP])將它們分開(kāi)。方法二,我們給第一個(gè)句子的每個(gè)標(biāo)記添加一個(gè)可訓(xùn)練的句子 A 嵌入,給第二個(gè)句子的每個(gè)標(biāo)記添加一個(gè)可訓(xùn)練的句子 B 嵌入。
- 對(duì)于單句輸入,我們只使用句子 A 嵌入。
3.3.1 任務(wù)一#:遮蔽語(yǔ)言模型
直覺(jué)上,我們有理由相信,深度雙向模型嚴(yán)格來(lái)說(shuō)比從左到右模型或從左到右模型結(jié)合從右到左模型的淺層連接更強(qiáng)大。不幸的是,標(biāo)準(zhǔn)條件語(yǔ)言模型只能從左到右或從右到左進(jìn)行訓(xùn)練,因?yàn)殡p向條件作用將允許每個(gè)單詞在多層上下文中間接地“看到自己”。
為了訓(xùn)練深度雙向表示,我們采用了一種簡(jiǎn)單的方法,即隨機(jī)遮蔽一定比例的輸入標(biāo)記,然后僅預(yù)測(cè)那些被遮蔽的標(biāo)記。我們將這個(gè)過(guò)程稱為“遮蔽語(yǔ)言模型”(MLM),盡管在文獻(xiàn)中它通常被稱為完形填詞任務(wù)(Taylor, 1953)。在這種情況下,就像在標(biāo)準(zhǔn)語(yǔ)言模型中一樣,與遮蔽標(biāo)記相對(duì)應(yīng)的最終隱藏向量被輸入到與詞匯表對(duì)應(yīng)的輸出 softmax 中(也就是要把被遮蔽的標(biāo)記對(duì)應(yīng)為詞匯表中的一個(gè)詞語(yǔ))。在我們所有的實(shí)驗(yàn)中,我們?cè)诿總€(gè)序列中隨機(jī)遮蔽 15% 的標(biāo)記。與去噪的自動(dòng)編碼器(Vincent et al., 2008)不同的是,我們只是讓模型預(yù)測(cè)被遮蔽的標(biāo)記,而不是要求模型重建整個(gè)輸入。
雖然這確實(shí)允許我們獲得一個(gè)雙向預(yù)訓(xùn)練模型,但這種方法有兩個(gè)缺點(diǎn)。第一個(gè)缺點(diǎn)是,我們?cè)陬A(yù)訓(xùn)練和微調(diào)之間造成了不匹配,因?yàn)?[MASK] 標(biāo)記在微調(diào)期間從未出現(xiàn)過(guò)。為了緩和這種情況,我們并不總是用真的用 [MASK] 標(biāo)記替換被選擇的單詞。而是,訓(xùn)練數(shù)據(jù)生成器隨機(jī)選擇 15% 的標(biāo)記,例如,在my dog is hairy 這句話中,它選擇 hairy。然后執(zhí)行以下步驟:
- 數(shù)據(jù)生成不會(huì)總是用 [MASK] 替換被選擇的單詞,而是執(zhí)行以下操作:
- 80% 的情況下:用 [MASK] 替換被選擇的單詞,例如,my dog is hairy → my dog is [MASK]
- 10% 的情況下:用一個(gè)隨機(jī)單詞替換被選擇的單詞,例如,my dog is hairy → my dog is apple
- 10% 的情況下:保持被選擇的單詞不變,例如,my dog is hairy → my dog is hairy。這樣做的目的是使表示偏向于實(shí)際觀察到的詞。
Transformer 編碼器不知道它將被要求預(yù)測(cè)哪些單詞,或者哪些單詞已經(jīng)被隨機(jī)單詞替換,因此它被迫保持每個(gè)輸入標(biāo)記的分布的上下文表示。另外,因?yàn)殡S機(jī)替換只發(fā)生在 1.5% 的標(biāo)記(即,15% 的 10%)這似乎不會(huì)損害模型的語(yǔ)言理解能力。
第二個(gè)缺點(diǎn)是,使用 Transformer 的每批次數(shù)據(jù)中只有 15% 的標(biāo)記被預(yù)測(cè),這意味著模型可能需要更多的預(yù)訓(xùn)練步驟來(lái)收斂。在 5.3 節(jié)中,我們證明了 Transformer 確實(shí)比從左到右的模型(預(yù)測(cè)每個(gè)標(biāo)記)稍微慢一點(diǎn),但是 Transformer 模型的實(shí)驗(yàn)效果遠(yuǎn)遠(yuǎn)超過(guò)了它增加的預(yù)訓(xùn)練模型的成本。
3.3.2 任務(wù)2#:下一句預(yù)測(cè)
許多重要的下游任務(wù),如問(wèn)題回答(QA)和自然語(yǔ)言推理(NLI),都是建立在理解兩個(gè)文本句子之間的關(guān)系的基礎(chǔ)上的,而這并不是語(yǔ)言建模直接捕捉到的。為了訓(xùn)練一個(gè)理解句子關(guān)系的模型,我們預(yù)訓(xùn)練了一個(gè)下一句預(yù)測(cè)的二元分類任務(wù),這個(gè)任務(wù)可以從任何單語(yǔ)語(yǔ)料庫(kù)中簡(jiǎn)單地歸納出來(lái)。具體來(lái)說(shuō),在為每個(gè)訓(xùn)練前的例子選擇句子 A 和 B 時(shí),50% 的情況下 B 是真的在 A 后面的下一個(gè)句子,50% 的情況下是來(lái)自語(yǔ)料庫(kù)的隨機(jī)句子。比如說(shuō):

我們完全隨機(jī)選擇不是下一句的句子,最終的預(yù)訓(xùn)練模型在這個(gè)任務(wù)中達(dá)到了 97%-98% 的準(zhǔn)確率。盡管這個(gè)任務(wù)很簡(jiǎn)單,但是我們?cè)?5.1 節(jié)中展示了針對(duì)此任務(wù)的預(yù)訓(xùn)練對(duì) QA 和 NLI 都非常有益。
3.4 預(yù)訓(xùn)練過(guò)程
預(yù)訓(xùn)練過(guò)程大體上遵循以往文獻(xiàn)中語(yǔ)言模型預(yù)訓(xùn)練過(guò)程。對(duì)于預(yù)訓(xùn)練語(yǔ)料庫(kù),我們使用 BooksCorpus(800M 單詞)(Zhu et al., 2015)和英語(yǔ)維基百科(2,500M 單詞)。對(duì)于維基百科,我們只提取文本段落,而忽略列表、表格和標(biāo)題。為了提取長(zhǎng)的連續(xù)序列,使用文檔級(jí)別的語(yǔ)料庫(kù),而不是使用像 Billion Word Benchmark (Chelba et al., 2013)那樣使用打亂順序的句子級(jí)別語(yǔ)料庫(kù)是至關(guān)重要的。
為了生成每個(gè)訓(xùn)練輸入序列,我們從語(yǔ)料庫(kù)中采樣兩段文本,我們將其稱為“句子”,盡管它們通常比單個(gè)句子長(zhǎng)得多(但也可以短一些)。第一個(gè)句子添加 A 嵌入,第二個(gè)句子添加 B 嵌入。50% 的情況下 B 確實(shí)是 A 后面的實(shí)際下一句,50% 的情況下它是隨機(jī)選取的一個(gè)的句子,這是為“下一句預(yù)測(cè)”任務(wù)所做的。兩句話合起來(lái)的長(zhǎng)度要小于等于 512 個(gè)標(biāo)記。語(yǔ)言模型遮蔽過(guò)程是在使用 WordPiece 序列化句子后,以均勻的 15% 的概率遮蔽標(biāo)記,不考慮部分詞片的影響(那些含有被 WordPiece 拆分,以##為前綴的標(biāo)記)。
我們使用 256 個(gè)序列(256 個(gè)序列 * 512 個(gè)標(biāo)記= 128,000 個(gè)標(biāo)記/批次)的批大小進(jìn)行 1,000,000 步的訓(xùn)練,這大約是在 33 億詞的語(yǔ)料庫(kù)中訓(xùn)練 40 個(gè)周期。我們用Adam 優(yōu)化算法并設(shè)置其學(xué)習(xí)率為 ,
,
的權(quán)重衰減是 0.01,并且在前 10000 步學(xué)習(xí)率熱身(learning rate warmup),然后學(xué)習(xí)率開(kāi)始線性衰減。我們?cè)谒袑由鲜褂?0.1 概率的 dropout。像 OpenAI GPT 一樣,我們使用 gelu 激活(Hendrycks and Gimpel, 2016)而不是標(biāo)準(zhǔn) relu。訓(xùn)練損失是遮蔽語(yǔ)言模型似然值與下一句預(yù)測(cè)似然值的平均值。
在 4 塊 Cloud TPU(共含有 16 塊 TPU)上訓(xùn)練 。在 16 塊 Cloud TPU(共含有 64 塊 TPU)訓(xùn)練
。每次訓(xùn)練前需要 4 天的時(shí)間。
3.5 微調(diào)過(guò)程
對(duì)于序列級(jí)別的分類任務(wù),BERT 微調(diào)非常簡(jiǎn)單。為了獲得輸入序列的固定維度的表示,我們?nèi)√厥鈽?biāo)記([CLS])構(gòu)造相關(guān)的嵌入對(duì)應(yīng)的最終的隱藏狀態(tài)(即,為 Transformer 的輸出)的池化后輸出。我們把這個(gè)向量表示為 ,在微調(diào)期間唯一需要的新增加的參數(shù)是分類層的參數(shù)矩陣
,其中
是要分類標(biāo)簽的數(shù)量。分類標(biāo)簽的概率
由一個(gè)標(biāo)準(zhǔn)的 softmax 來(lái)計(jì)算,
。對(duì) BERT 的參數(shù)矩陣
的所有參數(shù)進(jìn)行了聯(lián)合微調(diào),使正確標(biāo)簽的對(duì)數(shù)概率最大化。對(duì)于區(qū)間級(jí)和標(biāo)記級(jí)預(yù)測(cè)任務(wù),必須以特定于任務(wù)的方式稍微修改上述過(guò)程。具體過(guò)程見(jiàn)第 4 節(jié)的相關(guān)內(nèi)容。
對(duì)于微調(diào),除了批量大小、學(xué)習(xí)率和訓(xùn)練次數(shù)外,大多數(shù)模型超參數(shù)與預(yù)訓(xùn)練期間相同。Dropout 概率總是使用 0.1。最優(yōu)超參數(shù)值是特定于任務(wù)的,但我們發(fā)現(xiàn)以下可能值的范圍可以很好地在所有任務(wù)中工作:
- Batch size: 16, 32
- Learning rate (Adam): 5e-5, 3e-5, 2e-5
- Number of epochs: 3, 4
我們還觀察到大數(shù)據(jù)集(例如 100k+ 標(biāo)記的訓(xùn)練集)對(duì)超參數(shù)選擇的敏感性遠(yuǎn)遠(yuǎn)低于小數(shù)據(jù)集。微調(diào)通常非???,因此只需對(duì)上述參數(shù)進(jìn)行完全搜索,并選擇在驗(yàn)證集上性能最好的模型即可。
3.6 BERT 和 OpenAI GPT 的比較
在現(xiàn)有預(yù)訓(xùn)練方法中,與 BERT 最相似的是 OpenAI GPT,它在一個(gè)大的文本語(yǔ)料庫(kù)中訓(xùn)練從左到右的 Transformer 語(yǔ)言模型。事實(shí)上,BERT 中的許多設(shè)計(jì)決策都是有意選擇盡可能接近 GPT 的,這樣兩種方法就可以更加直接地進(jìn)行比較。我們工作的核心論點(diǎn)是,在 3.3 節(jié)中提出的兩項(xiàng)新的預(yù)訓(xùn)練語(yǔ)言模型任務(wù)占了實(shí)驗(yàn)效果改進(jìn)的大部分,但是我們注意到 BERT 和 GPT 在如何訓(xùn)練方面還有其他幾個(gè)不同之處:
- GPT 是在 BooksCorpus(800M 詞)上訓(xùn)練出來(lái)的;BERT 是在 BooksCor-pus(800M 詞)和 Wikipedia(2,500M 詞)上訓(xùn)練出來(lái)的。
- GPT 僅在微調(diào)時(shí)使用句子分隔符([SEP])和分類標(biāo)記([CLS]);BERT 在預(yù)訓(xùn)練時(shí)使用 [SEP], [CLS] 和 A/B 句嵌入。
- GPT 在每批次含 32,000 詞上訓(xùn)練了 1M 步;BERT 在每批次含 128,000 詞上訓(xùn)練了 1M 步。
- GPT 在所有微調(diào)實(shí)驗(yàn)中學(xué)習(xí)速率均為 5e-5;BERT 選擇特定于任務(wù)的在驗(yàn)證集中表現(xiàn)最好的微調(diào)學(xué)習(xí)率。
為了分清楚這些差異的帶來(lái)的影響,我們?cè)?5.1 節(jié)中的進(jìn)行每一種差異的消融實(shí)驗(yàn)表明,大多數(shù)的實(shí)驗(yàn)效果的改善實(shí)際上來(lái)自新的預(yù)訓(xùn)練任務(wù)(遮蔽語(yǔ)言模型和下一句預(yù)測(cè)任務(wù))。

圖 3:我們具體于特定任務(wù)的模型是通過(guò)給 BERT 加一個(gè)額外的輸出層構(gòu)成,所以僅需要從頭學(xué)習(xí)最小數(shù)量的參數(shù)。其中(a)和(b)是序列級(jí)任務(wù),(c)和(d)是標(biāo)記級(jí)任務(wù)。圖中
表示嵌入的輸入,
表示第
個(gè)標(biāo)記的上下文表示,[CLS] 是分類輸出的特殊符號(hào),[SEP] 是分離非連續(xù)標(biāo)記(分離兩個(gè)句子)序列的特殊符號(hào)。
4. 實(shí)驗(yàn)
在這一節(jié),我們將展示 BERT 在 11 項(xiàng)自然語(yǔ)言處理任務(wù)中的微調(diào)結(jié)果。
4.1 GLUE 數(shù)據(jù)集
通用語(yǔ)言理解評(píng)價(jià) (GLUE General Language Understanding Evaluation) 基準(zhǔn)(Wang et al.(2018))是對(duì)多種自然語(yǔ)言理解任務(wù)的集合。大多數(shù) GLUE 數(shù)據(jù)集已經(jīng)存在多年,但 GLUE 的用途是(1)以分離的訓(xùn)練集、驗(yàn)證集和測(cè)試集的標(biāo)準(zhǔn)形式發(fā)布這些數(shù)據(jù)集;并且(2)建立一個(gè)評(píng)估服務(wù)器來(lái)緩解評(píng)估不一致和過(guò)度擬合測(cè)試集的問(wèn)題。GLUE 不發(fā)布測(cè)試集的標(biāo)簽,用戶必須將他們的預(yù)測(cè)上傳到 GLUE 服務(wù)器進(jìn)行評(píng)估,并對(duì)提交的數(shù)量進(jìn)行限制。
GLUE 基準(zhǔn)包括以下數(shù)據(jù)集,其描述最初在 Wang et al.(2018)中總結(jié):
MNLI 多類型的自然語(yǔ)言推理(Multi-Genre Natural Language Inference)是一項(xiàng)大規(guī)模的、眾包的蘊(yùn)含分類任務(wù)(Williams et al., 2018)。給定一對(duì)句子,目的是預(yù)測(cè)第二個(gè)句子相對(duì)于第一個(gè)句子是暗含的、矛盾的還是中立的關(guān)系。
QQP Quora問(wèn)題對(duì)(Quora Question Pairs)是一個(gè)二元分類任務(wù),目的是確定兩個(gè)問(wèn)題在Quora上問(wèn)的語(yǔ)義是否相等 (Chen et al., 2018)。
QNLI 問(wèn)題自然語(yǔ)言推理(Question Natural Language Inference)是斯坦福問(wèn)題回答數(shù)據(jù)集(Rajpurkar et al., 2016)已經(jīng)轉(zhuǎn)換為二進(jìn)制分類任務(wù)的一個(gè)版本 Wang et al.(2018)。正類的例子是(問(wèn)題,句子)對(duì),句子中包含正確的答案,和負(fù)類的例子是來(lái)自同一段的(問(wèn)題,句子)對(duì),句子中不包含正確的答案。
SST-2 斯坦福情感語(yǔ)義樹(shù)(Stanford Sentiment Treebank)數(shù)據(jù)集是一個(gè)二元單句分類任務(wù),數(shù)據(jù)由電影評(píng)論中提取的句子組成,并對(duì)由人工對(duì)這些句子進(jìn)行標(biāo)注(Socher et al., 2013)。
CoLA 語(yǔ)言可接受性單句二元分類任務(wù)語(yǔ)料庫(kù)(Corpus of Linguistic Acceptability),它的目的是預(yù)測(cè)一個(gè)英語(yǔ)句子在語(yǔ)言學(xué)上是否 “可接受”(Warstadt et al., 2018)。
STS-B 文本語(yǔ)義相似度基準(zhǔn)(Semantic Textual Similarity Bench-mark )是從新聞標(biāo)題中和其它來(lái)源里提取的句子對(duì)的集合(Cer et al., 2017)。他們用從 1 到 5 的分?jǐn)?shù)標(biāo)注,表示這兩個(gè)句子在語(yǔ)義上是多么相似。
MRPC 微軟研究釋義語(yǔ)料庫(kù)(Microsoft Research Paraphrase Corpus)從在線新聞中自動(dòng)提取的句子對(duì)組成,并用人工注解來(lái)說(shuō)明這兩個(gè)句子在語(yǔ)義上是否相等(Dolan and Brockett, 2005.)。
RTE 識(shí)別文本蘊(yùn)含(Recognizing Textual Entailment)是一個(gè)與 MNLI 相似的二元蘊(yùn)含任務(wù),只是 RTE 的訓(xùn)練數(shù)據(jù)更少 Bentivogli et al., 2009。
WNLI 威諾格拉德自然語(yǔ)言推理(Winograd NLI)是一個(gè)來(lái)自(Levesque et al., 2011) )的小型自然語(yǔ)言推理數(shù)據(jù)集。GLUE網(wǎng)頁(yè)提示到這個(gè)數(shù)據(jù)集的構(gòu)造存在問(wèn)題,每一個(gè)被提交給 GLUE 的經(jīng)過(guò)訓(xùn)練的系統(tǒng)在預(yù)測(cè)多數(shù)類時(shí)都低于 65.1 這個(gè)基線準(zhǔn)確度。因此,出于對(duì) OpenAI GPT 的公平考慮,我們排除了這一數(shù)據(jù)集。對(duì)于我們的 GLUE 提交,我們總是預(yù)測(cè)多數(shù)類。
4.1.1 GLUE 結(jié)果
為了在 GLUE 上微調(diào)模型,我們按照本文第 3 節(jié)中描述的那樣表示輸入的句子或者句子對(duì),并且使用最后一層的隱藏向量 中的第一個(gè)輸入標(biāo)記([CLS])作為句子總的表示。如圖3 (a)和(b)所示。在微調(diào)期間唯一引入的新的參數(shù)是一個(gè)分類層參數(shù)矩陣
,其中
是要分類的數(shù)量。我們用
和
計(jì)算一個(gè)標(biāo)準(zhǔn)的分類損失,換句話說(shuō)是
。
我們?cè)?GLUE 所有的任務(wù)中使用 32 的批次大小和 3 個(gè)周期。對(duì)于每個(gè)任務(wù)我們使用 的學(xué)習(xí)率來(lái)微調(diào),然后在驗(yàn)證集中選擇表現(xiàn)最好的學(xué)習(xí)率。此外,對(duì)于
我們發(fā)現(xiàn)它有時(shí)在小數(shù)據(jù)集上微調(diào)時(shí)不穩(wěn)定(換句話說(shuō)是,有時(shí)運(yùn)行時(shí)會(huì)使結(jié)果更差),因此,我們進(jìn)行了幾次隨機(jī)重啟,并選擇了在驗(yàn)證集上表現(xiàn)最好的模型。對(duì)于隨機(jī)重啟,我們使用相同的預(yù)訓(xùn)練檢查點(diǎn),但執(zhí)行不同的數(shù)據(jù)打亂和分類器層初始化來(lái)微調(diào)模型。我們注意到,GLUE 發(fā)布的數(shù)據(jù)集不包括測(cè)試的標(biāo)簽,所以我們分別將
和
向 GLUE 評(píng)估服務(wù)器提交結(jié)果。
結(jié)果如表 1 所示。在所有的任務(wù)上, 和
都比現(xiàn)有的系統(tǒng)更加出色 ,與先進(jìn)水平相比,分別取得 4.4% 及 6.7% 的平均改善。請(qǐng)注意,除了
含有注意力屏蔽(attention masking),
和 OpenAI GPT 的模型結(jié)構(gòu)方面幾乎是相同的。對(duì)于最大和最廣泛使用的 GLUE 任務(wù) MNLI,BERT 比當(dāng)前最優(yōu)模型獲得了 4.7% 的絕對(duì)提升。在 GLUE 官方的排行榜上,
獲得了 80.4 的分?jǐn)?shù),與原榜首的 OpenAI GPT 相比截止本文寫作時(shí)只獲得了 72.8 分。
有趣的是, 在所有任務(wù)中都顯著優(yōu)于
,即使是在那些只有很少訓(xùn)練數(shù)據(jù)的任務(wù)上。BERT 模型大小的影響在本文 5.2 節(jié)有更深入的探討。

表 1:GLUE 測(cè)試結(jié)果,由 GLUE 評(píng)估服務(wù)器評(píng)分。每個(gè)任務(wù)下面的數(shù)字表示訓(xùn)練示例的數(shù)量?!癆verage”列與官方 GLUE 評(píng)分略有不同,因?yàn)槲覀兣懦擞袉?wèn)題的 WNLI 數(shù)據(jù)集。OpenAI GPT = (L=12, H=768, A=12); BERTBASE = (L=12, H=768, A=12); BERTLARGE = (L=24, H=1024, A=16)。BERT 和 OpenAI GPT 都是單模型,單任務(wù)。所有結(jié)果可以從 https://gluebenchmark.com/leaderboard 和 https://blog.openai.com/language-unsupervised/ 獲得。
4.2 SQuAD v1.1
斯坦福問(wèn)答數(shù)據(jù)集(SQuAD Standford Question Answering Dataset)是一個(gè)由 100k 個(gè)眾包的問(wèn)題/答案對(duì)組成的集合(Rajpurkar et al., 2016)。給出一個(gè)問(wèn)題和一段來(lái)自維基百科包含這個(gè)問(wèn)題答案的段落,我們的任務(wù)是預(yù)測(cè)這段答案文字的區(qū)間。例如:
- 輸入問(wèn)題:
Where do water droplets collide with ice crystals to form precipitation? - 輸入段落
... Precipitation forms as smaller droplets coalesce via collision with other rain drops or ice crystals within a cloud. ... - 輸出答案
within a cloud
這種區(qū)間預(yù)測(cè)任務(wù)與 GLUE 的序列分類任務(wù)有很大的區(qū)別,但是我們能夠讓 BERT 以一種直接的方式在 SQuAD 上運(yùn)行。就像在 GLUE 中,我們將輸入問(wèn)題和段落表示為一個(gè)單一打包序列(packed sequence),其中問(wèn)題使用 A 嵌入,段落使用 B 嵌入。在微調(diào)模型期間唯一需要學(xué)習(xí)的新參數(shù)是區(qū)間開(kāi)始向量 和區(qū)間結(jié)束向量
。讓 BERT 模型最后一層的隱藏向量的第
輸入標(biāo)記被表示為
。如圖 3(c)可視化的表示。然后,計(jì)算單詞
作為答案區(qū)間開(kāi)始的概率,它是
和
之間的點(diǎn)積并除以該段落所有單詞的結(jié)果之后再 softmax:
同樣的式子用來(lái)計(jì)算單詞作為答案區(qū)間的結(jié)束的概率,并采用得分最高的區(qū)間作為預(yù)測(cè)結(jié)果。訓(xùn)練目標(biāo)是正確的開(kāi)始和結(jié)束位置的對(duì)數(shù)可能性。
我們使用 的學(xué)習(xí)率,32 的批次大小訓(xùn)練模型 3 個(gè)周期。在模型推斷期間,因?yàn)榻Y(jié)束位置與開(kāi)始位置沒(méi)有條件關(guān)系,我們?cè)黾恿私Y(jié)束位置必須在開(kāi)始位置之后的條件,但沒(méi)有使用其他啟發(fā)式。為了方便評(píng)估,把序列化后的標(biāo)記區(qū)間對(duì)齊回原始未序列化的輸入。
結(jié)果如表 2 中描述那樣。SQuAD 使用一個(gè)高度嚴(yán)格的測(cè)試過(guò)程,其中提交者必須手動(dòng)聯(lián)系小組組織人員,然后在一個(gè)隱藏的測(cè)試集上運(yùn)行他們的系統(tǒng),所以我們只提交了最好的模型來(lái)測(cè)試。表中顯示的結(jié)果是我們提交給小組的第一個(gè)也是唯一一個(gè)測(cè)試。我們注意到上面的結(jié)果在小組排行榜上沒(méi)有最新的公共模型描述,并被允許在訓(xùn)練他們的模型時(shí)使用任何的公共數(shù)據(jù)。因此,我們?cè)谔峤坏哪P椭惺褂梅浅S邢薜臄?shù)據(jù)增強(qiáng),通過(guò)在 SQuAD 和 TriviaQA(Joshi et al., 2017) 聯(lián)合訓(xùn)練。
我們表現(xiàn)最好的模型在集成模型排名中上比排名第一模型高出 1.5 個(gè) F1 值,在一個(gè)單模型排行榜中比排名第一的模型高出 1.7(譯者注:原文是 1.3) 個(gè) F1 值。實(shí)際上,我們的單模型 BERT 就比最優(yōu)的集成模型表現(xiàn)更優(yōu)。即使只在 SQuAD 數(shù)據(jù)集上(不用 TriviaQA 數(shù)據(jù)集)我們只損失 0.1-0.4 個(gè) F1 值,而且我們的模型輸出結(jié)果仍然比現(xiàn)有模型的表現(xiàn)好很多。

表 2:SQuAD 結(jié)果。Ensemble BERT 是使用不同的預(yù)訓(xùn)練模型檢查點(diǎn)和微調(diào)種子的 7x 模型。
4.3 命名實(shí)體識(shí)別
為了評(píng)估標(biāo)記任務(wù)的性能,我們?cè)?CoNLL 2003 命名實(shí)體識(shí)別數(shù)據(jù)集(NER Named Entity Recognition)上微調(diào) BERT 模型。該數(shù)據(jù)集由 200k 個(gè)訓(xùn)練單詞組成,這些訓(xùn)練詞被標(biāo)注為人員、組織、地點(diǎn)、雜項(xiàng)或其他(無(wú)命名實(shí)體)。
為了微調(diào),我們將最后一層每個(gè)單詞的隱藏表示 送入一個(gè)在 NER 標(biāo)簽集合的分類層。每個(gè)單詞的分類不以周圍預(yù)測(cè)為條件(換句話說(shuō),沒(méi)有自回歸和沒(méi)有 CRF)。為了與詞塊(WordPiece)序列化相適應(yīng),我們把 CoNLI-序列化的(CoNLL-tokenized)的輸入詞輸入我們的 WordPiece 序列化器,然后使用這些隱藏狀態(tài)相對(duì)應(yīng)的第一個(gè)塊而不用預(yù)測(cè)標(biāo)記為 X的塊。例如:

由于單詞塊序列化邊界是輸入中已知的一部分,因此對(duì)訓(xùn)練和測(cè)試都要這樣做。
結(jié)果如表 3 所示。 優(yōu)于現(xiàn)存的最優(yōu)模型,使用多任務(wù)學(xué)習(xí)的交叉視野訓(xùn)練 (Clark et al., 2018),CoNLL-2003 命名實(shí)體識(shí)別測(cè)試集上高 0.2 F1 值。

表 3:CoNLL-2003 命名實(shí)體識(shí)別。模型超參數(shù)使用驗(yàn)證集進(jìn)行選擇,報(bào)告的驗(yàn)證集和測(cè)試分?jǐn)?shù)使用這些超參數(shù)進(jìn)行隨機(jī)五次以上的實(shí)驗(yàn)然后取實(shí)驗(yàn)的平均結(jié)果。
4.4 SWAG
Adversarial Generations(SWAG)數(shù)據(jù)集由 113k 個(gè)句子對(duì)組合而成,用于評(píng)估基于常識(shí)的推理 (Zellers et al., 2018)。
給出一個(gè)來(lái)自視頻字幕數(shù)據(jù)集的句子,任務(wù)是在四個(gè)選項(xiàng)中選擇最合理的延續(xù)。例如:

為 SWAG 數(shù)據(jù)集調(diào)整 BERT 模型的方式與為 GLUE 數(shù)據(jù)集調(diào)整的方式相似。對(duì)于每個(gè)例子,我們構(gòu)造四個(gè)輸入序列,每一個(gè)都連接給定的句子(句子A)和一個(gè)可能的延續(xù)(句子B)。唯一的特定于任務(wù)的參數(shù)是我們引入向量 ,然后它點(diǎn)乘最后層的句子總表示
為每一個(gè)選擇
產(chǎn)生一個(gè)分?jǐn)?shù)。概率分布為 softmax 這四個(gè)選擇:
我們使用 的學(xué)習(xí)率,16 的批次大小訓(xùn)練模型 3 個(gè)周期。結(jié)果如表 4 所示。
優(yōu)于作者的 ESIM+ELMo 的基線標(biāo)準(zhǔn)模型的 27.1% 。

表 4:SWAG 驗(yàn)證集和測(cè)試集準(zhǔn)確率。測(cè)試結(jié)果由 SWAG 作者對(duì)隱藏的標(biāo)簽進(jìn)行評(píng)分。人類的表現(xiàn)是用 100 個(gè)樣本來(lái)衡量的,正如 SWAG 論文中描述的那樣。
5. 消融研究(Ablation Studies)
雖然我們已經(jīng)證明了非常強(qiáng)有力的實(shí)證結(jié)果,但到目前為止提出的結(jié)果并沒(méi)有提現(xiàn)出 BERT 框架的每個(gè)部分具體的貢獻(xiàn)。在本節(jié)中,我們對(duì) BERT 的許多方面進(jìn)行了消融實(shí)驗(yàn),以便更好地理解每個(gè)部分的相對(duì)重要性。
5.1 預(yù)訓(xùn)練任務(wù)的影響
我們的核心觀點(diǎn)之一是,與之前的工作相比,BERT 的深層雙向性(通過(guò)遮蔽語(yǔ)言模型預(yù)訓(xùn)練)是最重要的改進(jìn)。為了證明這一觀點(diǎn),我們?cè)u(píng)估了兩個(gè)新模型,它們使用與 完全相同的預(yù)訓(xùn)練數(shù)據(jù)、微調(diào)方案和 Transformer 超參數(shù):
- No NSP:模型使用“遮蔽語(yǔ)言模型”(MLM)但是沒(méi)有“預(yù)測(cè)下一句任務(wù)”(NSP)。
- LTR & No NSP:模型使用一個(gè)從左到右(LTR)的語(yǔ)言模型,而不是遮蔽語(yǔ)言模型。在這種情況下,我們預(yù)測(cè)每個(gè)輸入詞,不應(yīng)用任何遮蔽。在微調(diào)中也應(yīng)用了僅限左的約束,因?yàn)槲覀儼l(fā)現(xiàn)使用僅限左的上下文進(jìn)行預(yù)訓(xùn)練和使用雙向上下文進(jìn)行微調(diào)總是比較糟糕。此外,該模型未經(jīng)預(yù)測(cè)下一句任務(wù)的預(yù)訓(xùn)練。這與OpenAI GPT有直接的可比性,但是使用更大的訓(xùn)練數(shù)據(jù)集、輸入表示和微調(diào)方案。
結(jié)果如表 5 所示。我們首先分析了 NSP 任務(wù)所帶來(lái)的影響。我們可以看到去除 NSP 對(duì) QNLI、MNLI 和 SQuAD 的表現(xiàn)造成了顯著的傷害。這些結(jié)果表明,我們的預(yù)訓(xùn)練方法對(duì)于獲得先前提出的強(qiáng)有力的實(shí)證結(jié)果是至關(guān)重要的。
接著我們通過(guò)對(duì)比 “No NSP” 與 “LTR & No NSP” 來(lái)評(píng)估訓(xùn)練雙向表示的影響。LTR 模型在所有任務(wù)上的表現(xiàn)都比 MLM 模型差,在 MRPC 和 SQuAD 上的下降特別大。對(duì)于SQuAD來(lái)說(shuō),很明顯 LTR 模型在區(qū)間和標(biāo)記預(yù)測(cè)方面表現(xiàn)很差,因?yàn)闃?biāo)記級(jí)別的隱藏狀態(tài)沒(méi)有右側(cè)上下文。因?yàn)?MRPC 不清楚性能差是由于小的數(shù)據(jù)大小還是任務(wù)的性質(zhì),但是我們發(fā)現(xiàn)這種性能差是在一個(gè)完全超參數(shù)掃描和許多次隨機(jī)重啟之間保持一致的。
為了增強(qiáng) LTR 系統(tǒng),我們嘗試在其上添加一個(gè)隨機(jī)初始化的 BiLSTM 來(lái)進(jìn)行微調(diào)。這確實(shí)大大提高了 SQuAD 的成績(jī),但是結(jié)果仍然比預(yù)訓(xùn)練的雙向模型表現(xiàn)差得多。它還會(huì)損害所有四個(gè) GLUE 任務(wù)的性能。
我們注意到,也可以培訓(xùn)單獨(dú)的 LTR 和 RTL 模型,并將每個(gè)標(biāo)記表示為兩個(gè)模型表示的連接,就像 ELMo 所做的那樣。但是:(a)這是單個(gè)雙向模型參數(shù)的兩倍大小;(b)這對(duì)于像 QA 這樣的任務(wù)來(lái)說(shuō)是不直觀的,因?yàn)?RTL 模型無(wú)法以問(wèn)題為條件確定答案;(c)這比深層雙向模型的功能要弱得多,因?yàn)樯顚与p向模型可以選擇使用左上下文或右上下文。

表 5:在預(yù)訓(xùn)練任務(wù)中使用
模型進(jìn)行消融實(shí)驗(yàn)?!癗o NSP”表示不進(jìn)行下一句預(yù)測(cè)任務(wù)來(lái)訓(xùn)練模型。“LTR & No NSP”表示就像 OpenAI GPT 一樣,使用從左到右的語(yǔ)言模型不進(jìn)行下一句預(yù)測(cè)任務(wù)來(lái)訓(xùn)練模型?!? BiLSTM”表示在“LTR & No NSP”模型微調(diào)時(shí)添加一個(gè)隨機(jī)初始化的 BiLSTM 層。
5.2 模型大小的影響
在本節(jié)中,我們將探討模型大小對(duì)微調(diào)任務(wù)準(zhǔn)確度的影響。我們用不同的層數(shù)、隱藏單位和注意力頭個(gè)數(shù)訓(xùn)練了許多 BERT 模型,同時(shí)使用了與前面描述的相同的超參數(shù)和訓(xùn)練過(guò)程。
選定 GLUE 任務(wù)的結(jié)果如表 6 所示。在這個(gè)表中,我們報(bào)告了 5 次在驗(yàn)證集上的微調(diào)的隨機(jī)重啟的平均模型準(zhǔn)確度。我們可以看到,更大的模型在所選 4 個(gè)數(shù)據(jù)集上都帶來(lái)了明顯的準(zhǔn)確率上升,甚至對(duì)于只有 3600 個(gè)訓(xùn)練數(shù)據(jù)的 MRPC 來(lái)說(shuō)也是如此,并且與預(yù)訓(xùn)練任務(wù)有很大的不同。也許令人驚訝的是,相對(duì)于現(xiàn)有文獻(xiàn),我們能夠在現(xiàn)有的模型基礎(chǔ)上實(shí)現(xiàn)如此顯著的改進(jìn)。例如,Vaswani et al.(2017) 研究的最大 Transformer 為(L=6, H=1024, A=16),編碼器參數(shù)為 100M,我們所知的文獻(xiàn)中的最大 Transformer 為(L=64, H=512, A=2),參數(shù)為235M(Al-Rfou et al., 2018)。相比之下, 含有 110M 參數(shù)而
含有 340M 參數(shù)。
多年來(lái)人們都知道,增加模型的大小將持續(xù)提升在大型任務(wù)(如機(jī)器轉(zhuǎn)換和語(yǔ)言建模)上的的表現(xiàn),表 6 所示的由留存訓(xùn)練數(shù)據(jù)(held-out traing data)計(jì)算的語(yǔ)言模型的困惑度(perplexity)。然而,我們相信,這是第一次證明,如果模型得到了足夠的預(yù)訓(xùn)練,那么將模型擴(kuò)展到極端的規(guī)模也可以在非常小的任務(wù)中帶來(lái)巨大的改進(jìn)。

表 6:調(diào)整 BERT 的模型大小。#L = 層數(shù);#H = 隱藏維度大?。?A = 注意力頭的個(gè)數(shù)。“LM (ppl)”表示遮蔽語(yǔ)言模型在預(yù)留訓(xùn)練數(shù)據(jù)上的困惑度。
5.3 訓(xùn)練步數(shù)的影響
圖 4 顯示了經(jīng)過(guò) K 步預(yù)訓(xùn)練模型的檢查點(diǎn)再模型微調(diào)之后在 MNLI 驗(yàn)證集上的準(zhǔn)確率。這讓我們能夠回答下列問(wèn)題:
- 問(wèn):BERT真的需要這么多的預(yù)訓(xùn)練 (128,000 words/batch * 1,000,000 steps) 來(lái)實(shí)現(xiàn)高的微調(diào)精度嗎?
答:是的,在 MNLI 上進(jìn)行 1M 步預(yù)訓(xùn)練時(shí)的準(zhǔn)確率比 500k 步提高了近 1.0%。
- 問(wèn):遮蔽語(yǔ)言模型的預(yù)訓(xùn)練是否比 LTR 模型預(yù)訓(xùn)練訓(xùn)收斂得慢,因?yàn)槊颗活A(yù)測(cè) 15% 的單詞,而不是每個(gè)單詞?
答:遮蔽語(yǔ)言模型的收斂速度確實(shí)比 LTR 模型稍慢。然而,在絕對(duì)準(zhǔn)確性方面,遮蔽語(yǔ)言模型幾乎在訓(xùn)練一開(kāi)始就超越 LTR 模型。

圖 4:調(diào)整模型的訓(xùn)練步數(shù)。圖中展示了已經(jīng)預(yù)訓(xùn)練了 k 步后的模型參數(shù)在 MNLI 數(shù)據(jù)集上的再經(jīng)過(guò)微調(diào)后的準(zhǔn)確率。x 軸的值就是 k。
5.4 使用 BERT 基于特征的方法
到目前為止,所有的 BERT 結(jié)果都使用了微調(diào)方法,將一個(gè)簡(jiǎn)單的分類層添加到預(yù)訓(xùn)練的模型中,并在一個(gè)下行任務(wù)中對(duì)所有參數(shù)進(jìn)行聯(lián)合微調(diào)。然而,基于特征的方法,即從預(yù)訓(xùn)練模型中提取固定的特征,具有一定的優(yōu)勢(shì)。首先,并不是所有 NLP 任務(wù)都可以通過(guò) Transformer 編碼器體系結(jié)構(gòu)輕松地表示,因此需要添加特定于任務(wù)的模型體系結(jié)構(gòu)。其次,能夠一次性耗費(fèi)大量計(jì)算預(yù)先計(jì)算訓(xùn)練數(shù)據(jù)的表示,然后在這種表示的基礎(chǔ)上使用更節(jié)省計(jì)算的模型進(jìn)行許多實(shí)驗(yàn),這有很大的計(jì)算優(yōu)勢(shì)。
在本節(jié)中,我們通過(guò)在 CoNLL-2003 命名實(shí)體識(shí)別任務(wù)上生成類似于 elmo 的預(yù)訓(xùn)練的上下文表示來(lái)評(píng)估基于特征的方法中的 BERT 表現(xiàn)有多好。為此,我們使用與第 4.3 節(jié)相同的輸入表示,但是使用來(lái)自一個(gè)或多個(gè)層的激活輸出,而不需要對(duì)BERT的任何參數(shù)進(jìn)行微調(diào)。在分類層之前,這些上下文嵌入被用作對(duì)一個(gè)初始化的兩層 768 維 Bi-LSTM 的輸入。
結(jié)果如表 7 所示。最佳的執(zhí)行方法是從預(yù)訓(xùn)練的轉(zhuǎn)換器的前 4 個(gè)隱藏層串聯(lián)符號(hào)表示,這只比整個(gè)模型的微調(diào)落后 0.3 F1 值。這說(shuō)明 BERT 對(duì)于微調(diào)和基于特征的方法都是有效的。

表 7:在 CoNLL-2003 命名實(shí)體識(shí)別上使用基于特征的方法,并調(diào)整 BERT 層數(shù)。來(lái)自指定層的激活輸出被組合起來(lái),并被送到一個(gè)兩層的 BiLSTM 中,而不需要反向傳播到 BERT。
6. 結(jié)論
最近,由于使用語(yǔ)言模型進(jìn)行遷移學(xué)習(xí)而取得的實(shí)驗(yàn)提升表明,豐富的、無(wú)監(jiān)督的預(yù)訓(xùn)練是許多語(yǔ)言理解系統(tǒng)不可或缺的組成部分。特別是,這些結(jié)果使得即使是低資源(少量標(biāo)簽的數(shù)據(jù)集)的任務(wù)也能從非常深的單向結(jié)構(gòu)模型中受益。我們的主要貢獻(xiàn)是將這些發(fā)現(xiàn)進(jìn)一步推廣到深層的雙向結(jié)構(gòu),使同樣的預(yù)訓(xùn)練模型能夠成功地廣泛地處理 NLP 任務(wù)。
雖然這些實(shí)證結(jié)果很有說(shuō)服力,在某些情況下甚至超過(guò)了人類的表現(xiàn),但未來(lái)重要的工作是研究 BERT 可能捕捉到的或不捕捉到的語(yǔ)言現(xiàn)象。
參考文獻(xiàn)
所有參考文獻(xiàn)按論文各小節(jié)中引用順序排列,多次引用會(huì)多次出現(xiàn)在下面的列表中。
Abstract 摘要中的參考文獻(xiàn)
| BERT 文中簡(jiǎn)寫 | 原始標(biāo)論文標(biāo)題 | 其它 |
|---|---|---|
| Peters et al., 2018 | Deep contextualized word representations | ELMo |
| Radford et al., 2018 | Improving Language Understanding with Unsupervised Learning | OpenAI GPT |
1. Introduction 介紹中的參考文獻(xiàn)
2. Related Work 相關(guān)工作中的參考文獻(xiàn)
| BERT 文中簡(jiǎn)寫 | 原始標(biāo)論文標(biāo)題 | 其它 |
|---|---|---|
| Brown et al., 1992 | Class-based n-gram models of natural language | Peter F Brown, Peter V Desouza, Robert L Mercer, Vincent J Della Pietra, and Jenifer C Lai. 1992. |
| Ando and Zhang, 2005 | A Framework for Learning Predictive Structures from Multiple Tasks and Unlabeled Data | Rie Kubota Ando and Tong Zhang. 2005. |
| Blitzer et al., 2006 | Domain adaptation with structural correspondence learning | John Blitzer, Ryan McDonald, and Fernando Pereira.2006. |
| Collobert and Weston, 2008 | A Unified Architecture for Natural Language Processing | Ronan Collobert and Jason Weston. 2008. |
| Mikolov et al., 2013 | Distributed Representations of Words and Phrases and their Compositionality | CBOW Model;Skip-gram Model |
| Pennington et al., 2014 | GloVe: Global Vectors for Word Representation | GloVe |
| Turian et al., 2010 | Word Representations: A Simple and General Method for Semi-Supervised Learning | Joseph Turian, Lev Ratinov, and Yoshua Bengio. 2010. |
| Kiros et al., 2015 | Skip-Thought Vectors | Skip-Thought Vectors |
| Logeswaran and Lee, 2018 | An efficient framework for learning sentence representations | Lajanugen Logeswaran and Honglak Lee. 2018. |
| Le and Mikolov, 2014 | Distributed Representations of Sentences and Documents | Quoc Le and Tomas Mikolov. 2014. |
| Peters et al., 2017 | Semi-supervised sequence tagging with bidirectional language models | Matthew Peters, Waleed Ammar, Chandra Bhagavatula, and Russell Power. 2017. |
| Peters et al., 2018 | Deep contextualized word representations | ELMo |
| Rajpurkar et al., 2016 | SQuAD: 100,000+ Questions for Machine Comprehension of Text | SQuAD |
| Socher et al., 2013 | Deeply Moving: Deep Learning for Sentiment Analysis | SST-2 |
| Tjong Kim Sang and De Meulder, 2003 | Introduction to the CoNLL-2003 Shared Task: Language-Independent Named Entity Recognition | Erik F Tjong Kim Sang and Fien De Meulder. 2003. |
| Dai and Le, 2015 | Semi-supervised sequence learning. In Advances in neural information processing systems, pages 3079–3087 | AndrewMDai and Quoc V Le. 2015 |
| Howard and Ruder, 2018 | Universal Language Model Fine-tuning for Text Classification | ULMFiT;Jeremy Howard and Sebastian Ruder. |
| Radford et al., 2018 | Improving Language Understanding with Unsupervised Learning | OpenAI GPT |
| Wang et al.(2018) | GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding | GLUE |
| Con-neau et al., 2017 | Supervised Learning of Universal Sentence Representations from Natural Language Inference Data | Alexis Conneau, Douwe Kiela, Holger Schwenk, Loic Barrault, and Antoine Bordes. 2017. |
| McCann et al., 2017 | Learned in Translation: Contextualized Word Vectors | Bryan McCann, James Bradbury, Caiming Xiong, and Richard Socher. 2017. |
| Deng et al. | ImageNet: A large-scale hierarchical image database | J. Deng,W. Dong, R. Socher, L.-J. Li, K. Li, and L. FeiFei. 2009. |
| Yosinski et al., 2014 | How transferable are features in deep neural networks? | Jason Yosinski, Jeff Clune, Yoshua Bengio, and Hod Lipson. 2014. |
3. BERT 中的參考文獻(xiàn)
| BERT 文中簡(jiǎn)寫 | 原始標(biāo)論文標(biāo)題 | 其它 |
|---|---|---|
| Vaswani et al. (2017) | Attention Is All You Need | Transformer |
| Wu et al., 2016 | Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation | WordPiece |
| Taylor, 1953 | "Cloze Procedure": A New Tool For Measuring Readability | Wilson L Taylor. 1953. |
| Vincent et al., 2008 | Extracting and composing robust features with denoising autoencoders | denoising auto-encoders |
| Zhu et al., 2015 | Aligning Books and Movies: Towards Story-like Visual Explanations by Watching Movies and Reading Books | BooksCorpus (800M words) |
| Chelba et al., 2013 | One Billion Word Benchmark for Measuring Progress in Statistical Language Modeling | Billion Word Benchmark corpus |
| Hendrycks and Gimpel, 2016 | Gaussian Error Linear Units (GELUs) | GELUs |
4. Experiments 實(shí)驗(yàn)中的參考文獻(xiàn)
5. Ablation Studies 消融研究中的參考文獻(xiàn)
| BERT 文中簡(jiǎn)寫 | 原始標(biāo)論文標(biāo)題 | 其它 |
|---|---|---|
| Vaswani et al. (2017) | Attention Is All You Need | Transformer |
| Al-Rfou et al., 2018 | Character-Level Language Modeling with Deeper Self-Attention |