小样本学习及其在美团场景中的应用

美团的各个业务有着丰富的NLP场景,而这些场景中模型的构建需要很多的标注资源,成本很高。小样本学习致力于在数据资源稀少的情况下训练出比较好的模型。本文从主动学习、数据增强、半监督学习、领域迁移、集成学习&自训练几个方向介绍了现有的一些方法,并在美团场景进行了实验,效果上也取得了一定的提升。希望能对从事相关研究的同学有所帮助或者启发。

1 背景

美团的各个业务有着丰富的NLP场景,而这些场景中模型的构建需要很多的标注资源,成本很高。小样本学习致力于在数据资源稀少的情况下训练出比较好的模型,主要有以下两个评价标准:

  • 提升算法效果:在标注资源一定的情况下,使用小样本学习能够尽可能多地提升相应的指标。
  • 节省标注数据:在算法效果希望达到一定水平的情况下,希望尽可能减少标注数据。

在NLP领域少样本的场景下,主要存在以下三种场景,小样本学习针对这些问题采取了不同的措施:

  1. 样本空间稀缺(图1左):样本数量较少时,分布稀缺,数据增强旨在更好利用样本/Embedding之间的关系,提高模型泛化性能。
  2. 样本分布在局部空间(图1中):某个领域往往只有少量标注数据,而有大量的未标注数据。根据对未标注数据的使用方式不同,我们将其划分为两种,第一种是半监督学习,是在模型Finetune过程中同时学习标注样本和未标注样本,利用了模型对未标注数据的预测一致性;第二种是集成学习+自训练,强调的是融合多个模型对未标注数据的预测结果作为伪标注数据加入训练。
  3. 不同领域之间的样本分布差异(图1右):在某个领域充分学习到标注信息之后,因样本空间有差异,无法直接用到其他领域,迁移学习旨在学习到一个领域的充分知识后,能够快速学习到其他领域的知识。

图1 小样本学习三种应用场景

除了上面提到的三种场景, 还有一种是,如何在有限的标注成本中选择更有针对性的样本进行人工标注(主动学习)。因此我们将小样本学习划分为下面几种:

  • 数据增强:数据增强可以分为样本增强和Embedding增强。样本增强早先在计算机视觉中对图像进行数据增强,图像的一些简单操作,如将图像旋转或将其转换为灰度,并不会改变其语义,语义不变变换的存在使增强成为计算机视觉研究中的一个重要工具。在NLP领域中的样本增强也试图不改变句子主旨来扩充文本数据,主要方法有简单文本替换、预训练语言模型生成相似句子等,对得到的增强数据可以使用课程学习的方式由简到难地进行学习。Embedding增强在模型的Embedding层进行操作,可以通过对Embedding加扰动/插值等,提升模型的鲁棒性。
  • 半监督学习:监督学习往往需要大量的标注数据,而标注数据的成本比较高,因此如何利用大量的无标注数据来提高监督学习的效果,具有十分重要的意义。近年来,半监督深度学习取得了长足的进展,特别是在计算机视觉领域;相关的研究主要着力于如何针对未标注数据构建无监督信号,与监督学习联合建模,目前的主要方法都是基于无标注数据的一致性正则构建损失函数。
  • 集成学习+自训练:机器学习的有监督学习目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况中有时只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。单纯使用多个模型在预测时做集成会增加线上负担,因此我们利用多个模型对大量无标注数据进行预测,选取组合置信度较高的数据合并到训练集进行训练,最后将多个模型的优势集成到一个统一的模型上。这部分也属于半监督学习的一种,但是与上面提到的半监督学习的主要区别是后者提到的方法都是强调在Finetune阶段利用模型对未标注数据的预测一致性,而这部分强调融合多个模型的预测结果,故单独将这部分单独列出。
  • Few-shot Learning/领域迁移:人类在具备一定的知识储备后可以快速学习新的知识,研究人员希望机器学习模型也能具备这种能力,一个模型已经从一定类别的大量数据学习许多信息后,对于新的类别可以依据新的少量的标记样本得到新的分类器,该分类器可以在新的类别中识别出该类样本。
  • 主动学习:主动学习是一个机器学习和人工参与迭代的过程,通过机器学习的方法筛选出合适的候选集给人工标注。大致思路是:通过机器学习的方法获取到那些比较“难”分类的样本数据,让人工再次确认和审核,然后再将人工标注得到的数据再次使用有监督学习模型进行训练,逐步提升模型效果。

