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