當前位置:成語大全網 - 新華字典 - BERT - 論文解讀

BERT - 論文解讀

BERT: Pre-training of Deep Bidirectional Transformers for

Language Understanding

將預訓練語言模型應用在下遊任務中,壹般有兩種策略:

作者認為影響當前預訓練語言模型的 瓶頸是——“模型是單向的” 。如 GPT 選擇從左到右的架構,這使得每個 token 只能註意到它前面的 token,這對 sentence 級的任務影響還是次要的,但對於 token 級的任務來說影響就很巨大。例如問答任務,從兩個方向結合上下文是至關重要的。

BERT 通過使用受完形填空任務啟發的 Mask Language Model (MLM)緩解了先前模型的單向性約束問題。MLM 隨機 mask 掉壹些輸入文本中的 token,然後根據剩下的上下文預測 masked 的 token。除了 Mask Language Model,作者還提出了 Next Sequence Predict 任務,來聯合訓練文本對表示。

論文中BERT的改進如下:

預訓練前的壹般語言表征有著悠久歷史,本節我們簡要回顧壹下最廣泛使用的方法。

2.1 基於特征的無監督方法

幾十年來,學習廣泛適用的詞匯表征壹直是壹個活躍的研究領域,包括非神經系統、神經系統方法。預訓練的詞嵌入是現代NLP系統的壹個組成部分,與從頭學習的嵌入相比,它提供了顯著的改進(Turian等人,2010)。為了預先訓練單詞嵌入向量,已經使用了從左到右的語言建模目標(Mnih和Hinton,2009),以及在左右上下文中區分正確單詞和錯誤單詞的目標(Mikolov等人,2013)。

這些方法已被推廣到更粗糙的粒度,例如句子嵌入(Kiros等人,2015;Logeswaran和Lee,2018)或段落嵌入(Le和Mikolov,2014)。為了訓練句子表征,之前的工作已經使用了目標對候選下壹個句子進行排序(Jernite等人,2017;Logeswaran和Lee,2018),根據前壹個句子的表征從左到右生成下壹個句子單詞(Kiros等人,2015),或去噪自動編碼器衍生的目標(Hill等人,2016)。

ELMo 及其前身(Peters等人,20172018a)從不同的維度概括了傳統的單詞嵌入研究。它們通過從左到右和從右到左的語言模型中提取上下文敏感的特征。每個標記的上下文表示是從左到右和從右到左表示的 串聯 。在將上下文單詞嵌入與現有任務特定架構相結合時,ELMo推進了幾個主要NLP基準(Peters等人,2018a)的最新技術,包括問答(Rajpurkar等人,2016年)、情感分析(Socher等人,2013年)和命名實體識別(Tjong Kim-Sang和De Meulder,2003年)。Melamud等人(2016年)提出通過壹項任務來學習語境表征,即使用 LSTM 從左右語境中預測單個單詞。與ELMo類似,他們的模型是基於特征的,而不是深度雙向的。Fedus等人(2018)表明,完形填空任務可以用來提高文本生成模型的 穩健性

2.2 無監督微調方法:

基於特征feature-based 的方法壹樣,第壹種方法只在未標記文本中預先訓練單詞嵌入參數的情況下才朝這個方向工作。最近,產生上下文標記表示的句子或文檔編碼器已經從未標記的文本和文本中預訓練出來針對受監督的下遊任務進行了 微調fine-tuned

這些方法的 優點是 ,很少有參數需要從頭學習。至少部分由於這壹優勢,OpenAI GPT在GLUE基準測試的許多句子級任務上取得了之前的最新成果。從左到右的語言建模和自動編碼器目標已用於此類模型的預訓練。

註解 :BERT的整體預訓練和微調程序。除了輸出層之外,在預訓練和微調中使用相同的體系結構。相同的預訓練模型參數用於初始化不同下遊任務的模型。在微調過程中,所有參數都會微調。

2.3 基於監督數據的遷移學習:

