在醫療、金融、法律等領域,高質量的標註數據十分稀缺、昂貴,我們通常面臨少樣本低資源問題。本文從「文本增強」和「半監督學習」這兩個角度出發,談一談如何解決少樣本困境。
基於此,本文首先總結了nlp中的文本增強技術,然後串講了近年來9個主流的半監督學習模型,最後主要介紹了來自Google提出的UDA(一種文本增強+半監督學習的結合體)。本文的組織結構為:
談起文本增強技術,相信NLPer一定不會陌生,相關方法也是數不勝數。我們通常對標註數據集提供附加的感應偏置進行擴充,如何設計增強變換就變得至關重要。本文嘗試從一個新角度——是否條件增強,借鑑文獻[1]進行了總結歸納:
本節介紹的無條件增強方法,在對標註數據進行增強後標籤不發生變化,但可能會造成文本主旨發生發生變化(例如情感分析中,某一時刻將good 替換為了bad),帶來的噪音過大從而影響模型性能。因此,我們是否可以考慮引入標籤信息來引導數據生成呢?
在最近的一篇paper《Data Augmentation using Pre-trained Transformer Models》[15]中,根據不同預訓練目標對自編碼(AE)的BERT、自回歸(AR)的GPT-2、Seq2Seq的BART這3個預訓練模型進行了對比。不同於CBERT,沒有標籤信息變為label embedding而是直接作為一個token&sub-token來於原文拼接。
如上圖所示,採樣原始標註數據的1%作為少樣本場景的設置,其發現BART表現最好,文中也做了相應對比實驗發現:
至此,我們介紹完了NLP中的文本增強技術,以[15]的實驗結果為例,我們可以發現文本增強技術可以滿足本文一開始給出的第一層次評價策略,即:在少樣本場景下,採用文本增強技術,比起同等標註量的無增強監督學習模型,性能會有較大幅度的提升。需要注意的是,上述相關文獻中,通常只針對標註數據進行文本增強。但我們是否可以充分利用領域相關的大量無標註數據解決少樣本困境呢?我們將在第2部分進行介紹。
除此之外,在實踐中我們也要去思考:
這一部分主要介紹如何結合大量無標註數據解決少樣本困境,相應的弱監督方法層出不窮,本文著眼於「半監督學習」,借鑑CV領域的9個主流方法進行介紹,包括:Pseudo-Label / Π-Model / Temporal Ensembling / Mean Teacher / VAT / UDA / MixMatch / ReMixMatch / FixMatch。
監督學習往往需要大量的標註數據,而標註數據的成本比較高,因此如何利用大量的無標註數據來提高監督學習的效果,具有十分重要的意義。這種利用少量標註數據和大量無標註數據進行學習的方式稱為半監督學習(Semi-Supervised Learning,SSL) 。
如上圖所示,在同等的少量標註樣本下,半監督學習通常取得比監督學習較好的性能。進入深度學習時代以來,SSL如何在少量標註樣本下達到或超越大量標註樣本下監督學習的效果,SSL如何在大量標註樣本下也不會陷入到「過擬合陷阱」,是SSL研究者面臨的一個挑戰。
近年來,半監督深度學習取得了長足的進展,特別是在CV領域;相關的研究主要著力於如何針對未標註數據構建無監督信號,與監督學習聯合建模;簡單地講,就是如何在損失函數中添加針對未標註數據相關的正則項,使模型能夠充分利用大量的未標註數據不斷迭代,最終增強泛化性能,正如下圖所展示的那樣(來自文獻 [4] )。
總的來看,深度學習時代的半監督學習,主要針對未標註數據相關的正則化項進行設置,其通常有以下兩種:(滑動查看完整公式)
重要說明:本文將 定義為人工標籤,其含義是構建「標籤」指導一致性正則的實施,通常採取weak數據增強方法,也可能來自歷史平均預測或模型平均預測。 定義為預測標籤,為模型當前時刻對無標註數據的預測,對其輸入可進行strong增強或對抗擾動。
(1) Pseudo-Label [16]
Pseudo Label的原理很簡單, 其損失函數定義為:
其中 為少量標註數據量,為未標註數據量, 為第m個標記數據的logit輸出,為其對應的標籤;為第m個未標記數據的logit輸出, 為其對應的Pseudo Label,具體的做法就是選舉每個未標註樣本的最大概率作為其偽標籤。為了降低噪音的影響,只有當置信度大於閾值時才計算相應的損失。
我們可以看出上式中第二項正是利用了熵最小化的思想,利用未標註數據和偽標籤進行訓練來引導模型預測的類概率逼近其中一個類別,從而將偽標籤條件熵減到最小。
模擬的是一個確定性退火過程,避免陷入局部最小值,調和平衡標註和未標註數據的訓練,從而使偽label更接近真實標籤:
(2) Π-Model/Temporal Ensembling [17]
Π-Model 和 Temporal Ensembling來自同一篇論文,均利用了一致性正則。
Π-Model如上圖所示,對無標註數據輸入進行了兩次不同的隨機數據增強、並通過不同dropout輸出得到和 ,並引入一致性正則到損失函數(L2 loss)中:
可以看出和 來自同一時間步產生的兩次結果,同一個train step要進行兩次前向計算,可以預見這種單次計算的噪音較大、同時降低訓練速度。Temporal Ensembling則採用時序融合模型,是歷史的EMA加權平均和,將其視作人工標籤,同一個train step只進行一次計算,如下圖所示:
(3) Mean Teacher [18]
Mean Teacher是對Temporal Ensembling的升級,仍然採用一致性正則(L2 loss)。
Temporal Ensembling是對預測結果進行EMA平均,但是每個epoch才更新一次,需要等到下一個epoch相關信息才能被模型學習。為克服這一缺點,Mean Teacher採取對模型參數進行EMA平均,其認為訓練步驟的上平均模型會比直接使用單一模型權重更精確,將平均模型作為teacher預測人工標籤,由當前模型(看作student)預測。
(4) Virtual Adversarial Training [19]
Virtual Adversarial Training(VAT)仍然採用一致性正則,學習一致性就要添加擾動。作者認為,隨機擾動無法模擬複雜情況的輸入,不同於上述SSL方法採用數據增強進行施加擾動,VAT採取對抗訓練的方式添加噪音。
VAT不同於傳統的有監督學習下的對抗訓練(詳細了解可閱讀文獻 [10] ),其沒有標籤信息,而是採用 構建一個虛擬標籤,並根據這個虛擬標籤計算對抗擾動方向 (通常是梯度上升的方向,為正梯度),這也是稱之為「虛擬對抗訓練」的原因吧~。VAT採用KL散度來計算一致性正則:
(5) UDA:Unsupervised Data Augmentation for Consistency Training[4]
UDA來自Google,同樣也是採用一致性正則。一致性正則的關鍵在於如何注入噪聲,一個好的模型對於輸入擾動的任何細微變化也都應具有魯棒性。上述SSL方法注入噪音的方法通常為高斯噪音、dropout噪音、對抗噪音,這些注入方式被認為是較弱的幹擾。UDA針對圖像採取一種高質量的數據增強方法——RandAugment [23],通過這種strong的幹擾來提高一致性訓練性能。
上圖為UDA的損失函數,核心在於對無標註數據 通過strong增強轉化為,採用KL散度來計算兩者間的一致性損失。UDA也通過回譯和非核心詞替換對文本進行無監督增強,我們將在第3部分作詳細介紹。
此外,UDA也利用了一些輔助技術:
(6) MixMatch [20]
MixMatch同樣來自Google,與UDA類似,同樣結合了熵最小化和一致性正則。其重要的操作就是通過MixMatch進行數據增強,與UDA的RandAugment不同,這種增強方式依然是weak的。MixMatch具體的數據增強操作為:
最後對於MixMatch增強後的標註數據 和無標註數據分別計算損失項,採用L2 loss引入一致性正則:
(7) ReMixMatch [21]
ReMixMatch是MixMatch原作者對自己工作的改進,主要有兩點:
此外,ReMixMatch還對未標註數據丟失的權重進行了退火,並引入了Rotation loss,這裡不再贅述。
(8) FixMatch [22]
FixMatch也是來自Google,實質上是UDA和ReMixMatch一個綜合簡化版本,捨棄了sharpen操作和UDA的訓練信號退火、ReMixMatch的分布對齊和旋轉損失等。UDA和ReMixMatch表明引入strong增強方式,在與weak增強方式一同構建一致性正則時是有效的。FixMatch延續了這一思想,strong增強同時使用了UDA的RandAugment和ReMixMatch的CTAugment。
不同於UDA和ReMixMatch通過sharpen構建人工標籤來指導一致性正則的實施,FixMatch則直接利用Pseudo-Label 構建人工標籤。具體地說:記strong增強為 和weak增強為,對於標註數據只使用弱增強並計算交叉熵;對於無標註數據使用weak增強構建人工標籤 ,使用strong增強構建預測標籤,最終損失形式為:
其中 為置信度閾值,對低於閾值的人工標籤不參與loss計算進行confidence-based masking。
至此,我們已經介紹完了近年來主流的半監督深度學習方法。回顧1.1節對一致性正則公式的介紹,我們可以發現:
我們將其歸納如下:
下圖給出了上述SSL方法在不同數據集上的性能對比(指標為錯誤率):
我們可以發現借鑑了UDA和ReMixMatch的FixMatch,是目前的SOTA。上述大多數SSL方法都引入了一致性正則,其關鍵在於如何注入噪聲,一個好的模型對於輸入擾動的任何細微變化也都應具有魯棒性。也許我們可以形成一個共識:通過strong增強的預測標籤與weak增強的人工標籤共同構建一致性損失,能夠提高一致性訓練性能,充分挖掘未標註數據中潛在的價值,最終增強泛化性能。
上述結合圖像數據增強的半監督學習方法在CV領域已經取得成功,基本滿足本文一開始提出的三個層次評價策略,特別是:在少樣本場景下可以比肩充分樣本下的監督學習模型性能,而在充分樣本場景下,性能仍然繼續提升。相關實驗可以進一步閱讀CV相關論文,接下來我們主要關注其在NLP的表現。
作為NLPer,我們更關心上述文本增強與半監督學習的結合在文本領域表現如何?我們主要介紹分析Google的UDA[]相關結果。
本文在第1部分重點介紹了文本增強技術,文本增強方法通常針對標註數據(有監督數據增強),我們可以看到其在少樣本場景通常會取得穩定的性能提升,但相較於充分樣本下的監督學習性能,也許是有限的提升("cherry on the cake")。
為克服這一限制,UDA通過一致性訓練框架(正如2.2節介紹的那樣),將有監督的數據增強技術的發展擴展到了有大量未標記數據的半監督學習,儘可能的去利用大量未標記數據,這也正是論文名字——無監督數據增強(Unsupervised Data Augmentation)的由來。
UDA在六個文本分類任務上結合當前如日中天的BERT遷移學習框架進行了實驗。遷移學習框架分別為:(1)Random:隨機初始化的Transformer;(2):BERT_base;(3):BERT_large;(4):BERT_finetune:基於BERT_large在domain數據集上繼續進行預訓練;
如上圖所示(指標為錯誤率),Pre-BERT SOTA為BERT出現之前的相關SOTA模型。我們可以發現:
那麼,在充分樣本場景下,繼續使用UDA框架表現如何?從上圖可以看出,在更多、更充分的標註數據數量下,融合UDA框架,性能也有一定提升。
本文針對「如何解決少樣本困境?」,從「文本增強」和「半監督學習」兩個角度進行了介紹,簡單總結如下:
在具體實踐中,如何有效地解決少樣本問題需要更為全面的考慮,我們可以融合文本增強、半監督學習、遷移學習、主動學習、少樣本學習等構建統一的低資源NLP解決方案;如上圖所示,筆者嘗試給出了信息抽取領域的少樣本低資源解決方案;此外,很多弱監督學習方法也被提出,這一類方法更為關鍵的是如何挑選樣本、如何降噪學習等,希望後續有機會與大家交流~
[1] A Visual Survey of Data Augmentation in NLP
[2] EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks
[3] TinyBERT: Distilling BERT for Natural Language Understanding
[4] Unsupervised Data Augmentation for Consistency Training
[5] mixup: BEYOND EMPIRICAL RISK MINIMIZATION
[6] Augmenting Data with Mixup for Sentence Classification: An Empirical Study
[7] Data Augmentation and Robust Embeddings for Sentiment Analysis
[8] QANet: Combining Local Convolution with Global Self-Attention for Reading Comprehension
[9] Data Augmentation Using GANs
[10] [一文搞懂NLP中的對抗訓練](https://zhuanlan.zhihu.com/p/103593948)
[11] Controlled Text Generation for Data Augmentation in Intelligent Artificial Agents
[12] Contextual augmentation: Data augmentation by words with paradigmatic relations
[13] Conditional BERT contextual augmentation
[14] Do Not Have Enough Data? Deep Learning to the Rescue!
[15] Data Augmentation using Pre-trained Transformer Models
[16] Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks
[17] Temporal ensembling for semi-supervised learning
[18] Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results
[19] Virtual Adversarial Training: a Regularization Method for Supervised and Semi-supervised Learning
[20] MixMatch: A Holistic Approach to Semi-Supervised Learning
[21] ReMixMatch: Semi-Supervised Learning with Distribution Alignment and Augmentation Anchoring
[22] FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
[23] RandAugment: Practical automated data augmentation with a reduced search space