必须要GPT-3吗?不,BERT的MLM模型也能小样本学习

©PaperWeekly 原创 · 作者|苏剑林

单位|追一科技

研究方向|NLP、神经网络

 

大家都知道现在 GPT-3 风头正盛,然而,到处都是 GPT-3、GPT-3 地推,读者是否记得 GPT-3 论文的名字呢?事实上,GPT-3 的论文叫做 Language Models are Few-Shot Learners [1],标题里边已经没有 G、P、T 几个单词了,只不过它跟开始的 GPT 是一脉相承的,因此还是以 GPT 称呼它。

顾名思义,GPT-3 主打的是 Few-Shot Learning,也就是小样本学习。此外,GPT-3 的另一个特点就是大,最大的版本多达 1750 亿参数,是 BERT Base 的一千多倍。

正因如此,前些天 Arxiv 上的一篇论文 It's Not Just Size That Matters: Small Language Models Are Also Few-Shot Learners [2] 便引起了笔者的注意,意译过来就是“谁说一定要大的?小模型也可以做小样本学习”。

显然,这标题对标的就是 GPT-3,于是笔者饶有兴趣地点进去看看是谁这么有勇气挑战 GPT-3,又是怎样的小模型能挑战 GPT-3?经过阅读,原来作者提出通过适当的构造,用 BERT 的 MLM 模型也可以做小样本学习,看完之后颇有一种“原来还可以这样做”的恍然大悟感。在此与大家分享一下。

 

图片

冉冉升起的MLM

MLM,全称“Masked Language Model”,可以翻译为“掩码语言模型”,实际上就是一个完形填空任务,随机 Mask 掉文本中的某些字词,然后要模型去预测被 Mask 的字词,示意图如下:

图片

▲ BERT的MLM模型简单示意图

其中被 Mask 掉的部分,可以是直接随机选择的 Token,也可以是随机选择连续的能组成一整个词的 Token,后者称为 WWM(Whole Word Masking)。

开始,MLM 仅被视为 BERT 的一个预训练任务,训练完了就可以扔掉的那种,因此有一些开源的模型干脆没保留 MLM 部分的权重,比如 brightmart 版 [3] 和 clue 版 [4] 的 RoBERTa,而哈工大开源的 RoBERTa-wwm-ext-large [5] 则不知道出于什么原因随机初始化了 MLM 部分的权重,因此如果要复现本文后面的结果,这些版本是不可取的。

然而,随着研究的深入,研究人员发现不止 BERT 的 Encoder 很有用,预训练用的 MLM 本身也很有用。

比如论文 BERT has a Mouth, and It Must Speak: BERT as a Markov Random Field Language Model [6] 指出 MLM 可以作为一般的生成模型用,论文 Spelling Error Correction with Soft-Masked BERT [7] 则将 MLM 用于文本纠错。

笔者之前在从语言模型到 Seq2Seq:Transformer 如戏,全靠 Mask 的实验也表明 MLM 的预训练权重也可以当作 UniLM 来用做 Seq2Seq 任务,还有无监督分词和句法分析!原来 BERT 还可以这样用一文将 MLM 的思想用于无监督分词和句法分析了。可以说 MLM 已经是大放异彩了。

 

图片

将任务转成完形填空

在本文里,我们再学习 MLM 的一个精彩应用:用于小样本学习或半监督学习,某些场景下甚至能做到零样本学习。

怎么将我们要做的任务跟 MLM 结合起来呢?很简单,给任务一个文本描述,然后转换为完形填空问题即可。举个例子,假如给定句子“这趟北京之旅我感觉很不错。”,那么我们补充个描述,构建如下的完形填空:

______满意。这趟北京之旅我感觉很不错。

进一步地,我们限制空位处只能填一个“很”或“不”,问题就很清晰了,就是要我们根据上下文一致性判断是否满意,如果“很”的概率大于“不”的概率,说明是正面情感倾向,否则就是负面的,这样我们就将情感分类问题转换为一个完形填空问题了,它可以用 MLM 模型给出预测结果,而 MLM 模型的训练可以不需要监督数据,因此理论上这能够实现零样本学习了。

多分类问题也可以做类似转换,比如新闻主题分类,输入句子为“八个月了,终于又能在赛场上看到女排姑娘们了。”,那么就可以构建:

下面播报一则______新闻。八个月了,终于又能在赛场上看到女排姑娘们了。

这样我们就将新闻主题分类也转换为完形填空问题了,一个好的 MLM 模型应当能预测出“体育”二字来。

还有一些简单的推理任务也可以做这样的转换,常见的是给定两个句子,判断这两个句子是否相容,比如“我去了北京”跟“我去了上海”就是矛盾的,“我去了北京”跟“我在天安门广场”是相容的,常见的做法就是将两个句子拼接起来输入到模型做,作为一个二分类任务。如果要转换为完形填空,那该怎么构造呢?一种比较自然的构建方式是:

我去了北京?______,我去了上海。

我去了北京?______,我在天安门广场。

其中空位之处的候选词为 是的不是。

 

