论文标题:

Neural Semi-supervised Learning for Text Classification Under Large-Scale Pretraining

论文作者:

Zijun Sun, Chun Fan, Xiaofei Sun, Yuxian Meng, Fei Wu, Jiwei Li

论文链接:

https://arxiv.org/pdf/2011.08626.pdf

代码链接:

https://github.com/ShannonAI/Neural-Semi-Supervised-Learning-for-Text-Classification


概述

半监督学习是综合利用标注数据与未标注数据的学习方法。近日,香侬科技研究了如何更有效地结合半监督自训练和预训练,即如何在大规模通用领域预训练的前提下,更好地利用大规模领域内无标注语料与标注语料,从而最大限度地提升模型效果。

这涉及到一系列问题:

  • 在大规模通用语料下训练的模型是否仍然需要在上训练?

  • 如何利用?是像BERT一样预训练,还是用伪标签的自训练方法?

  • 在不同的和条件下,不同的训练方式会有怎样的结果差异?

通过在文本分类任务上的实验,我们发现:

  • 如果有领域内语料,那么模型就不需要再在通用领域语料上预训练;

  • 无论是采用预训练的方式还是自训练的方式,都可以显著提升模型效果;

  • 当领域内标注数据较小的时候,在伪平行数据上训练、再在上微调的方法可以提升更多的效果;当更大的时候,在和上联合训练取得的效果更好。

但无论如何,不管以怎样的方式去预训练自训练,我们都能取得显著更好的文本分类效果,尤其是在小样本的条件下,如在IMDB数据集上,通过有效结合预训练和自训练,仅使用50个标注样本就可以达到93.8%的准确率

更重要的是,本文对大规模通用预训练下的半监督自训练与预训练进行的探索,有助于启发之后在自然语言处理其他领域上,在不同数据条件下、领域条件下设计更高效的半监督学习方法。

不同的预训练/自训练模型

首先,我们将介绍不同的模型训练策略,以研究它们在不同条件下的表现。记是领域内的标注数据,是数据集大小。是领域内的无标注数据,大小为。下面考虑如何利用数据集。

领域内预训练(In-domain Pretraining)

由于是无标注数据,所以一个直接的想法是像BERT那样用掩码预测的方式去做预训练。在上预训练之后,就可以在上微调,用得到的模型进行推理即可。

在用预训练的时候,可以基于一个随机初始化的模型,也可以基于已经在通用语料上预训练的模型,如BERT、RoBERTa等等。我们将在实验部分探究它们的影响。

伪标签自训练(Pseudo-label Self-Training)

除了直接像BERT一样预训练之外,还可以用自训练的方式去使用。首先在上训练一个Teacher模型,然后用它去标注(的一部分),得到一个伪平行数据集,其大小记为,最后再用一个Student模型,在和/或上训练。同领域内预训练,Student模型可以是随机初始化的,也可以是已经预训练的。

现在要考虑的问题是:(1)如何构建;(2)如何用和训练Student模型。

构建

我们采取两种方法构建:

  • ,即把中的所有数据都当成训练数据去做标注,然而这种方法容易引入过多噪音;

  • Top-K:只选取对每一类所得概率最高top-K个样本作为,这样就只考虑Teacher模型最有信心的数据。

训练Student模型

在得到了后,将与原有的一起参与训练Student模型。我们有下述训练方法:

  • Training on ,记为:Student直接在上训练,然后用于推理。这种方法的缺点在于中的干净数据可能会被稀释。

  • Training on  and Fine-tuning on ,记为:Student首先在上训练,然后在上微调,从而避免第一种方法的稀释问题。

  • Training on  and Fine-tuning on ,记为:Student先在上训练,然后再在上微调,这可以在训练阶段更多地利用。

  • Iterative Training:上述过程可以迭代进行,即在训练好Student之后,把它当成新的Teacher,然后构建新的,训练新的Student。这个过程重复次。

实验

在本节中我们将探究上述构建方法、Student训练方法会有怎样的表现差异。我们考虑两个不同的领域:

  • 电影:领域内标注数据集是IMDB Dataset,领域内未标注数据集是3.4M个来自IMDB的影评。为了探究不同数据量情况下的模型效果,我们分别用的10, 20, 50, 100, 1K, 5K, 25K进行实验。

  • 垃圾邮件分类:领域内标注数据集包含800个训练样本与800个测试样本,领域内未标注包含1M个样本。

