IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【笔记】NLP 数据增强(二) -> 正文阅读

[人工智能]【笔记】NLP 数据增强(二)

写在前面

打比赛看到有人总结文本增强的方法里提到了这两篇论文。以下是个人的总结记录。

1 EDA

《EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks》

对四种数据增强方法进行实验效果的对比,四种NLP数据增强方法:

  • 同义词替换(SR):选择一个词,用同义词替换。
  • 随机插入(RI):在句子中插入词语。
  • 随机交换(RS):选择句子中的一对词语交换。
  • 随机删除(RD):选择一个词删除。

文章在SST-2、CR、SUBJ、TREC、PC五个文本分类数据集上进行了实验。实验主要包括:

  • 不同比例的数据进行数据增强的消融实验

    结果显示数据增强方法对小数据集(约占全量数据的20%以下)的提升更为明显,50%以上的数据提升很有限。

  • 增强的数据是否保持了标签的语义

    对于这个问题,论文可视化(t-SNE)了模型输出最后一层的向量,通过和原数据的投影对比发现。增强生成的数据和原数据的向量投影分布近似,由此说明增强的有效性,即保持的正确的语义信息。

  • 四种增强方法各自的效果,以及寻找数据增强的最优参数

    上面的实验结论的四种增强方法综合的结果。

    • 四种增强方法单独实验

      随机插入(RI)和交换(RS)的效果差不多,同义词替换(SR)在大量样本数下提升不明显。随机删除(RD)在小样本数据量(约500条)下提升是四种方法中最好的,但大样本数下效果不好。具体可以看论文的实验图表。

    • 数据增强的参数

      参数涉及:增强(改动)原文本的比例、数据集大小、数据增强数目。

      1)首先对原文本改动的比例不能太大,5%-10%的比例,数据规模越小,改动要调小一些。2)其次数据集越小,数据增强效果越明显。3)对于小样本数据集,数据增强数目可以设置的多一些,而大样本要减少数据集扩充的数目,调小增强的样本条数。

论文代码:jasonwei20/eda_nlp: Data augmentation for NLP, presented at EMNLP 2019 (github.com)

2 AEDA

《AEDA: An Easier Data Augmentation Technique for Text Classification》EMNLP 2021 Findings

AEDA是EDA之后的工作,也和EDA进行了对比。AEDA比EDA更简单,增强方法是向句中插入标点。

增强过程:

  • 设置插入次数:从 [1, 1/3 length of text] 范围内随机选择执行插入的次数;
  • 随机选择插入标点:从 {“.”, “;”, “?”, “:”, “!”, “,”} 六个标点集合中选择。

文章同样在文本分类数据集:SST-2、CR、SUBJ、TREC、PC上进行了实验。实验主要包括:

  • 数据增强数目

    和EDA论文得到的结论类似,小样本数据集(约500条)增强数目更多收益更大,论文中增强16条要比 {1,2,4,8}条都要好一些。而大样本数据集(5000条及以上)中,增强 {1,2,4} 收益会更好一些。

  • 随机种子的影响

    省略

  • AEDA对深度模型的提高

    EDA和前面的AEDA实验是基于RNN/CNN模型的。AEDA在Bert分类任务上进行实验。论文结果是AEDA也支持对BERT的提升,作为对比EDA反而带来负收益。

论文代码:aeda_nlp/aeda.py at master · akkarimi/aeda_nlp (github.com)

我对AEDA方法的实验

我拿bert-base-chinese简单地在CLUE的iflytek数据集(多分类任务,acc)上做了下实验,看下效果。

full0.10.5
None0.5980.3620.557
20.593(-0.8%)0.511(+41.1%)0.579(+3.94%)

表格列是数据集划分:全体数据full,比例0.1,比例0.5。划分时我按标签类别对train集进行了随机抽样。dev和test都没换,以及用的model_pytorch里的代码。

表格行是AEDA论文代码的增强方法,对比了不增强None和对每条样本增强2条文本,保持增强的标签。然后,论文方法用的标点候选集是英文的。我也没有针对中文数据引入中文标点,或是更多标点。但是就结果上已经能看到一些效果了。

结果上看,和论文反映的规律差不多:小数据集下分数提升比较明显,可以看到:10%和50%比例的数据都得到了不同程度的提升(+41.1%和+3.94%),但在整个train上做增强反而降低了acc。

总结

EDA的方法我也在一些比赛中用过,我感觉一定要控制增强的比例,以及对原文改动的比例。这两个影响比较大,且很有可能引入噪声,导致负收益。

AEDA看完有点迷糊啊,感觉这个随机标签插入也能带来收益,好玄学。理论上去理解的话,就是相比EDA方法,AEDA引入的标点对原文本的语义信息修改不大,更多的是文本上增强加了一些噪声(改动了位置)。

个人使用看来对抗训练还是比较稳定的提点trick。像是SimCSE论文中使用两次dropout,也是对于向量层面的噪声操作会比较鲁棒一些。对原始文本的改动很有可能引入噪声,反而需要更加注意生成的文本。不过论文中也展示了,实验结果对于小样本的提升会更加明显一点,我没有实验过。EDA我之前是在短文本匹配任务场景试过,不是很好用,很大概率是引入噪声太大。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:48:33  更:2022-07-03 10:52:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:47:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码