1.論文題目
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
2.論文摘要
本文引入了一種名為 BERT 的新語言表示模型,它代表 Transformers 的雙向編碼器表示。與最近的語言表示模型(Peters et al., 2018a;Radford et al., 2018)不同,BERT 旨在通過聯(lián)合調(diào)節(jié)所有層中的左右上下文來預訓練未標記文本的深度雙向表示。因此,只需一個額外的輸出層即可對預訓練的 BERT 模型進行微調(diào),從而為問答和語言推理等各種任務創(chuàng)建最先進的模型,而無需對特定于任務的架構進行大量修改。
BERT 概念簡單,經(jīng)驗強大。它在 11 項自然語言處理任務上獲得了最新的結果,包括將 GLUE 分數(shù)提高到 80.5%(絕對提高 7.7%)、MultiNLI 準確率提高到 86.7%(絕對提高 4.6%)、SQuAD v1.1問答測試 F1 達到 93.2(絕對提高 1.5 分),SQuAD v2.0 測試 F1 達到 83.1(絕對提高 5.1 分)。
3.?整體介紹與研究動機
兩種將預訓練的語言表示用于下游任務的策略:
- 基于特征(feature-based):例如 ELMo 模型,將包含預訓練表示作為附加特征的特定任務架構。
- 微調(diào)(fine-tuning):例如 GPT 模型,引入了最少的特定于任務的參數(shù),并通過簡單地微調(diào)所有預訓練參數(shù)來對下游任務進行訓練。
這兩種方法在預訓練期間共享相同的目標函數(shù),使用單向語言模型來學習通用語言表示。
作者認為,當前的技術限制了預訓練表示的能力,特別是對于微調(diào)方法。主要限制是標準語言模型是單向的,這限制了在預訓練期間使用的架構的選擇。例如,在 OpenAI GPT 中,作者使用從左到右的架構,其中每個標記只能關注 Transformer 的自注意力層中的先前標記。這種限制對于句子級(sentence-level)任務來說是次優(yōu)的,并且在將基于微調(diào)的方法應用于標記級(token-level)任務時可能非常有害,在這些任務中,從兩個方向合并上下文至關重要。
在本文中,作者通過提出 BERT:Transformers 的雙向編碼器表示來改進基于微調(diào)的方法。 BERT 通過使用受 完形填空任務 (Taylor, 1953) 啟發(fā)的 掩碼語言模型 (Masked Language Model,MLM) 預訓練目標來緩解前面提到的單向約束。掩碼語言模型從輸入中隨機掩蔽一些標記,目標是僅根據(jù)其上下文來預測被掩蔽詞的原始詞匯表 id。與從左到右的語言模型預訓練不同,MLM 目標使表示能夠融合左右上下文,這使我們能夠預訓練一個深度雙向 Transformer。除了掩碼語言模型之外,我們還使用了 下一句預測任務,該任務聯(lián)合預訓練文本對表示。論文的貢獻如下:
- 作者證明了雙向預訓練對語言表示的重要性。BERT 使用掩碼語言模型來實現(xiàn)預訓練的深度雙向表示。
- 作者證明了預訓練的表示減少了對許多精心設計的任務特定架構的需求。 BERT 是第一個基于微調(diào)的表示模型,它在大量句子級和標記級任務上實現(xiàn)了最先進的性能,優(yōu)于許多特定于任務的架構。
- 源碼和預訓練模型下載: https://github.com/google-research/bert
4.?研究背景
4.1 Unsupervised Feature-based Approaches
ELMo 及其前身 (Peters et al., 2017, 2018a) 將傳統(tǒng)的詞嵌入研究沿不同的維度進行了推廣。他們從從左到右和從右到左的語言模型中提取上下文相關的特征。每個標記(token)的上下文表示是從左到右和從右到左表示的連接(concatenation)。
在將上下文詞嵌入與現(xiàn)有的特定任務架構集成時,ELMo 提升了幾個主要 NLP 基準的最新技術水平,包括問答,情感分析和命名實體識別 。有研究提出通過使用 LSTM 從左右上下文預測單個單詞的任務來學習上下文表示。與 ELMo 類似,他們的模型是基于特征的,而不是深度雙向的。有研究表明完形填空任務可用于提高文本生成模型的魯棒性。
4.2 Unsupervised Fine-tuning Approaches
最近,產(chǎn)生上下文標記表示的句子或文檔編碼器已經(jīng)從未標記的文本中進行了預訓練,并針對有監(jiān)督的下游任務進行了微調(diào)。這些方法的優(yōu)點是只需要從頭開始學習很少的參數(shù)。至少部分由于這一優(yōu)勢,OpenAI GPT 在 GLUE 基準的許多句子級任務上取得了先前最先進的結果。
4.3 Transfer Learning from Supervised Data
這方面的研究有很多,比較著名的是計算機視覺領域,其證明了從大型預訓練模型進行遷移學習的重要性,其中一個有效的方法是微調(diào)使用 ImageNet 預訓練的模型。
5.解決思路
BERT模型的框架有兩個步驟:
預訓練(pre-training):BERT 模型通過不同的預訓練任務在未標記數(shù)據(jù)上進行訓練。
微調(diào)(fine-tuning):BERT 模型首先使用預訓練的參數(shù)進行初始化,然后所有參數(shù)都使用來自下游任務的標記數(shù)據(jù)進行微調(diào)。
每個下游任務都有單獨的微調(diào)模型,即使它們使用相同的預訓練參數(shù)進行初始化。
BERT 的一個顯著特點是其跨不同任務的統(tǒng)一架構。預訓練架構和最終的下游架構之間相差無幾。
BERT 的模型架構是基于原始實現(xiàn)的多層雙向 Transformer 編碼器。其實現(xiàn)幾乎與原始版本的 Transformers 相同,具體可以參考Transformer論文和代碼實現(xiàn)。
符號標記:
- L:層數(shù)(即 Transformer blocks)
- H:隱藏大小
- A:自注意力頭的數(shù)量
模型架構有兩種:
BERT(BASE): L= 12,H=768,A=12,總參數(shù)=110M
BERT(LARGE)?:L=24,H=1024,A=16,總參數(shù)=340M
為方便比較,BERTBASE 與 OpenAI GPT 有相同的模型大小。重要的區(qū)別是,BERT Transformer 使用雙向自注意力,而 GPT Transformer 使用受限自注意力,其中每個標記只能關注其左側的上下文。
為了使 BERT 處理各種下游任務,輸入表示能夠在一個標記序列中明確表示單個句子和一對句子(例如問題 h、答案 i)。在整個工作中,“句子”可以是連續(xù)文本的任意跨度,而不是實際的語言句子。一個 “序列”是指輸入到 BERT 的標記序列,它可能是一個句子,也可能是兩個打包在一起的句子。
作者使用 WordPiece Embedding 和 30,000 個標記詞匯。每個序列的第一個標記始終是一個特殊的分類標記 ([CLS])。與該標記對應的最終隱藏狀態(tài)用作分類任務的聚合序列表示。句子對被打包成一個單一的序列。作者以兩種方式區(qū)分句子。首先,用一個特殊的標記([SEP])將它們分開。其次,向每個標記添加一個學習嵌入,指示它屬于句子 A 還是句子 B。如圖 1 所示,將輸入嵌入表示為 E ,特殊 [CLS] 標記的最終隱藏向量表示為 C 。對于給定的標記,其輸入表示是通過對相應的標記、段和位置嵌入求和來構造的。這種結構的可視化可以在圖 2 中看到。
5.1 Pre-training BERT
Task #1: Masked LM
為了訓練深度雙向表示,我們簡單地隨機屏蔽一定百分比的輸入標記,然后預測那些被屏蔽的標記。我們將此過程稱為“Masked LM”(MLM),它在文獻中通常被稱為完形填空任務(Taylor,1953)。所有的實驗中,我們隨機屏蔽了每個序列中所有 WordPiece 標記的 15%。
盡管這使我們能夠獲得雙向預訓練模型,但缺點是我們在預訓練和微調(diào)之間造成了不匹配,因為在微調(diào)期間不會出現(xiàn) [MASK] 標記。為了緩解這種情況,我們并不總是用實際的 [MASK] 標記替換“masked”單詞。訓練數(shù)據(jù)生成器隨機選擇 15% 的標記位置進行預測。如果選擇第 i 個標記,我們通過三種方式將第 i 個標記進行替換替換: 1) 80% 的時間用 [MASK] 標記 ;2) 10% 的時間用一個隨機標記 ;3) 10% 的時間標記不變。然后,最終的隱藏向量 Ti ,通過softmax激活函數(shù),預測原始標記。具體地:
- 80% 的時間將單詞替換為 [MASK] 標記,例如,my dog is hairy → my dog is [MASK]
- 10% 的時間將單詞替換為隨機單詞,例如,my dog is hairy → my dog is apple
- 10% 的時間保持單詞不變,例如,my dog is hairy → my dog is hairy。這樣做的目的是使表示偏向于實際觀察到的單詞。
Task #2: Next Sentence Prediction (NSP)
許多重要的下游任務,例如問答 (Question Answering,QA) 和自然語言推理 (Natural Language Inference,NLI),都是基于對兩個句子之間關系的理解,而語言建模無法直接捕捉到這一點。為了訓練一個理解句子關系的模型,我們預先訓練一個二值化的下一個句子預測任務(binarized next sentence prediction task),該任務可以從任何單語語料庫(monolingual corpus)中輕松生成。具體來說,在為每個預訓練示例選擇句子 A 和 B 時,50% 的時間 B 是 A 之后的實際下一個句子(標記為 IsNext),50% 的時間是語料庫中的隨機句子(標記為作為NotNext)。如圖 1 所示,C 用于下一個句子預測 (NSP)。盡管它很簡單,但我們在第 5.1 節(jié)中證明了針對此任務的預訓練對 QA 和 NLI 都非常有益。
在之前的工作中,只有句子嵌入被轉(zhuǎn)移到下游任務,但 BERT 轉(zhuǎn)移所有參數(shù)來初始化最終任務模型參數(shù)。
對于預訓練語料庫,BERT 使用 BooksCorpus(8 億單詞)和英語維基百科(25 億單詞)進行預訓練。
5.2 Fine-tuning BERT
微調(diào)很簡單,因為 Transformer 中的自注意力機制允許 BERT 通過交換適當?shù)妮斎牒洼敵鰜韺υS多下游任務(無論它們涉及單個文本還是文本對)進行建模。對于涉及文本對的應用程序,一種常見的模式是在應用雙向交叉注意之前獨立編碼文本對。但 BERT 使用自注意力機制來統(tǒng)一這兩個階段,因為使用自注意力對連接的文本對進行編碼有效地包括了兩個句子之間的雙向交叉注意力。
6.實驗過程和結果
本節(jié)展示了 11 個 NLP 任務的 BERT 微調(diào)結果。
6.1 GLUE
通用語言理解評估(General Language Understanding Evaluation ,GLUE)基準是各種自然語言理解任務的集合。
對于 BERTLARGE,作者發(fā)現(xiàn)微調(diào)有時在小型數(shù)據(jù)集上不穩(wěn)定,因此我們運行了幾次隨機重啟并在開發(fā)集上選擇了最佳模型。通過隨機重啟,我們使用相同的預訓練檢查點,但執(zhí)行不同的微調(diào)數(shù)據(jù)打亂(shuffle)和分類器層初始化。
6.2 SQuAD v1.1
斯坦福問答數(shù)據(jù)集 (Stanford Question Answering Dataset ,SQuAD v1.1) 是 10 萬個眾包問答對的集合。給出一個問題和一段來自維基百科的回答,任務是預測文章中的答案文本跨度。
6.3 SQuAD v2.0
SQuAD 2.0 任務擴展了 SQuAD 1.1 的問題定義,允許在提供的段落中不存在簡短答案的可能性,使問題更加現(xiàn)實。
6.4 SWAG
Situations With Adversarial Generations (SWAG) 數(shù)據(jù)集包含 113k 句對完成示例,用于評估基于常識的推理。給定一個句子,任務是在四個選項中選擇最合理的延續(xù)。
7.結論
由于語言模型的遷移學習而取得的實證改進表明,豐富的、無監(jiān)督的預訓練是許多語言理解系統(tǒng)不可或缺的一部分。特別是,這些結果甚至使低資源任務也能從深度單向架構中受益。本文的主要貢獻是將這些發(fā)現(xiàn)進一步推廣到深層雙向架構,從而使相同的預訓練模型能夠成功處理廣泛的 NLP 任務。文章來源:http://www.zghlxwxcb.cn/news/detail-547159.html
8.對?BERT 的總結與理解文章來源地址http://www.zghlxwxcb.cn/news/detail-547159.html
- BERT?本質(zhì)上是 Transformer 的 Encoder 端,Bert 在預訓練時最基本的任務是:
- 判斷輸入的兩個句子是否真的相鄰
- 預測被 [MASK] 掉的單詞
- 通過這兩種任務的約束,可以讓 Bert 真正學到:
- 上下句子之間的語義關系的關聯(lián)關系,
- 一個句子中不同單詞之間的上下文關系
- 所以通過 BERT 在大量文本中有針對的學習之后,BERT 可以真正做到對給定的句子進行語義層面的編碼,所以他才能被廣泛用于下游任務。
- BERT 是不需要大量人工標注數(shù)據(jù)的,這也是為什么他可以大規(guī)模訓練預訓練模型。
- 對于第一種訓練任務,我們只需要在給定的段落中隨機挑選兩句相鄰的句子就可以組成正樣本,而隨機挑選兩個不相鄰的句子就可以組成負樣本。
- 對于第二種訓練任務,只需要對于給定的句子語料,對其中的單詞按照一定比例的 mask 操作即可,因為 mask 的部分只是模型不知道其存在,但是我們還是知道 mask 的部分的真實標簽的,所以還是可以做監(jiān)督學習的任務,而且還是自監(jiān)督。
到了這里,關于BERT 論文精讀與理解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!