BERT Variants

BERT的強大有目共睹,我們來看看過去半年學界和工業界是如何擴展BERT的應用的。

BERT介紹

預訓練語言模型

ELMo (CNN+LSTM)

  • 1B Word Benchmark
  • Sentence-level corpus
  • Feature extraction

GPT (Transformer)

  • BookCorpus dataset
  • Document-level corpus
  • Fine-tuning

BERT (Bidirectional Transformer)

  • BookCorpus + Wikipedia
  • Lager document-level corpus (3x)
  • Next Sentence Prediction + Masked Language Model
  • Fine-tuning

引用於AIS2019報告會上ERNIE的報告內容

基於最近劉知遠老師在AIS2019報告會的觀點,我們從複雜知識多任務多語言來深入探討下BERT的相關研究,並擴展一些其他的研究方向。

複雜知識

百度ERNIE

Motivation:如果模型能夠學習更多的先驗知識,模型可以獲得更可靠的語言表示

改進一:連續mask策略 —> 減輕模型的學習壓力?

與目前SQuAD2.0第三名的mask方案比較類似

改進二:不同層級的mask策略 —> 獲取額外的片語和實體信息

連續mask策略生效的原因可能是:同一個實體只在少量樣本中被mask掉,可能從其他相似的文本中已經學習到了這個實體的上下文信息,類似於完形填空

實驗

  • 預訓練
    • 數據源:中文維基百科、百度百科、百度新聞和百度貼吧
    • 訓練方法與BERT基本一致
    • 不同點:加入Dialogue Embedding
  • 實驗結果
    • 中文NLU相關數據集:F1或Acc較BERT均有0.3-1.9不等的提升
    • 消融實驗:不同的mask策略,其中word+phrase+entity的混合策略在XNLI上取得最佳結果
    • 消融實驗:不同的數據來源,其中加入百度貼吧的對話embedding信息後在XNLI上取得最佳結果

Code

清華ERNIE

Motivation:知識圖譜可以提供豐富的知識信息(成千上百的實體和事實三元組)

Challenge

  1. 結構化的知識表示
  • TAGME抽取與圖譜對應的實體
  • TransE向量表示

2. 異質數據融合

  • Textual-Encoder x N
  • Knowledge-Encoder x M

模型架構

egin{aligned} oldsymbol{h}_{j} &=sigmaleft(	ilde{oldsymbol{W}}_{t}^{(i)} 	ilde{oldsymbol{w}}_{j}^{(i)}+	ilde{oldsymbol{W}}_{e}^{(i)} 	ilde{oldsymbol{e}}_{k}^{(i)}+	ilde{oldsymbol{b}}^{(i)}
ight) \ oldsymbol{w}_{j}^{(i)} &=sigmaleft(oldsymbol{W}_{t}^{(i)} oldsymbol{h}_{j}+oldsymbol{b}_{t}^{(i)}
ight) \ oldsymbol{e}_{k}^{(i)} &=sigmaleft(oldsymbol{W}_{e}^{(i)} oldsymbol{h}_{j}+oldsymbol{b}_{e}^{(i)}
ight) end{aligned}

上述公式是輸入存在實體時,將實體向量與文本向量進行融合,若不存在, h_j 的計算中沒有 e^{(i)}_k

實驗

新的預訓練任務

  • 降噪自動編碼機(dEA)
  • 在原有的兩個任務上增加一個新任務:根據給定的實體序列和文本序列來預測對應的實體
  • 5%隨機替換為錯誤的實體,15%遮蓋token和entity之間的關係,80%保持不變

微調的不同mask策略

實驗

  1. 實體類型 ? uparrow ~2%
  2. 關係分類 ? uparrow ~2-4%
  3. GLUE 與BERT-base接近的性能 —> 表明ERNIE在知識信息融合後沒有喪失文本原有的信息
  4. 消融實驗:沒有實體輸入或者沒有加入dEA的訓練,ERNIE較BERT會下降2.5%的性能

Code

細思極恐,下一個芝麻街模型會是誰呢?

兩個ERNIE的異同:

  1. 相同:將外部知識融入BERT模型
  2. 不同:百度在輸入階段直接編碼進預訓練模型,清華的模型在第二階段融入知識圖譜信息

