NLP中的少樣本困境問題探究

2021-02-19 機器學習算法與自然語言處理

在醫療、金融、法律等領域,高質量的標註數據十分稀缺、昂貴,我們通常面臨少樣本低資源問題。本文從「文本增強」和「半監督學習」這兩個角度出發,談一談如何解決少樣本困境。

基於此,本文首先總結了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表現最好,文中也做了相應對比實驗發現:

AE模型BERT在做文本增強後,容易被約束產生相似的文本序列,且擅長保存標籤信息。AR模型GPT-2在做文本增強後,不受約束地生成文本,不擅長無法保留標籤信息。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領域;相關的研究主要著力於如何針對未標註數據構建無監督信號,與監督學習聯合建模;簡單地講,就是如何在損失函數中添加針對未標註數據相關的正則項,使模型能夠充分利用大量的未標註數據不斷迭代,最終增強泛化性能,正如下圖所展示的那樣(來自文獻 [4] )。

半監督深度學習方法介紹

總的來看,深度學習時代的半監督學習,主要針對未標註數據相關的正則化項進行設置,其通常有以下兩種:(滑動查看完整公式)

熵最小化(Entropy Minimization): 根據半監督學習的Cluster假設,決策邊界應該儘可能地通過數據較為稀疏的地方(低密度區),以能夠避免把密集的樣本數據點分到決策邊界的兩側。也就是模型通過對未標記數據預測後要作出低熵預測,即熵最小化:一致性正則(Consistency Regularization): 對於未標記數據,希望模型在其輸入

重要說明:本文將 人工標籤,其含義是構建「標籤」指導一致性正則的實施,通常採取weak數據增強方法,也可能來自歷史平均預測或模型平均預測。 預測標籤,為模型當前時刻對無標註數據的預測,對其輸入可進行strong增強或對抗擾動。

(1) Pseudo-Label [16]

Pseudo Label的原理很簡單, 其損失函數定義為:

其中 

我們可以看出上式中第二項正是利用了熵最小化的思想,利用未標註數據和偽標籤進行訓練來引導模型預測的類概率逼近其中一個類別,從而將偽標籤條件熵減到最小。

(2) Π-Model/Temporal Ensembling [17]

Π-Model 和 Temporal Ensembling來自同一篇論文,均利用了一致性正則。

Π-Model如上圖所示,對無標註數據輸入

可以看出

(3) Mean Teacher [18]

Mean Teacher是對Temporal Ensembling的升級,仍然採用一致性正則(L2 loss)。

Temporal Ensembling是對預測結果進行EMA平均,但是

(4) Virtual Adversarial Training [19]

Virtual Adversarial Training(VAT)仍然採用一致性正則,學習一致性就要添加擾動。作者認為,隨機擾動無法模擬複雜情況的輸入,不同於上述SSL方法採用數據增強進行施加擾動,VAT採取對抗訓練的方式添加噪音。

VAT不同於傳統的有監督學習下的對抗訓練(詳細了解可閱讀文獻 [10] ),其沒有標籤信息,而是採用 

(5) UDA:Unsupervised Data Augmentation for Consistency Training[4]

UDA來自Google,同樣也是採用一致性正則。一致性正則的關鍵在於如何注入噪聲,一個好的模型對於輸入擾動的任何細微變化也都應具有魯棒性。上述SSL方法注入噪音的方法通常為高斯噪音、dropout噪音、對抗噪音,這些注入方式被認為是較弱的幹擾。UDA針對圖像採取一種高質量的數據增強方法——RandAugment [23],通過這種strong的幹擾來提高一致性訓練性能。

上圖為UDA的損失函數,核心在於對無標註數據 

此外,UDA也利用了一些輔助技術:

結合了熵最小化正則:對無監督信號

(6)  MixMatch [20]

MixMatch同樣來自Google,與UDA類似,同樣結合了熵最小化和一致性正則。其重要的操作就是通過MixMatch進行數據增強,與UDA的RandAugment不同,這種增強方式依然是weak的。MixMatch具體的數據增強操作為:

對標註數據進行一次增強,對於未標註數據作K次weak增強輸入模型得到average後的概率,並對其進行與UDA類似的sharpen操作得到人工標籤MixUp[5]操作,進而得到增強後的無標註數據以及標註數據。

最後對於MixMatch增強後的標註數據 

(7) ReMixMatch [21]

ReMixMatch是MixMatch原作者對自己工作的改進,主要有兩點:

Distribution Alignment: 分布對齊,將無標註數據的人工標籤與標註數據的標籤分布對齊,如上圖所示:根據標註數據的標籤分布(Groud-truth labels)與無標註數據的平均預測(Model prediction)的比值作為「對齊因子」,緩解猜測標籤的噪音和分布不一致情況。Strong Augmentation: MixMatch不穩定的原因可能是K次weak增強會導致不同的預測,取平均值不是具有意義的目標;ReMixMatch改進這一點,引入strong增強,將weak增強後的人工標籤與strong增強後的預測標籤共同構建一致性正則(KL散度)。具體的增強方式CTAugment 可參考原論文。

