NLP數據增強學習筆記

一、應用背景

衆所周知,深度學習中的神經網絡模型都是依靠數據驅動,優質的數據能夠顯著提升模型的運行效果。

通常來說,有監督學習的模型性能會好於無監督學習的模型。但是,有監督學習的模型需要大量的標註數據,而人工標註數據需要花費大量的人力物力,所以數據增強是一種有效的解決方案。

二、常用方法

1.傳統方法

在NLP領域中,對文本數據進行增強無外乎兩種方法,一種是加噪法,另一種是回譯法。加噪法是指在原有數據基礎上通過替換句子中的某些詞、刪除某個詞來生成新的文本數據。而回譯法則是將原有文本翻譯成其他語言再翻譯回來的方法,由於不同語言邏輯不相同,通常會得到差異較大的數據。Easy Data Augmentation for Text Classification Tasks (EDA)提出了幾種加噪的方法,論文鏈接,分別是同義詞替換(SR: Synonyms Replace)、隨機插入(RI: Randomly Insert)、隨機交換(RS: Randomly Swap)、隨機刪除(RD: Randomly Delete)。下面進行詳細介紹:
① EDA:
(1)同義詞替換(SR: Synonyms Replace):不考慮停用詞,在文本中隨機挑選一些詞進行同義詞替換
例如:“你打籃球的時候像cxk一樣”–>“你打籃球的時候彷彿cxk一樣
(2)隨機插入(RI: Randomly Insert):不考慮停用詞,隨機選擇句子中的一個詞,在這個詞語的同義詞集合中挑選一個插入句子中隨機位置。
例如:“我好愛這個世界啊”–>“喜歡我好愛這個世界啊
(3)隨機交換(RS: Randomly Swap):隨機在句子中選擇兩個詞,並進行交換
例如:“cxk擅長唱、跳、rap”–>“cxk擅長唱、rap、跳
(4)隨機刪除(RD: Randomly Delete):以一定的概率擅長句子中的詞
例如:“如何評價cxk的歌曲”–>“如何cxk的歌曲
實際效果如下圖:

上圖是針對不同訓練集大小的五個文本分類任務的EDA操作的平均性能增益。 α參數粗略地表示“每次擴充改變的句子中單詞的百分比。”縱軸是模型增益。我們可以看到,當α = 0.1時,模型提升就能達到很好的效果。訓練數據越少,提升效果效果越明顯。過多的數據增強數據實際上對模型的提升有限,甚至在RD和SR兩種方法上還會嚴重損害效果。

② 回譯法
這種方法主要是把一段中文先翻譯成另一種語言,然後再翻譯回來,形成一段新的文本。
例如:“我喜歡學習,學習使我快樂,學習使我幸福
–>“I like learning, learning makes me happy, learning makes me happy
–>“我喜歡學習,學習使我快樂,學習使我快樂
這種方法被廣泛應用在各大比賽中,它有時候能夠改變句法結構,主要還是依賴於翻譯的質量。

2.深度學習方法

① 半監督方法
半監督學習方法主要目的是應用到沒有標籤的數據中,較少對大規模數據集的依賴。提出了一種MixMatch算法,它的工作方式是通過 MixUp 猜測數據擴增方法產生的無標籤樣本的低熵標籤,並把無標籤數據和有標籤數據混合起來。

② 無監督數據增強UDA
EDA適用於小規模數據集的數據增強,對於大數據集來說就望而卻步了。Unsupervised Data Augmentation(UDA)無監督數據擴增方法被提出,成爲了大數據集的一個解決方案。
MixMatch 算法除了使用普通的數據增廣,還有一個祕訣是 Mixup 增廣術。而 UDA 的成功,得益於對特定任務使用特定目標的數據增強算法。與常規噪聲比如高斯噪聲、dropout 噪聲相比,針對不同任務使用不同數據增強方法能夠產生更有效的數據。這種方法能夠產生有效、真實的噪聲,且噪音多樣化。另外以目標和性能爲導向的數據增強策略可以學習如何在原始標記集中找出丟失的或最想要的訓練信號。(比如圖像數據以顏色爲目標進行數據增強)

圖中展示了UDA訓練時的結構。爲了使用標記和未標記的所有數據,對有標籤的數據訓練時加入了cross entropy loss 函數。對未標記數據,與Mixmatch使用l2 loss 不同,UDA對增廣後未標記的數據預測結果使用KL散度。Targeted data augmentation 特定目標的數據增強 則包括了back translation回譯、autoaugment(圖像)、TFIDF word replacement。其中回譯是從英文轉法文再譯回英文,IDF是從DBPedia語料中獲取。

作者在文本的處理方式上選用了回譯和關鍵詞提取兩種方式,回譯的方式可以幫助豐富數據的句式和句型,而tfidf方法優化了EDA的隨機處理詞策略,根據DBPedia先驗知識和實際預料的詞頻確定關鍵詞,再根據確定好的關鍵詞替換同義詞,避免無用數據和錯誤數據的產生。

另外,UDA優秀的另一個重要的突破是採用了Training Signal Annealing(TSA)方法在訓練時逐步釋放訓練信號。
當收集了少量的標註的數據和大量未標記的數據時,可能會面臨標記數據和未標記數據相差很大的情況。比如標記的數據都和保險相關,但未標記的數據都是熱點新聞。因爲需要採用大量的未標記數據進行訓練,所需的模型會偏大,而大模型又會輕鬆的在有限的有監督數據上過擬合,這時TSA就要逐步的釋放有監督數據的訓練信號了。作者對每個training step 都設了一個閾值ηt,且小於等於1,當一個標籤例子的正確類別P的概率高於閾值ηt時,模型從損失函數中刪除這個例子,只訓練這個minibatch下其他標記的例子。

上圖展示了TSA的三種方式,分別適用於不同的數據。exp模式更適合於問題相對容易或標註量較少的情況。因爲監督信號主要在訓練結束時釋放,且可以防止模型快速過擬合。同理,log模式適合大數據量的情況,訓練過程中不太容易過擬合。

實驗結果表明,這種無監督方法創造的數據在多個任務上都有很好的表現。在半監督學習測試中,UDA擊敗了包括MixMatch的所有方法,錯誤率也降低了30%。

③ GAN生成對抗網絡
待續。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章