也有研究表明,在大數據集的監督任務中,如自然語言推理和機器翻譯可以有效地進行轉換。計算機視覺研究也證明了 從大型預訓練模型中進行遷移學習的重要性 ,其中壹個有效的方法是對使用ImageNet預訓練模型進行微調。

本節將介紹BERT及其詳細實現。在我們的框架中有兩個步驟:預訓練和微調。

BERT的壹個顯著特點是其跨不同任務的統壹體系結構 。預訓練的體系結構和最終的下遊體系結構之間的差異最小。

BERT 的模型架構是 壹種多層的雙向 transformer encoder ,BERT 在實現上與 transformer encoder 幾乎完全相同。

定義:transformer block 的個數為 L ; hidden 大小為 H; self-attentions head 的個數為 A. 作者主要展示了兩種規模的 BERT 模型:

在這項工作中,我們將層數(即Transformer blocks)表示為L,隱藏大小表示為H,自我註意頭的數量表示為A。我們主要報告兩種型號的結果:

為了進行比較,選擇BERT-base與OpenAI GPT具有相同的模型大小。然而,關鍵的是, BERT Transformer使用雙向自註意力機制self-attention ,而 GPT Transformer使用受限自註意力機制constrained self-attention ,其中每個標記只能關註其左側的上下文。

為了使 BERT 能處理大量不同的下遊任務,作者將模型的輸入設計成可以輸入單個句子或句子對,這兩種輸入被建模成同壹個 token 序列。作者使用了有 30000 個 token 的 vocabulary 詞嵌入。

3.1 Pre-training BERT :

我們不使用傳統的從左到右或從右到左的語言模型來預訓練BERT。相反,我們使用本節所述的兩個無監督任務對BERT進行預訓練。這壹步如圖1的左半部分所示。

Task #1: Masked LM

標準的語言模型只能實現從左到右或從右到左的訓練,不能實現真正的雙向訓練,這是因為雙向的條件是每個單詞能直接“看到自己”,並且模型可以在多層上下文中輕松的預測出目標詞。

為了能夠實現雙向的深度預訓練,作者選擇 隨機 mask 掉壹些比例的 token ,然後預測這些被 masked 的 token,在這種設置下,被 masked 的 token 的隱向量表示被輸出到詞匯表的 softmax 上,這就與標準語言模型設置相同。作者將 這個過程稱為“Masked LM”,也被稱為“完形填空”

○ Masked LM 預訓練任務的缺點

在於由於 [MASK] 標記不會出現在微調階段,這就造成了預訓練和微調階段的不壹致。為了解決該問題,作者提出了 壹種折中的方案

○ BERT 的 mask策略:

Task #2: Next Sentence Prediction (NSP)

很多下遊任務都是基於對兩句話之間的關系的理解,語言模型不能直接捕獲這種信息。為了訓練模型理解這種句間關系,作者 設計了 next sentence prediction 的二分類任務 。具體來說,就是選擇兩個句子作為壹個訓練樣本,有 50% 的概率是下壹句關系,有 50% 的概率是隨機選擇的句子對, 預測將 [CLS] 的最終隱狀態 C 輸入 sigmoid 實現

○ Pre-training data

作者選用了BooksCorpus (800M words) 和 English Wikipedia (2,500M words) 作為預訓練的語料庫,作者只選取了 Wikipedia 中的文本段落,忽略了表格、標題等。為了獲取長的連續文本序列,作者選用了 BIllion Word Benchmark 這樣的文檔級語料庫,而非打亂的句子級語料庫。

3.2 Fine-tuning BERT

因為 transformer 中的 self-attention 機制適用於很多下遊任務,所以可以直接對模型進行微調。對於涉及文本對的任務,壹般的做法是獨立 encode 文本對,然後再應用雙向的 cross attention 進行交互。Bert 使用 self-attention 機制統壹了這兩個階段,該機制直接能夠實現兩個串聯句子的交叉編碼。

對於不同的任務,只需要簡單地將特定於該任務的輸入輸出插入到 Bert 中,然後進行 end2end 的fine-tuning。

與預訓練相比,微調相對便宜。從完全相同的預訓練模型開始,本文中的所有結果最多可以在單個雲TPU上復制1小時,或在GPU上復制幾個小時。

