【NLP】CMU MILA 谷歌 | 三家巨头发布史上最干文本增强总结
文 | Sherry
一直以來,數據都是推動深度神經網絡這個人工智能引擎不可或缺的燃料;然而人工收集足量而優質的數據從來不是一件“便宜”的事,數據增強便是一座富有價值的礦山。
在CV中,翻轉,裁剪,加噪聲等方法被廣泛應用且獲得了顯著的效果。但在NLP領域,由于語言的離散性,如何獲得保持文本原意的新數據就顯得不那么簡單了。大型預訓練模型的成功為我們帶來了曙光,推動了許多低資源領域或是新任務的研究,然而微調大型模型需要大量數據,如何自動獲得高質量數據在最近的研究中顯得尤為重要。
Google,CMU,Mila等研究者合作,對當前NLP領域的數據增強進行了總結。被收錄到ACL 21 Findings。
本文將幫你總結:NLP數據增強的難點和理解;常見方法;應用場景;和不同下游任務中的常見方法。
論文題目:
A Survey of Data Augmentation Approaches for NLP
論文鏈接:
https://arxiv.org/pdf/2105.03075
GitHub:
https://github.com/styfeng/DataAug4NLP
也可以在 【夕小瑤的賣萌屋】訂閱號后臺回復關鍵詞 【0602】 下載論文PDF~
NLP數據增強的難點和理解角度
數據增強的目標和難點
數據增強的目標當然是為了獲得更多的數據,但需要滿足兩個條件:容易執行,且可以提高模型表現。如果說一個增強的方法他本身就需要大量資源(比如訓練一個復雜的生成模型),我們完全可以用人工標注的方法來獲得最優質的數據,增強就會顯得沒有意義;如果增強獲得的數據質量不夠高(比如由簡單規則生成),反而會破壞模型的表現,那這種增強也違反了我們的初衷。為了獲得高質量的增強數據,我們通常要求增強的數據分布和原數據集不要相差太大(可能破壞模型表現),也不要相差太小(可能導致過擬合)。
怎么看待數據增強
通常來說,數據增強被認為可以增加模型正則性,減少過擬合,但其實很少有人解釋它到底為什么可以幫助模型訓練。現有的工作中,從以下角度給出了解釋:
從正則化角度出發,研究者提出含有噪聲的樣本有助于幫助正則化;若是把數據增強看作核變換,則它有助于平均不同的特征,并正則化方差;同樣,我們也可以把數據增強看作平均不同數據的分布軌跡,從而也能得到減少方差的效果。
另外,也有研究者證明了指數量級的數據增強可以提高分類器的正邊界,但顯示應用中我們通常不會增強這么大量的數據。
常見方法
NLP的增強雖然有很多難點,但近年來也發展出了許多比較成熟的分支。常見的數據增強方法可以分為以下幾類:
基于規則
特征空間的增強
由于自然語言的離散性,直接生成更多數據顯得很艱難,一個直接的方法就不生成語言數據,而是在特征空間直接進行增強。比如說,在少樣本學習中,我們先學習訓練領域的不變量,然后在目標類別上特征空間的不變量轉換得到更多特征樣本。或者是在同一類的空間流形上不斷進行仿射變換來獲得更多特征樣本。
EDA--簡單的規則
EDA是一種簡單有效,也被廣泛應用的文本增強:隨機插入,刪除,替換token從而在文本數據中加入噪聲。EDA的改進版UDA則利用簡單的增強,包括回譯,或者根據TF-IDF替換詞等方法獲得增強數據,再最小化增強后未標注樣本和原樣本的一致性損失函數來幫助半監督學習。
圖上的變換通過句法解析等技術,我們也可以講自然語言轉化成圖/樹的結構。因此,我們也可以通過人為設計樹上的變換來獲得增強數據:比如把交換子樹的順序或者刪除子樹等。
樣本插值
MixUp在圖像領域被廣泛應用,具體而言,它對兩個及以上的訓練樣本進行插值。把兩張一樣大的圖每個像素點按疊加,同時目標標簽也按同樣權重疊加,就得到了一個新的合理訓練數據。除了按照像素點疊加,也可以把圖A的局部用圖B代替,然后按圖片面積占比插值得到新類別(CutMix)。
將這種思路引入文本增強的難點在于:文本是離散的,無法找到合適的插值單位。但仍然有一些常見的方法可以應用:
拼接句子,混合嵌入詞向量或者高維表示向量。
Seq2MixUp提出兩種混合樣本的方法:一個是對句子的每個位置隨機決定復制兩個樣本中的一個字;或者是根據概率分布混合詞向量。
基于模型的增強
這類方法利用已經訓練好的模型作為增強數據的方法。
回譯 -- 翻譯模型
利用已經訓練好的翻譯模型來增強數據就是一種常見而有效的方法。通常我們把訓練數據翻譯成一種或多種其他語言,再翻譯回來,篩選之后可以得到質量比較高的數據。
填空 -- 語言模型
大型預訓練網絡獲得成功之后,另外一個常見而有效的方法就是用這類模型替換原樣本中的詞或片段。例如隨機mask上句子中的詞,然后用BERT這類模型填入和原來不一樣的候選詞。
語意近鄰 -- 生成模型
除了回譯和填空,我們也可以直接利用生成模型。之前的樣本混合或擾動的方法水直接利用隱空間表示來獲得新樣本,但我們同樣也可以講這些混合或擾動之后的表示向量作為生成模型的條件輸入,從而得到新的樣本。
直接用生成模型
除了給定向量表示來生成,我們也可以直接在目標數據集上微調GPT等生成模型,然后直接生成新的訓練數據;再用自監督的方法獲得標注。
應用場景
數據增強有許多具有研究價值的應用場景。
低資源語言
低資源語言的數據獲取一直以來都是研究的重要分支。常見的增強方法包括1)利用高資源語言中可以被推廣的性質幫助低資源語言,2)利用回譯+自監督來生成增強訓練數據。
處理性別偏差
在指代消解(coreference)任務中,我們可以通過交換he/she來平衡數據集中的性別分布。更進一步,我們可以用替換詞匯為更中性的詞匯來平衡可能引起性別偏差的數據。
解決不平衡類別
常見的解決不平衡類別的方法有upsample/downsample。利用數據增強,我們可以通過插值生成minority class 樣本,或者用EDA等方法直接增加少數類別的樣本。
下游任務中的變種
接下來我們按照不同任務總結了增強的方法,作者在GitHub中也給出了詳細的總結,可以參考:
https://github.com/styfeng/DataAug4NLP。
摘要 Summarization
類似UDA,先從回譯獲得增強數據,然后利用一致性損失函數提升效果。
混合從Common Crawl獲得的合成數據以及原數據集來提升模型效果。
問答 QA
Domain-agonistic QA: 回譯
開放領域問答:遠程監督,利用原數據集以及抽取器獲得數據
Zero-shot cross-lingual: 問題生成
Cross-lingual QA/NLI: 將一部分文本從源語言替換為其他語言
為了提高QA 準確率和一致性, 利用邏輯和語言學知識獲得訓練數據
序列標注 Sequence Tagging
首先,學習根據特定方案線性化的標簽和單詞序列的語言模型。其次,從該語言模型中采樣序列,并對其進行去線性化處理,以生成新的示例。
POS tagging: 依存樹變換
NER: 對每個實體進行token或同義詞替換
解析 Parsing
利用數據重組來添加對特定任務有效的先驗知識。
表格解析Grappa: 利用預訓練模型來生成問題-SQL對,進行增強。
語義解析: 利用組成性,替換重復的片段。
低資源依存關系解析:替換詞語為擁有相同POS,形態標簽和依存關系標簽的其他詞。
語法糾正 Grammatical Error Correction
德語糾正:利用維基百科的編輯歷史作為額外數據。
多任務遷移學習:利用其他任務的標注作為額外數據。
合成新的錯誤來訓練糾正模型:token級別的擾動,訓練生成錯誤的模型+過濾。
利用拼寫檢查器產生的混淆集以進行干擾。
從標注數據中學習錯誤的模式,并用來生成特定的噪聲。
用生成模型的beam search來增加數據噪聲。
翻譯 NMT
SwitchOut: 隨機替換平行語料中源語言和目標語言的對應詞。
Soft Contextual: 隨機選定一個詞,用詞表中其他多個相關詞的上下文表示來替換它。
Data Diversification: 將原數據和多個訓練好模型的預測混合。
Data-to-Text NLG
球賽總結任務:隨機修改不影響比賽結果的得分來增強。
從三元組生成描述:利用維基百科和開放關系抽取工具獲得更多三元組及描述句子的數據。
意思表示(meaning representation):修改意思表示的序列順序來增強。
Open-Ended & Conditional Generation
GenAug:在低資源領域微調GPT-2,從而提高生成文本的連續性。
挑戰與未來
作者針對過去的文本增強方法提出了許多值得注意的方面:
缺少一致有效的方法
不像CV,文本增強沒有一致有效的增強方法。可能需要發展一個統一的任務和數據集來比較不同增強方法的優劣。
預訓練模型對領域內數據效果甚微
以前有效的增強方法對大型預訓練模型失去了效果:他們已經可以達到很好的效果了。
缺少理論解釋
很少有人解釋為什么數據增強有效,大多數工作都只是通過實驗結果來展示增強有效,并且給出一些猜想,挑戰在于在不借助全面實驗的情況下測量優度。CV中有人研究了affinity和diversity可以預測增強的效果,但是在NLP中沒有對應的理解。
多模態挑戰
對多模態任務,有人對單個模態進行增強或者對不同模態設置不同的增強,但是是否存在一個統一的增強方法呢?
基于span的任務
隨機替換token可能擾亂上下文信息。
特殊領域
增強對OOD無效, 因為增強的數據可能跟原數據分布非常不同
低資源語言
跟特殊領域的難點一樣,對高資源有效的增強方法不一定對低資源有效。
視覺啟發
CV的增強都是受現實世界不變量啟發,很多在NLP中有對應:比如改變灰度可能對應著詞形簡化(lemmatization ) ;調整色調對應著替換副詞程度,例如把awesome改成good;旋轉對應著依存樹變換;角度調整對應著同義句替換。
總結
這篇論文對過去的文本增強工作進行了系統性總結,可以說是比較全面的。對小領域上的增強方法的總結可以讓大家快速上手了解常見增強方法,同時借鑒其他任務上的增強也可能啟發其他新的思路。另外,文章中對文本增強的目標,理解,難點以及未來發展方向都給出了新穎的觀點,具有啟發意義。
萌屋作者:Sherry。
本科畢業于復旦數院,轉行NLP目前在加拿大滑鐵盧大學讀CS PhD。經歷了從NOIer到學數學再重回CS的轉變,卻堅信AI的未來需要更多來數學和自認知科學的理論指導。主要關注問答,信息抽取,以及有關深度模型泛化及魯棒性相關內容。
作品推薦:
可交互的 Attention 可視化工具!我的Transformer可解釋性有救了?
誰才是Transformer家族中的最強王者?谷歌告訴你答案
Facebook刷新開放域問答SOTA:模型訓模型!Reader當Teacher!
總結
以上是生活随笔為你收集整理的【NLP】CMU MILA 谷歌 | 三家巨头发布史上最干文本增强总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QQ浏览器怎么设置为默认浏览器
- 下一篇: 傲游浏览器怎么更换皮肤 浏览器皮肤更换方