图片

Pattern-Exploiting Training

读到这里,读者应该不难发现其中的规律了,就是给输入的文本增加一个前缀或者后缀描述,并且 Mask 掉某些 Token,转换为完形填空问题,这样的转换在原论文中称为 Pattern,这个转换要尽可能与原来的句子组成一句自然的话,不能过于生硬,因为预训练的 MLM 模型就是在自然语言上进行的。

显然同一个问题可以有很多不同的 Pattern,比如情感分类的例子,描述可以放最后,变成“这趟北京之旅我感觉很不错。____满意。”;也可以多加几个字,比如“觉得如何?____满意。这趟北京之旅我感觉很不错。”。

然后,我们需要构建预测 Token 的候选空间,并且建立 Token 到实际类别的映射,这在原论文中称为 Verbalizer,比如情感分类的例子,我们的候选空间是 很不,映射关系是 很正面不负面,候选空间与实际类别之间不一定是一一映射,比如我们还可以加入“挺”、“太”、“难”字,并且认为 很挺太正面以及不难负面,等等。

不难理解,不少 NLP 任务都有可能进行这种转换,但显然这种转换一般只适用于候选空间有限的任务,说白了就是只用来做选择题,常见任务的就是文本分类

刚才说了,同一个任务可以有多种不同的 Pattern,原论文是这样处理的:

1. 对于每种 Pattern,单独用训练集 Finetune一个 MLM 模型出来;

2. 然后将不同 Pattern对应的模型进行集成,得到融合模型;

3. 用融合模型预测未标注数据的伪标签;

4. 用伪标签数据 Finetune 一个常规的(非 MLM 的)模型。

具体的集成方式大家自己看论文就行,这不是重点。这种训练模式被称为Pattern-Exploiting Training(PET),它首先出现在论文 Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference [8] 。

本文要介绍的这篇论文则进一步肯定和完善了 Pattern-Exploiting Training 的价值和结果,并整合了多任务学习,使得它在 SuperGLUE 榜单上的小样本学习效果超过了 GPT3。两篇论文的作者是相同的,是一脉相承的作品。

图片

PET在SuperGLUE上的小样本学习的结果

不过要吐槽一个点是,上图中 PET 的 223M 参数,所用的模型是 ALBERT-xxlarge-v2,事实上称 ALBERT 为“小模型”是一种很耍流氓的行为,因为它前向计算的速度并没有得到任何提升。ALBERT-xxlarge 共有 12 层,层与层之间参数是共享的,就前向计算而言,它应该等价于约 2700M(12 倍)参数的 GPT 才对。

 

图片

中文实践,检验效果

要真正确认一个方法或模型的价值,看论文的实验表格是不够的,论文给出的实验结果谁都不好说能否复现,其次就算英文上能复现也不代表中文上有价值,因此最实际的还是亲自动手做实验验证。下面是笔者的实验代码,供读者参考:

Github 地址:

https://github.com/bojone/Pattern-Exploiting-Training

 

我们将从以下几个角度来探讨 PET 的可行性:

1. 直接利用现成的 MLM 模型效果如何?(零样本学习1)

2. 用“大量无标签数据”微调现成的 MLM 模型效果如何?(零样本学习2)

3. 用“小量标签数据”微调现成的 MLM 模型效果如何?(小样本学习)

4. 用“小量标签数据+大量无标签数据”微调现成的MLM模型效果如何?(半监督学习)

下面主要给出情感二分类的实验结果。另外还有一个新闻主题的多分类,代码也放到 Github 了,其结果是类似的,就不重复陈述了。

4.1 零样本学习1

这里主要探索的是给输入文本补上对应的 Pattern 后,直接基于现成的 MLM 模型进行预测,预测的准确率。由于构建模型的整个过程都不涉及到标签数据监督训练,因此这算是一种“零样本学习”。我们需要比较的是不同 Pattern、不同 MLM 模型上的效果:

下面是实验的几个 Pattern,其中空位处候选词语都为“很”和“不”:

P1:____满意。这趟北京之旅我感觉很不错。

P2:这趟北京之旅我感觉很不错。____满意。

P3:____好。这趟北京之旅我感觉很不错。

P4:____理想。这趟北京之旅我感觉很不错。

P5:感觉如何?____满意。这趟北京之旅我感觉很不错。

至于 MLM 模型,则是下面几个:

M1:Google 开源的中文版 BERT Base:

https://github.com/google-research/bert

 

M2:哈工大开源的 RoBERTa-wwm-ext Base:

https://github.com/ymcui/Chinese-BERT-wwm

 

M3:腾讯 UER 开源的 BERT Base:

https://share.weiyun.com/5QOzPqq

 

M4:腾讯 UER 开源的 BERT Large:

https://share.weiyun.com/5G90sMJ

实验结果如下表(验证集/测试集):

图片

最好的效果居然可以达到 88%!也就是说,加载现成的 MLM,配合适当的 Pattern,不需要任何标注数据,就可以正确识别大部分样本情感倾向了。这不得不让我们对 MLM 模型的潜力刮目相看了。