在本節中,我們將介紹11個NLP任務的BERT微調結果。

4.1 GLUE:

GLUE (General Language Understanding Evaluation) 是多個 NLP 任務的集合。作者設置 batch size 為 32;訓練 3 個 epochs;在驗證集上從(5e-5, 4e-5, 3e-5, 2e-5)中選擇最優的學習率。結果如下:

結果見表1。 BERT-base和BERT-large在所有任務上都比所有系統表現出色,與現有技術相比,平均準確率分別提高了4.5%和7.0% 。請註意,除了註意掩蔽,BERT-base和OpenAI GPT在模型架構方面幾乎相同。

對於最大和最廣泛報道的GLUE任務MNLI,BERT獲得了4.6%的絕對準確率提高。在官方的GLUE排行榜10中,BERT-lagle獲得80.5分,而OpenAI GPT在撰寫本文之日獲得72.8分。我們發現BERT-large在所有任務中都顯著優於BERT-base,尤其是那些訓練數據很少的任務。

4.2 SQuAD v1.1 :

斯坦福問答數據集(SQuAD v1.1)收集了10萬對眾包問答對。給出壹個問題和壹段維基百科中包含答案的文章,任務是預測文章中的答案文本。

如圖1所示,在問答任務中,我們將輸入的問題和段落表示為單個壓縮序列,問題使用A嵌入,段落使用B嵌入。在微調過程,我們只引入壹個起始向量S和壹個端向量E。單詞i作為答案範圍開始的概率計算為Ti和S之間的點積,然後是段落中所有單詞的softmax:

答案範圍結束時使用類似公式。候選人從位置 i 到位置 j 的得分定義為:S·Ti + E·Tj ,最大得分跨度為 j≥ i 被用作預測。訓練目標是正確起始位置和結束位置的對數概率之和。我們微調了3個階段,學習率為5e-5,批量大小為32。

表2顯示了頂級排行榜條目以及頂級發布系統的結果。SQuAD排行榜的前幾名沒有最新的公***系統描述,並且允許在訓練系統時使用任何公***數據。因此,在我們的系統中使用適度的數據擴充,首先在TriviaQA上進行微調,然後再對團隊進行微調。

我們表現最好的系統在ensembling方面的表現優於排名第壹的系統,在ensembling方面的表現優於排名第壹的系統+1.5 F1,在單壹系統方面的表現優於排名第壹的系統+1.3 F1得分。事實上,我們的單BERT模型在F1成績方面優於頂級合奏系統。如果沒有TriviaQA微調數據,我們只會損失0.1-0.4 F1,仍然遠遠超過所有現有系統。

其他實驗:略

在本節中,我們對BERT的許多方面進行了消融實驗,以便更好地了解它們的相對重要性。其他消融研究見附錄C。

5.1 預訓練任務的效果

○ 進行了如下消融測試:

○ 結果如下:

5.2 模型大小的影響

○ 結果如下:

作者證明了 :如果模型經過充分的預訓練,即使模型尺寸擴展到很大,也能極大改進訓練數據規模較小的下遊任務。

5.3 將 Bert 應用於 Feature-based 的方法

○ feature-based 的方法是從預訓練模型中提取固定的特征,不對具體任務進行微調

○ 這樣的方法也有壹定的優點

作者進行了如下實驗:在 CoNLL-2003 數據集上完成 NER 任務,不使用 CRF 輸出,而是從壹到多個層中提取出激活值,輸入到 2 層 768 維的 BiLSTM 中,再直接分類。結果如下:

結果說明:無論是否進行微調,Bert 模型都是有效的。

個人認為 Bert 的意義在於:

由於語言模型的遷移學習,最近的經驗改進表明,豐富的、無監督的預訓練是許多語言理解系統的壹個組成部分。特別是,這些結果使得即使是低資源任務也能從深層單向體系結構中受益。我們的主要貢獻是將這些發現進壹步推廣到深層雙向體系結構中,使相同的預訓練模型能夠成功地處理廣泛的NLP任務。