天天看點

ICLR2020 | StructBERT : 融合語言結構的BERT模型

ICLR2020 | StructBERT : 融合語言結構的BERT模型

今天給大家介紹阿裡巴巴達摩院在ICLR2020的一篇論文,該研究針對預訓練語言模型BERT在預訓練任務中忽略了語言結構的問題,作者對BERT進行擴充,通過加入語言結構到預訓練任務中,其核心思想是在預訓練任務中加入兩項基于語言結構的任務:word-level ordering和sentence-level ordering。

1

背景

預訓練語言模型是NLU(Natural Language Understanding)的關鍵組成部分,為了獲得可靠的語言表示,通過定義文本中單詞序列的聯合機率來設計神經語言模型。不同于傳統的特定單詞嵌入的方式,研究人員們從大型文本語料庫上訓練的語言模型獲得具有上下文資訊的詞向量,這些模型在很多下遊任務上都顯示出了高效性。在上下文語言模型中,Google在2018年釋出的論文《Pre-training of Deep Bidirectional Transformers for Language Understanding》,提出一種預訓練語言模型BERT(包括更具魯棒性的優化版本RoBERTa),一經提出就暴風式地占據了NLP領域,這個模型在解決NLU問題上受到了許多關注,而且在許多NLU任務上都取得了最先進的性能,例如情感分類問題(Sentiment Classification)、自然語言推理(Natural Language Inference)、語義文本相似度(Semantic Textual Similarity)和問答問題(Question Answering),大幅度超過了之前的模型。BERT(Bidirectional Encoder Representation from Transformers)是利用多頭注意力機制獲得的注意力矩陣和注意力權重,使得序列中的每一個詞都含有這個詞的前面的資訊和後面的資訊得到雙向表示和利用兩種預訓練任務(Mask and Next Sentence Prediction)進行預測,雖然取得了先進的性能,但是作者認為其并未充分利用句子的語言結構。

利用語言模型在一系列的詞語和句子找到最佳排列是NLP任務的本質,例如機器翻譯,基于此,作者提出了一種新型的上下文表示模型,StructBERT。StrucBERT分别利用在句子中和句子間增加結構資訊,詞序(word-level ordering)和句序(sentence-level ordering)來增強模型的預訓練,這樣在預訓練上可以明确捕獲語言方面的内容,可以在上下文表示中對句子和單詞之間的依存關系進行編碼表示,增強了模型的通用性和适用性。

2

模型

在Input Representation方面和模型架構上同BERT一樣,即多層Transformer。改進在于儲存了BERT現有的預訓練任務Mask LM和NSP(Next Sentence Prediction)的情況下,新增了兩個預訓練目标:Word Structural Objective和Sentence Structural Objective。

(1)Word Structural Objective

BERT無法直接顯式的對單詞順序和高階依賴性模組化。而将一句話中的單詞打亂,一個好的語言模型應該能夠通過重組單詞順序恢複句子的正确排列。為了能在StructBERT中實作,用Word Structural Objective使得打亂的句子重構成正确的句子順序。做法是從一句話中未被mask的單詞中選取一定長度的子序列,将子序列中的單詞打亂,然後讓模型恢複正确順序,為了更好了解,下圖2-1充分說明了做法。

ICLR2020 | StructBERT : 融合語言結構的BERT模型

圖2-1 Word Structural Objective

在這裡,作者選取長度為3(Trigram)的子序列(子序列的長度K也是超參數的一部分,即K=3)進行打亂,[需要特别說明的是,較大的K值能夠使得模型重構更長的序列,同時注入更多受幹擾的輸入,相反,較小的K值,序列的幹擾會降低,重構能力也會下降,是以作者選取K=3來平衡語言的重構性和模型的魯棒性],從圖中可以看出打亂的是t2,t3,t4,然後最後輸出正确的順序。在具體的實驗中,作者從重新排列的子序列中選擇5%,進行詞序的打亂。

(2)Sentence Structural Objective

在原始的BERT模型任務中,BERT很容易預測下一句話,在StructBERT中,增加上一句話的預測,使得語言模型以雙向方式知道句子順序。具體做法是給定句子對(S1,S2),預測S1是S2的上一句話、S2是S1的上一句話還是S1,S2來自不同的文本(即毫無關聯性)。實驗中,對于一個句子S,1/3的機率采樣S的下一句組成句子對,1/3的機率采樣S的上一句組成句子對,1/3的機率随機采樣一個其他文檔的句子組成句子對。下圖2-2可以更好的了解這種做法。