多任務

MSRA MT-DNN

本文主要貢獻:本文提出將多任務學習(MTL)和語言模型進行結合,提升了NLU領域的GLUE榜單1.8%。

主要方法: 本文基於的多任務學習框架基於特徵共享層硬連接的方式實現的,將原有的MT-DNN模型中的特徵表示層,替換為目前大熱的BERT。與BERT不同的是,微調是在多個任務上同時進行的。

大致的訓練過程為:每個batch中包含不同任務的樣本,輸入中包含該樣本屬於哪個任務的信息,然後計算該任務的loss,反傳梯度來更新特徵共享層的權重。

主要實驗:

  1. GLUE標準實驗,MT-DNN比BERT-LARGE提升1.8%
  2. BERT-BASE,ST-DNN(在每個任務上單獨微調)、MT-DNN,ST-DNN比BERT-BASE稍好,MT-DNN有較大領先
  3. SNLI,SciTail兩個數據集上,比BERT採用更少數據集取得更好的結果,尤其是在樣本極少的情況下,如只選取訓練集的0.1%,BERT和MT-DNN在SNLI數據集上分別取得52.9和82.1

總結:本文是在BERT的基礎上比較成功的一次探索,後續可以考慮任務之間的相關性。BERT和MTL的結合可能是接下來的一個研究熱點。

不足:沒有重大的創新,MTL的使用比較簡單,有提升空間。

MSRA MT-DNN v2

知識蒸餾+多任務學習

知識蒸餾:一種模型壓縮常見方法。在teacher-student框架中,將複雜、學習能力強的網路學到的特徵表示"知識"蒸餾出來,傳遞給參數量小、學習能力弱的網路。蒸餾可以提供student在one-shot label上學不到的soft label信息,這些裡麪包含了類別間信息,以及student小網路學不到而teacher網路可以學到的特徵表示"知識",所以一般可以提高student網路的精度,從而提升預測速度。【引用於此

Teacher Model:對於每個任務,訓練多個神經網路模型為一個集成學習模型,這裡的網路即MT-DNN,每個網路在特定任務的訓練集上進行微調

對於每個任務中的每個訓練樣本,teacher產生一個soft targets集合,以文本分類為例,softmax層生成的各個分類的概率值。

? Q=avg([Q^1,Q^2,…,Q^k])

我們的目標是用一個student模型來逼近teacher模型,student模型對於相同任務的softmax輸出為?

DistillationLoss=-sum_cQ(c|X)log(P_r(c|X)) ?

當正確的target已知,聯合soft和hard targets訓練一個蒸餾模型可以以顯著提升性能,hard targets即0-1分類器

? StudentLoss=-sum_{c} mathbb{1}(X, c) log left(P_{r}(c | X)
ight)

Loss=alpha*Loss_d+eta*Loss_s

實驗

Teacher模型:

  • 不同的丟棄率訓練6個MT-DNN —> 3個最優的模型
  • 在GLUE的4個任務上進行微調,得到4個集成學習模型,其他任務沒有teacher

對比模型:

  • BERT_LARGE: 80.5
  • MT-DNN: 82.2
  • MT-DNN_KD: 83.7

在那些沒有teacher指導的任務上,基於知識蒸餾的MT-DNN模型也能夠提升模型在這些任務上的表現

Code

多語言

FB XLM

Motivation:訓練語料較為稀少的語言可以利用在其他語料上學習到的信息來克服信息不互通的問題

不同與BERT的tokenizer:BPE(Byte Pair Encoding)—> 幫助相似語言提升alignment + 提高語料較少的語言出現的概率

三種語言模型:

  • CLM:直接使用Transformer來預測下一個詞,傳統的語言模型
  • MLM:與BERT基本一致。不同的是,本文使用任意數量的句子拼接,並取前256個token
  • TLM:輸入為兩個意思相同語言不同的句子,接在後面的句子的位置下標重新從0開始計數

XLM:以上三種模型的任意組合,最終最優的組合為MLM+TLM,其中MLM訓練時,該batch內只包含一種語言

與BERT不同的是,加入Language Embedding來區分不同的語言的輸入

