©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 模型应当能预测出“体育”二字来。
还有一些简单的推理任务也可以做这样的转换,常见的是给定两个句子,判断这两个句子是否相容,比如“我去了北京”跟“我去了上海”就是矛盾的,“我去了北京”跟“我在天安门广场”是相容的,常见的做法就是将两个句子拼接起来输入到模型做,作为一个二分类任务。如果要转换为完形填空,那该怎么构造呢?一种比较自然的构建方式是:
我去了北京?______,我去了上海。
我去了北京?______,我在天安门广场。
其中空位之处的候选词为