点击上方,选择星标或置顶,每天给你送干货!
文 | 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:新颖的文本数据增强方式
![](https://i-blog.csdnimg.cn/blog_migrate/3fb67021e6d7384df9bbad33339077d8.png)
Mixup是图像领域常见的一种数据增强方式,其方式非常简单,如上图所示:可直接在像素级别上进行插值,公式如下(其中 为图像输入, 为标签one-hot向量):
由于文本的输入是离散的,因此不能直接输入层直接进行Mixup。所以作者提出了一种在隐空间进行插值的方法——TMix,如下图所示。
TMix理解起来也是相当简单,其在BERT编码层进行隐空间插值,相比于直接在输入层进行Mixup,TMix的数据增强的空间范围更加广阔。
需要特别指出的是,
从Beta分布进行采样得到:
3、MixText的计算流程
![](https://i-blog.csdnimg.cn/blog_migrate/789311878a8cb1c9df82ca528eff93e4.png)
MixText的计算流程如上图所示,其共分为三步:
第1步:对未标注数据进行增强:采用未标注数据 采取回译方式进行 次增强生成 ;
第2步:对未标注数据进行标签预测:将原始未标注数据 和增强后的未标注数据 一同喂入到当前模型中,通过平均加权的方式对未标注数据进行预测:
![](https://i-blog.csdnimg.cn/blog_migrate/1dc71652f9cf16713e1c4eb23869e6d9.png)
由于预测出的“伪标签”分布相对平坦,论文也采取了Sharpen操作:使得“伪”标签熵更低,即猫狗分类中,要么百分之九十多是猫,要么百分之九十多是狗。Sharpen操作在CV中也应用很广泛啦:
第3步:对标注数据和未标注数据一同进行TMix:将所有数据(有标注 ,原始未标注 ,增强后的未标注 )混合在一起生成 ,然后随机选择2个样本 和 进行TMix,然后通过KL散度计算损失:
![](https://i-blog.csdnimg.cn/blog_migrate/75dd9af1232b09e548bbe2ac42620cd7.png)
当 来源不同时,上述损失代表不同的意义:
当x来自标注数据 时,主要利用信息来自有标注数据,因此模型损失为有监督损失。
当x来自未标注数据 时,主要利用信息来自未标注数据,因此模型损失为一致性训练损失。
JayJay的一个小疑问:主要信息来源于 标注数据 还是 未标注数据,其实主要应该取决于TMix的 值是多少,论文这里描述似乎不太恰当。
值得注意的是:在CV领域论文MixMatch[1]中, 数值大部分落在0或1附近,因此其主要利用来自 而不是 。
4、MixText表现如何?
![](https://i-blog.csdnimg.cn/blog_migrate/0dd41861fd0717f3cebd960efaa72545.png)
论文最后在4个数据集上,将MixText与BERT和其他半监督方法进行了对比(如上图),可以看出:
MixText在各个数据集上超越了之前的半监督SOTA——谷歌的UDA方法;
MixText在不同标注数据量均取得最高指标,标注数据越少,指标增益越明显;
仅仅利用标注数据的TMix方法也超越了BERT。
![](https://i-blog.csdnimg.cn/blog_migrate/1528b630f12a2ceda602c097e3cb3eb2.png)
此外,作者还对比在仅有10条标注数据时、利用不同的未标注数据量时MixText的表现,如上图所示:随着未标注数据的增加,指标也不断提升!
总结
本文介绍的MixText展示了最强的半监督分类性能!其不仅仅合并了未标记数据,而且通过TMix建立了标注数据和未标注数据之间的隐式关系,同时对未标注数据也有较好的标签预测能力。
在小样本场景下,通过MixText充分利用大量的未标注数据,可以带来显著的指标增益!此外,一般情况下,半监督学习只会增加训练时间,而不会增加推断时间哦
因此,NLPer:不要浪费你的未标注数据,赶紧利用、操练起来吧!
说个正事哈
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
整理不易,还望给个在看!
参考资料
[1]
MixMatch: A Holistic Approach to Semi-Supervised Learning: https://www.sciencedirect.com/science/article/abs/pii/S09574174https://arxiv.org/pdf/1905.02249.pdf