訓練機器學習或深度學習模型時,良好的數據往往是影響模型的效果最重要的因素之壹。而數據不足時數據增強是壹個常用的方法。
數據增強的方法可以作為我們訓練nlp模型時壹個快速改善 數據不平衡 或 數據缺失 的等問題。
1,增加訓練的數據量,提高模型的泛化能力
2,增加噪聲數據,提升模型的魯棒性
現有NLP的Data Augmentation大致有兩條思路,
(1) 同義詞替換(SR: Synonyms Replace): 不考慮stopwords,在句子中隨機抽取n個詞,然後從同義詞詞典中隨機抽取同義詞,並進行替換。
Eg: “我非常喜歡這部電影” —> “我非常喜歡這個影片”,句子仍具有相同的含義,很有可能具有相同的標簽。
(2) 隨機插入(RI: Randomly Insert): 不考慮stopwords,隨機抽取壹個詞,然後在該詞的同義詞集合中隨機選擇壹個,插入原句子中的隨機位置。該過程可以重復n次。
Eg : “我非常喜歡這部電影” —> “愛我非常喜歡這部影片”。
(3) 隨機交換(RS: Randomly Swap): 句子中,隨機選擇兩個詞,位置交換。該過程可以重復n次。
Eg: “如何評價 2017 知乎看山杯機器學習比賽?” —> “2017 機器學習?如何比賽知乎評價看山杯”。
(4) 隨機刪除(RD: Randomly Delete): 句子中的每個詞,以概率p隨機刪除。
Eg: “如何評價 2017 知乎看山杯機器學習比賽?" —> “如何 2017 看山杯機器學習 ”。
回翻方法中,我們用機器翻譯把壹段中文翻譯成另壹種語言,然後再翻譯回中文。
Eg: “周傑倫是壹位華語樂壇的實力唱將,他的專輯賣遍了全球。
" —>“Jay Chou is a strength singer in the Chinese music scene, his albums are sold all over the world.
”—>“周傑倫是中國音樂界的優秀歌手,他的專輯暢銷全世界。”
這個方法已經成功的被用在Kaggle惡意評論分類競賽中。反向翻譯是NLP在機器翻譯中經常使用的壹個數據增強的方法,其本質就是 快速產生壹些翻譯結果達到增加數據的目的 。
回譯的方法往往能 夠增加文本數據的多樣性 ,相比替換詞來說,有時可以改變句法結構等,並保留語義信息。但是,回譯的方法產生的數據依賴於 翻譯的質量 ,大多數出現的翻譯結果可能並不那麽準確。
采用深度學習模型的方法主要為 生成和原數據相類似的數據 。
(1)增加的數據要保證和原數據壹致的語義信息。
(2)增加的數據需要多樣化。
抄自原文: