常見的 BERT Mask 策略

BERT 是目前比較流行的 NLP 預訓練模型,其預訓練的任務包括 Masked LM (MLM) 和 Next Sentence Prediction (NSP)。其中後續很多研究中都證明了 NSP 任務並沒有多大作用,而 MLM 是比較關鍵的任務,通過 MLM 讓模型擁有了融合上下文信息的能力。本文主要介紹幾種常見的 BERT Mask 策略。

1.ERNIE

BERT 模型在訓練時使用了兩個預訓練任務:Masked LM 和 Next Sentence Prediction。BERT Mask 過程中會把 15% 的字遮擋起來,然後讓模型預測被遮擋的字。BERT 會把每個字單獨處理,即 Mask 時不考慮詞組信息,例如句子 "靜夜思的作者是李白",BERT 有可能會 Mask 得到 "靜夜思的作者是[Mask]白"。

ERNIE 模型是由百度提出的,論文《ERNIE: Enhanced Representation through Knowledge Integration》。ERINE 的作者認為 BERT 遮擋單個字的方式通常會忽略句子中的先驗知識,例如對於句子 "哈利波特的作者是 J.K.羅琳",如果模型遮擋了 "哈利波特" 中的隨機一個字,則模型不需要利用句子的知識就很容易預測出 "哈利波特"。但是如果將 "哈利波特" 整個實體遮擋起來, BERT 就不能正確預測了,說明 BERT 不能很好地利用整個句子的知識。

因此作者改進了 BERT 的 Mask 策略,新的策略能讓模型更好地學習一些知識,稱為 Knowledge Mask。主要包括 Phrase Mask (短語) 和 Entity Mask (實體),可以由多個字組成。通過對句子中的一些詞組進行遮擋並預測整個詞組,可以讓 ERNIE 更好地捕獲詞組、實體之間的關係。下圖顯示了 BERT 和 ERNIE Mask 策略的區別。

常見的 BERT Mask 策略

BERT 和 ERNIE Mask 策略的區別

ERNIE 在預訓練時使用了多階段的 Mask,即 Basic Mask (和 BERT 類似,遮擋字),Phrase Mask 和 Entity Mask,如下圖所示。

常見的 BERT Mask 策略

ERNIE 多階段 Mask

作者在五種中文 NLP 任務中對比了 BERT 和 ERNIE 的效果,如下圖所示:

常見的 BERT Mask 策略

ERNIE 和 BERT 實驗對比

作者也採用了消融實驗對比不同 Mask 策略對性能的影響,如下:

常見的 BERT Mask 策略

ERNIE 不同 Mask 策略對性能的影響

在完形填空測試上,ERNIE 的效果比 BERT 要好,說明新的 Mask 策略可以讓模型學到句子中更多的知識,完形填空測試的結果如下:

常見的 BERT Mask 策略

ERNIE 完形填空測試

2.BERT WWM

BERT WWM 出自論文《Pre-Training with Whole Word Masking for Chinese BERT》,和 ERNIE 比較相似,採用 Whole Word Masking (WWM) 進行 Mask,即遮擋整個詞組。下圖展示了 BERT WWM 的 Mask 策略。

常見的 BERT Mask 策略

BERT WWM Mask 策略

作者在閱讀理解、自然語言推斷、情感分類、句子對匹配和文本分類五種任務上對比了 BERT WWM 和 ERNIE、BERT 的性能。不同模型的參數如下圖所示:

常見的 BERT Mask 策略

BERT WWM、BERT 和 ERNIE 參數

在閱讀理解任務上,BERT WWM 比 ERNIE 效果好,結果如下圖所示:

常見的 BERT Mask 策略

閱讀理解實驗

但是在自然語言推斷任務上,ERNIE 的效果要更好:

常見的 BERT Mask 策略

自然語言推斷實驗

3.SpanBERT

SpanBERT 出自論文《SpanBERT: Improving Pre-training by Representing and Predicting Spans》,SpanBERT 主要改進了以下三點:

  • 採用 Span Mask 的策略,隨機遮擋一個範圍的 token。
  • 修改了 BERT 的 MLM 預訓練目標,改為 Span-Boundary Objective (SBO),根據 Span 的邊界詞預測 Span 中所有的 token。
  • 去掉 BERT 的 NSP (下一句預測任務) 預訓練任務,採用單個句子進行訓練。

SpanBERT 的 Mask 策略及 SBO 預訓練任務如下圖所示:

常見的 BERT Mask 策略

SpanBERT 的 Mask 策略

SpanBERT 會根據幾何分佈隨機選擇 Span 的長度 (Span 的長度最長為 10,越短的 Span 概率越大),並將句子中的區間遮擋起來。SpanBERT 也採用了 BERT 中的方式,即 80% 的用 [MASK] 代替,10% 用隨機 token 代替,10% 用原始 token 代替。SpanBERT 隨機選擇的 Span 長度分佈圖如下:

常見的 BERT Mask 策略

SpanBERT 區間長度分佈

SpanBERT 修改了原來的 MLM 預訓練目標,增加了 SBO。假設需要遮擋的 Span 為 (xs, ..., xe),則模型需要用 Span 的邊界 token (xs-1 和 xe+1) 預測整個 Span 的內容。預測第 i 個 toekn 的公式如下,其中 pi 是 token i 的 position 向量:

常見的 BERT Mask 策略

SBO 預訓練任務

得到預測結果 yi 後採用交叉熵計算損失函數,並加上原本 MLM 的損失函數。

下面是在 QA 任務上對比 SpanBERT 和 BERT 的實驗結果:

常見的 BERT Mask 策略

QA 任務實驗

SpanBERT 作者也對比了不同的 Mask 策略,如下所示:

常見的 BERT Mask 策略

SpanBERT 對比不同 Mask 策略

作者最後驗證了去掉 NSP 對模型性能的影響,使用單個句子訓練效果更好:

常見的 BERT Mask 策略

去掉 NSP 對 SpanBERT 性能的影響

4.參考文獻

ERNIE: Enhanced Representation through Knowledge Integration

Pre-Training with Whole Word Masking for Chinese BERT

SpanBERT: Improving Pre-training by Representing and Predicting Spans


分享到:


相關文章: