为什么要增加训练数据?
机器学习中的数据增强主要是通过人工构建数据,增加训练集的大小,使模型达到更好的泛化特性。这是机器学习中广泛研究的研究领域。
数据增强的主要作用如下:
- 增加了模型的概括功能;
- 对不平衡数据集非常有用;
- 标记工作可以尽量减少;
- 提高对抗性攻击的强度;
一般来说,文本分类中的数据增强会产生更好的模型,因为模型在训练过程中会看到更多的语言模型。但现在这种数据增强是通过大规模预训练语言模型的迁移学习来管理的,因为这些模型对我们使用的各种转换并不敏感。事实上,数据增强方法只有在创建以前从未见过的新语言模型时才有益。
文本分类中数据增强方法的分类
本文从论文中整理了文本分类的数据增强方法《 A Survey on Data Augmentation for Text Classification》。一般来说,我们会结合几种数据增强方法来实现更多样化的例子。
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-sRy3IWUI-1651714847137)(http://images.overfit.cn/upload/20220505/0187f5593f8646a5bf5aeeeab31424eb.png)]
一般来说,有四种类型的文本数据增强:字符级、单词级、短语和句子级、文档级。
字符级
这种类型的数据增强处理是通过改变现有的训练样本单个字符来创建新的训练样本。主要包括:随机字符删除、交换和插入。以及基于规则的转换,如使用正则表达式(如插入拼写错误、数据更改、实体名称和缩写)。
单词级
这种类型的数据增强通常会改变单个训练样本的单词。
- 添加噪声:使用 Unigram Noising在一定的概率下,输入数据中的单词被另一个单词替换。或者通过空白噪声,单词被 _替换。其它噪声技术是随机单词交换和删除。
- 同义词替代:这是一种非常流行的形式。同义词替代通常使用WordNet等现有的知识库来进行。
- 嵌入式替换:类似于同义词替换,嵌入式替换方法可以通过搜索找到适合上下文的单词。为了实现这一目标,单词被投射到一个潜在的表达空间中,类似于上下文的单词在这个空间中更紧密,然后近这个空间的单词替换。
- 语言模型替换:语言模型可以用来过滤不合适的单词,根据之前或周围的上下文来预测背后或缺失的单词。语言模型支持更本地化的替换,而不是考虑嵌入嵌入替换。
短语和句子级
通过改变句子结构,创建新的训练样本来增强这类数据。
- 基于结构的数据扩展方法可以利用某些结构特性或组件生成修改过的文本。这种结构化可以基于语法形式,如依赖语法或POS-TAG。例如,一些句子可以通过专注于主语和宾语来裁剪。
- 内插法通过替换具有相同标签的训练示例的子结构来工作。例如,一个例子中的句子结构a [DT] cake [NN]”(其中[DT]和[NN]作为英语词性标签,分别是限定词和单数名词)可以替换为另一个例子的新句子结构a [DT] dog [NN]”。
文档级
通过更改文档中的整个句子来创建这种类型的数据增强新的训练样本。
往返翻译:往返翻译将 将单词、短语、句子或文档翻译成另一种语言(正翻译),然后转换回源语言(反翻译)。
类似的生成:随着语言生成能力的显著提高,当前的模型可以通过合并信息创建非常多样化的文本。文档级数据增强的生成方法包括语言模型训练(VAEs、rnn、transformer),在训练数据中可以生成类似的文档。
特征空间中的数据增强
特征空间中的数据增强处理以其特征形式将输入数据转换为输入的潜在向量表示。特征空间中有两种数据增强:
噪声:与数据一样,噪声也可以在特征空间中引入。例如,随机噪声预特征可以乘和加。
插值:将两句话的隐藏状态进行插值生成一个新的句子,包含原句和原句的意思。
总结
本文总结了适合文本领域的数据增强方法。数据增强有助于实现许多目标,包括标准化、最小化标签工作量、减少使用真实数据(特别是在隐私敏感领域)、平衡和不平衡的数据集,以及增加对抗攻击的强度。
除了将数据广泛应用于数据外,它还可以应用于特征空间。最后,如果您想查看它 A Survey on Data Augmentation for Text Classification本文可查看以下连接
https://avoid.overfit.cn/post/91b32a0b21ea4444834b1873027b00da
作者:Fabio Chiusano