實驗

  • 跨語言文本分類:在XNLI上的平均準確率比之前的SOTA提升5%(70.2->75.1)
  • 無監督機器翻譯:encoder和decoder均使用MLM進行初始化的模型的BLEU值在不同語言上提升5-10
  • 有監督機器翻譯:比SOTA提升5分BLEU值
  • 低資源語言模型:加入相似語言(Hindi)和差距很大語言(EN),尼泊爾語的語言模型的困惑度從157—>109
  • 無監督跨語言詞向量:XLM在SemEval17任務上提升4%

Code

多模態

VideoBERT

文本:使用語音識別自動生成

視頻:通過S3D模型提取視頻特徵,然後使用層次聚類,獲得不同片段,相當於分詞過程。每一個視頻片段截圖相當於一個詞,拼接在文本輸入後面。

模型:與BERT類似,隨機mask掉一些文本和視頻的token,然後進行預測,同時進行文本與視頻信息是否匹配的分類預測

一些有趣的實驗:

  • 給定一些視頻token,「now let me show you how to [MASK] the [MASK]」,輸出MASK位置的詞
  • 視頻標題生成

更快的BERT

模型蒸餾

Distilling Task-Specific Knowledge from BERT into Simple Neural Networks

通過將BERT中的知識遷移到單層雙向LSTM網路,與BERT-LARGE對比,將預測速度提升了434倍,不同任務上的準確性比過往的LSTM模型有5%的提升

MSRA MT-DNN v2

Transformer改進

Google Transformer-XL

推理速度快千倍!谷歌開源語言模型Transformer-XL

Code

優化器改進

76分鐘訓練BERT!谷歌大腦新型優化器LAMB加速大批量訓練

傳統任務改造

情感分析

復旦 ABSA

通過從aspect信息中構造輔助句將ABSA任務轉化為句子對分類任務

Target Aspect-based Sentiment Analysis (TABSA):

  • 句子?
  • 預先定義好的target詞 ?
  • 三分類問題:給定句子s,和一組目標實體T,和一個固定的aspect集合A,預測所有target-aspect對的情感

例:LOCATION2 is central London so extremely expensive, LOCATION1 is often considered the coolest area of London.

以下四種為不同的輔助句風格,拼接在原句後,形成句子對樣本:

  • QA-M:what do you think of the safety of location - 1
  • NLI-M:location - 1 - safety
  • QA-B:the polarity of theaspect safety of location - 1 is positive
  • NLI-B:location - 1 - safety- positive

實驗結果:在SentiHood數據集上刷新了新的SOTA成績,aspect的f1提升9.6%,情感準確率提升2.6%

模型:BERT-base句子對分類

Code

文本生成

MSRA MASS

基本框架:Encoder-Attention-Decoder

模型:隨機mask掉輸入句子中連續的k個詞,然後把這些詞放入decoder的相同位置,而encoder只保留未被mask掉的詞。模型希望解碼器能夠利用編碼器的信息和decoder前面預測出來的詞,預測這些被mask掉的詞。

統一的預訓練框架:

  • k = 1,MLM,decoder的輸入全部被mask掉,這時候decoder就是一個非線性分類器,類似BERT中的softmax矩陣
  • k=m,標準LM,encoder的輸入全部被mask掉(等於不參與任務訓練),解碼器需要基於前一個token預測下一個,與GPT的用法一致
  • 本文提出的MASS介於兩者之間,遮蔽掉好幾個連續的token

實驗

  • 無監督機器翻譯:6層Transformer的MASS模型比之前提到的XLM模型的BLEU值繼續有小幅提升
  • 對比其他預訓練方法:4層Transformer的MASS模型比BERT(encoder)+LM(decoder)的組合有小幅提升
  • 作者也給出了模型有效可能的原因:
    • encoder被強迫去學習被mask掉的詞的語義
    • decoder需要預測在encoder中被mask掉的詞,就必須要從encoder中獲取更多的信息

更多相關任務應用可查看這兩篇 博文1 博文2

以上便是過去半年內看到的一些比較高質量的工作,很多論文細節沒有寫的很詳細,感興趣的朋友可以點擊相應論文的鏈接仔細品讀:P


推薦閱讀:
相關文章