ICLR2020 | StructBERT : 融合語言結構的BERT模型

圖2-2 Sentence Structural Objective

從圖中可以看出,從BERT模型中S1和S2是否是上下文關系的二分類問題變成了這裡的三分類問題。

其餘的預訓練細節和參數都和BERT保持一緻。

3

實驗

實驗部分是StructBERT在各種下遊任務上的結果,包括通用語言了解評估(GLUE benchmark),斯坦福自然語言推斷(SNLI語料庫)和提取性問答(SQuAD v1.1)。

(1) GLUE

GLUE涵蓋了9個NLU任務,包括textual entailment (RTE、MNLI), question-answer entailment (QNLI), paraphrase(MRPC), question paraphrase (QQP), textual similarity (STS-B), sentiment (SST-2), linguistic acceptability (CoLA), and Winograd Schema (WNLI)。下表3-1顯示出了StructBERT在9個NLU任務的表現結果。

表3-1 Results of published models on the GLUE test set

ICLR2020 | StructBERT : 融合語言結構的BERT模型

從表中可以看出,StructBERT在9個任務中在平均上超過現有的所有模型,而且在6個任務中表現最佳。在MNLI(-m/-mm)任務上,提升了0.3%/0.5%,但是隻是對域内資料進行了微調,這裡展現了模型的通用性。在CoLA任務中,可能是單詞的排序任務和文法糾錯任務存在着很強的相關性,使得該任務有顯著的改進。在SST-2任務中,比BERT有進步,但是性能卻不如MT-DNN,表明基于單句的情感分析從詞序和句序中受益很少。

(2)SNLI

自然語言推理(NLI)是自然語言了解中的重要任務之一。該任務的目的是測試模型推理兩個句子之間的語義關系的能力。為了在NLI任務上表現出色,模型需要捕獲句子的語義,進而推斷一對句子之間的關系:蘊涵,沖突或中立。

表3-2 Accuracy (%) on the SNLI dataset.

ICLR2020 | StructBERT : 融合語言結構的BERT模型

表3-2顯示了StructBERT與其他已釋出模型在SNLI資料集上的結果。StructBERT的性能優于現有的模型,準确率達到91.7%,與之前的最新模型SJRC相比,絕對值提高0.4%,與BERT相比,絕對值提高0.9%。由于我們模型的網絡架構與BERT,這種改進完全歸功于新的預訓練目标,這證明了單詞預測和句子預測任務的有效性。

(3)EXTRACTIVE QA

SQuAD v1.1是一個機器閱讀了解資料集,包含100000多個問題,這些問題是由工作者們在536條維基百科文章上提出的。任務的目的是從給定問題的相應段落中提取正确的答案範圍。在SQuAD資料集跑了3個epoch,并将結果與官方排行榜上的性能最好的模型進行了比較,如表3-3所示。

表3-3 SQuAD results

ICLR2020 | StructBERT : 融合語言結構的BERT模型

我們可以看到,即使沒有任何額外的資料增強(DA)技術, StructBERT模型優于除開發集上的XLNet + DA之外的所有模型。XLNet + DA優于StructBERT,可是後者沒有使用資料增強或大型預訓練語料庫。它證明了所提出的預訓練的StructBERT模型在為抽取式QA在段落關系方面的有效性。在QA任務中,将單詞和句子結構合并在一起可以大大提高了解能力。

(4)EFFECT OF DIFFERENT STRUCTURAL OBJECTIVES

前文已經證明該模型在各種下遊任務上的優秀結果。在StructBERT預訓練中,兩個新的結構預測任務是最重要的組成部分。是以,作者進行了一次消融研究,通過一次從訓練中移除一個結構目标來檢查這兩個結構目标如何影響各種下遊任務的性能。

表3-4 Ablation over the pre-training objectives using StructBERT

ICLR2020 | StructBERT : 融合語言結構的BERT模型

從表3-4可以看出,(1)這兩個結構目标對于大多數下遊任務都是至關重要的,但SNLI任務在Word Structural Objective存在與否都表現差不多。從預訓練任務中删除任何一個結構任務都會導緻下遊任務的性能下降。持續進行結構預訓練的StructBERT模型優于原始的BERT模型,該模型顯示了所提出的結構目标的有效性。(2)對于MNLI,SNLI,QQP和SQuAD等句子對任務,結合Sentence Structural Objective可以顯著提高性能。(3)對于單句任務(例如CoLA和SST-2),Word Structural Objective發揮了很重要的作用。特别是在與文法糾錯有關的CoLA任務中,改進超過5%。

繼續閱讀