BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding


摘要:

提出了一個新的語言表示模型(language representation), BERT: Bidirectional Encoder Representations from Transformers。不同於以往提出的語言表示模型,它在每一層的每個位置都能利用其左右兩側的信息用於學習,因此,它具有強大的表示能力,所以,BERT在預訓練之后,只需要加一個簡單的輸出層,並在新結構上fine-tuned 就能獲得 SOTA的結果。

引言

語言模型預訓練在自然語言處理任務中占據着越來越重要的位置。當前有兩種方法將預訓練的特征表示用於具體的任務,分別是:

  1. feature based。 如 ELMo針對不同的任務使用不同的網絡結構,並將預訓練的特征表示作為額外的特征輸入到具體的網絡中。
  2. fine-tuning。如GPT,對不同的任務只引入很少的額外參數,在應用到下游任務時直接在pre-train的網絡上fine-tune。

它們的目標函數都是單向的語言模型。從左到右的單向語言模型的表達能力有限,因為在attention layer中,每個單詞只能獲取到其左邊的信息,而在SQuAD 這樣的token-level的任務中,獲取左右兩邊的信息是至關重要的。BERT提出了兩個新的預訓練的目標函數:

  1. Masked Language Model
  2. Next Sentence Prediction

其中MLM的目標函數允許BERT采用雙向的attention(一般的LM建模只能是單向的,因為如果采用雙向attention,那么對於指定token,其在網絡下一層的輸入信息會包含當前token的相關信息,因為信息是雙向流動的,每個token位置都能獲取整個句子的信息,由於LM的任務是給定一個序列,預測序列的下一個token,所以LM不能獲取token后面的信息,BERT采用的是雙向的attention,相當於Transformer中的encoder部分)。MLM能使用雙向的attention是因為其隨機屏蔽一段句子中的一部分單詞,然后MLM的任務就是預測這些被屏蔽的單詞,所以即便信息是雙向流動,也不導致信息泄露。

BERT

模型結構

BERT的每一層都是transformer中的雙向encoder結構,假設 層數為L,hidden size 為H,self-attention head的個數為A, 設feedforward部分的hidden size為 4H。
BERT base: L=12,H=768,A=12, total parameter:110M
BERT large:L=24, H=1024,A=16, total parameter:340M

BERT 與 GPT和ELMo的結構對比如上圖。
bert是language understanding model,因為他的信息是雙向流動的,不好做generation的任務,雙向的 transformer 也被稱為 transformer ecoder。
gpt是language generation model,他基於單向的lm,所以可以做序列生成的任務,也被稱為 transformer decoder, 但其實稱為transformer decoder並不准確,因為transformer decoder除了 self-attention 之外還有來自encoder的cross-attention,但gpt並沒有cross-attention。

輸入表示


輸入可以分為三部分,分別是token的表示,segment的表示(用於區分句子A和句子B,比如QA等問題需要涉及sentence-level的學習),和positional encoding.

預訓練任務

Masked LM
隨機屏蔽掉一部分token, MLM的任務是根據未屏蔽的token預測被屏蔽的token. 每個句子屏蔽15%的單詞,用[MASK] 替代,但是這種做法會導致 預訓練過程和fine-tining階段不匹配,因為fine-tuning階段沒有[MASK]這個token。所以,並不總是將masked單詞替換成[MASK],具體做法如下:
a. 對於被15%被替換的單詞,80%的時間都是用[MASK]替換
b. 10%的時間隨機選擇一個單詞替代
c. 10%的時間保持不變
transformer encoder不知道它要預測的是哪個單詞,也不知道哪個單詞是被隨機替換的,所以,對於每個單詞,它都需要學習到上下文的表示分布情況(這個比較玄學)。而且只有1.5%的單詞被隨機替換了,這並不不會干擾模型的學習。

MLM的另一個缺點是在每個batch中只會預測15%的token,相比於預測全部的token,它需要更多的迭代次數以收斂。

  • Next Sentence Prediction
    很多nlp任務比如 Question Answering(QA), Natural Language Inference(NLI) 都需要理解句子間的關系,而在 語言建模中這種關系並不會直接體現。bert在預訓練中加入了一個二分類任務:判斷一個句子是不是另一個句子的下一句。

實驗

GLUE dataset

這是一個用於language understanding模型的數據集合,其中有single-sentence 的任務也有 sentence-pair的任務,如上圖(a)所示,兩個句子拼接在一起,通過segment embedding區分句子A和句子B,取第一個token [CLS]在最后一層對應的hidden state作為整個sequence 的represention C,然后將C與待fine-tunning的參數W相乘之后取softmax就是分類的各類概率。

SQuAD v1.1

問答數據集。如上圖(c)所示, 問答的輸入一個問題以及一段話,需要在這一段話中找到問題的答案,具體到這里的任務其實是定位答案在這一段話中的位置,所以需要找到 start position和 end position。在fine-tunning階段需要學習一個 start vector \(S\in R^{H}\)和一個end vector \(E\in R^{H}\),對於每個token,其最后一層的hidden state表示為 \(T_i\in R^{H}\),那么每個token為 start token 的概率為:

\[P_{i} = \frac{e^{ST_i}}{\sum_{j}e^{ST_j}}$$。同理可計算 end token 的概率。 ### Named Entity Recognition CoNLL2003中的每個單詞都被標注為{Person, Organization, Location, Miscellaneous, Other(non-named entity)}。任務是對每個input token進行分類,將最后一層的$T_i$輸入到classificaiton layer就行。\]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM