Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

论文标题:

 

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领域更高效的半监督学习方法提供启发。

 

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注