模型使用RoBERTa_small和RoBERTa_large两种,作为比较,我们还使用了BiLSTM模型。其他实验设置详见原文。

Teacher模型的表现与领域内预训练结果

下图是不同的Teacher训练方法在IMDB和Spam上的结果。Open-domain是在大规模通用语料上预训练(也就是已经预训练好的RoBERTa),In-domain是在上预训练,所有的模型最后都要在上微调。

从结果可以看到,BiLSTM效果最差是在意料之中,其实是只用Open-domain的RoBERTa。令人惊讶的是,In-domain的效果几乎和Open-domain+In-domain完全一致,这说明:当有足够量的领域内未标注数据时,通用领域预训练是没有必要的。

从上图中我们还可以观察到一个有趣的现象:当领域内标注数据很小的时候,领域内预训练可以显著提升最终的结果。换句话说:领域内预训练可以取得更好的小样本学习效果

领域内预训练的影响

但是,上述结论有一个前提:领域内未标注数据足够大。那么,不同的对最终结果有怎样的影响呢?

如下图所示,当的时候,领域内预训练和呈现出明显的正相关关系。

很小的时候,效果差于开放领域预训练,当足够大的时候,领域内预训练就超过了开放领域预训练。这说明:领域内未标注数据的大小对最终结果影响极大,总的趋势是越多越好

自训练结果

上面我们探究了在不同模型、数据情况下领域内预训练的结果,下面我们继续来探究自训练方法的效果。结果如下表所示,从表中我们可以观察到:

  • 几乎在所有的与下,和始终优于;

  • 模型效果随着的增加而增大,当到一定的大小时,增长趋于缓慢;

  • 当较小的时候,表现更好,当较大的时候,表现更好。这是因为当小的时候,模型在上的稀释问题更加严重,需要再用上的微调“矫正”;而大的时候,Teacher模型的预测大部分都是正确的,也即中的噪音减少,如果再在上微调,就会稀释中的“干净样本”。

那么,的大小、的大小会对最终结果有怎样的影响呢?下图是不同的(第一行)与不同的(第二行)对结果的影响。

从第一行可以看到,当比较小的时候,和会有比较好的效果;而当比较大的时候,四个方法的结果都差不多。

从第二行可以看到,当比较小的时候,表现最好,并且随着的增大效果先提升后降低。

这是因为此时当持续增大到一定程度之后,Teacher模型得到的不确定样本就会更多,引入了更多噪声,Student模型的效果就会受到影响。

相反,当足够大的时候,的影响就占据主导,此时增大就不会有损效果。

迭代训练结果

下图是不同的迭代训练的结果。显然,无论迭代多少次,的大小直接决定了模型的效果。从趋势来讲,都是随着迭代次数的增加效果变好,但当超过一定迭代次数后(N=2),效果就不再变化了。

结合领域内预训练和自训练

上面我们分别考察了领域内预训练和自训练的结果,这二者是否可以结合起来进一步提升效果呢?答案是肯定的,而且我们已经在论文自训练 + 预训练 = 更好的自然语言理解模型讲解中阐述了这一点。

下表是结合二者的得到结果。无论是RoBERTa_small还是RoBERTa_large,在领域内预训练的基础上再次使用自训练,就可以显著提升效果,分别提升了+0.5与+0.4,相比Open-domain pretraining提升了+1.1和+1.0。

小结

在这篇文章中,我们综合分析了文本分类任务下不同预训练和自训练方法对结果的影响,通过大量的实验得到了下面三个主要结论:

  • 足量的领域内语料使模型不需要再在通用领域语料上预训练;

  • 无论是采用预训练的方式还是自训练的方式,都可以显著提升模型效果,二者结合可以得到最佳结果;

  • 当领域内标注数据较小的时候,在伪平行数据上训练、再在上微调的方法可以提升更多的效果;当更大的时候,在上联合训练取得的效果更好。

我们发现,预训练和自训练相结合尤其可以在小样本场景下取得突出效果,在IMDB数据集上,仅用50个标注样本就可以实现93.8%的准确率。我们希望本文可以为今后NLP领域更高效的半监督学习方法提供启发。

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

