提纲
1 简介
2 Unconstrained Spaces
2.1 LAMA
2.2 X-FACTR
3 Constrained Spaces
3.1 Text clasfification
3.2 Named entity recognition
4 总结
参考文献
1 简介
回想下prompt learning的三个要素,prompt函数,答案空间和从答案到最终结果的映射,其中prompt函数主要利用prompt将原始输入转化为带[MASK](或者占位符)的完型填空格式,答案空间主要用于搜索适合填充到[MASK]位置的候选,而从答案到最终结果的映射主要是根据填充的答案得到最终的预测结果。 如图中给的情感分类样例,[X]接受原始的输入,[Y]是模型要预测的token,候选答案空间只有good和bad,在预测得到答案后需要根据相应的映射得到最终的分类结果。
图1: prompt learning在情感分类任务的应用样例
在前面的篇章我们已经介绍过prompt learning里如何构建prompt了,接下来我们就要研究下如何设计答案空间以及构建从答案到最终输出之间的映射。
比起构建prompt所涉及的prompt engineering, answer engineering旨在寻找一个合适的答案空间以及从答案到最终输出的映射,从而获得一个有效的预测模型。 Answer engineering包括两部分,决定答案的shape和选择设计答案的方法。关于第一部分比较容易处理,常见的答案的shape有这三种,tokens,spans和sentence。选择哪种shape依赖于我们想要去执行的任务,例如在分类任务,关系抽取或者序列标注任务时会选择tokens或者spans,在文本生成任务时会选择sentence。而关于设计答案的方法,才更需要多加关注。 首先我们先介绍一些人工设计的方法,让大家有更加清晰的认识,在后续的章节再介绍自动构建的方式。对于人工设计的方法,根据答案空间是否受到约束,我们将人工设计的方法分为两类。
2 Unconstrained Spaces
这种类型的方法对应的答案空间Z跟最终输出之间是一一对应的,不需要额外的从答案到最终输出的映射,答案就是最终的输出。
2.1 LAMA
在
Prompt learning系列之prompt engineering(一) 人工构建prompt
我们提到了LAMA是特地用来测试语言模型所蕴含知识多少的数据集,这个数据集的每个数据,都包含了一个占位符,每个占位符只需要用一个token去填充,填充得到的结果就是最终的答案。例如对于三元组(实体头部,关系,实体尾部)构造得到的完型填空格式只会把实体尾部用占位符替换掉,然后去预测占位符位置的token,如果等于实体尾部,就说明模型具备这条知识,反之就说明模型不具备这个事实。每个占位符只能填充一个token, 这里可以填充的token候选等于全词表,填充的答案就是最终的输出。
2.2 X-FACTR
这是一种跨语言的知识召回方案,跟前面的方法相比,除了将prompt learning从单语言扩展到多语言之外, **还考虑到有的实体没办法用单个token来表示,为此它的答案空间是由多个token构成的片段组成,也就是一个占位符需要填充的是一个片段,而不是单个token。**
对于X-FACTR,因为 **需要预测占位符对应片段的多个token,所以作者尝试了几种不同的解码策略,并且还引入了润色阶段,对初次生成的结果做进一步的优化。**
a) 同时预测多个token,各个token的生成之间相互独立。
b) 从左往右依次预测,前面生成的token会用于后面token的预测。在润色阶段会继续从左往右去调整生成结果直到收敛。
c) 每次生成概率最高的位置的token,直至填充完所有token。
在润色阶段会先选择生成概率最小的token,然后重新生成这个位置的token直到生成结果收敛。
**同时,在最终预测时需要决定每个占位符需要填充的片段的长度,也就是token的个数。做法就是遍历从1到M的可能,计算不同长度下预测结果的分数,选取其中得分最高的作为最终结果,相应的长度也就是占位符需要填充的长度。**
最后实验结果表明
a) 语言模型选用M-BERT的效果优于XLM和XLM-R。
b)多个token的预测效果比单个token的预测差很多。其中部分原因可能是因为选择了错误的span长度导致的。
c) 第三种解码策略在中低资源场景有明显优势,但在高资源场景效果不及其他。
图2:不同解码策略的效果对比。
3 Constrained Spaces
**这种类型的方法需要一个映射将答案映射到最终输出,常见于文本分类或者实体识别等任务。这里的答案空间是由跟最终标签强相关的token组成。**
3.1 Text clasfification
考虑到zero shot场景下的文本分类任务的标签不固定,同一句话在不同领域下有不同的标签,很难考虑所有可能的分类情形然后训练相应的分类模型,那么在缺乏监督数据时如何给文本赋予一个合适的标签呢?
图3:一个文本对应不同层面下的类别
首先定义好zero shot场景下的文本分类任务,主要分为两种情形。
a)
Definition-Restrictive
在给定监督数据,监督数据里包含的标签集合为S,去学习一个分类器,这个分类器能预测的标签Y是S跟U的并集,其中U是监督数据没出现过的标签。
b) Definition-Wild
没有给定监督数据去学习得到一个分类器,这个分类器预测的标签全都是没有出现过的。
**由于缺乏标注数据,很难用传统的分类模型去处理,所以作者将问题转化为蕴含问题,构建合适的prompt,分别去计算文本属于各个类别的概率,根据概率选取最合适的类别作为最终的结果。例如图中我们把相应的标签填写到占位符上(这里可以填充的token是需要人工选择的,跟标签强相关的),然后用训练模型做二分类任务就可以计算得到文本属于该标签的概率了。得到各个标签的概率后,根据具体的场景按照规则就可以得到最终的预测结果了。**
图4:zero shot样例
对于前面提及的两种zero shot情形具体有何区别,首先第一点在于Definition-Restrictive是有监督数据的,所以会用这部分监督数据去微调预训练模型。其次,由于Definition-Restrictive场景下的标签可以分为两部分,一部分是出现在监督数据中的,是模型见过的,另一部分是模型没见过的,所以最终的预测结果的选择也会有所不同。
3.2 Named entity recognition
图5: 不同领域下的NER样例
对于低资源场景,传统的NER模型采用的都是序列标注模型,会先在资源充足的场景下训练模型,然后再到低资源场景下进行微调,但是由于不同场景下的标签集合存在差异,相应的标注模型最后的全连接层又跟标签集合一一对应,所以不同场景下模型的最后的全连接层是不同的,直接采用这种方式没有考虑到不同场景下的标签之间的关联,(例如在News下的person跟Movies下的character),所以这种做法很难直接应用到zero-shot场景中,因为缺乏目标领域的监督数据。
基于此,作者把NER视作一个语言模型的排序问题,通过模版将候选实体文本跟实体类型进行填充(不同的模版对最终效果的影响颇大),最后模型输出的是一个句子,也就是这个候选实体文本属于哪个实体类型或者非实体,同时还能知道对应填充实体类型的概率。具体做法是,由于我们事先不知道每个实体文本的长度,所以我们会考虑实体文本长度从1到n的所有情形,通过语言模型BART计算每个实体片段属于每一个实体类型或者非实体类型的概率,然后选取对应概率值最大的实体类型作为该片段的标签。考虑到由于可能实体嵌套的问题,这里直接选取概率较大的片段的标签作为最终的结果。
图6: NER不同模版的效果
**在高资源场景下完成语言模型训练后,要迁移到低资源场景中时,需要设计好相应的低资源场景下的模版,模型跟算法依旧不变,然后进行微调。这个微调过程不仅消耗极小,而且效果相当明显。**
由于模型最后输出的是一个句子而不是具体的标签,高资源或者低资源的标签集合都只是预训练语言模型的一部分,这也就允许模型充分利用到了不同场景下标签之间的关系。最后实验也表明基于prompt的做法效果明显优于传统的模型。
图7:跨领域的zero shot NER效果
4 总结
**跟之前的** [**Prompt learning系列之prompt engineering(一) 人工构建prompt**](http://mp.weixin.qq.com/s?__biz=Mzk0NzMwNjU5Nw==&mid=2247483952&idx=1&sn=07e00744c7290dcb56c6711aa0ddfc23&chksm=c379ab3af40e222c56a77ef0c4d031aecfecb5630163e3ae4db4d147b238af5d317e7bbab12d&scene=21#wechat_redirect) **一样,由于人工设计答案出现在地方比较多样,所以整个篇章看起来可能会不大容易理解,大家可以了解个梗概即可,有兴趣的地方再去翻阅相应的参考文献。总的来说,合理的答案设计对于prompt learning的效果有明显影响,一般需要根据具体任务和场景进行设计,例如分类或者序列标注任务需要找到那些跟标签强相关的token或者片段作为答案候选。同时,根据具体的任务或者场景,也可以将问题转化为语言模型的蕴含任务去解决,不一定非要是完形填空任务。**
另外,需要注意的是多个token的答案候选相关的任务会更难,应该如何选择需要填充的token的数量也会是一个影响最终效果的地方,所以为了保证最终效果,不能把答案候选设计得太难。最后要注意一点,这种方式在缺乏监督数据的zero shot场景下优势明显,但是如果有充足的监督数据的话,还是优先考虑finetune。
--
对NLP感兴趣的朋友们可以关注下公众号 NLP日志,也欢迎大家加入NLP的学习交流群NLP日志学习交流群,一起学习,共同进步,加群方式发送加群到公众号就可获取。我们的目标是不内卷,也不怕内卷。
--
参考文献
- (2019, ) Language Models as Knowledge Bases?
https://aclanthology.org/D19-1250.pdf
- (2020, ) X-FACTR: Multilingual Factual Knowledge Retrieval from Pretrained Language Models
https://aclanthology.org/2020.emnlp-main.479.pdf
- (2019, ) Benchmarking Zero-shot Text Classification: Datasets, Evaluation and Entailment Approach
https://arxiv.org/pdf/1909.00161v1.pdf
- (2019, ) Template-Based Named Entity Recognition Using BART