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