0
本文作者: AI研習(xí)社-譯站 | 2019-04-28 10:34 |
本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :
These are the Easiest Data Augmentation Techniques in Natural Language Processing you can think of?—?and they work.
作者 | Jason Wei
翻譯 | AI小山
校對(duì) | 醬番梨 審核 | 約翰遜·李加薪 整理 | 立魚王
原文鏈接:
https://towardsdatascience.com/these-are-the-easiest-data-augmentation-techniques-in-natural-language-processing-you-can-think-of-88e393fd610
數(shù)據(jù)增廣常用于計(jì)算機(jī)視覺(jué)。在視覺(jué)領(lǐng)域,你幾乎肯定可以翻折、旋轉(zhuǎn)或鏡像一幅圖片,而不用擔(dān)心它的標(biāo)記發(fā)生變化。然后,在自然語(yǔ)言處理(NLP)領(lǐng)域,情況完全不同。改變一個(gè)詞有可能改變整個(gè)句子的意思。所以,沒(méi)有簡(jiǎn)單的方法能做到數(shù)據(jù)增廣。真的是這樣么?
我向你介紹EDA:簡(jiǎn)單數(shù)據(jù)增廣技術(shù),可以大大提升文本分類任務(wù)的性能(在EDA Github repository有簡(jiǎn)單的實(shí)現(xiàn)代碼)。EDA包含四個(gè)簡(jiǎn)單操作,能極好地防止過(guò)擬合,并訓(xùn)練出更強(qiáng)健的模型,分別是:
同義詞替換:在句子中隨機(jī)選取n個(gè)非停用詞。對(duì)每個(gè)選取的詞,用它的隨機(jī)選取的同義詞替換。
隨機(jī)插入:在句子中任意找一個(gè)非停用詞,隨機(jī)選一個(gè)它的同義詞,插入句子中的任意位置。重復(fù)n次。
隨機(jī)交換:任意選取句子中的兩個(gè)詞,交換位置。重復(fù)n次。
隨機(jī)刪除:對(duì)于句子中概率為p的每一個(gè)詞,隨機(jī)刪除。
這些技術(shù)真有效嗎?出乎意料,答案是肯定的。盡管生成的某些句子有點(diǎn)怪異,但是在數(shù)據(jù)集中的引入一些噪聲,對(duì)于訓(xùn)練出一個(gè)健壯的模型來(lái)說(shuō),是極有好處的,特別是數(shù)據(jù)集比較小的時(shí)候。這篇論文指出,在5個(gè)文本分類任務(wù)的對(duì)比測(cè)試中,基于幾乎所有大小的數(shù)據(jù)集,使用EDA都擊敗了常規(guī)訓(xùn)練方法,在訓(xùn)練數(shù)據(jù)集較小的時(shí)候,表現(xiàn)尤其突出。平均來(lái)說(shuō),用EDA訓(xùn)練一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),只需50%的訓(xùn)練數(shù)據(jù),即可達(dá)到常規(guī)方法同等的精度。
文本分類任務(wù)的性能表現(xiàn),相對(duì)于訓(xùn)練集的使用百分比。使用EDA(簡(jiǎn)單數(shù)據(jù)增廣),在小數(shù)據(jù)集時(shí),遠(yuǎn)勝常規(guī)方法。
我知道你在考試這個(gè)問(wèn)題。真的能在做增廣操作的同時(shí),保留其真實(shí)標(biāo)記嗎?我們用畫圖形的方法來(lái)驗(yàn)證一下。
假設(shè)你訓(xùn)練一個(gè)關(guān)于產(chǎn)品的正面、負(fù)面評(píng)價(jià)的RNN,使用常規(guī)和增廣的句子都跑一遍,抽取神經(jīng)網(wǎng)絡(luò)的最后一層,用sTNE畫一個(gè)潛在空間圖:
ProCon數(shù)據(jù)集原生及增廣句子的潛在空間圖
可以看到增廣句子的潛在空間圖緊緊圍繞著原生句子!這表明所生成的增廣句子極大可能的保留了原始句子的標(biāo)記。雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
現(xiàn)在,我們來(lái)看看數(shù)據(jù)增廣技術(shù)中每個(gè)單獨(dú)操作的效果是什么樣的。同義詞替換好理解,但是另外三個(gè)操作真的起作用嗎?我們可以做一個(gè)實(shí)驗(yàn),單獨(dú)做其中一種操作,并代入不同的α值,參數(shù)α大致可理解為“句子中被改變的單詞的百分比”:
在不同大小的數(shù)據(jù)集下,對(duì)比其它五種文本分類方法,EDA操作的平均性能增益。參數(shù)α大致可理解為“句子中被每種增廣操作改變的單詞的百分比”。SR:同義詞替換。RI:隨機(jī)插入。RS:隨機(jī)交換。RD:隨機(jī)刪除。
你能看到,在小數(shù)據(jù)集時(shí),性能增益非常大,達(dá)到大約2-3%,數(shù)據(jù)集大的時(shí)候,增益變?。▇1%)。但是,各項(xiàng)操作綜合起來(lái),如果設(shè)置的增廣參數(shù)合理(句子中改變的單詞不超過(guò)四分之一),能使訓(xùn)練出的模型更健壯。
最后,對(duì)于一個(gè)真實(shí)句子,我們應(yīng)該增廣出多少句子呢?答案取決于你的數(shù)據(jù)集的大小。如果你的數(shù)據(jù)集很小,很可能會(huì)出現(xiàn)過(guò)擬合,此時(shí)你應(yīng)該生成多一些的增廣句子。如果數(shù)據(jù)集比較大,增加太多的增廣句子,意義不大,因?yàn)樵械臄?shù)據(jù)已經(jīng)能訓(xùn)練出一個(gè)好的模型了。這個(gè)圖表顯示了相對(duì)于每個(gè)原生句子生成的增廣句子的數(shù)量的性能增益:
不同大小的數(shù)據(jù)集下全部五種文本分類任務(wù)的EDA平均性能增益。n_aug表示每原生句子生成的增廣句子的數(shù)量。
我們已經(jīng)演示了在文本分類中,簡(jiǎn)單數(shù)據(jù)增廣能顯著提升性能。如果你正用小數(shù)據(jù)集訓(xùn)練一個(gè)文本分類器,并想取得更好的效果,請(qǐng)?jiān)谀P椭芯幊虒?shí)現(xiàn)這些操作,或者從Github中下載EDA代碼。更多詳情請(qǐng)查看原文。
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?
點(diǎn)擊【EDA:最簡(jiǎn)單的自然語(yǔ)言處理數(shù)據(jù)增廣方法】即可訪問(wèn):
https://ai.yanxishe.com/page/TextTranslation/1644
AI研習(xí)社今日推薦:2019 最新斯坦福 CS224nNLP 課程
自然語(yǔ)言處理(NLP)是信息時(shí)代最重要的技術(shù)之一,也是人工智能的關(guān)鍵部分。NLP的應(yīng)用無(wú)處不在,因?yàn)槿藗儙缀跤谜Z(yǔ)言進(jìn)行交流:網(wǎng)絡(luò)搜索,廣告,電子郵件,客戶服務(wù),語(yǔ)言翻譯,醫(yī)學(xué)報(bào)告等。近年來(lái),深度學(xué)習(xí)方法在許多不同的NLP任務(wù)中獲得了非常高的性能,使用單個(gè)端到端神經(jīng)模型,不需要傳統(tǒng)的,任務(wù)特定的特征工程。在本課程中,學(xué)生將深入了解NLP深度學(xué)習(xí)的前沿研究。
課程鏈接:https://ai.yanxishe.com/page/groupDetail/59
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。