NLP中的数据增广方式
2021-05-03 本文已影响0人
三方斜阳
数据增广(Data Augmentation)是自动扩充训练数据的一种技术,单纯表示扩大数据规模,深度学习模型需要有大量的标注数据进行支撑。真实应用情景中,经常会出现缺乏标注数据、数据分布不均衡导致模型鲁棒性差、模型性能不佳的问题,而数据增广能在一定程度上解决这些问题。
主要有以下几种方式:
1. 单词替换:
- 基于近义词表的替换:
使用近义词表,将句子中的部分单词利用其近义词替代,使增广数据尽量贴合原始语义 - 基于词向量的替换:
采用预训练好的词向量,如Glove、Word2Vec、FastText等,用向量空间中距离原始单词最近的词将其代替。 - 基于掩码语言模型的替换:
将文本中的部分单词用[MASK]替换,用训练好的掩码语言模型,如 bert , RoBERTa 等对该位置的单词进行预测,补全句子信息。
2. 回译:
指原始文档通过翻译变为其他语言的文本,然后再被翻译回来得到原语言的新文本。与单词替换的方法类似,回译产生的增广数据与原始数据的语义尽量相同。不同的是,回译不直接基于同义词关系对单个单词逐一替换,而是通过生成的方式复述句子,达到了数据扩充的目的。
3. 加入噪声:
- 文本形式相关的噪声:
- 单词级别的简单模式匹配变换:
Be动词、情态动词、否定等缩写和原型间的转换属于简单模式匹配变换 - 句子级别的语法树变换:
该方法首先得到整个原始句子的依存树,并基于依存树使用规则对句子进行转换,来得到语法正确、语义不变的增广数据。相比于原始数据,该方法产生的增广数据携带有句式相关的噪声。如利用规则替换原句的主语宾语、将主动语态变为被动语态等。
- 文本顺序相关的噪声:
- 单词级别的文本顺序交换:
该方法是指句子中不同单词之间进行顺序交换,如在句子中随机选择两个单词并交换位置,重复n次。其中,随机交换的次数n与句子长度l成正比。 - 句子级别的文本顺序交换:
该方法是指篇章中不同句子之间进行顺序交换。
- 文本语义相关的噪声:
这类方法通常指通过单词或句子级别的删除、插入、替换等操作,为原始语料带入语义相关的噪声。
- 基于随机删除的文本语义噪声:
该方法包括“单词级”和“句子级”两种层次的删除操作,分别表示在句子中随机删除单词和在篇章中随机删除句子。 - 基于随机插入的文本语义噪声:
例如:选择其中一个非停用词,通过WordNet得到该单词的任意一个近义词,并将近义词插入句子中的任意位置,重复n次。其中,次数n与句子长度l成正比,即n=αl。 - 基于随机替换的文本语义噪声:
例如:保留句中对分类结果影响较大的keywords,同时将其他普通单词随机替换为整个词表中的非keywords单词。该工作使用TF-IDF值评估单词重要性,该单词被替换的概率与其重要性负相关。在替换过程中,使用整个词表中的非keywords单词替换该原始单词:使用频率和IDF值计算词表中每一个单词的重要性,归一化后作为使用该单词替换的概率。
4. 基于同标签样本的句子级文本语义噪声:
- 基于随机插入的文本语义噪声:
例如:由于具有相同指控的案件在其文书中有很多相似的句子,在法律文书分类的任务中使用句子级随机插入的方法,即随机选择带有相同标签的其他样本中的句子插入原始样本,得到新的数据。 - 基于随机替换的文本语义噪声:
例如:在推文情感分析的任务中,将标签相同的推文分别分成两半,给定一个原始的前半段推文,在后半段推文的集合中随机采样,并与该原始前半段推文拼接,得到新数据。虽然这样产生的数据可能包括不完整的句子,相比于单个单词,它仍携带相对完整的语义和情感极性。
5. 生成式模型:
根据任务相关的启发式信息训练模型,再有针对性地生成增广数据。与基于同标签样本的句子级文本语义噪声方法类似的是,生成式模型同样引入标签信息,来保证生成的增广数据的标签不变。
6. Mixup方法:
运用前面5种方法进行数据增广并投入任务训练可分为三步:(1)人为指定增广规则或通过训练得到增广模型;(2)利用固定的规则或模型对原始文本做数据增广,得到自然语言形式的增广数据;(3)将原始数据和增广数据一起输入任务模型进行训练。与之不同的是,Mixup方法可以将三个步骤合在一起:直接将原始数据输入任务模型,增广步骤随着训练过程同步进行,得到的词向量形式的增广数据直接与原始数据一起参与模型的训练。
这篇笔记来自:
赛尔笔记 | 自然语言处理领域的数据增广方法
作者:哈工大SCIR 李博涵