作者:零氪智能科技(LinkDoc)-婁傑
在醫療、金融、法律等領域,高質量的標註數據十分稀缺和昂貴。本文將從「文本增強」 和「半監督學習」 這兩個角度出發,關注如何利用領域相關的未標註數據,解決少樣本困境。
關注TechBeat社區,還有更多乾貨文章、技術Talk與你分享~
關於作者: 婁傑,北京理工大學碩士畢業,現就職於零氪智能科技(LinkDoc),研究方向為:信息抽取、知識圖譜與自然語言處理
一、前言
在醫療、金融、法律等領域,高質量的標註數據十分稀缺、昂貴,我們通常面臨少樣本低資源問題。本文從「文本增強」和「半監督學習」這兩個角度出發,談一談如何解決少樣本困境。
正式介紹之前,我們首先需要思考什麼才是一種好的解決少樣本困境的方案?本文嘗試給出了三個層次的評價策略,我們希望採取相關數據增強或弱監督技術後:1. 在少樣本場景下,比起同等標註量的無增強監督學習模型,性能有較大幅度的提升2. 在少樣本場景下,能夠達到或者逼近充分樣本下的監督學習模型性能;基於此,本文首先總結了NLP中的文本增強技術,然後串講了近年來9個主流的半監督學習模型,最後主要介紹了來自Google提出的UDA(一種文本增強+半監督學習的結合體)。本文的組織結構為:
二、知識圖譜技術架構 談起文本增強技術,相信NLPer一定不會陌生,相關方法也是數不勝數。我們通常對標註數據集提供附加的感應偏置進行擴充,如何設計增強變換就變得至關重要。本文嘗試從一個新角度——是否條件增強,借鑑文獻[1]進行了總結歸納:定義:既可以對標註數據進行增強(增強後標籤不發生變化),又可以針對無標註數據進行增強,不需要強制引入標籤信息。
基於詞典 :主要從文本中選擇詞彙或短語進行同義詞替換,詞典可以採取 WordNet或哈工大詞林等。著名的 EDA (Easy Data Augmentation)[2]就採用了這種方法。
基於詞向量 :在嵌入空間中找尋相鄰詞彙進行替換,我們所熟知的TinyBERT[3]就利用這種技術進行了數據增強。
Masked LM :借鑑預訓練語言模型(如BERT)中的自編碼語言模型,可以啟發式地Mask詞彙並進行預測替換。
TF-IDF :實質上是一種非核心詞替換,對那些low TF-IDF scores進行替換,這一方法最早由Google的UDA[4]提出:
隨機插入 :隨機插入一個詞彙、相應的拼寫錯誤、佔位符等,UDA[4]則根據Uni-gram詞頻分布進行了採樣。
注意:EDA[2]除了進行同義詞替換外,也同時採用上述三種隨機噪音注入。
交叉增強 :類似於「染色體的交叉操作」,文獻[7]將相同極性的文本進行交叉:
回譯 :基於機器翻譯技術,例如從中文-英文-日文-中文;我們熟知的機器閱讀理解模型QANet[8]和UDA[4]都採用了回譯技術進行數據增強。
句法交換 :通過句法樹對文本句子進行解析,並利用相關規則進行轉換,例如將主動式變成被動式句子。
對抗增強 :不同於CV領域利用GAN生成對抗進行數據增強[9],NLP中通常在詞向量上添加擾動並進行對抗訓練,文獻[10]NLP中的對抗訓練方法FGM, PGD, FreeAT, YOPO, FreeLB等進行了總結。
本節介紹的無條件增強方法,在對標註數據進行增強後標籤不發生變化,但可能會造成文本主旨發生發生變化(例如情感分析中,某一時刻將good 替換為了bad),帶來的噪音過大從而影響模型性能。因此,我們是否可以考慮引入標籤信息來引導數據生成呢?
定義:所謂條件增強(Conditional Data Augmentation),就是意味著需要強制引入「文本標籤」信息到模型中再產生數據。
深度生成模型 :既然條件增強需要引入標籤信息進行數據增強,那麼我們自然就會聯想到Conditional變分自編碼模型(CVAE),文獻[11]就利用CVA進行增強。想生成一個高質量的增強數據,往往需要充分的標註量,但這卻與「少樣本困境」這一前提所矛盾。這也正是GAN或者CVAE這一類深度生成模型在解決少樣本問題時需要考慮的一個現狀。
預訓練語言模型 :眾所周知,BERT等在NLP領域取得了巨大成功,特別是其利用
大量無標註數據 進行了語言模型預訓練。如果我們能夠結合標籤信息、充分利用這一系列語言模型去做文本增強,也許能夠克服深度生成模型在少樣本問題上的矛盾。近來許多研究者對Conditional Pre-trained Language Models 做文本增強進行了有益嘗試。
Contextual Augment [12]:這是這一系列嘗試的開篇之作,其基於LSTM進行biLM預訓練,將標籤信息融入網絡結構進行finetune,是替換生成的詞彙與標籤信息兼容一致。
CBERT [13]:其主要思想還是借鑑了Contextual Augment,基於BERT進行finetune,將segment embedding轉換融入標籤指示的label embedding(如果標籤類別數目大於2類,則相應擴充),如下圖,替換good生成的funny與標籤positive兼容。
LAMBADA [14]:來自IBM團隊,其基於GPT-2將標籤信息與原始文本拼接當作訓練數據進行finetune(如下圖所示,SEP代表標籤和文本的分割,EOS是文本結束的標誌),同時也採用一個判別器對生成數據進行了過濾降噪。在最近的一篇paper《Data Augmentation using Pre-trained Transformer Models》[14]中,根據不同預訓練目標對自編碼(AE)的BERT、自回歸(AR)的GPT-2、Seq2Seq的BART這3個預訓練模型進行了對比。不同於CBERT,沒有標籤信息變為label embedding而是直接作為一個token&sub-token來於原文拼接。如上圖所示,採樣原始標註數據的1%作為少樣本場景的設置,其發現BART表現最好,文中也做了相應對比實驗發現:1. AE模型BERT在做文本增強後,容易被約束產生相似的文本序列,且擅長保存標籤信息。2. AR模型GPT-2在做文本增強後,不受約束地生成文本,不擅長無法保留標籤信息。3. Seq2Seq模型BART位於AE和AR之間,可以在多樣性和語義保真度之間取得良好的平衡。此外,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領域;相關的研究主要著力於如何針對未標註數據構建無監督信號,與監督學習聯合建模;簡單地講,就是
如何在損失函數中添加針對未標註數據相關的正則項,使模型能夠充分利用大量的未標註數據不斷迭代,最終增強泛化性能 ,正如下圖所展示的那樣(來自文獻[13])。
半監督深度學習方法介紹 總的來看,深度學習時代的半監督學習,主要針對未標註數據相關的
正則化項 進行設置,其通常有以下兩種:
1. 熵最小化 (Entropy Minimization) : 根據半監督學習的Cluster假設,決策邊界應該儘可能地通過數據較為稀疏的地方(低密度區),以能夠避免把密集的樣本數據點分到決策邊界的兩側。也就是模型通過對未標記數據預測後要作出低熵預測,即熵最小化:
2. 一致性正則 (Consistency Regularization) : 對於未標記數據,希望模型在其輸入
受到擾動時產生相同的輸出分布。即:重要說明 :本文將 定義為人工標籤 ,其含義是構建「標籤」指導一致性正則的實施,通常採取weak數據增強方法,也可能來自歷史平均預測或模型平均預測。 定義為預測標籤 ,為模型當前時刻對無標註數據的預測,對其輸入可進行strong增強或對抗擾動。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只進行一次計算,如下圖所示: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針對圖像採取一種高質量的數據增強方法——RandAugmen t [23],通過這種strong的幹擾來提高一致性訓練性能。上圖為UDA的損失函數,核心在於對無標註數據 通過strong增強轉化為 ,採用KL散度來計算兩者間的一致性損失。UDA也通過回譯和非核心詞替換對文本進行無監督增強,我們將在第3部分作詳細介紹。結合了熵最小化正則:對無監督信號 進行sharpen操作構建人工標籤,使其趨近於 One-Hot 分布,對某一類別輸出概率趨向 1,其他類別趨向0,此時熵最低。此外,還直接計算了熵損失。將人工標籤與strong增強後的預測標籤共同構建一致性正則,並計算損失時進行了confidence-based masking,低於置信度閾值不參與loss計算。採用訓練信號退火(TSA)方法防止對標註數據過擬合,對於標註數據的置信度高於閾值要進行masking,這與無標註數據正好相反。MixMatch同樣來自Google,與UDA類似,同樣結合了熵最小化和一致性正則。其重要的操作就是通過MixMatch進行數據增強,與UDA的RandAugment不同,這種增強方式依然是weak的。MixMatch具體的數據增強操作為:
對標註數據進行一次增強,對於未標註數據作K次weak增強輸入模型得到average後的概率,並對其進行與UDA類似的sharpen操作得到人工標籤 ,利用了熵最小化思想。將無標註數據得到的人工標籤與標註數據混合在一起並進行MixUp[5]操作,進而得到增強後的無標註數據以及標註數據。最後對於MixMatch增強後的標註數據 和無標註數據 分別計算損失項,採用L2 loss引入一致性正則:
ReMixMatch是MixMatch原作者對自己工作的改進,主要有兩點:1. Distribution Alignment : 分布對齊,將無標註數據的人工標籤與標註數據的標籤分布對齊,如上圖所示:根據標註數據的標籤分布(Groud-truth labels)與無標註數據的平均預測(Model prediction)的比值作為「對齊因子」,緩解猜測標籤的噪音和分布不一致情況。2. Strong Augmentation :MixMatch不穩定的原因可能是K次weak增強會導致不同的預測,取平均值不是具有意義的目標;ReMixMatch改進這一點,引入strong增強,將weak增強後的人工標籤與strong增強後的預測標籤共同構建一致性正則(KL散度)。具體的增強方式CTAugment 可參考原論文。此外,ReMixMatch還對未標註數據丟失的權重進行了退火,並引入了Rotation loss,這裡不再贅述。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的表現。
UDA:文本增強+半監督學習 作為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模型。我們可以發現:1. 在少樣本場景下,UDA相較於同等監督學習模型,性能明顯提升;2. 在少樣本場景下,UDA能夠逼近充分樣本下的監督學習模型性能,特別地,在IMDb上具有20個標註數據的UDA優於在1250倍標註數據上訓練的SOTA模型。相較於2分類任務,5分類任務難度更高,未來仍有提升空間。3. UDA兼容了遷移學習框架,進一步domain預訓練後,性能更佳。
那麼,在充分樣本場景下,繼續使用UDA框架表現如何?從上圖可以看出,在更多、更充分的標註數據數量下,融合UDA框架,性能也有一定提升。總結與展望 本文針對「如何解決少樣本困境?」,從「文本增強」和「半監督學習」兩個角度進行了介紹,簡單總結如下:1. 文本增強提供了原有標註數據缺少的歸納偏差,在少樣本場景下通常會取得穩定、但有限的性能提升;更高級、更多樣化和更自然的增強方法效果更佳。2. 融合文本增強+半監督學習技術是一個不錯的選擇。半監督學習中一致性正則 能夠充分利用大量未標註數據,同時能夠使輸入空間的變化更加平滑,從另一個角度來看,降低一致性損失實質上也是將標籤信息從標註數據傳播到未標註數據的過程 。
在具體實踐中,如何有效地解決少樣本問題需要更為全面的考慮,我們可以融合文本增強、半監督學習、遷移學習、主動學習、少樣本學習等構建統一的低資源NLP解決方案;如上圖所示,筆者嘗試給出了信息抽取領域的少樣本低資源解決方案;此外,很多弱監督學習方法也被提出,這一類方法更為關鍵的是如何挑選樣本、如何降噪學習等,希望後續有機會與大家交流~複製連結 w ww.techbeat.net 到瀏覽器,TechBeat (www.techbeat.net)是一個薈聚全球華人AI精英的成長社區。我們希望為AI人才打造更專業的服務和體驗,加速並陪伴其學習成長。期待這裡可以成為你學習AI前沿知識的高地,分享自己最新工作的沃土,在AI進階之路上的升級打怪的根據地!