数据增强技术
当小数据情况下,一定程度上Data augmentation会提升模型的预测效果,而在NLP领域,数据扩增技术主要可以归纳为如下两种:
- 对原始句子进行编辑(替换,删除,插入等)操作,生成新的句子
- 利用generative model对原始句子encode再decode生成新的句子
以上两种方案,分别选取了一篇代表论文进行阐述
对原始句子进行编辑操作的数据扩增
论文:EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks
github:EDA
主要编辑操作如下:
- 同义词替换(synonym replacement):从句子中随机选择n个非停用词,对每一个词随机用它的同义词替换
- 随机插入(random insertion):从句子中随机选择一个词用它同义词去随机插入到句子中,重复n次
- 随机交换(randow swap):从句子中随机选择两个词,交换它们的位置,重复n次
- 随机删除(randow deletion):以概率 p p p随机删除句子中的词
利用generative model生成新句子的数据扩增
论文:Fast Cross-domain Data Augmentation through Neural Sentence Editing
使用generative model生成新句子,达到data augmentation的作用,论文的核心结构图如下:
主要三大部分,如上图所示:
第一部分:对输入句子
x
1
x_1
x1 to
x
3
x_3
x3,用transformer机构进行encode编码生成原始句子的向量表示
第二部分:基于Generating Sentences from a Continuous Space
(VAE)概率模型生成编辑隐向量
z
z
z
第三部分:基于transformer结构(Attention Is All You Need
)对输入句子
x
1
x_1
x1 to
x
3
x_3
x3以及句子的隐向量
z
z
z表示,利用解码器decode生成新句子(
y
1
y_1
y1 to
y
3
y_3
y3)