小样本学习及其在美团场景中的应用
美团的各个业务有着丰富的NLP场景,而这些场景中模型的构建需要很多的标注资源,成本很高。小样本学习致力于在数据资源稀少的情况下训练出比较好的模型。本文从主动学习、数据增强、半监督学习、领域迁移、集成学习&自训练几个方向介绍了现有的一些方法,并在美团场景进行了实验,效果上也取得了一定的提升。希望能对从事相关研究的同学有所帮助或者启发。
1 背景
2 方法综述
2.1 数据增强
2.2 半监督学习
2.3 集成学习+自训练
2.4 领域迁移
2.5 主动学习
3 应用实践
3.1 实验结果
3.2 在美团业务中的应用
4 未来展望
参考文献
1 背景
提升算法效果:在标注资源一定的情况下,使用小样本学习能够尽可能多地提升相应的指标。 节省标注数据:在算法效果希望达到一定水平的情况下,希望尽可能减少标注数据。
样本空间稀缺 (图1左):样本数量较少时,分布稀缺,数据增强旨在更好利用样本/Embedding之间的关系,提高模型泛化性能。 样本分布在局部空间(图1中):某个领域往往只有少量标注数据,而有大量的未标注数据。根据对未标注数据的使用方式不同,我们将其划分为两种,第一种是半监督学习,是在模型Finetune过程中同时学习标注样本和未标注样本,利用了模型对未标注数据的预测一致性;第二种是集成学习+自训练,强调的是融合多个模型对未标注数据的预测结果作为伪标注数据加入训练。 不同领域之间的样本分布差异(图1右):在某个领域充分学习到标注信息之后,因样本空间有差异,无法直接用到其他领域,迁移学习旨在学习到一个领域的充分知识后,能够快速学习到其他领域的知识。
数据增强:数据增强可以分为样本增强和Embedding增强。样本增强早先在计算机视觉中对图像进行数据增强,图像的一些简单操作,如将图像旋转或将其转换为灰度,并不会改变其语义,语义不变变换的存在使增强成为计算机视觉研究中的一个重要工具。在NLP领域中的样本增强也试图不改变句子主旨来扩充文本数据,主要方法有简单文本替换、预训练语言模型生成相似句子等,对得到的增强数据可以使用课程学习的方式由简到难地进行学习。Embedding增强在模型的Embedding层进行操作,可以通过对Embedding加扰动/插值等,提升模型的鲁棒性。 半监督学习:监督学习往往需要大量的标注数据,而标注数据的成本比较高,因此如何利用大量的无标注数据来提高监督学习的效果,具有十分重要的意义。近年来,半监督深度学习取得了长足的进展,特别是在计算机视觉领域;相关的研究主要着力于如何针对未标注数据构建无监督信号,与监督学习联合建模,目前的主要方法都是基于无标注数据的一致性正则构建损失函数。 集成学习+自训练:机器学习的有监督学习目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况中有时只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。单纯使用多个模型在预测时做集成会增加线上负担,因此我们利用多个模型对大量无标注数据进行预测,选取组合置信度较高的数据合并到训练集进行训练,最后将多个模型的优势集成到一个统一的模型上。这部分也属于半监督学习的一种,但是与上面提到的半监督学习的主要区别是后者提到的方法都是强调在Finetune阶段利用模型对未标注数据的预测一致性,而这部分强调融合多个模型的预测结果,故单独将这部分单独列出。 Few-shot Learning/领域迁移:人类在具备一定的知识储备后可以快速学习新的知识,研究人员希望机器学习模型也能具备这种能力,一个模型已经从一定类别的大量数据学习许多信息后,对于新的类别可以依据新的少量的标记样本得到新的分类器,该分类器可以在新的类别中识别出该类样本。 主动学习:主动学习是一个机器学习和人工参与迭代的过程,通过机器学习的方法筛选出合适的候选集给人工标注。大致思路是:通过机器学习的方法获取到那些比较“难”分类的样本数据,让人工再次确认和审核,然后再将人工标注得到的数据再次使用有监督学习模型进行训练,逐步提升模型效果。
2 方法综述
2.1 数据增强
2.1.1 样本增强
2.1.1.1 简单数据增强EDA
同义词替换(Synonym Replacement,SR):不考虑停用词,在句子中随机抽取n个词,然后从同义词词典中随机抽取同义词,并进行替换。 随机插入(Random Insertion,RI):随机的找出句中某个不属于停用词集的词,并求出其随机的同义词,将该同义词插入句子的一个随机位置。重复n次。 随机交换(Random Swap,RS):随机的选择句中两个单词并交换它们的位置。重复n次。 随机删除(Random Deletion,RD):以概率p随机删除句子中每个单词。
2.1.1.2 回译(Back Translation)
2.1.1.3 预训练语言模型
基于上下文信息的文本增强2,利用训练好的语言模型,随机Mask文中的一个词或字,再将文本输入语言模型,选择语言模型所预测的Top 个词去替换原文中被去掉的词,以形成条新的文本。 基于语言生成模型的文本增强Lambda3,Lambda基于预训练语言模型GPT,使模型能够捕获语言的结构,从而能产生连贯的句子。在不同任务的少量数据集上对模型进行微调,并使用微调后的模型生成新的句子。
2.1.2 增强样本使用
Two Stage:先在原始数据上进行训练,等到开发集收敛之后再在原始数据和增强数据上一起训练。 Gradual:先在原始数据上进行训练,然后逐步以线性方式添加增强数据,通过控制扰动变量 ,即一开始,然后每次线性增加0.1,直到增加到0.5。
2.1.3 Embedding增强
2.1.3.1 Mixup
图5(a)最原始的Mixup,对整个序列做Mixup,生成新序列。 图5(b)子序列Mixup,对合法的子序列做Mixup,并分别代替原来的子序列,生成两个新序列。 图5(c)标签限制的子序列Mixup,只对同类别标签的子序列做Mixup,分别代替原来的子序列,生成两个新序列。
随机选取网络第层(包括输入层)。 传两批数据给网络,前向传播直到第层,得到隐藏特征表示和。 对其进行Mixup生成新样本 继续前向传播得到输出。 计算损失值和梯度。
2.1.3.2 对抗训练
2.1.3.3 对比学习R-Drop
2.2 半监督学习
输入数据:大量的同领域未标注数据和少量的有标注数据。 主要基于以下理论基础:
自洽正则化(Consistency Regularization):对未标记的数据进行增广,产生的增广数据输入模型,它的预测值应该与原数据的预测值一致,即保持自洽。 最小化熵(Entropy Minimization):基于一个规则,分类器的分类边界不应该穿过边际分布的高密度区域。具体做法为强迫分类器对未标记数据作出低熵预测。 传统正则化(Traditional Regularization):为了提高模型泛化能力,防止过拟合的方法,如L2正则化等。
如何构造半监督学习的自洽正则化项是很多半监督模型研究的重点。 Temporal Ensemble、Mean Teacher、MixTemporal这几种方法的思想都是利用了对历史模型的集成,利用历史模型预测结果/模型参数构造一致性正则。 VAT则是利用了给Embedding加上扰动构造正则项。 MixMatch、MixText、UDA则是利用了样本增强的结果,MixMatch利用了图像的旋转、缩放等,MixText和UDA依赖于通过回译生成的样本之间的一致性,模型结果很大一部分取决于样本增强的质量。
2.2.1 Temporal Ensembling
有标注数据计算交叉熵损失。 未标注数据采用历史多次预测结果的指数滑动平均(EMA)作为重构目标计算MSE损失,避免采用模型一次的预测作为重构项会产生较大误差,有利于平滑单次预测中的噪声。 有标注数据的交叉熵损失和未标注数据的均方误差加权和作为最终损失函数。
2.2.2 Mean Teacher
在Temporal Ensembling中,无标签数据的目标标签来自模型前几个Epoch预测结果的加权平均。而在Mean Teacher中,无标签数据的目标标签来自 Teacher模型的预测结果。 由于是通过模型参数的平均来实现标签预测,因此在每个Step都可以把无标签中的信息更新到模型中,而不必像Temporal Ensembling模型需要等到一个Epoch结束再更新。
2.2.3 VAT
首先对未标注数据抽取随机标准正态扰动加到Embedding上,并用KL散度计算梯度。 然后用得到的梯度计算对抗扰动,并进行对抗训练。 标注数据的交叉熵损失和未标注数据对抗损失作为最终损失函数。
2.2.4 MixMatch
在图像领域未标注数据的条增强数据来自图像的旋转、缩放等。 输入标注数据, 未标注数据, 利用图9生成未标注数据的标签,即是模型对未标注数据和它的条增强数据预测结果的平均值。 将和混合做Mixup操作。 计算标注数据的交叉熵损失和未标注数据的一致性正则损失项。
2.2.5 MixText
无标注数据通过Back Translation做数据增强。 利用模型对增强后的数据和原数据的预测结果的加权和作为无标注数据的标签。 同时对有标注数据和无标注数据做Mixup。 学习有标注数据的交叉熵损失和无标注数据的一致性正则。
2.2.6 MixTemporal
2.2.7 UDA
Confidence-based masking:通过阈值筛选一致性正则项。 Sharpening Predictions:让预测的概率分布更加极端化。 Domain-relevance Data Filtering:去掉领域不相关的数据,同样根据置信度来选择。
2.3 集成学习+自训练
集成学习:训练多个不同的模型,如BERT模型、Mixup模型、半监督学习模型。 分别用每个模型预测数据池 (Unlabeled Data)的标签概率分布。 计算标签概率分布的加权和,得到数据池U的概率分布Soft Prediction。 自训练:训练一个模型用于组合其他各个模型。 Student模型学习数据池中高置信度样本的Soft Prediction。 Student模型作为最后的强学习器。
2.4 领域迁移
Classifier-Baseline: 在所有的Base Classes上使用交叉熵损失预训练分类器,然后移除最后一层FC,得到Feature Encoder。 Meta-Baseline Pre-Training Stage:训练Classifier-Baseline模型。 Meta-Learning Stage:给定一个Few-Shot Task(N-way k-shot),计算每个类别的特征平均值。 针对于每个Query-Set中的样本用余弦相似度计算与每个类别的相似度,减少类内方差。
2.5 主动学习
查询策略是主动学习的核心之处,不确定性采样的查询是最常用的,不确定性采样的关键是描述样本的不确定性,通常有如下思路: 置信度最低(Least Confident),如对于三分类的情况下,对两个样本预测的概率分别是(0.8, 0.1, 0.1)和(0.51, 0.31, 0.18),在这种情况下第二个数据更“难”被区分,因此更有标注价值。 边缘采样(Margin Sampling),选择那些更容易被判定成两类的样本数据,即这些数据被判定成两类的概率相差不大,边缘采样选择模型预测最大和第二大的概率差值最小的样本。 熵方法(Entropy),用熵来衡量一个系统的不确定性,熵越大表示系统的不确定性越大,熵越小表示系统的不确定性越小,可以选择那些熵比较大的样本数据作为待标注数据。 迭代思路:输入,初始少量标注数据、未标注数据池、深度学习模型。 标注数据集。 用训练模型,并对未标注数据池进行预测。 用对应的查询策略选择中需要标注的样本进行标注,并将其加入到标注数据集中。 重复2-3过程,直到达到精度或者或者标注预算。
3 应用实践
单句分类任务:BERT模型预训练中的NSP任务使得BERT中的“[CLS]”位置的输出包含了整个句子对(句子)的信息,我们利用其在有标注的数据上微调模型,给出预测结果。常见单句分类任务如文本分类、情感分类等。 句间关系任务:对两个句子用“[SEP]”进行拼接,用“[CLS]”位置的输出判断两个句子之间的关系。常见句间关系任务如自然语言推理、语义相似度判断等。
3.1 实验结果
3.1.1 小样本学习,提升算法效果
数据增强:四种Embedding增强结果中,对抗训练(AT)表现最为稳定,平均可提升模型1pp。 半监督学习:数据增强相对于半监督学习结果较为稳定,但半监督学习可以带来的提升较为明显,可提升模型1.5pp-2pp,其中在AFQMC数据集上提升模型2pp-4pp。 集成学习+自训练:集成学习+自训练融合了单模型在未标注数据上的预测结果,基本可以达到或这接近最好的结果,平均可提升模型1.5pp-2pp。
3.1.2 主动学习,减少训练样本
在目前数据集下,平均500条Active Learning选择数据可以达到1000条随机样本结果,900条数据可以接近1500条随机样本结果。在新项目标注数据从无到有的时候,可以使用Active Learning选择启动样本。
3.2 在美团业务中的应用
3.2.1 医美题材分类
3.2.2 攻略识别
3.2.3 医美功效打标
3.2.4 医美品牌打标
3.2.5 其他业务应用
医美评价真实性:点评和美团医美业务如果存在虚假评论,会对体验有比较大的伤害,需要通过模型检测出来。通过Active Learning选取标注数据,数据增强、半监督学习和集成学习+自训练优化模型,最后业务方仅标注1757条数据,模型在检测感知虚假评价的准确率上就能达到95.88%,超出业务预期。 POI打标情感分析:该任务为句间关系任务,判断Query和内容的情感导向(正面、负面、不确定和不相关)。已有模型在1万条数据上训练,通过小样本学习,在已有模型上提升模型精度0.63pp。 学城(美团内部学习工具)文本分类:该任务为文本分类任务,将文本分为17种类别。已有模型在700条数据上训练,通过小样本学习,在已有模型上提升模型精度2.5pp。
4 未来展望
持续改进现有模型、探索更多模型。目前的实验结果还有很大的改进空间,需要不断探索,改进模型;同时探索更多的领域迁移模型,并应用到业务中,达成业务方可以用最少的数据训练最好的结果。
在更多任务类型上进行实验。目前主要是单句分类、句间分类等任务类型上进行实验,需要进一步MRC模型、命名实体识别模型。
深入探索领域迁移,训练通用模型。目前,我们对接的业务较多,因此也积累了不少领域的文本分类和句间关系数据集,希望能够训练一个通用模型用于该领域的各项任务,从而在一个新的业务中使用更少量的数据就能达到很好的业务效果。如可以通过Facebook的EFL模型,将该领域下的文本分类任务和句间关系任务都重新表述为文本蕴含任务训练一个通用模型,可以直接在新的业务上进行迁移。
建设小样本学习平台。目前正在将小样本学习能力集成到公司统一的BERT平台,开放给公司各业务方灵活使用。后续,在对小样本学习进行了更加深入的探索之后,我们会尝试建立单独的小样本学习平台,提供更多的低资源学习能力。
参考文献
[1] Wei J, Zou K. Eda: Easy data augmentation techniques for boosting performance on text classification tasks[J]. arXiv preprint arXiv:1901.11196, 2019.
[2] Kobayashi S. Contextual augmentation: Data augmentation by words with paradigmatic relations[J]. arXiv preprint arXiv:1805.06201, 2018.
[3] Anaby-Tavor A, Carmeli B, Goldbraich E, et al. Not Enough Data? Deep Learning to the Rescue![J]. arXiv preprint arXiv:1911.03118, 2019.
[4] Wei J, Huang C, Vosoughi S, et al. Few-Shot Text Classification with Triplet Networks, Data Augmentation, and Curriculum Learning[J]. arXiv preprint arXiv:2103.07552, 2021.
[5] Andreas J. Good-enough compositional data augmentation[J]. arXiv preprint arXiv:1904.09545, 2019.
[6] Zhang H, Cisse M, Dauphin Y N, et al. Mixup: Beyond empirical risk minimization[J]. arXiv preprint arXiv:1710.09412, 2017.
[7] Guo D, Kim Y, Rush A M. Sequence-level mixed sample data augmentation[J]. arXiv preprint arXiv:2011.09039, 2020.
[8] Zhang R, Yu Y, Zhang C. Seqmix: Augmenting active sequence labeling via sequence mixup[J]. arXiv preprint arXiv:2010.02322, 2020.
[9] Verma V, Lamb A, Beckham C, et al. Manifold mixup: Better representations by interpolating hidden states[C]//International Conference on Machine Learning. PMLR, 2019: 6438-6447.
[10] Miyato T, Dai A M, Goodfellow I. Adversarial training methods for semi-supervised text classification[J]. arXiv preprint arXiv:1605.07725, 2016.
[11] Liang X, Wu L, Li J, et al. R-Drop: Regularized Dropout for Neural Networks[J]. arXiv preprint arXiv:2106.14448, 2021.
[12] Laine S, Aila T. Temporal ensembling for semi-supervised learning[J]. arXiv preprint arXiv:1610.02242, 2016.
[13] Tarvainen A, Valpola H. Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results[J]. arXiv preprint arXiv:1703.01780, 2017.
[14] Miyato T, Maeda S, Koyama M, et al. Virtual adversarial training: a regularization method for supervised and semi-supervised learning[J]. IEEE transactions on pattern analysis and machine intelligence, 2018, 41(8): 1979-1993.
[15] Berthelot D, Carlini N, Goodfellow I, et al. Mixmatch: A holistic approach to semi-supervised learning[J]. arXiv preprint arXiv:1905.02249, 2019.
[16] Chen J, Yang Z, Yang D. Mixtext: Linguistically-informed interpolation of hidden space for semi-supervised text classification[J]. arXiv preprint arXiv:2004.12239, 2020.
[17] Xie Q, Dai Z, Hovy E, et al. Unsupervised data augmentation for consistency training[J]. arXiv preprint arXiv:1904.12848, 2019.
[18] Finn C, Abbeel P, Levine S. Model-agnostic meta-learning for fast adaptation of deep networks[C]//International Conference on Machine Learning. PMLR, 2017: 1126-1135.
[19] Chen Y, Wang X, Liu Z, et al. A new meta-baseline for few-shot learning[J]. arXiv preprint arXiv:2003.04390, 2020.
[20] Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
[21] Wang S, Fang H, Khabsa M, et al. Entailment as Few-Shot Learner[J]. arXiv preprint arXiv:2104.14690, 2021.