【ACL2023获奖论文】比你想的更弱:对弱监督学习的批判性审视

简介: 【ACL2023获奖论文】比你想的更弱:对弱监督学习的批判性审视

一些不成熟的想法

大框架上:

1、idea切入点是,平时没有特别关注到,但是一说起来,又发现确实很合理的方向

2、算是特别的综述类文章?实验工作量很大

论文结构设计如下

3、存在一些数学公式,但是很贴切

创新方向上:

目前大语言模型的许多研究,在调优prompt上也需要依赖干净的验证集,包括:

1、用来挑选few-shot examples

2、设置self-consistency的sample数量

3、调优prompt写法和COT等

使用大语言模型来做“弱”标注时,减少、甚至完全消除对clean validation set的依赖,从而提升WSL的实用性

内容: 弱监督学习是一种在资源有限的情况下训练机器学习模型的流行方法。它允许使用来自各种弱数据源的包含噪声的标注来训练模型,而不是要求昂贵的高质量人工标注。最近,许多复杂的方法被提出来进行鲁棒的弱监督学习训练,并报告了令人印象深刻的结果。

在本文中,作者重新审视了这些方法的设置,发现这些方法带来的好处被严重高估了。具体来说,作者发现现有的弱监督学习方法高度依赖于可获得的包含干净标注的验证样本,而这些样本可以被更有效地利用,只需简单地在它们上进行训练即可。在使用这些干净标注进行训练后,使用这些复杂方法的优势大多被抹去。即使减少可用干净数据量至每个类别仅5个样本,这仍然成立,使这些方法变得不实用。为了理解弱监督学习的真正价值,作者全面分析了各种NLP数据集和任务,以确定弱监督方法何时以及为何有效。

引言

弱监督学习的初衷是减少对标注样本的依赖,但ACL 2023 的获奖Paper[1]指出,弱监督学习太依赖干净的验证集,与初衷相违,且其利用验证集的效率较低,赶不上Fine-Tuning,进而给出警示:前人的弱监督学习研究脱离了实际,需要及时纠偏。

笔者认为,这篇论文反映了对验证集作用的重新审视,很值得大语言模型的研究者考虑。你所用来调优prompt的验证集,是否脱离了Few-Shot Learning的设定?是否有其他更高效的使用验证集的方式呢? 这些问题也应该被大语言模型的研究者回答。

正文

问题1:对WSL来说,clean data是否必要?

实验结果,在不使用clean labels作为验证集时,WSL失效了,效果和随机选参数差不多,并且都没有带来超越weak labels的泛化性。

因此,问题1的答案:目前的WSL方法,一定需要clean data作为验证集。

问题2:WSL需要多少的clean data?

实验思路:逐渐增加validation sample的数量,看WSL方法的效果变化。

从实验结果来看,很少的validation sample就够了,所需的量级:分类任务上每类~30个样本,NER任务上~200个句子。

因此,问题2的答案是:少量的clean data作为验证集就足够了。

问题3:在少量clean data下,WSL能战胜Fine-Tuning吗?

实验思路:对比WSL和Fine-Tuning(简称FT)的效果,同时作者还对比了Adapter、LoRA和BiFit三种PEFT方法。

从实验结果来看,分类任务的每类~10个样本,NER任务~50个句子时,FT的效果可以超过WSL。

并且作者额外说明,基于prompt + LLM可以取得更好的效果,本文的方法只是效果下限。

因此,问题3的答案是:当每个类有超过10个样本时,WSL相比FT就没有了优势。

问题4:WSL可否从Fine-Tuning中受益?

动机

先解释一下作者 实验的动机。

当使用WSL方法时,可以获得两类训练数据:

  • weakly labeled data,源自各种弱标注器;
  • clean labeled data,人标注的结果,来源于验证集。

前文在比较WSL和FT时,采取的设定是:

  • WSL只在weakly labeled data上进行训练,在clean labeled data上验证;
  • FT只基于少量的clean labeled data进行训练,而不进行model selection。

一个自然的扩展思路是,可否结合两类数据,最大化模型效果?

思路

作者的实验思路是:将weakly labeled data作为Pre-training样本,尝试WSL + Continual Fine-Tuning(简称CFT)的效果。

结论

实验结论如下:

  • CFT的确可以提升WSL的效果,尤其在clean data非常少,即分类任务每类~5样本、NER~50个句子时,可明显好于FT
  • 随着clean样本变多,CFT的效果会更好,但当达到分类任务每类~50样本、NER~500句子的量级时,CFT相比FT的优势明显减小,已不足1%,考虑到WS也需要设计弱标注器,这可能是得不偿失的
  • 使用CFT会减小不同WSL算法间的差异,效果最好的反而是最简单的FTw,进一步说明了现有WSL方法的弱

补充:FTw指在weak labeled data上,进行Fine-Tuning后的模型,可以视为WSL方法的baseline,与前文提到的FT方法有区分。

因此,问题4的答案是:结合WSL与CFT,可以发挥WSL的作用,但随着样本增多,增益迅速下降,使用WSL的必要性也显著减少;同时在这种方法下,现有的WSL方法无法超过FTw这个简单的baseline,还是“弱”。

