不要浪费没有标注的数据!超强文本半监督方法MixText来袭!
点击上方,选择星标或置顶,每天给你送干货!
文 | JayLou娄杰
源 | 高能AI
把没有标注的数据利用起来!不浪费未标注数据,是算法工程师的一种“必备技能”!
低资源少样本NLP问题是JayJay比较关注的一个方向,说白了就是一个问题:标注样本少怎么办?而半监督学习就是解决这一问题的一个重要手段。
半监督学习在CV领域早已经“大显身手”,而在NLP领域的应用却不太多。此外,随着BERT等预训练模型的强大,本质上也缓解了少样本问题。而BERT如果能和其他机器学习方法(如:半监督学习 或 主动学习 等)结合起来,或许少样本问题的增益会更加明显。
本文JayJay介绍一篇来自ACL20的paper《MixText: Linguistically-Informed Interpolation of Hidden Space for Semi-Supervised Text Classification》。
论文下载地址:https://arxiv.org/pdf/2004.12239
论文开源地址:https://github.com/GT-SALT/MixText
MixText主要针对的是半监督文本分类场景,其主要的亮点有:
提出一种全新文本增强方式——TMix,在隐式空间插值,生成全新样本。
对未标注样本进行低熵预测,并与标注样本混合进行TMix。MixText可以挖掘句子之间的隐式关系,并在学习标注样本的同时利用无标注样本的信息。
超越预训练模型和其他半监督方法, 在少样本场景下表现卓越!
本文的组织结构为:
1、回顾:半监督文本分类有哪些方法?
数据为王,数据是深度学习时代的“煤油电”。虽然标注数据获取昂贵,但半监督学习可以同时标注数据和未标注数据,而未标注数据通常很容易得到。
总的看,半监督文本分类可分为以下4种:
变分自编码VAE:通过重构句子,并使用从重构中学到的潜在变量来预测句子标签;
自训练:通过self-training的方式,让模型在未标注数据上生成高置信度的标签;
一致性训练:通过 对抗噪声 或者 数据增强 的方式对未标注数据进行一致性训练;
微调预训练模型:在大规模无标注数据上进行预训练,在下游标注数据上微调;
也许你会问,一致性训练是啥?我们这里补充介绍2种半监督深度学习利用未标注数据的训练方式:
1、熵最小化:根据半监督学习的Cluster假设,决策边界应该尽可能地通过数据较为稀疏的地方(低密度区),以能够避免把密集的样本数据点分到决策边界的两侧。也就是模型通过对未标记数据预测后要作出低熵预测,即熵最小化:
2、一致性训练:对于未标记数据,希望模型在其输入受到扰动时产生相同的输出分布。即:
上述介绍的4种半监督文本分类方式有一个不足之处:就是分开利用标注数据和未标注数据,没有在二者之间直接建立联系。大多数半监督模型仍然会在小标注样本上过拟合。
2、TMix:新颖的文本数据增强方式
Mixup是图像领域常见的一种数据增强方式,其方式非常简单,如上图所示:可直接在像素级别上进行插值,公式如下(其中为图像输入,为标签one-hot向量):
由于文本的输入是离散的,因此不能直接输入层直接进行Mixup。所以作者提出了一种在隐空间进行插值的方法——TMix,如下图所示。
TMix理解起来也是相当简单,其在BERT编码层进行隐空间插值,相比于直接在输入层进行Mixup,TMix的数据增强的空间范围更加广阔。
需要特别指出的是,从Beta分布进行采样得到:
3、MixText的计算流程
MixText的计算流程如上图所示,其共分为三步:
第1步:对未标注数据进行增强:采用未标注数据采取回译方式进行次增强生成;
第2步:对未标注数据进行标签预测:将原始未标注数据和增强后的未标注数据一同喂入到当前模型中,通过平均加权的方式对未标注数据进行预测:
由于预测出的“伪标签”分布相对平坦,论文也采取了Sharpen操作:使得“伪”标签熵更低,即猫狗分类中,要么百分之九十多是猫,要么百分之九十多是狗。Sharpen操作在CV中也应用很广泛啦:
第3步:对标注数据和未标注数据一同进行TMix:将所有数据(有标注,原始未标注,增强后的未标注)混合在一起生成,然后随机选择2个样本和进行TMix,然后通过KL散度计算损失:
当来源不同时,上述损失代表不同的意义:
当x来自标注数据时,主要利用信息来自有标注数据,因此模型损失为有监督损失。
当x来自未标注数据时,主要利用信息来自未标注数据,因此模型损失为一致性训练损失。
JayJay的一个小疑问:主要信息来源于 标注数据 还是 未标注数据,其实主要应该取决于TMix的值是多少,论文这里描述似乎不太恰当。
值得注意的是:在CV领域论文MixMatch[1]中,数值大部分落在0或1附近,因此其主要利用来自而不是。
4、MixText表现如何?
论文最后在4个数据集上,将MixText与BERT和其他半监督方法进行了对比(如上图),可以看出:
MixText在各个数据集上超越了之前的半监督SOTA——谷歌的UDA方法;
MixText在不同标注数据量均取得最高指标,标注数据越少,指标增益越明显;
仅仅利用标注数据的TMix方法也超越了BERT。
此外,作者还对比在仅有10条标注数据时、利用不同的未标注数据量时MixText的表现,如上图所示:随着未标注数据的增加,指标也不断提升!
总结
本文介绍的MixText展示了最强的半监督分类性能!其不仅仅合并了未标记数据,而且通过TMix建立了标注数据和未标注数据之间的隐式关系,同时对未标注数据也有较好的标签预测能力。
在小样本场景下,通过MixText充分利用大量的未标注数据,可以带来显著的指标增益!此外,一般情况下,半监督学习只会增加训练时间,而不会增加推断时间哦
因此,NLPer:不要浪费你的未标注数据,赶紧利用、操练起来吧!
说个正事哈
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
专辑 | NLP论文解读
专辑 | 情感分析
整理不易,还望给个在看!
参考资料
[1]
MixMatch: A Holistic Approach to Semi-Supervised Learning: https://www.sciencedirect.com/science/article/abs/pii/S09574174https://arxiv.org/pdf/1905.02249.pdf
不要浪费没有标注的数据!超强文本半监督方法MixText来袭!相关推荐
- 超强文本半监督方法MixText
低资源少样本NLP问题是JayJay比较关注的一个方向,说白了就是一个问题:标注样本少怎么办?而半监督学习就是解决这一问题的一个重要手段. 半监督学习在CV领域早已经"大显身手", ...
- 【论文解读 ACL 2020 | MixText】Linguistically-Informed Interpolation of Hidden Space for 半监督文本分类
论文题目:Linguistically-Informed Interpolation of Hidden Space for Semi-Supervised Text Classification 论 ...
- 用于半监督语义分割的基于掩码的数据增强
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...
- 医学影像半监督分割--基于数据扰动
从医学影像中分割出相应的组织,在临床应用中起着至关重要的作用.近年来,深度学习在在图像分割方面获得了巨大的成功,第一个图像分割的网络就是经典的U-Net模型,后续的图像分割的网络基本都是在此基础上进行 ...
- 数据标注基础知识:文本数据标注的类型及应用场景
目录 一.文本数据标注的类型 二.文本数据标注的基本流程 三.文本数据标注应用场景 (1)新零售行业: (2)客服行业: (3)广告行业: (4)金融行业 自然语言处理是指用计算机对自然语言信息进行处 ...
- NLP实战-基于弱标注数据的文本分类
目录 分析现有数据 解决方案 初始语料集构建 特征选择过滤语料 1.词频逆文档评率 2.信息增益 3.卡方检验 训练模型 缺失标签数据处理 总结 最近在做CSDN文库标签的分类,文库的数据比博客数据要 ...
- 【Linux 笔记】Linux 基本操作 - 04. 利用SRA数据实践文本处理
[Linux 笔记]Linux 基本操作 - 04. 利用SRA数据实践文本处理 10. 文本处理实践 基本操作 grep 筛选数据(行) cut 和 awk 操作数据(列) sort 常用参数总结 ...
- 达观数据:文本大数据的机器学习自动分类方法
随着互联网技术的迅速发展与普及,如何对浩如烟海的数据进行分类.组织和管理,已经成为一个具有重要用途的研究课题.而在这些数据中,文本数据又是数量最大的一类.文本分类是指在给定分类体系下,根据文本内容自动 ...
- 基于结构化数据的文本生成:非严格对齐生成任务及动态轻量的GCN生成模型
作者|邴立东.程丽颖.付子豪.张琰等 单位|阿里巴巴达摩院.香港中文大学等 摘要 基于结构化数据生成文本(data-to-text)的任务旨在生成人类可读的文本来直观地描述给定的结构化数据.然而,目前 ...
- 基于主动学习算法减少人工标注量,提升文本标注效率的方案探究
基于主动学习算法减少人工标注量,提升文本标注效率的方案探究 阅读 451 收藏 23 2018-06-26 原文链接:yq.aliyun.com OPPO技术开放日第三期,未来的探索 · AI& ...
最新文章
- Spring 捕捉校验参数异常并统一处理
- 12306订票候补是个坑_加30元就能抢到火车票?12306这个功能更靠谱!今起可买除夕火车票,抢票高峰来了...
- java 反查域名_C段查询雏形之在Java中反查一个IP上的所有域名(旁站查询)
- ADO.NET Entity Framework 深入分析, Part 5
- 东北大学计算机 大一物理考试题,东北大学大学物理期末考题及答案Word版
- MATLAB字符串和ASCII码的转换
- 程序员面试金典 - 面试题 05.01. 插入(位运算)
- @requestbody和@requestparam作用
- ECMAScript 6中的Set和Map数据结构
- 一位JAVA程序员的七夕情书——致未来的另一半
- 微信小程序------开发测试
- Win10安装Ruby
- 构建WebIM聊天程序
- Java类的声明详解
- ddos应急处理_DDOS攻击应急响应预案
- html页面批量打印EMS快递单,如何批量打印快递单/电子面单?
- 陆琪:年薪十万凭什么不能开…
- 【Vegas原创】“光驱无法访问,函数不正确”解决方法
- android 获取build,分析,读取 android build.prop
- PDF文件不能编辑,有什么办法能够解决?
热门文章
- Hive中数据的导入与导出
- [Swift]LeetCode229. 求众数 II | Majority Element II
- linux shell学习-1
- numpy提供的快速的元素级数组函数
- python基础(set)补充
- codeforces gym 100187M Heaviside Function
- DotNetBar 5.9 with Office 2007 style controls Released,Are you ready? cracked perfectly!
- 【vscode】vscode + vue项目实战记录
- 【react】---组件传值的介绍
- Linux命令行操作基础练习