图2 小样本学习相关工作

2 方法综述

预训练语言模型BERT,在NLP许多任务中取得非常好的结果。BERT是基于Transformer的深度双向语言表征模型,利用Transformer结构构造了一个多层双向的Encoder网络。我们采取BERT作为Baseline模型,对预训练好的模型在特定任务样本上进行Finetune。

2.1 数据增强

数据增强可以分为数据扩充和Embedding增强,数据扩充在保持语义不变的情况下,变换文本的表达形式,如回译、同义词替换、随机删除等等;模型增强主要有Mixup和对抗训练,Mixup在NLP领域有一系列的变体,包括SeqMix、Manifold Mixup等。数据增强提高了模型的鲁棒性,使得模型更关注文本的语义信息,并对文本的局部噪声不再敏感。在少样本场景,文本增强技术可以有效提高模型的鲁棒性,提高其泛化能力。

2.1.1 样本增强

2.1.1.1 简单数据增强EDA

EDA1 通过知识库来替换句子中的某些词/短语,主要包含以下四种操作:

  • 同义词替换(Synonym Replacement,SR):不考虑停用词,在句子中随机抽取n个词,然后从同义词词典中随机抽取同义词,并进行替换。
  • 随机插入(Random Insertion,RI):随机的找出句中某个不属于停用词集的词,并求出其随机的同义词,将该同义词插入句子的一个随机位置。重复n次。
  • 随机交换(Random Swap,RS):随机的选择句中两个单词并交换它们的位置。重复n次。
  • 随机删除(Random Deletion,RD):以概率p随机删除句子中每个单词。
2.1.1.2 回译(Back Translation)

回译是NLP在机器翻译中经常使用的一个数据增强的方法,它的本质就是快速产生一些翻译结果达到增加数据的目的。回译将原有数据翻译为其他语言再翻译回原语言,由于语言逻辑顺序等的不同,回译的方法也往往能够得到和原数据差别较大的新数据。

2.1.1.3 预训练语言模型
  • 基于上下文信息的文本增强2,利用训练好的语言模型,随机Mask文中的一个词或字,再将文本输入语言模型,选择语言模型所预测的Top kk个词去替换原文中被去掉的词,以形成kk条新的文本。
  • 基于语言生成模型的文本增强Lambda3,Lambda基于预训练语言模型GPT,使模型能够捕获语言的结构,从而能产生连贯的句子。在不同任务的少量数据集上对模型进行微调,并使用微调后的模型生成新的句子。

2.1.2 增强样本使用

上面几种方式生成了一批数据增强文本,增强后的文本数量多、带噪音;原始标注数据数据量少、不含噪音。 NAACL20214 的一篇工作提出了一种课程学习的方式更好地学习这两种样本。

图3 增强数据三种学习方式

Standard Data Augmentation

直接将原始数据和增强后的数据融合起来进行训练。

Curriculum Data Augmentation

课程学习先学习简单的标注数据,具备一定知识之后再学习带噪音的增强数据,有以下两种使用方式:

  1. Two Stage:先在原始数据上进行训练,等到开发集收敛之后再在原始数据和增强数据上一起训练。
  2. Gradual:先在原始数据上进行训练,然后逐步以线性方式添加增强数据,通过控制扰动变量 τ\tau,即一开始τ=0\tau=0,然后每次线性增加0.1,直到增加到0.5。

2.1.3 Embedding增强

2.1.3.1 Mixup

自然语言具备系统组合性(Systematic Compositionality),能够理解通过适当重组的句子。考虑以下样例,左边两个为原始文本,通过对其中的某些词进行替换/重组可以生成右边可理解的样本5

图4 自然语言重组变换样例

Mixup6,7提出了一种更通用的,基于向量增强的模型,从训练数据中任抽样两个样本,构造混合样本和混合标签,作为新的增广数据。其中(xi,yi)(x_i,y_i)(xj,yj)(x_j, y_j)为原始样本,(x^,y^)(\hat{x}, \hat{y})为重组生成的新样本。当λ\lambda的取值限制在{0, 1},就会产生图4的组合。

x^=λxi+(1λ)xj,y^=λyi+(1λ)yj,\begin{aligned} \hat{x} &= \lambda x_i + (1 – \lambda) x_j, \\ \hat{y} &= \lambda y_i + (1 – \lambda) y_j, \end{aligned}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享