问题5:是什么让FTw + CFT有效?

作者又提出两个延伸的子问题:

1、FTw仅基于weakly labeled data训练,是如何抵抗标注中的bias的?

2、CFT是如何进一步减少bias的?

针对子问题1,作者将不同大小的PLMs(Pre-trained Language Models,一般指BERT、RoBERTa等模型)作为backbone,在FTw的设定下进行了实验。

结论如下:

1、在更多数据上预训练的、更大的PLM更能够减少weakly labeled data中的bias,换言之,backbone也是越大越好;

2、在学习的早期,FTw模型在clean labeled data上的效果非常好,如果采取恰当的early stopping,那么模型的泛化性效果相当不错。

用论文作者的话说:pre-training provides the model with an inductive bias to seek more general linguistic correlations insted of superficial correlations from the weak labels。

预训练为模型提供了一个归纳偏差,以寻求更一般的语言相关性,而不是从弱标签中寻找肤浅的相关性。

针对子问题2,作者调整CFT过程中clean样本的标签,手动控制这些样本标签与其本要有的weak label之间的一致性,即agreement ratio,看模型的效果差异。

直觉来看,当agreement ratio = 100%时,CFT阶段的训练样本的标签也是weak label,CFT等同于继续进行FTw,此时是无法进一步减少bias的。

根据实验结果,当agreement ratio > 70%时,模型效果均有明显下降。最佳的agreement ratio约为50%。这说明,在CFT中需要包含一些与weak label矛盾的sample,也就是弱标注器难以标对的sample,这有助于模型在纠错中学习,从而进一步去除弱标注中的bias。

因此,两个子问题的答案分别是:

1、FTw之所以可以抵抗bias,是因为使用了PLM

2、CFT之所以进一步减少bias,是因为CFT阶段可以从纠错过程中学习,从而进一步减少bias

研究建议

从实验结果来看,目前的WSL方法的确脱离实际,有过度优化的问题。因此,在论文最后,作者很客观地对WSL研究者提出了一些建议:

  • 报告model selection的策略,并着重说明研究者提出的WSL方法有多依赖于clean data
  • 介绍FSL方法需要多少clean data可以取得WSL的效果。如果数千条weakly labeled data的效果和几十条clean data的效果接近,那么WSL就不是最佳选择
  • 如果提出的WSL方法需要额外的clean data,例如用于validation,那么FTw + CFT应该作为baseline进行比较

局限性

同时作者也提到了论文的局限性:

  • 有些WSL方法[5]可使用数据集的先验知识来调参,此时可不依赖额外的clean data
  • 论文研究的是英文任务,这一语种下有很强的PLMs,但有些语种可能没有,此时WSL可能更有效
  • WRENCH数据集中,weak labels通过简单的规则得到(例如正则、词典等),但是弱标注器可以更强,例如使用LLM来标注[6](笔者也有讲解文章)
目录
相关文章
|
NoSQL 网络协议 数据库
为什么 Lettuce 会带来更长的故障时间
本文详述了阿里云数据库 Tair/Redis 将使用长连接客户端在非预期故障宕机切换场景下的恢复时间从最初的 900s 降到 120s 再到 30s的优化过程,涉及产品优化,开源产品问题修复等诸多方面。
67872 11
为什么 Lettuce 会带来更长的故障时间
|
缓存 算法 Java
优化 JAVA 代码性能的几种方法
在Java开发中,优化代码性能是非常重要的。一个高效、快速的程序不仅可以提升用户体验,还能节省系统资源和运行成本。本篇博客将介绍一些优化Java代码性能的方法。
298 0
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch中,18个速度和内存效率优化技巧
PyTorch中,18个速度和内存效率优化技巧
|
计算机视觉
人脸比对实现判断并查找面部特征
compare_faces( ) compare_faces( known_face_encodings, face_encoding_to_check, tolerance=0.6 ) 比较脸部编码列表和候选编码,看看它们是否匹配。 参数: known_face_encodings:已知的人脸编码列表 face_encoding_to_check:待进行对比的单张人脸编码数据 tolerance:两张脸之间有多少距离才算匹配。该值越小对比越严格,0.6是典型的最佳值。 返回值: 一个 True或者False值的列表,该表指示了known_face_encodings列表的每个成员的匹
503 1
QGIS【实例 01】筛选范围内的数据相交intersection工具使用及Feature (347897) has invalid geometry问题处理
QGIS【实例 01】筛选范围内的数据相交intersection工具使用及Feature (347897) has invalid geometry问题处理
655 0
|
算法
评价模型:CRITIC客观赋权法
评价模型:CRITIC客观赋权法
1894 0
|
SQL 关系型数据库 MySQL
【图形工具】MySQL Workbench 图形化界面工具
【图形工具】MySQL Workbench 图形化界面工具
681 0
|
Ubuntu iOS开发 MacOS
Could not enumerate video devices (or none found).解决办法
Could not enumerate video devices (or none found).解决办法
228 0
|
机器学习/深度学习 人工智能 算法
【DouZero】 强化学习+self play达到人类玩家斗地主水平。
【DouZero】 强化学习+self play达到人类玩家斗地主水平。
695 0