在事实世界中开发机器学习(ML)模型的次要瓶颈之一是须要大量手动标记的训练数据。例如,Imagenet数据集由超过1400万手动标记的各种事实的图像组成。

尽管迁徙学习的呈现极大地缓解了这一要求然而依然须要数百个标记的示例来进行微调。然而取得此类手动正文通常是耗时的和劳动力密集的,并且容易产生人类的谬误和偏见。

那么,该怎么做能力改善这种状况呢?

最近的弱监督(WS)框架能够通过利用多样化来缩小手动标记的工作,并且能够利用畛域主题专家(SME)的宽泛常识来进步模型的体现。

这篇文章将介绍Edelman DxI数据迷信团队在应用弱监督解决NLP问题的一些最新进展!

弱监督学习

数据编程是指应用启发式标记函数联合标签模型以编程形式创立标记数据集。弱监督应用标签模型创立的标签数据集来训练上游模型,上游模型的次要工作是在标签模型的输入之外进行泛化。如Snorkel论文所述,在数据集上实现弱监督有三个步骤。

  1. 编写标记函数(LFS):标记函数是任何能够将数据作为输出的python函数,函数通过应用一些规定来输入该行的标签。例如,如果咱们的工作是“电子邮件垃圾邮件检测”,则能够构建一个如下所示的标签函数。每个标签函数都独立运行以标记每行数据。在二元分类问题的状况下,标签为0(不存在标签)或1(标签的存在)或-1(信息有余,不标记)。
  2. 将弱标签与标签模型(LM)联合在一起:如果咱们有M行数据和N个LFS,如果运行所有LFS将导致总共M x n标签,所以须要汇总n个单个LFS的输入,以使每行只有一个标记的后果。投票模型是将多个LF汇总到单个标签的最简略办法。然而还有更好的办法能够通过从整个M行的各个LF之间的雷同后果和不同后果中学习的聚合办法。例如,Data Programming Paper ,MeTaL Pape,Flying Squid paper 这三篇论文中提到的一些办法。
  3. 训练上游模型(EM):应用标签模型的输入用作训练数据微调上游模型,例如BERT。因为LFS是程序化标签源,因而咱们能够在整个未标记的语料库上运行步骤1和2,生成许多标签并在步骤3中训练的模型能够受害于步骤1和2中创立的更宽泛的训练数据集。

上图中的Snorkel 是应用数据编程的弱监督学习的python库。它提供了易于应用的API来实现和评估步骤1和2。咱们能够应用高级ML API,例如HuggingFace的transformers 或Sklearn来实现步骤3。

在某些办法中,还能够将步骤2和3联合到一个步骤中。然而个别状况下两阶段的办法优于单阶段办法,因为这样能够抉择任何LM和EM组合,通过不同的组合能够找到最佳的性能。因而本文还是应用将步骤1和步骤2离开进行。

弱监督框架

在弱监督基准测试中,作者基准了各种弱监督框架,并将它们与齐全监督的基准进行比拟,如下所示。

对于NLP工作,Cosine Roberta(RC)始终优于其余模型(EM),包含Vanilla Roberta(R),因而咱们能够平安地抉择RC作为两阶段办法的最终模型!从上图也可能看到没有单标签模型(LM)框架始终优于其余框架,这表明咱们必须在数据集中尝试不同的LMS能力抉择最佳的LMS。

COSINE (RC, BC)

COSINE 是COntrastive Self-training for fINE-Tuning 的缩写,它是近年来弱监督畛域最有前途的研究进展之一。该算法有五个步骤。

1、初始化:应用从标签模型的弱标签来微调语言模型,例如在初始化步骤中应用穿插熵损失。而后将微调后的BERT模型在整个数据集上的概率预测作为软伪标签。而后应用这些软伪标签来迭代应用复合损失持续BERT模型的微调,如下公式所示。

2、样本加权:依据其预测概率从新加权,使预测概率高的样本具备较高的权重,预测概率低的样本具备相应的较低的权重。

3、高置信度样本上的分类损失:因为应用了软伪标签。所以应用高于预约义的权重阈值的样本来计算基于Kullback-Leibler Divergence的加权分类损失。

4、高置信度样本上的比照损失:应用上述步骤中雷同的样本来计算比照损失,这样能够使具备类似伪标签的样品靠的更近,而具备不同伪标签的样品在矢量空间间隔更远。这里的正样品和负样品之间的边缘差值是一个超参数。

5、所有样本上的置信度正则化::上述整个办法只有在置信度(预测概率)是正确的,而谬误标记的样本置信度很低的状况下才无效。因而最终的Loss是一个基于置信度的正则化器,它阻止谬误标记的样本取得过高的置信度(适度相信)。超参数能够调整正则化强度。

通过下面的步骤COSINE 的办法对弱标签中的噪声是十分强壮的。这也是基准测试中针对于小标签数据执行初始化步骤的最佳的办法之一。

Snorkel

Snorkel能够说是所有弱监督标签模型办法的创始者,能够说是弱监督标签模型办法之母!斯坦福大学的同一位钻研人员发明了“数据编程”一词,也创造了Snorkel 。Snorkel 的前提很简略:给定启发式标签函数(LFS)的汇合,将每个函数中的弱标签组合为每个样本的单个标签。Snorkel 提供了一个易于应用的框架,能够汇总多个不同的弱的LFS。

组合多个弱标签的一种办法是仅应用少数投票算法(majority vote),在基准测试中MV的确也是一些数据集的最佳LM。然而LF中的办法可能是相干的,所以导致特定特色在MV模型中适度体现。所以Snorkel实现了更简单的LM,以应用一些数学矩阵逆向导组合单个LF的输入。

启发式LF抉择

Snorkel 易于应用,然而在Snorkel 取得的标签上训练的最终模型(EM)的准确性可能会因LFS的品质而变化很大。因而启发式LF抉择被提出进去,该过程只使在一个小的手工标记验证集上具备最好的准确性的LF汇合的LF子集。

启发式LF抉择能够让咱们开始时只应用大量的LFS,并随着工夫的推移对他们进行减少和欠缺。通过剖析每次LFS在每次迭代的体现,咱们能够确定LFS中的问题,并在下一轮中对LF进行更新或者减少新的条件。这个剖析还能够暴露出对问题域了解的差距!

总结

这篇文章中介绍了弱监督的概念,以及如何应用它来将专家的畛域常识编码到机器学习模型中。我还探讨了一些标记模型。在两步弱监督办法中联合这些框架,能够在不收集大量手动标记训练数据集的状况下实现与全监督ML模型相媲美的准确性!

援用:

  • Want To Reduce Labeling Cost? GPT-3 Can Help
  • X-Class: Text Classification with Extremely Weak Supervision
  • OptimSeed: Seed Word Selection for Weakly-Supervised Text Classification with Unsupervised Error Estimation
  • ASTRA: Self-Training with Weak Supervision
  • SPEAR: Semi-Supervised Data Programming with Subset Selectio
  • Revisiting Unreasonable Effectiveness of Data in Deep Learning Era
  • Data Programming: Creating Large Training Sets, Quickly
  • Snorkel: Rapid Training Data Creation with Weak Supervision
  • Fine-Tuning Pre-trained Language Model with Weak Supervision: A Contrastive-Regularized Self-Training Approach
  • Training Complex Models with Multi-Task Weak Supervision
  • Fast and Three-rious: Speeding Up Weak Supervision with Triplet Methods

https://avoid.overfit.cn/post/82ca4ceb918d41ba95bfc53db3ebd14e

作者:Marie Stephen Leo