写点什么

arXiv | 如何更好地理解自然语言?自训练 + 预训练

用户头像
Machine Gun
关注
发布于: 2021 年 05 月 19 日
arXiv | 如何更好地理解自然语言?自训练+预训练

今天给大家介绍的是 Facebook AI 研究团队发表在 arXiv 上的一篇文章“Self-training Improves Pre-training for Natural Language Understanding”。作者在文章中提出,可以利用自训练提升自然语言理解的预训练模型,并且提出了一种用于数据增强的新方法——SentAugment,可从大规模无标签的网络句子中检索用于特定任务的无标签句子,辅助语言模型的自训练过程。实验表明,SentAugment 实现了有效的自训练,并且在知识蒸馏和小样本学习上有明显效果。

1

研究背景

自训练是一种半监督学习方法,它使用有标签数据训练一个教师模型,再用训练后的教师模型为无标签数据创建合成标签。这些带有合成标签的数据被用于训练一个学生模型,使得学生模型具有与教师模型相似或更好的性能。最近在自然语言理解上的工作通常集中在预训练模型上,而自训练也是利用无标签数据的一种有效方法。作者在预训练基准上引入自训练,通过研究表明自训练是对自然语言理解的强大预训练模型的一种补充。

此外,无标签数据通常是半监督学习的一个重要组成部分。但是,现有的工作通常假设这些无标签数据来自与下游任务相同的领域,该假设限制了半监督方法的应用,尤其是在数据较少的下游任务中。为此,作者在本文中提出了一种数据增强方法——SentAugment,用于从网络上爬取的数据中,为给定任务构建相同领域的数据集。实验表明,SentAugment 可有效辅助模型自训练,知识蒸馏和小样本学习。

2

方法

2.1 检索策略

SentAugment 方法使用网络数据作为句子库。首先,使用一种通用句子编码器对句子库中的每个句子进行嵌入,这个编码器对于有相近意思的句子输出相似表示。这些句子表示被用于检索特定任务相关的无标签数据。其次,使用同样的通用句子编码器对下游任务的训练数据集进行嵌入,然后根据训练数据集的嵌入表示计算出任务嵌入。任务嵌入的计算方法有以下三种:(1)all-average:计算训练数据集中的所有嵌入表示的平均嵌入表示;(2)label-average:分别为每个类别的数据计算一个平均嵌入;(3)per-sentence:每个句子拥有一个单独的嵌入表示。然后,将任务嵌入作为查询条件,在句子库中检索出一个子集作为候选数据集,然后使用教师模型从候选数据集的每个类别中选出前 k 个样本进行标记,形成最终的合成数据。

2.2 自训练过程

如图 1 所示, 自训练过程分为多个步骤。首先,在下游任务中对中文预训练模型 RoBERTa-Large 精调,将精调后的模型作为教师模型;其次,从句子库中检索特定任务的无标签数据;之后,使用教师模型对检索到的无标签数据进行标记;最后,使用带合成标签的数据来精调一个新的 RoBERTa-Large 模型,将这个模型作为学生模型。

图 1 SentAugment 方法

3

实验

3.1 数据集

在评估 SentAugment 方法性能的实验中使用的数据集信息如表 1 所示。用于情感分析的数据集有 SST-2 和 SST-5,其中 SST-2 是 Stanford Sentiment Treebank 的二元情感分析数据集,SST-5 则是细粒度情感分析数据集。CR 数据集用于产品分类任务,IMP 数据集用于仇恨言论分类,TREC 数据集用于问题分类,CoNLL 数据集用于命名实体识别任务。

表 1 数据集和下游任务

3.2 自训练实验

该实验的目的是了解自训练是否能对下游任务的目标领域进行域适应。实验中使用了三个模型,分别是 RoBERTa-Large 基准模型、RoBERTa-Large+ICP 和 RoBERTa-Large+ST。ST 表示自训练,即用带合成标签的数据集来训练预训练模型 RoBERTa-Large,ICP 表示域内连续预训练,直接在目标领域的检索数据上进行预训练,不适用合成标签。实验结果如表 2 所示,自训练可以提高 RoBERTa-Large 基准模型的性能,使平均水平提高了 1.2%。而当使用 ICP 继续使用自训练数据进行预训练时,模型性能从 87.4%降低到 86.2%。尽管 ICP 在 RoBERTa-Large 模型预训练时执行域适应,但它的性能并不优于 RoBERTa-Large。因此,自训练是提高泛化能力并在精调时进行域适应的重要途径。

表 2 自训练实验结果

3.3 小样本学习实验

作者在小样本学习的情况下研究了 SentAugment 方法的有效性。针对每个任务,作者从特定任务的训练数据集中选取少量样本对 RoBERTa-Large 模型进行精调,并将其用作教师模型。实验结果如表 3 所示。自训练可以使所有任务的精确度平均提高 3.5%,在序列标记任务中表现尤为突出。

表 3 小样本学习任务中的自训练实验结果

3.4 知识蒸馏实验

知识蒸馏(KD)也受益于大规模数据增强。在该实验中,作者使用了真实数据(GT)、随机数据(random)和检索的无标签数据(SA),比较了基于不同数据的知识蒸馏的效果,实验结果如表 4 所示。实验结果表明,与基于随机数据相比,使用真实数据提炼模型时性能显着提高,从 77.1%变为 82.5%。本文的数据增强方法达到了 81.9%的平均准确度。

表 4 基于真实数据、随机数据和检索数据的知识蒸馏实验结果

4

总结

在本文中,作者表明自训练是利用无标签数据的另一种有效方法,当自训练和预训练结合时,可以进一步改进 RoBERTa 模型性能。此外,作者介绍了一种新的用于自然语言处理的数据增强方法 SentAugment,该方法可从大规模网络数据语料库中检索特定任务的相关领域的句子,并且在知识蒸馏和少样本学习上也有明显效果。

用户头像

Machine Gun

关注

还未添加个人签名 2021.03.28 加入

需要获取网络安全/渗透测试学习资料工具的朋友可联系V:machinegunjoe666 免费索取

评论

发布
暂无评论
arXiv | 如何更好地理解自然语言?自训练+预训练