arXiv | 如何更好地理解自然語言?自訓練+預訓練

語言: CN / TW / HK

今天給大家介紹的是Facebook AI研究團隊發表在arXiv上的一篇文章“Self-training Improves Pre-training for Natural Language Understanding”。作者在文章中提出,可以利用自訓練提升自然語言理解的預訓練模型,並且提出了一種用於數據增強的新方法——SentAugment,可從大規模無標籤的網絡句子中檢索用於特定任務的無標籤句子,輔助語言模型的自訓練過程。實驗表明,SentAugment實現了有效的自訓練,並且在知識蒸餾和小樣本學習上有明顯效果。

1

研究背景

自訓練是一種半監督學習方法,它使用有標籤數據訓練一個教師模型,再用訓練後的教師模型為無標籤數據創建合成標籤。這些帶有合成標籤的數據被用於訓練一個學生模型,使得學生模型具有與教師模型相似或更好的性能。最近在自然語言理解上的工作通常集中在預訓練模型上,而自訓練也是利用無標籤數據的一種有效方法。作者在預訓練基準上引入自訓練,通過研究表明自訓練是對自然語言理解的強大預訓練模型的一種補充。

此外,無標籤數據通常是半監督學習的一個重要組成部分。但是,現有的工作通常假設這些無標籤數據來自與下游任務相同的領域,該假設限制了半監督方法的應用,尤其是在數據較少的下游任務中。為此,作者在本文中提出了一種數據增強方法——SentAugment,用於從網絡上爬取的數據中,為給定任務構建相同領域的數據集。實驗表明,SentAugment可有效輔助模型自訓練,知識蒸餾和小樣本學習。

2

方法

2.1 檢索策略

SentAugment方法使用網絡數據作為句子庫。首先,使用一種通用句子編碼器對句子庫中的每個句子進行嵌入,這個編碼器對於有相近意思的句子輸出相似表示。這些句子表示被用於檢索特定任務相關的無標籤數據。其次,使用同樣的通用句子編碼器對下游任務的訓練數據集進行嵌入,然後根據訓練數據集的嵌入表示計算出任務嵌入。任務嵌入的計算方法有以下三種:(1)all-average:計算訓練數據集中的所有嵌入表示的平均嵌入表示;(2)label-average:分別為每個類別的數據計算一個平均嵌入;(3)per-sentence:每個句子擁有一個單獨的嵌入表示。然後,將任務嵌入作為查詢條件,在句子庫中檢索出一個子集作為候選數據集,然後使用教師模型從候選數據集的每個類別中選出前k個樣本進行標記,形成最終的合成數據。

2.2 自訓練過程

如圖1所示, 自訓練過程分為多個步驟。首先,在下游任務中對中文預訓練模型RoBERTa-Large精調,將精調後的模型作為教師模型;其次,從句子庫中檢索特定任務的無標籤數據;之後,使用教師模型對檢索到的無標籤數據進行標記;最後,使用帶合成標籤的數據來精調一個新的RoBERTa-Large模型,將這個模型作為學生模型。

圖1 SentAugment方法

3

實驗

3.1 數據集

在評估SentAugment方法性能的實驗中使用的數據集信息如表1所示。用於情感分析的數據集有SST-2和SST-5,其中SST-2是Stanford Sentiment Treebank的二元情感分析數據集,SST-5則是細粒度情感分析數據集。CR數據集用於產品分類任務,IMP數據集用於仇恨言論分類,TREC數據集用於問題分類,CoNLL數據集用於命名實體識別任務。

表1 數據集和下游任務

3.2自訓練實驗

該實驗的目的是瞭解自訓練是否能對下游任務的目標領域進行域適應。實驗中使用了三個模型,分別是RoBERTa-Large基準模型、RoBERTa-Large+ICP和RoBERTa-Large+ST。ST表示自訓練,即用帶合成標籤的數據集來訓練預訓練模型RoBERTa-Large,ICP表示域內連續預訓練,直接在目標領域的檢索數據上進行預訓練,不適用合成標籤。實驗結果如表2所示,自訓練可以提高RoBERTa-Large基準模型的性能,使平均水平提高了1.2%。而當使用ICP繼續使用自訓練數據進行預訓練時,模型性能從87.4%降低到86.2%。儘管ICP在RoBERTa-Large模型預訓練時執行域適應,但它的性能並不優於RoBERTa-Large。因此,自訓練是提高泛化能力並在精調時進行域適應的重要途徑。

表2 自訓練實驗結果

3.3 小樣本學習實驗

作者在小樣本學習的情況下研究了SentAugment方法的有效性。針對每個任務,作者從特定任務的訓練數據集中選取少量樣本對RoBERTa-Large模型進行精調,並將其用作教師模型。實驗結果如表3所示。自訓練可以使所有任務的精確度平均提高3.5%,在序列標記任務中表現尤為突出。

表3 小樣本學習任務中的自訓練實驗結果

3.4 知識蒸餾實驗

知識蒸餾(KD)也受益於大規模數據增強。在該實驗中,作者使用了真實數據(GT)、隨機數據(random)和檢索的無標籤數據(SA),比較了基於不同數據的知識蒸餾的效果,實驗結果如表4所示。實驗結果表明,與基於隨機數據相比,使用真實數據提煉模型時性能顯着提高,從77.1%變為82.5%。本文的數據增強方法達到了81.9%的平均準確度。

表4 基於真實數據、隨機數據和檢索數據的知識蒸餾實驗結果

4

總結

在本文中,作者表明自訓練是利用無標籤數據的另一種有效方法,當自訓練和預訓練結合時,可以進一步改進RoBERTa模型性能。此外,作者介紹了一種新的用於自然語言處理的數據增強方法SentAugment,該方法可從大規模網絡數據語料庫中檢索特定任務的相關領域的句子,並且在知識蒸餾和少樣本學習上也有明顯效果。