NLP数据增强方法-(一)

2022-01-04 08:26:27 浏览数 (1)

中文NLP数据增强工具:https://github.com/InsaneLife/NLPDataAugmentation

分类的增强方法

EDA

EDA-Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks

提出了数据增强方法:

  • synonym replacement(SR):随机选取句子中n个非停用词的词语。对于每个词语随机选取它的一个同义词替换该词语。
  • random insertion(RI):随机选取句子中的一个非停用词的词语,随机选取这个词语的一个近义词,将近义词随机插入到句子中,做n次。
  • random swap(RS):随机选取两个词语,交换他们的位置,做n次。
  • random deletion(RD):对于句子中的每个词语,以概率p选择删除。

问题:对于每个句子,短句相比于长句,吸收同样的n个词噪音,更可能导致类别标签发生变化。

原文是长句具备更好的噪声吸收能力。

因此引入了补偿机制:在SR、RI、RS中,对于每句话词语变化个数n,

n=alpha l

其中

l

是句子的长度,

alpha

是一个超参数,表示句子中需要被改变的词语的百分比。

  • 个人认为SR、RI、RS、RD很可能会改变句子的标签,其实确定标签没有改变也是非常重要。

实验

作者在五个分类数据集上,实验对比了加入EDA的四个方法前后带来的提升。作者将数据集分别在0,20%,40%,60%,80,100%上进行了实验,结果自然是数据越少增强带来的提升越大,到100%带来的提升不大,这个倒是意料之中,比较有意思的是作者还进一步进行了实验。

EDA是否改变了标签?

通过原始数据训练一个RNN模型,然后在测试集中每个句子通过EDA获得9个增强的句子,输入到模型中,获取其最后一层的向量输出,通过t-SNE算法将向量转为2维表达并绘制2D图形,发现增强的句子与原始句子的周围且距离很近,因此认为其标签并未改变。如图

针对分类问题,评估类别标签是否变化,使用此方法讲得通,但是是建立在一个假设基础上:即训练的分类RNN模型的向量表达是准确的,而分类模型在原始的小批量数据上训练而成,本身就是不够鲁棒的(论文本身要证明的就是这一点)。

个人感觉众包review更为可信,对于论文发表来说没啥技术含量且冗长,而且也与数据增强初衷违背。 但是NER问题的增强EDA可能不太适合使用,槽位值很可能因为随机替换之类的操作而改变。

同时作者还是对前文中的参数

alpha

在各个量级数据集上进行了实验,给出了如下建议:

N t r a i n N_{train} Ntrain​

α alpha α

n a u g n_{aug} naug​

500

0.05

16

2000

0.05

8

5000

0.1

4

More

0.1

4

N_{train}
alpha
n_{aug}

5000.051620000.05850000.14More0.14

更新中。。。 中文NLP数据增强工具:https://github.com/InsaneLife/NLPDataAugmentation

reference

  • EDA-Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks
  • https://mp.weixin.qq.com/s/p_aZ3jMwZx7FeWoJJhDDhA

0 人点赞