此外,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增強為 

其中 

不同半監督學習方法的對比

至此,我們已經介紹完了近年來主流的半監督深度學習方法。回顧1.1節對一致性正則公式的介紹,我們可以發現:

人工標籤是構建「標籤」指導一致性正則的實施,通常採取weak數據增強方法,也可能來自歷史平均預測(Temporal Ensembling)或模型平均預測(Mean Teacher);預測標籤為模型當前時刻對無標註數據的預測,其輸入可進行strong增強(UDA/ReMixMatch/FixMatch)或對抗擾動(VAT).

我們將其歸納如下:

下圖給出了上述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模型。我們可以發現:

在少樣本場景下,UDA相較於同等監督學習模型,性能明顯提升;在少樣本場景下,UDA能夠逼近充分樣本下的監督學習模型性能,特別地,在IMDb上具有20個標註數據的UDA優於在1250倍標註數據上訓練的SOTA模型。相較於2分類任務,5分類任務難度更高,未來仍有提升空間。UDA兼容了遷移學習框架,進一步domain預訓練後,性能更佳。

那麼,在充分樣本場景下,繼續使用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

相關焦點

  • 文本增強、半監督學習,誰才是 NLP 少樣本困境問題更優的解決方案?
    本文從「文本增強」和「半監督學習」這兩個角度出發,談一談如何解決少樣本困境。正式介紹之前,我們首先需要思考什麼才是一種好的解決少樣本困境的方案?本文嘗試給出了三個層次的評價策略,我們希望採取相關數據增強或弱監督技術後:1)在少樣本場景下,比起同等標註量的無增強監督學習模型,性能有較大幅度的提升;2)在少樣本場景下,能夠達到或者逼近充分樣本下的監督學習模型性能;3)在充分樣本場景下,性能仍然有一定提升;基於此,本文首先總結了nlp中的文本增強技術,然後串講了近年來
  • 【NLP筆記】Few-shot learning 少樣本學習
    One-shot learning 一樣本學習Few-shot learning 少樣本學習一個meta-learning 的描述C-way K-shot 問題訓練集中有很多類別,選出C個類別,每個類別選出K個樣本,作為support集,再從C個類別中抽取剩餘的batch,作為測試集,這就是個meta-task需要特殊的結構
  • 如何解決少樣本困境?「文本增強+半監督學習」雙管齊下!
    本文將從「文本增強」和「半監督學習」這兩個角度出發,關注如何利用領域相關的未標註數據,解決少樣本困境。本文從「文本增強」和「半監督學習」這兩個角度出發,談一談如何解決少樣本困境。正式介紹之前,我們首先需要思考什麼才是一種好的解決少樣本困境的方案?本文嘗試給出了三個層次的評價策略,我們希望採取相關數據增強或弱監督技術後:1. 在少樣本場景下,比起同等標註量的無增強監督學習模型,性能有較大幅度的提升2.
  • 支持53種語言預訓練模型,斯坦福發布全新NLP工具包StanfordNLP
    >將符號統計知識與靈活、強大的神經系統相結合以提高穩健性的新方法;用於聯合 POS / UFeats 預測的 biaffine 分類器,可提高預測一致性;使用編輯分類器增強的詞形歸併工具,可提高少樣本序列上的序列到序列模型的穩健性
  • NLP 領域還有 5 大開放問題
    面向目標的對話系統(Goal oriented dialogue systems)從 ACL 學會出版的論文集來看,近一兩年的 ACL 會議、EMNLP 會議中研究面向目標的對話系統的論文都有大幅增加。這就是又一個開放性問題:如何設計具備常識、能在真實世界語境中與人類進行較長的、面向目標的交談的機器對話系統。
  • nlp領域發生了新的技術突破,用attention機制研究nlp領域
    近期,nlp領域發生了一系列的技術突破。包括:attention機制,cnn,adaptive attention network(an),兩層cnn相比較,an表現優於一層的cn。今天我們將從這兩種attention機制開始研究nlp領域突破性技術!
  • Python NLP中的五大英雄
    徵服者:NLTK王子:textblob傭兵:Standfordcorenlp篡位者:Spacy將軍:gensim徵服者:NLTK談論Python中的nlp庫,不能不提NLTK。它是最著名的Python NLP庫,它在這個領域中取得了令人難以置信的突破。
  • NLP中的文本分析和特徵工程
    文本分類是根據文本數據的內容給文本數據分配類別的問題。文本分類最重要的部分是特徵工程:從原始文本數據為機器學習模型創建特徵的過程。在本文中,我將解釋分析文本和提取可用於構建分類模型的特徵的不同方法。這可能是建模過程中的一個問題,數據集的重新取樣可能會很有用。現在已經設置好了,我將從清理數據開始,然後從原始文本中提取不同的見解,並將它們添加為dataframe的新列。這個新信息可以用作分類模型的潛在特徵。
  • NeurIPS 2019 少樣本學習研究亮點全解析
    對於一般的深度分類模型來說,訓練學習過程都是根據固定類別來進行的,然而實際的應用場景中隨著業務的迭代,持續的新增學習類別是非常常見的,同時很難做到每個類別可用數據都充分且平衡,此時怎樣固定記憶住已學會的種類,同時更好的識別新增的少樣本類別,就是一個少樣本增量學習問題。
  • 胡衛:以核心素養為導向 走出學生減負問題的困境
    學生減負問題長期以來是社會輿論和政府部門著力破解的教育困境。在核心素養的整體性框架下,圍繞真實社會情境中的問題,師生共同展開探索性學習,最大程度地激發學生的原有經驗和內在求知慾望,滿足不同學生的學習需求,實施差異化的教學計劃。而所有這些核心素養的訴求,正是我們原本希望通過學生減負而達成的教育境界。  以核心素養為導向的教育改革,與化解學生學業負擔的困境具有共同的價值追求。
  • 一文學會目前最火NLP三大方法:基於TransFormer、RNN\CNN、機器學習!真實實例+解決方法快速入門!
    NLP(Natural Language Processing自然語言處理)自然語言是人類智慧的結晶,自然語言處理是人工智慧中最為困難的問題之一,而對自然語言處理的研究也是充滿魅力和挑戰的
  • NLP簡報(Issue#8)
    1.3 低資源藥物發現的元學習初始化大量事實證明,元學習可以使得深度學習在少樣本學習基準上有所改進,當遇到數據有限的情況時就非常有用,比如藥物發現中的典型情況。這些渲染的可微分輸出用於通過最小化渲染RGB圖像中所有攝像機光線的錯誤來優化場景表示。與其他用於視圖合成的性能最高的方法相比,NeRF在質量和數量上都更好,並且可以解決渲染中的不一致問題,例如缺少精細的細節和不必要的閃爍偽影。
  • 復旦邱錫鵬教授:2020最新NLP預訓練模型綜述
    背景「nlp、cv領域的傳統方法極度依賴於手動特徵工程」。例如nlp中的log-linear、CRF模型等,cv中各種抽取特徵的模型,如sift特徵等。深度學習中本質上是一種表示學習,能夠一定程度上避免手動的特徵工程。
  • CVPR 2019提前看:少樣本學習專題
    Network, GNN)由於節點與節點之間具有相關性可以實現更豐富的信息傳遞,在近期來涉及到的推理問題(Reasoning)或者是視覺問答(Visual Question Answering)等任務上都有不少的嘗試,而少樣本學習(few-shot learning)的難點通常是在於可用樣本有限,所以樣本之間潛在的關聯性在學習過程中就變得非常重要了,通用的前傳網絡很難捕捉到樣本之間豐富的關聯信息,
  • CV困境如何破:訓練樣本有限、2D視覺平面 VS 3D真實場景……
    這聽起來就是一個基本的圖像分類問題,所以研究員們當時很自信,然而實際結果證明這個問題並沒有想像中那麼簡單,如圖 1 所示。那位生態學家提供的資料庫是極端長尾且開放式的。通常當訓練數據不足時,我們首先想到的是有沒有可能獲取更多的尾部類別數據,而忽略那些會在測試集中出現的開放類別。遺憾的是,*收集更多數據無法解決那位生態學家的問題*。
  • NLP領域中的遷移學習現狀
    對於這兩種啟示,我們都有充足證據,我們可以在下一節中看到。2. 樣本效率預訓練的一個主要好處就是它減少了對有標註數據的需求。 在實際使用中,與非預訓練模型相比,遷移學習模型通常只需要十分之一甚至更少的樣本數量就達到類似的表現,如下圖所示(Howard 和Ruder, 2018)。
  • 陳丹琦團隊最新論文:受GPT-3啟發,用小樣本學習給語言模型做微調...
    現在,針對這個問題,普林斯頓的陳丹琦、高天宇師徒和MIT博士生Adam Fisch在最新論文中提出,使用較小的語言模型,並用少量樣本來微調語言模型的權重。其次,研究人員在每個輸入中,以額外上下文的形式添加了示例。
  • 1,CV;2,NLP;3,推薦系統?
    現在就差壓縮這些巨無霸還有搞頭視覺各類基礎模塊全都服務化了,而且這東西走集中調度比較坑,中臺搞了人家業務方也不一定會用,github調包太方便了,完全可以自己啟動,現在中臺血拼視覺能力靠的是大量gpu伺服器和低成本並發能力,你要10個gpu跑多少qps,我做到5個,拼這種能力,沒人關心性能,只關心成本。
  • 【NLP】競賽必備的NLP庫
    jieba是Python中的優秀的中文分詞第三方庫,通過幾行代碼就可以完成中文句子的分詞。jieba的分詞精度和性能非常優異,經常用來進行中文分詞的實驗對比。此外jieba還可以很方便的自定義詞典,使用起來非常靈活。
  • PTMs|2020最新NLP預訓練模型綜述
    背景「nlp、cv領域的傳統方法極度依賴於手動特徵工程」。例如nlp中的log-linear、CRF模型等,cv中各種抽取特徵的模型,如sift特徵等。深度學習中本質上是一種表示學習,能夠一定程度上避免手動的特徵工程。