如何兼容自训练与预训练:更高效的半监督文本分类模型相关推荐

  1. 基于协同训练的半监督文本分类算法

    标签: 半监督学习,文本分类 作者:炼己者 --- 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 如果大家觉得格式看着不舒服,也欢迎大家去看我的 ...

  2. 从零开始构建基于textcnn的文本分类模型(上),word2vec向量训练,预训练词向量模型加载,pytorch Dataset、collete_fn、Dataloader转换数据集并行加载

    伴随着bert.transformer模型的提出,文本预训练模型应用于各项NLP任务.文本分类任务是最基础的NLP任务,本文回顾最先采用CNN用于文本分类之一的textcnn模型,意在巩固分词.词向量 ...

  3. R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化

    R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理.构建词袋模型.构建xgboost文本分类模型.基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化 目录

  4. 训练dnn_[预训练语言模型专题] MT-DNN(KD) : 预训练、多任务、知识蒸馏的结合

    本文为预训练语言模型专题系列第八篇 快速传送门 1-4:[萌芽时代].[风起云涌].[文本分类通用技巧].[GPT家族] 5-7:[BERT来临].[浅析BERT代码].[ERNIE合集] 感谢清华大 ...

  5. 训练dnn_[预训练语言模型专题] MTDNN(KD) : 预训练、多任务、知识蒸馏的结合

    本文为预训练语言模型专题系列第八篇 快速传送门  1-4:[萌芽时代].[风起云涌].[文本分类通用技巧] . [GPT家族]5-7:[BERT来临].[浅析BERT代码].[ERNIE合集]感谢清华 ...

  6. 文本分类模型的训练、调优、蒸馏

    目前已经完成的事情 目前有12个模型. 其中BERT的七个变种模型,因为使用的是BERT-base-chinese的预训练模型和词表,所以不要自己做embedding,换上数据集和标签就可以跑 Ber ...

  7. Python 教你训练一个98%准确率的微博抑郁文本分类模型(含数据)

    Paddle是一个比较高级的深度学习开发框架,其内置了许多方便的计算单元可供使用,我们之前写过PaddleHub相关的文章: 1.Python 识别文本情感就这么简单 2.比PS还好用!Python ...

  8. 预、自训练之争:谷歌说预训练虽火,但在标注数据上自训练更有效

    公众号关注 "视学算法" 设为 "星标",重磅干货,第一时间送达! 来源 | 机器之心 预训练是当前计算机视觉领域的主要范式,但何恺明等人先前的研究发现,预训练 ...

  9. 自训练 + 预训练 = 更好的自然语言理解模型

    论文标题: Self-training Improves Pre-training for Natural Language Understanding 论文作者: Jingfei Du, Edoua ...

最新文章

  1. OSNIT信息收集分析框架OSRFramework
  2. 怎么把图片上的字盖住_吃完大闸蟹怎么去腥?实验了 12 种方法,第 1 名居然是.........
  3. mysql 存储过程调用权限消失的问题,恢复权限
  4. JS收集:限制输入搜索串
  5. Linux内核分析(三)----初识linux内存管理子系统
  6. Java中的一些坑,汇总篇(2万字)
  7. 2020中国数字化转型优秀案例征集
  8. 学编程决不可心浮气燥(转)
  9. 【Chromium中文文档】线程
  10. 计算机硬件故障解决方法,计算机硬件故障分析与解决方法
  11. Day77 Java框架 SSH案例_ERP(十一)_CXF框架_红日物流BOS系统_ERP物流信息管理
  12. boobooke视频汇总
  13. 【毕设参考】ESP32 + HaaS Python打造可以统计流量的自动感应门系统
  14. ESP32-CAM MicroPython配新板出现的PSRAM问题
  15. R作图配色---颜色提取及色彩搭配
  16. sql中的日期和字符串的转化
  17. Linux机器rpm安装vsftpd
  18. 鸿蒙系统可以跟ios媲美吗,华为鸿蒙三年媲美苹果iOS?技术上问题不大,生态才是真正考验...
  19. 2022年3月14日-2022年3月19日(按照方案A,本周10小时,合计1219小时,剩8781小时。)
  20. TPshop项目-功能测试(4)

热门文章

  1. Linux安装Elasticsearch-head插件
  2. Redis集群搭建-韩国庆
  3. LeetCode Subarray Sum Equals K
  4. Ubuntu caffe 测试matlab接口
  5. UT源码_105032014033
  6. 数据库常忽略小问题汇总
  7. iOS很重要的 block回调
  8. ubuntu g++ 升级
  9. BA(free scale) network 小结
  10. pc构件生产线及设备_【图片】PC装配式建筑生产线,PC构件装备,PC生产线模台15805376300【pc装配式建筑吧】...