閱讀理解得分超越人類:谷歌推出最強預訓練語言理解模型BERT
近日,谷歌提出了一個新的預訓練語言模型 BERT,該模型橫掃 11 項不同的自然語言處理任務,並在 SQuAD v1.1 的閱讀理解任務上超越人類兩個百分點。
該模型究竟有哪些創新?有為什麼會有如此突出的效果呢?這一切需要從語言模型講起。
語言模型 (Language Model) 通過在大規模數據上完成特定的任務來建立,在自然語言處理領域擁有里程碑式的地位。在之前的工作中,其在訓練過程中設定的任務一般是給定文本中已出現詞語,預測下一個單詞。這可以算是最簡單的語言處理任務,但通過針對這一目標的訓練,模型可以把握詞語的含義等語言特性。
語言模型的建立是一種無監督學習,因此可以利用現實世界大規模無標註的語料數據。儘管其概念十分簡單,但卻與其後自然語言處理領域的許多重要進展息息相關,例如詞向量、序列到序列的學習。
目前,語言模型在自然語言處理領域的重要應用方向是,通過遷移學習與特定的任務結合。即首先在大規模語料上預訓練語言模型,再在其基礎上根據具體任務進行進一步處理。結合方式主要有兩種:第一種是 feature-based,也就是利用預訓練的語言模型獲得特徵向量,將其用於具體任務。第二種則是 fine-tuning,在預訓練的語言模型基礎上稍作改變,根據具體任務引入新的結構和參數,再次進行訓練。通過與預訓練語言模型的結合,許多原有的模型在任務上的效果進一步提升。這其實很好理解——以閱讀理解為例,人類在做一道閱讀理解題目時,並不僅僅從這一篇文章,以及類似的閱讀理解任務(訓練集)中學習,而是會使用在此之前積累的各項知識。大規模語料預訓練的語言模型正提供了這種知識的積累。
BERT 也是一個語言模型,其基本結構由多層的雙向 Transformer 組成。Transformer 是谷歌 2017 年發表的的著名論文《Attention is all you need》中提出的架構,在機器翻譯任務上取得了非常好的效果。Transformer 捨棄了以往該任務上常用的 CNN、RNN 等神經網路結構,利用自注意力機制將文本中的上下文內容聯繫起來,並行處理序列中的單詞符號。這樣的結構使訓練速度顯著提升,效果也更為優秀。目前這一結構已經被廣泛應用。
圖 | 預訓練語言模型間的差異 BERT 的 Transformer 使用了雙向的自注意力機制(self-attention),OpenAI GPT 使用的是由左到右的 Transformer。ELMo 則使用了兩個不同方向的 LSTM,將其輸出結果拼接在一起。(來源:arXiv)
BERT 中,每個 token 的輸入向量由三部部分組成:token embeddings、segment embeddings、position embeddings,如下圖所示。
圖 | BERT 輸入的表示(來源:arXiv)
其中,token embeddings(上圖中黃色部分)表示 token 的含義;segment embeddings 表示 token 所屬的部分(上圖中綠色部分。每個詞語屬於 A 或 B);position embeddings 表示 token 在序列中所處的位置(上圖中灰白色部分)。
[CLS] 標誌序列的開始,在分類任務中具有重要的作用。[SEP] 出現在句子末尾,用來標註序列中不同的句子。
這樣特別的輸入與 BERT 的訓練目標有關,與以往語言模型不同的訓練目標也正是其強大性能的來源。BERT 設立了兩個訓練目標:MLM(Masked Language Model,馬賽克語言模型)和預測下一個句子。
Task1——Masked Language Model
之前提出的語言模型在預測單詞時大多是單向的,即依次通過左側(右側)出現的詞語預測下一個詞語。這樣的逐個對詞語進行預測無法雙向進行,否則模型就可以「看到答案」。但我們知道,對語言的理解不應僅僅是單向的,一個詞語的含義與其之前和之後出現的詞語都緊密相關。為了達到雙向理解的目的,BERT 隨機為句子中的一些詞語打上馬賽克,用 [MASK] 進行替換,在訓練的過程中對這些被遮蓋的詞語進行預測。在本論文中,研究人員隨機遮蓋了 15% 的詞語。
不過,這樣的做法又會帶來一些問題,因為這些被遮蓋的詞語相當於從數據集中被抹去,再也不會出現了。為了解決這一問題,研究人員又對這些隨機抽取的詞語進行了三種不同的處理:
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 這也可以保證模型預測的結果偏向正確結果。
Task2——Next Sentence Prediction
問答和自然語言推理任務都需要理解句子之間的關係,而這無法由語言模型直接建模。為此,研究人員引入了二值任務:預測下一個句子。
圖 | Next Sentence Prediction(來源:arXiv)
每個輸入序列中包含不同的句子 A 與 B。在 50% 的數據中,B 為 A 的下一個句子,另外 50% 的數據中句子 B 不是 A 的下一個句子,而是從文本中隨機抽取的。訓練的過程中,模型對標籤進行預測,從而對句子之間的關係建模。訓練後模型判斷的準確性達到 97%-98%。
BERT 在 BooksCorpus 和英文維基百科組成的大規模語料上進行預訓練。預訓練後,模型通過 fine-tuning 的方式與具體任務結合,在 11 個自然語言處理任務上超越了之前的最佳結果。
圖 | GLUE 測試結果,由 GLUE evaluation server 評測(來源:arXiv)
GLUE(General Language Understanding Evaluation)是一系列自然語言處理任務的集合。其中包含的數據集大多已經存在多年,而 GLUE 將其劃分為訓練集、測試集和驗證集,並建立了測評服務以緩解測評機制不一致和測試集的過擬合問題。
GLUE 不公布測試集答案,使用者需要提交自己的預測結果進行測評。如下圖所示,BERT 在 GLUE 的各項任務上均取得了最佳結果。而圖中顯示的僅僅是 BERT 在單個任務上進行訓練的結果。若模型進行多任務的聯合訓練,效果還會進一步提升。
圖 | BERT 在 SQuAD v1.1 上的實驗結果(來源:arXiv)
SQuAD v1.1 是斯坦福公開的閱讀理解問答數據集。該數據集上的任務為,給定一段文本和一個問題,需要從文本中摘取一個片段作為問題的答案。在這一任務上,BERT 不僅超越了之前提交的各個模型的最好成績,其 F1 值更比人類的表現高出兩個百分點。
除此之外,BERT 還在命名實體識別等任務上取得了更好的結果。BERT 在各項任務上的應用也不僅僅局限於 fine-tuning 的方式,還可以通過 feature-based 的方式結合。谷歌將在 10 底前公開模型的訓練代碼和預訓練模型。
雖然 BERT 已經在多項任務上展現了其強大的威力,但未來仍需更多工作進行進一步探索。它究竟把握住了語言中的哪些特性?又遺漏了什麼?這些問題的研究將幫助我們完善這一語言模型,推進對語言更深層次的理解。
※火箭實驗室美國新工廠揭幕,足跡欲遍布全球
※影響因子超過240權威期刊發論文:185國36種腫瘤的全球分析
TAG:DeepTech深科技 |