可以观察到,不同的 Pattern、不同的预训练模型之间还是有一定的差异的,整体而言 Large 版本的效果要明显好于 Base 版本的模型,说明像 GPT 到 GPT2 再到 GPT3 一样,还是把模型做得更大会更好。

此外,这还有可能说明实际上 MLM 还没有被充分训练好,或许是因为 BERT 这种 Mask 掉一部分的训练方式过于低效了,可能用修改 Transformer 结构,设计一个更快更好的 MLM 模型一文提到的改进版 MLM 会更好。

4.2 零样本学习2

看完上述结果,读者可能会想到:如果我用领域内的数据继续预训练 MLM 模型,那么能不能提升效果呢?答案是:能!下面是我们的实验结果,算力有限,我们只在 RoBERTa-wwm-ext(上述的 M2,继续预训练后的模型我们称为 M2+ 无监督)的基础上做了比较:

图片

要注意的是,这里我们只是用领域内的数据继续做 MLM 训练,这个过程是无监督的,也不需要标注信号,因此也算是“零样本学习”。同时,从到目前为止的结果我们可以看出,给输入本文加入“前缀”的效果比“后缀”更有优势一些。

4.2.1 小样本学习

刚才我们讨论了无标签数据继续预训练 MLM 的提升,如果回到 PET 的目标场景,直接用小量的标签数据配合特定的 Pattern 训练 MLM 又如何呢?

这也就是真正的“小样本学习”训练了,这里我们保留约 200 个标注样本,构造样本的时候,我们先给每个句子补上 Pattern,除了 Pattern 自带的 Mask 位置之外,我们还随机 Mask 其他一部分,以增强对模型的正则。最终实验结果如下:

图片

结论就是除了“后缀式”的 P2 之外,其它结果都差不多,这进一步说明了“前缀式”的 Pattern 会比“后缀式”更有竞争力一些。在效果上,直接用同样的数据用常规的方法去微调一个 BERT 模型,大概的结果是 88.93 左右,所以基于 “MLP+Pattern” 的小样本学习方法可能带来轻微的性能提升。

4.3 半监督学习

无监督的零样本学习和有监督的小样本学习都说完了,自然就轮到把标注数据和非标注数据都结合起来的“半监督学习”了。还是同样的任务,标注数据和非标注数据的比例大约是 1:99,标注数据带 Pattern,非标注数据不带 Pattern,大家都 Mask 掉一部分 Token 进行 MLM 预训练,最终测出来的效果如下:

图片

还是同样的,“后缀”明显比“前缀”差,“前缀”的效果差不多。具体效果上,则是肯定了额外的无标注数据也是有作用的。

直觉上来看,“前缀”比“后缀”要好,大体上是因为“前缀”的 Mask 位置比较固定,微弱的监督信号得以叠加增强?但这也不能解释为什么零样本学习的情况下也是“前缀”更好,估计还跟模型的学习难度有关系,可能句子前面部分的规律更加明显,相对来说更加容易学一些,所以前面部分就学习得更加充分?这一切都还只是猜测。

4.4 汇总与结论

将上述结果汇总如下:

图片

读者还可以对比我们之前在文章泛化性乱弹:从随机噪声、梯度惩罚到虚拟对抗训练中用虚拟对抗训练(VAT)做半监督学习的结果,可以看到不管是零样本学习、小样本学习还是半监督学习,基于 MLM 模型的方式都能媲美基于 VAT 的半监督学习的结果。

我们在做短新闻多分类实验时的结果也是相似的。因此,这说明了 MLM 模型确实也可以作为一个优秀的零样本/小样本/半监督学习器来使用。

当然,基于 MLM 模型的缺点还是有的,比如 MLM 所使用的独立假设限制了它对更长文本的预测能力(说白了空位处的文字不能太长),以及无法预测不定长的答案也约束了它的场景(所以当前只能用于做选择题)。我们期待有更强的 MLM 模型出现,那时候就有可能在所有任务上都能与 GPT3 一较高下了。

 

图片

又到了说小结的时候

本文介绍了 BERT 的 MLM 模型的一个新颖应用:配合特定的描述将任务转化为完形填空,利用 MLM 模型做零样本学习、小样本学习和半监督学习。

在原论文的 SuperGLUE 实验里边,它能达到媲美 GPT3 的效果,而笔者也在中文任务上做了一些实验,进一步肯定了该思路的有效性。整个思路颇为别致,给人一种“原来还可以这样做”的恍然大悟感,推荐大家学习一下。

 

 

参考文献

 

[1] https://arxiv.org/abs/2005.14165

[2] https://arxiv.org/abs/2009.07118

[3] https://github.com/brightmart/roberta_zh

[4] https://github.com/CLUEbenchmark/CLUEPretrainedModels

[5] https://github.com/ymcui/Chinese-BERT-wwm

[6] https://arxiv.org/abs/1902.04094

[7] https://kexue.fm/archives/7661

[8] https://arxiv.org/abs/2001.07676

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值