全文翻譯下載,移步至 GitHub BERT_Paper_Chinese_Translationhtml
Jacob Devlin;Ming-Wei Chang;Kenton Lee;Kristina Toutanova Google AI Language {jacobdevlin,mingweichang,kentonl,kristout}@google.comgit
咱們提出了一種新的稱爲 BERT 的語言表示模型,BERT 表明來自 Transformer 的雙向編碼器表示(Bidirectional Encoder Representations from Transformers)。不一樣於最近的語言表示模型(Peters et al., 2018,Radford et al., 2018), BERT 旨在經過聯合調節全部層中的左右上下文來預訓練深度雙向表示。所以,只須要一個額外的輸出層,就能夠對預訓練的 BERT 表示進行微調,從而爲普遍的任務(好比回答問題和語言推斷任務)建立最早進的模型,而無需對特定於任務進行大量模型結構的修改。github
BERT 的概念很簡單,但實驗效果很強大。它刷新了 11 個 NLP 任務的當前最優結果,包括將 GLUE 基準提高至 80.4%(7.6% 的絕對改進)、將 MultiNLI 的準確率提升到 86.7%(5.6% 的絕對改進),以及將 SQuAD v1.1 的問答測試 F1 得分提升至 93.2 分(提升 1.5 分)——比人類表現還高出 2 分。web
語言模型預訓練能夠顯著提升許多天然語言處理任務的效果(Dai and Le, 2015;Peters et al., 2018;Radford et al., 2018;Howard and Ruder, 2018)。這些任務包括句子級任務,如天然語言推理(Bow-man et al., 2015;Williams et al., 2018)和釋義(Dolan and Brockett, 2005),目的是經過對句子的總體分析來預測句子之間的關係,以及標記級任務,如命名實體識別(Tjong Kim Sang and De Meulder, 2003)和 SQuAD 問答(Rajpurkar et al., 2016),模型須要在標記級生成細粒度的輸出。算法
現有的兩種方法能夠將預訓練好的語言模型表示應用到下游任務中:基於特徵的和微調。基於特徵的方法,如 ELMo (Peters et al., 2018),使用特定於任務的模型結構,其中包含預訓練的表示做爲附加特特徵。微調方法,如生成預訓練 Transformer (OpenAI GPT) (Radford et al., 2018)模型,而後引入最小的特定於任務的參數,並經過簡單地微調預訓練模型的參數對下游任務進行訓練。在以前的工做中,兩種方法在預訓練任務中都具備相同的目標函數,即便用單向的語言模型來學習通用的語言表達。spring
咱們認爲,當前的技術嚴重地限制了預訓練表示的效果,特別是對於微調方法。主要的侷限性是標準語言模型是單向的,這就限制了能夠在預訓練期間可使用的模型結構的選擇。例如,在 OpenAI GPT 中,做者使用了從左到右的模型結構,其中每一個標記只能關注 Transformer 的自注意層中該標記前面的標記(Williams et al., 2018)。這些限制對於句子級別的任務來講是次優的(還能夠接受),但當把基於微調的方法用來處理標記級別的任務(如 SQuAD 問答)時可能會形成不良的影響(Rajpurkar et al., 2016),由於在標記級別的任務下,從兩個方向分析上下文是相當重要的。服務器
在本文中,咱們經過提出 BERT 改進了基於微調的方法:來自 Transformer 的雙向編碼器表示。受完形填空任務的啓發,BERT 經過提出一個新的預訓練任務來解決前面提到的單向約束:「遮蔽語言模型」(MLM masked language model)(Tay-lor, 1953)。遮蔽語言模型從輸入中隨機遮蔽一些標記,目的是僅根據被遮蔽標記的上下文來預測它對應的原始詞彙的 id。與從左到右的語言模型預訓練不一樣,MLM 目標容許表示融合左右上下文,這容許咱們預訓練一個深層雙向 Transformer。除了遮蔽語言模型以外,咱們還提出了一個聯合預訓練文本對來進行「下一個句子預測」的任務。網絡
本文的貢獻以下:架構
預訓練通用語言表示有很長的歷史,咱們將在本節簡要回顧最流行的方法。app
幾十年來,學習普遍適用的詞語表示一直是一個活躍的研究領域,包括非神經網絡學領域(Brown et al., 1992;;Blitzer et al., 2006)和神經網絡領域(Collobert and Weston, 2008;Mikolov et al., 2013;Pennington et al., 2014)方法。通過預訓練的詞嵌入被認爲是現代 NLP 系統的一個不可分割的部分,詞嵌入提供了比從頭開始學習的顯著改進(Turian et al., 2010)。
這些方法已被推廣到更粗的粒度,如句子嵌入(Kiros et al., 2015;Logeswaran and Lee, 2018)或段落嵌入(Le and Mikolov, 2014)。與傳統的單詞嵌入同樣,這些學習到的表示一般也用做下游模型的輸入特徵。
ELMo(Peters et al., 2017)從不一樣的維度對傳統的詞嵌入研究進行了歸納。他們建議從語言模型中提取上下文敏感的特徵。在將上下文嵌入與特定於任務的架構集成時,ELMo 爲幾個主要的 NLP 標準提供了最早進的技術(Peters et al., 2018),包括在 SQuAD 上的問答(Rajpurkar et al., 2016),情感分析(Socher et al., 2013),和命名實體識別(jong Kim Sang and De Meul-der, 2003)。
語言模型遷移學習(LMs)的一個最新趨勢是,在對受監督的下游任務的模型進行微調以前,先對 LM 目標上的一些模型構造進行預訓練(Dai and Le, 2015;Howard and Ruder, 2018;Radford et al., 2018)。這些方法的優勢是隻有不多的參數須要從頭開始學習。至少部分得益於這一優點,OpenAI GPT (Radford et al., 2018)在 GLUE 基準測試的許多句子級任務上取得了此前最早進的結果(Wang et al.(2018))。
雖然無監督預訓練的優勢是可用的數據量幾乎是無限的,但也有研究代表,從具備大數據集的監督任務中能夠進行有效的遷移,如天然語言推理(Con-neau et al., 2017)和機器翻譯(McCann et al., 2017)。在NLP以外,計算機視覺研究也證實了從大型預訓練模型中進行遷移學習的重要性,有一個有效的方法能夠微調在 ImageNet 上預訓練的模型(Deng et al., 2009;Yosinski et al., 2014)
本節將介紹 BERT 及其具體實現。首先介紹了 BERT 模型結構和輸入表示。而後咱們在 3.3 節介紹本文的核心創新——預訓練任務。在 3.4 和 3.5 節中分別詳細介紹了預訓練過程和微調模型過程。最後,在 3.6 節中討論了 BERT 和 OpenAI GPT 之間的區別。
BERT 的模型結構是一個基於 Vaswani et al.(2017) 描述的原始實現的多層雙向 Transformer 編碼器,而且 Transformer 編碼器發佈在 tensor2tensor 代碼庫中。因爲最近 Transformer 的使用已經很是廣泛,並且咱們的實現與最初的實現其實是相同的,因此咱們將省略對模型結構的詳盡的背景描述,並向讀者推薦 Vaswani et al.(2017) 以及優秀的指南,如「帶註釋的 Transformer」。
在這項工做中,咱們表示層的數量(即,Transformer 塊)爲 ,隱藏尺寸爲 ,自注意頭的個數爲 。在全部例子中,咱們將前饋/過濾器的大小設置爲 ,即當 時是 ;當 是 。咱們主要分析兩個模型大小的結果:
爲了方便比較, 選擇了與 OpenAI GPT 同樣的模型大小。然而,重要的是,BERT Transformer 使用的是雙向的自注意力,而 GPT Transformer 使用的是受限的自注意力,每一個標記只能關注其左邊的語境。咱們注意到,在文獻中,雙向 Transformer 一般被稱爲「Transformer 編碼器」,而只有標記左側語境的版本因爲能夠用於文本生成而被從新定義爲「Transformer 解碼器」。BERT、OpenAI GPT 和 ELMo 之間的比較如圖 1 所示。
圖 1:預訓練模型結構的不一樣。BERT 使用雙向 Transformer。OpenAI GPT 使用 從左到右的 Transformer。ELMo 使用獨立訓練的從左到右和從右到左的 LSTM 的鏈接來爲下游任務生成特徵。其中,只有 BERT 表示在全部層中同時受到左右語境的制約。
咱們的輸入表示可以在一個標記序列中清楚地表示單個文本句子或一對文本句子(例如,[Question, Answer])。(註釋:在整個工做中,「句子」能夠是連續的任意跨度的文本,而不是實際語言意義上的句子。「序列」是指輸入到 BERT 的標記序列,它能夠是單個句子,也能夠是兩個句子組合在一塊兒。)經過把給定標記對應的標記嵌入、句子嵌入和位置嵌入求和來構造其輸入表示。圖 2 給出了輸入表示的可視化表示。 細節是:
圖 2:BERT 的輸入表示。輸入嵌入是標記嵌入(詞嵌入)、句子嵌入和位置嵌入的總和。
直覺上,咱們有理由相信,深度雙向模型嚴格來講比從左到右模型或從左到右模型結合從右到左模型的淺層鏈接更強大。不幸的是,標準條件語言模型只能從左到右或從右到左進行訓練,由於雙向條件做用將容許每一個單詞在多層上下文中間接地「看到本身」。
爲了訓練深度雙向表示,咱們採用了一種簡單的方法,即隨機遮蔽必定比例的輸入標記,而後僅預測那些被遮蔽的標記。咱們將這個過程稱爲「遮蔽語言模型」(MLM),儘管在文獻中它一般被稱爲完形填詞任務(Taylor, 1953)。在這種狀況下,就像在標準語言模型中同樣,與遮蔽標記相對應的最終隱藏向量被輸入到與詞彙表對應的輸出 softmax 中(也就是要把被遮蔽的標記對應爲詞彙表中的一個詞語)。在咱們全部的實驗中,咱們在每一個序列中隨機遮蔽 15% 的標記。與去噪的自動編碼器(Vincent et al., 2008)不一樣的是,咱們只是讓模型預測被遮蔽的標記,而不是要求模型重建整個輸入。
雖然這確實容許咱們得到一個雙向預訓練模型,但這種方法有兩個缺點。第一個缺點是,咱們在預訓練和微調之間形成了不匹配,由於 [MASK] 標記在微調期間從未出現過。爲了緩和這種狀況,咱們並不老是用真的用 [MASK] 標記替換被選擇的單詞。而是,訓練數據生成器隨機選擇 15% 的標記,例如,在my dog is hairy 這句話中,它選擇 hairy。而後執行如下步驟:
Transformer 編碼器不知道它將被要求預測哪些單詞,或者哪些單詞已經被隨機單詞替換,所以它被迫保持每一個輸入標記的分佈的上下文表示。另外,由於隨機替換隻發生在 1.5% 的標記(即,15% 的 10%)這彷佛不會損害模型的語言理解能力。
第二個缺點是,使用 Transformer 的每批次數據中只有 15% 的標記被預測,這意味着模型可能須要更多的預訓練步驟來收斂。在 5.3 節中,咱們證實了 Transformer 確實比從左到右的模型(預測每一個標記)稍微慢一點,可是 Transformer 模型的實驗效果遠遠超過了它增長的預訓練模型的成本。
許多重要的下游任務,如問題回答(QA)和天然語言推理(NLI),都是創建在理解兩個文本句子之間的關係的基礎上的,而這並非語言建模直接捕捉到的。爲了訓練一個理解句子關係的模型,咱們預訓練了一個下一句預測的二元分類任務,這個任務能夠從任何單語語料庫中簡單地概括出來。具體來講,在爲每一個訓練前的例子選擇句子 A 和 B 時,50% 的狀況下 B 是真的在 A 後面的下一個句子,50% 的狀況下是來自語料庫的隨機句子。好比說:
咱們徹底隨機選擇不是下一句的句子,最終的預訓練模型在這個任務中達到了 97%-98% 的準確率。儘管這個任務很簡單,可是咱們在 5.1 節中展現了針對此任務的預訓練對 QA 和 NLI 都很是有益。
預訓練過程大致上遵循以往文獻中語言模型預訓練過程。對於預訓練語料庫,咱們使用 BooksCorpus(800M 單詞)(Zhu et al., 2015)和英語維基百科(2,500M 單詞)。對於維基百科,咱們只提取文本段落,而忽略列表、表格和標題。爲了提取長的連續序列,使用文檔級別的語料庫,而不是使用像 Billion Word Benchmark (Chelba et al., 2013)那樣使用打亂順序的句子級別語料庫是相當重要的。
爲了生成每一個訓練輸入序列,咱們從語料庫中採樣兩段文本,咱們將其稱爲「句子」,儘管它們一般比單個句子長得多(但也能夠短一些)。第一個句子添加 A 嵌入,第二個句子添加 B 嵌入。50% 的狀況下 B 確實是 A 後面的實際下一句,50% 的狀況下它是隨機選取的一個的句子,這是爲「下一句預測」任務所作的。兩句話合起來的長度要小於等於 512 個標記。語言模型遮蔽過程是在使用 WordPiece 序列化句子後,以均勻的 15% 的機率遮蔽標記,不考慮部分詞片的影響(那些含有被 WordPiece 拆分,以##爲前綴的標記)。
咱們使用 256 個序列(256 個序列 * 512 個標記= 128,000 個標記/批次)的批大小進行 1,000,000 步的訓練,這大約是在 33 億詞的語料庫中訓練 40 個週期。咱們用Adam 優化算法並設置其學習率爲 ,, 的權重衰減是 0.01,而且在前 10000 步學習率熱身(learning rate warmup),而後學習率開始線性衰減。咱們在全部層上使用 0.1 機率的 dropout。像 OpenAI GPT 同樣,咱們使用 gelu 激活(Hendrycks and Gimpel, 2016)而不是標準 relu。訓練損失是遮蔽語言模型似然值與下一句預測似然值的平均值。
在 4 塊 Cloud TPU(共含有 16 塊 TPU)上訓練 。在 16 塊 Cloud TPU(共含有 64 塊 TPU)訓練 。每次訓練前須要 4 天的時間。
對於序列級別的分類任務,BERT 微調很是簡單。爲了得到輸入序列的固定維度的表示,咱們取特殊標記([CLS])構造相關的嵌入對應的最終的隱藏狀態(即,爲 Transformer 的輸出)的池化後輸出。咱們把這個向量表示爲 ,在微調期間惟一須要的新增長的參數是分類層的參數矩陣 ,其中 是要分類標籤的數量。分類標籤的機率 由一個標準的 softmax 來計算,。對 BERT 的參數矩陣 的全部參數進行了聯合微調,使正確標籤的對數機率最大化。對於區間級和標記級預測任務,必須以特定於任務的方式稍微修改上述過程。具體過程見第 4 節的相關內容。
對於微調,除了批量大小、學習率和訓練次數外,大多數模型超參數與預訓練期間相同。Dropout 機率老是使用 0.1。最優超參數值是特定於任務的,但咱們發現如下可能值的範圍能夠很好地在全部任務中工做:
咱們還觀察到大數據集(例如 100k+ 標記的訓練集)對超參數選擇的敏感性遠遠低於小數據集。微調一般很是快,所以只需對上述參數進行徹底搜索,並選擇在驗證集上性能最好的模型便可。
在現有預訓練方法中,與 BERT 最類似的是 OpenAI GPT,它在一個大的文本語料庫中訓練從左到右的 Transformer 語言模型。事實上,BERT 中的許多設計決策都是有意選擇儘量接近 GPT 的,這樣兩種方法就能夠更加直接地進行比較。咱們工做的核心論點是,在 3.3 節中提出的兩項新的預訓練語言模型任務佔了實驗效果改進的大部分,可是咱們注意到 BERT 和 GPT 在如何訓練方面還有其餘幾個不一樣之處:
爲了分清楚這些差別的帶來的影響,咱們在 5.1 節中的進行每一種差別的消融實驗代表,大多數的實驗效果的改善實際上來自新的預訓練任務(遮蔽語言模型和下一句預測任務)。
圖 3:咱們具體於特定任務的模型是經過給 BERT 加一個額外的輸出層構成,因此僅須要從頭學習最小數量的參數。其中(a)和(b)是序列級任務,(c)和(d)是標記級任務。圖中 表示嵌入的輸入, 表示第 個標記的上下文表示,[CLS] 是分類輸出的特殊符號,[SEP] 是分離非連續標記(分離兩個句子)序列的特殊符號。
在這一節,咱們將展現 BERT 在 11 項天然語言處理任務中的微調結果。
通用語言理解評價 (GLUE General Language Understanding Evaluation) 基準(Wang et al.(2018))是對多種天然語言理解任務的集合。大多數 GLUE 數據集已經存在多年,但 GLUE 的用途是(1)以分離的訓練集、驗證集和測試集的標準形式發佈這些數據集;而且(2)創建一個評估服務器來緩解評估不一致和過分擬合測試集的問題。GLUE 不發佈測試集的標籤,用戶必須將他們的預測上傳到 GLUE 服務器進行評估,並對提交的數量進行限制。
GLUE 基準包括如下數據集,其描述最初在 Wang et al.(2018)中總結:
MNLI 多類型的天然語言推理(Multi-Genre Natural Language Inference)是一項大規模的、衆包的蘊含分類任務(Williams et al., 2018)。給定一對句子,目的是預測第二個句子相對於第一個句子是暗含的、矛盾的仍是中立的關係。
QQP Quora問題對(Quora Question Pairs)是一個二元分類任務,目的是肯定兩個問題在Quora上問的語義是否相等 (Chen et al., 2018)。
QNLI 問題天然語言推理(Question Natural Language Inference)是斯坦福問題回答數據集(Rajpurkar et al., 2016)已經轉換爲二進制分類任務的一個版本 Wang et al.(2018)。正類的例子是(問題,句子)對,句子中包含正確的答案,和負類的例子是來自同一段的(問題,句子)對,句子中不包含正確的答案。
SST-2 斯坦福情感語義樹(Stanford Sentiment Treebank)數據集是一個二元單句分類任務,數據由電影評論中提取的句子組成,並對由人工對這些句子進行標註(Socher et al., 2013)。
CoLA 語言可接受性單句二元分類任務語料庫(Corpus of Linguistic Acceptability),它的目的是預測一個英語句子在語言學上是否 「可接受」(Warstadt et al., 2018)。
STS-B 文本語義類似度基準(Semantic Textual Similarity Bench-mark )是重新聞標題中和其它來源裏提取的句子對的集合(Cer et al., 2017)。他們用從 1 到 5 的分數標註,表示這兩個句子在語義上是多麼類似。
MRPC 微軟研究釋義語料庫(Microsoft Research Paraphrase Corpus)從在線新聞中自動提取的句子對組成,並用人工註解來講明這兩個句子在語義上是否相等(Dolan and Brockett, 2005.)。
RTE 識別文本蘊含(Recognizing Textual Entailment)是一個與 MNLI 類似的二元蘊含任務,只是 RTE 的訓練數據更少 Bentivogli et al., 2009。
WNLI 威諾格拉德天然語言推理(Winograd NLI)是一個來自(Levesque et al., 2011) )的小型天然語言推理數據集。GLUE網頁提示到這個數據集的構造存在問題,每個被提交給 GLUE 的通過訓練的系統在預測多數類時都低於 65.1 這個基線準確度。所以,出於對 OpenAI GPT 的公平考慮,咱們排除了這一數據集。對於咱們的 GLUE 提交,咱們老是預測多數類。
爲了在 GLUE 上微調模型,咱們按照本文第 3 節中描述的那樣表示輸入的句子或者句子對,而且使用最後一層的隱藏向量 中的第一個輸入標記([CLS])做爲句子總的表示。如圖3 (a)和(b)所示。在微調期間惟一引入的新的參數是一個分類層參數矩陣 ,其中 是要分類的數量。咱們用 和 計算一個標準的分類損失,換句話說是 。
咱們在 GLUE 全部的任務中使用 32 的批次大小和 3 個週期。對於每一個任務咱們使用 的學習率來微調,而後在驗證集中選擇表現最好的學習率。此外,對於 咱們發現它有時在小數據集上微調時不穩定(換句話說是,有時運行時會使結果更差),所以,咱們進行了幾回隨機重啓,並選擇了在驗證集上表現最好的模型。對於隨機重啓,咱們使用相同的預訓練檢查點,但執行不一樣的數據打亂和分類器層初始化來微調模型。咱們注意到,GLUE 發佈的數據集不包括測試的標籤,因此咱們分別將 和 向 GLUE 評估服務器提交結果。
結果如表 1 所示。在全部的任務上, 和 都比現有的系統更加出色 ,與先進水平相比,分別取得 4.4% 及 6.7% 的平均改善。請注意,除了 含有注意力屏蔽(attention masking), 和 OpenAI GPT 的模型結構方面幾乎是相同的。對於最大和最普遍使用的 GLUE 任務 MNLI,BERT 比當前最優模型得到了 4.7% 的絕對提高。在 GLUE 官方的排行榜上, 得到了 80.4 的分數,與原榜首的 OpenAI GPT 相比截止本文寫做時只得到了 72.8 分。
有趣的是, 在全部任務中都顯著優於 ,即便是在那些只有不多訓練數據的任務上。BERT 模型大小的影響在本文 5.2 節有更深刻的探討。
表 1:GLUE 測試結果,由 GLUE 評估服務器評分。每一個任務下面的數字表示訓練示例的數量。「Average」列與官方 GLUE 評分略有不一樣,由於咱們排除了有問題的 WNLI 數據集。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 都是單模型,單任務。全部結果能夠從 gluebenchmark.com/leaderboard 和 blog.openai.com/language-un… 得到。
斯坦福問答數據集(SQuAD Standford Question Answering Dataset)是一個由 100k 個衆包的問題/答案對組成的集合(Rajpurkar et al., 2016)。給出一個問題和一段來自維基百科包含這個問題答案的段落,咱們的任務是預測這段答案文字的區間。例如:
這種區間預測任務與 GLUE 的序列分類任務有很大的區別,可是咱們可以讓 BERT 以一種直接的方式在 SQuAD 上運行。就像在 GLUE 中,咱們將輸入問題和段落表示爲一個單一打包序列(packed sequence),其中問題使用 A 嵌入,段落使用 B 嵌入。在微調模型期間惟一須要學習的新參數是區間開始向量 和區間結束向量 。讓 BERT 模型最後一層的隱藏向量的第 輸入標記被表示爲 。如圖 3(c)可視化的表示。而後,計算單詞 做爲答案區間開始的機率,它是 和 之間的點積併除以該段落全部單詞的結果以後再 softmax:
一樣的式子用來計算單詞做爲答案區間的結束的機率,並採用得分最高的區間做爲預測結果。訓練目標是正確的開始和結束位置的對數可能性。
咱們使用 的學習率,32 的批次大小訓練模型 3 個週期。在模型推斷期間,由於結束位置與開始位置沒有條件關係,咱們增長告終束位置必須在開始位置以後的條件,但沒有使用其餘啓發式。爲了方便評估,把序列化後的標記區間對齊回原始未序列化的輸入。
結果如表 2 中描述那樣。SQuAD 使用一個高度嚴格的測試過程,其中提交者必須手動聯繫小組組織人員,而後在一個隱藏的測試集上運行他們的系統,因此咱們只提交了最好的模型來測試。表中顯示的結果是咱們提交給小組的第一個也是惟一一個測試。咱們注意到上面的結果在小組排行榜上沒有最新的公共模型描述,並被容許在訓練他們的模型時使用任何的公共數據。所以,咱們在提交的模型中使用很是有限的數據加強,經過在 SQuAD 和 TriviaQA(Joshi et al., 2017) 聯合訓練。
咱們表現最好的模型在集成模型排名中上比排名第一模型高出 1.5 個 F1 值,在一個單模型排行榜中比排名第一的模型高出 1.7(譯者注:原文是 1.3) 個 F1 值。實際上,咱們的單模型 BERT 就比最優的集成模型表現更優。即便只在 SQuAD 數據集上(不用 TriviaQA 數據集)咱們只損失 0.1-0.4 個 F1 值,並且咱們的模型輸出結果仍然比現有模型的表現好不少。
表 2:SQuAD 結果。Ensemble BERT 是使用不一樣的預訓練模型檢查點和微調種子的 7x 模型。
爲了評估標記任務的性能,咱們在 CoNLL 2003 命名實體識別數據集(NER Named Entity Recognition)上微調 BERT 模型。該數據集由 200k 個訓練單詞組成,這些訓練詞被標註爲人員、組織、地點、雜項或其餘(無命名實體)。
爲了微調,咱們將最後一層每一個單詞的隱藏表示 送入一個在 NER 標籤集合的分類層。每一個單詞的分類不以周圍預測爲條件(換句話說,沒有自迴歸和沒有 CRF)。爲了與詞塊(WordPiece)序列化相適應,咱們把 CoNLI-序列化的(CoNLL-tokenized)的輸入詞輸入咱們的 WordPiece 序列化器,而後使用這些隱藏狀態相對應的第一個塊而不用預測標記爲 X的塊。例如:
因爲單詞塊序列化邊界是輸入中已知的一部分,所以對訓練和測試都要這樣作。 結果如表 3 所示。 優於現存的最優模型,使用多任務學習的交叉視野訓練 (Clark et al., 2018),CoNLL-2003 命名實體識別測試集上高 0.2 F1 值。
表 3:CoNLL-2003 命名實體識別。模型超參數使用驗證集進行選擇,報告的驗證集和測試分數使用這些超參數進行隨機五次以上的實驗而後取實驗的平均結果。
Adversarial Generations(SWAG)數據集由 113k 個句子對組合而成,用於評估基於常識的推理 (Zellers et al., 2018)。
給出一個來自視頻字幕數據集的句子,任務是在四個選項中選擇最合理的延續。例如:
爲 SWAG 數據集調整 BERT 模型的方式與爲 GLUE 數據集調整的方式類似。對於每一個例子,咱們構造四個輸入序列,每個都鏈接給定的句子(句子A)和一個可能的延續(句子B)。惟一的特定於任務的參數是咱們引入向量 ,而後它點乘最後層的句子總表示 爲每個選擇 產生一個分數。機率分佈爲 softmax 這四個選擇:
咱們使用 的學習率,16 的批次大小訓練模型 3 個週期。結果如表 4 所示。 優於做者的 ESIM+ELMo 的基線標準模型的 27.1% 。
表 4:SWAG 驗證集和測試集準確率。測試結果由 SWAG 做者對隱藏的標籤進行評分。人類的表現是用 100 個樣原本衡量的,正如 SWAG 論文中描述的那樣。
雖然咱們已經證實了很是強有力的實證結果,但到目前爲止提出的結果並無提現出 BERT 框架的每一個部分具體的貢獻。在本節中,咱們對 BERT 的許多方面進行了消融實驗,以便更好地理解每一個部分的相對重要性。
咱們的核心觀點之一是,與以前的工做相比,BERT 的深層雙向性(經過遮蔽語言模型預訓練)是最重要的改進。爲了證實這一觀點,咱們評估了兩個新模型,它們使用與 徹底相同的預訓練數據、微調方案和 Transformer 超參數:
結果如表 5 所示。咱們首先分析了 NSP 任務所帶來的影響。咱們能夠看到去除 NSP 對 QNLI、MNLI 和 SQuAD 的表現形成了顯著的傷害。這些結果代表,咱們的預訓練方法對於得到先前提出的強有力的實證結果是相當重要的。
接着咱們經過對比 「No NSP」 與 「LTR & No NSP」 來評估訓練雙向表示的影響。LTR 模型在全部任務上的表現都比 MLM 模型差,在 MRPC 和 SQuAD 上的降低特別大。對於SQuAD來講,很明顯 LTR 模型在區間和標記預測方面表現不好,由於標記級別的隱藏狀態沒有右側上下文。由於 MRPC 不清楚性能差是因爲小的數據大小仍是任務的性質,可是咱們發現這種性能差是在一個徹底超參數掃描和許屢次隨機重啓之間保持一致的。
爲了加強 LTR 系統,咱們嘗試在其上添加一個隨機初始化的 BiLSTM 來進行微調。這確實大大提升了 SQuAD 的成績,可是結果仍然比預訓練的雙向模型表現差得多。它還會損害全部四個 GLUE 任務的性能。
咱們注意到,也能夠培訓單獨的 LTR 和 RTL 模型,並將每一個標記表示爲兩個模型表示的鏈接,就像 ELMo 所作的那樣。可是:(a)這是單個雙向模型參數的兩倍大小;(b)這對於像 QA 這樣的任務來講是不直觀的,由於 RTL 模型沒法以問題爲條件肯定答案;(c)這比深層雙向模型的功能要弱得多,由於深層雙向模型能夠選擇使用左上下文或右上下文。
表 5:在預訓練任務中使用 模型進行消融實驗。「No NSP」表示不進行下一句預測任務來訓練模型。「LTR & No NSP」表示就像 OpenAI GPT 同樣,使用從左到右的語言模型不進行下一句預測任務來訓練模型。「+ BiLSTM」表示在「LTR & No NSP」模型微調時添加一個隨機初始化的 BiLSTM 層。
在本節中,咱們將探討模型大小對微調任務準確度的影響。咱們用不一樣的層數、隱藏單位和注意力頭個數訓練了許多 BERT 模型,同時使用了與前面描述的相同的超參數和訓練過程。
選定 GLUE 任務的結果如表 6 所示。在這個表中,咱們報告了 5 次在驗證集上的微調的隨機重啓的平均模型準確度。咱們能夠看到,更大的模型在所選 4 個數據集上都帶來了明顯的準確率上升,甚至對於只有 3600 個訓練數據的 MRPC 來講也是如此,而且與預訓練任務有很大的不一樣。也許使人驚訝的是,相對於現有文獻,咱們可以在現有的模型基礎上實現如此顯著的改進。例如,Vaswani et al.(2017) 研究的最大 Transformer 爲(L=6, H=1024, A=16),編碼器參數爲 100M,咱們所知的文獻中的最大 Transformer 爲(L=64, H=512, A=2),參數爲235M(Al-Rfou et al., 2018)。相比之下, 含有 110M 參數而 含有 340M 參數。
多年來人們都知道,增長模型的大小將持續提高在大型任務(如機器轉換和語言建模)上的的表現,表 6 所示的由留存訓練數據(held-out traing data)計算的語言模型的困惑度(perplexity)。然而,咱們相信,這是第一次證實,若是模型獲得了足夠的預訓練,那麼將模型擴展到極端的規模也能夠在很是小的任務中帶來巨大的改進。
表 6:調整 BERT 的模型大小。#L = 層數;#H = 隱藏維度大小;#A = 注意力頭的個數。「LM (ppl)」表示遮蔽語言模型在預留訓練數據上的困惑度。
圖 4 顯示了通過 K 步預訓練模型的檢查點再模型微調以後在 MNLI 驗證集上的準確率。這讓咱們可以回答下列問題:
圖 4:調整模型的訓練步數。圖中展現了已經預訓練了 k 步後的模型參數在 MNLI 數據集上的再通過微調後的準確率。x 軸的值就是 k。
到目前爲止,全部的 BERT 結果都使用了微調方法,將一個簡單的分類層添加到預訓練的模型中,並在一個下行任務中對全部參數進行聯合微調。然而,基於特徵的方法,即從預訓練模型中提取固定的特徵,具備必定的優點。首先,並非全部 NLP 任務均可以經過 Transformer 編碼器體系結構輕鬆地表示,所以須要添加特定於任務的模型體系結構。其次,可以一次性耗費大量計算預先計算訓練數據的表示,而後在這種表示的基礎上使用更節省計算的模型進行許多實驗,這有很大的計算優點。
在本節中,咱們經過在 CoNLL-2003 命名實體識別任務上生成相似於 elmo 的預訓練的上下文表示來評估基於特徵的方法中的 BERT 表現有多好。爲此,咱們使用與第 4.3 節相同的輸入表示,可是使用來自一個或多個層的激活輸出,而不須要對BERT的任何參數進行微調。在分類層以前,這些上下文嵌入被用做對一個初始化的兩層 768 維 Bi-LSTM 的輸入。
結果如表 7 所示。最佳的執行方法是從預訓練的轉換器的前 4 個隱藏層串聯符號表示,這隻比整個模型的微調落後 0.3 F1 值。這說明 BERT 對於微調和基於特徵的方法都是有效的。
表 7:在 CoNLL-2003 命名實體識別上使用基於特徵的方法,並調整 BERT 層數。來自指定層的激活輸出被組合起來,並被送到一個兩層的 BiLSTM 中,而不須要反向傳播到 BERT。
最近,因爲使用語言模型進行遷移學習而取得的實驗提高代表,豐富的、無監督的預訓練是許多語言理解系統不可或缺的組成部分。特別是,這些結果使得即便是低資源(少許標籤的數據集)的任務也能從很是深的單向結構模型中受益。咱們的主要貢獻是將這些發現進一步推廣到深層的雙向結構,使一樣的預訓練模型可以成功地普遍地處理 NLP 任務。
雖然這些實證結果頗有說服力,在某些狀況下甚至超過了人類的表現,但將來重要的工做是研究 BERT 可能捕捉到的或不捕捉到的語言現象。
全部參考文獻按論文各小節中引用順序排列,屢次引用會屢次出如今下面的列表中。
Abstract 摘要中的參考文獻
BERT 文中簡寫 | 原始標論文標題 | 其它 |
---|---|---|
Peters et al., 2018 | Deep contextualized word representations | ELMo |
Radford et al., 2018 | Improving Language Understanding with Unsupervised Learning | OpenAI GPT |
1. Introduction 介紹中的參考文獻
2. Related Work 相關工做中的參考文獻
BERT 文中簡寫 | 原始標論文標題 | 其它 |
---|---|---|
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 中的參考文獻
BERT 文中簡寫 | 原始標論文標題 | 其它 |
---|---|---|
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 實驗中的參考文獻
5. Ablation Studies 消融研究中的參考文獻
BERT 文中簡寫 | 原始標論文標題 | 其它 |
---|---|---|
Vaswani et al. (2017) | Attention Is All You Need | Transformer |
Al-Rfou et al., 2018 | Character-Level Language Modeling with Deeper Self-Attention |