Prompt Engineering

一、LAMA[2019]

论文:《Language Models as Knowledge Bases?》

  1. 最近,pretrained 的大型语言模型,如 ELMoBERTNLP 中变得越来越重要。这些模型的参数似乎储存了大量的、对下游任务有用的语言知识。这种知识通常可以通过两种方式来访问:在 latent context representations 上进行 conditioning ;通过使用原始模型的权重来初始化 task-specific model 然后再进一步微调。这种类型的知识迁移对于目前在广泛的任务上取得 SOTA 结果至关重要。

    相比之下,知识库(knowledge bases )是通过实现诸如(Dante, born-in, X) 这样的 query 来访问 annotated gold-standard relational data 的有效解决方案。然而,在实践中,我们经常需要从文本或其他模式中抽取关系数据(relational knowledge )来填充这些知识库。 这需要复杂的 NLP pipeline,涉及实体抽取、共指消解、实体链接、关系提取。这些组件通常需要监督数据和固定的 schemas 。此外,错误很容易在整个 pipeline 中传播和积累。

    相反,我们可以尝试 query 神经语言模型从而用于关系数据,要求它们在"Dante was born in [Mask]"这样的文本序列中填充 masked tokens ,如 Figure 1 所示。在这种情况下,语言模型具有各种有吸引力的特性:它们不需要 schema engineering 、不需要人类标注、而且它们支持一组开放的 query

    鉴于语言模型作为关系知识(relational knowledge )的潜在 representations 的上述特性,我们对 ELMoBERT 等现有的 pretrained 语言模型中已经存在的关系知识感兴趣。它们储存了多少关系知识?对于不同类型的知识(如关于实体的事实、常识、通用问答),这些知识有什么差异?它们在没有微调的情况下的表现与从文本中自动提取的 symbolic knowledge base 相比如何?除了收集对这些模型更好的一般理解外,我们认为这些问题的答案可以帮助我们设计更好的无监督 knowledge representation ,可以将事实性知识和常识性知识可靠地迁移到下游任务。

    为了回答上述问题,我们引入了 LAnguage Model Analysis: LAMA 探针(probe ),由一组知识源(knowledge sources )组成,每个知识源由一组事实(facts )组成。我们定义,如果一个 pretrained 语言模型能够成功预测诸如 "Dante was born in ___" 这样的表达事实的完形填空句子中的 masked objects ,那么它就知道一个事实 (subject, relation, object),如 (Dante, born-in, Florence)。我们对各种类型的知识进行测试:存储在 Wikidata 中的实体之间的关系、来自 ConceptNet 的概念之间的常识性关系、以及回答 SQuAD 中自然语言问题所需的知识。在后一种情况下,我们手动将 SQuAD 问题的一个子集映射到完形填空句子上。

    我们的调查显示:

    • 最大的 BERT 模型(BERT-large )捕获的(准确的)关系知识,与以下二者相当:现成的关系提取器、来自语料库(该语料库是表达相关的知识)的 oracle-based entity linker

    • 事实性知识可以从 pretrained 语言模型中恢复得很好,然而,对于某些关系(特别是 N-to-M 关系)来说性能非常差。

    • BERT-large 在恢复事实性知识和常识性知识方面一直优于其他语言模型,同时对 query 的措辞更加鲁棒。

    • BERT-largeopen-domain QA 方面取得了显著的成果,达到 57.1%precision@10 ,而使用 task-specific supervised relation extraction system 构建的知识库则为 63.5%

  2. 相关工作:许多研究已经调查了 pretrainedword representationssentence representations 、 以及 language models 。现有的工作集中在了解 word representations 的语言属性和语义属性,或者 pretrainedsentence representations 和语言模型如何将语言知识迁移到下游任务中。相比之下,我们的调查试图回答 pretrained 的语言模型在多大程度上储存了事实性知识和常识性知识,并将它们与传统 relation extraction 方法所填充的 symbolic knowledge base 进行比较。

    • 《Don’t count, predict! Asystematic comparison of context-counting vs. context-predicting semantic vectors》neural word representation 方法和更传统的 count-based distributional semantic 方法在词汇语义任务(如语义相关性和概念分类)上进行了系统的比较分析。他们发现,在大多数所考虑到的任务中,neural word representations 的表现优于 count-based distributional 方法。

      《Simlex-999: Evaluating semantic models with (genuine) similarity estimation》 研究了 word representations 在多大程度上捕捉了由 word pairs 之间的相似性所衡量的语义。

    • 《Targeted syntactic evaluation of language models》 评估了 pretrained 语言模型的语法性。他们的数据集由一个有语法的句子和一个无语法的句子组成。虽然一个好的语言模型应该给符合语法的句子分配更高的概率,但他们发现 LSTM 并不能很好地学习语法。

    • 另一项工作是研究 pretrainedsentence representations 和语言模型将知识迁移到下游自然语言理解任务的能力(《GLUE: A multi-task benchmark and analysis platform for natural language understanding》)。虽然这样的分析揭示了 pretrained 模型在理解短文方面的迁移学习能力,但它对这些模型是否能与 symbolic knowledge base 等代表知识的传统方法竞争提供了很少的洞察。

    • 最近,《Right for the wrong reasons: Diagnosing syntactic heuristics in natural language inference》 发现:对于自然语言推理,基于 BERT 的模型学会了严重依赖易犯错的 syntactic heuristics ,而不是对自然语言输入的更深入理解。

      《Dissecting contextual word embeddings: Architecture and representation》 发现,ELMo 中的低层擅长局部的句法关系,而高层可以学习对长距离关系进行建模。

      同样, 《Assessing bert’s syntactic abilities》 发现,BERT 对英语句法现象的捕捉非常好。

      《What do you learn fromcontext? probing for sentence structure in contextualized word representations》调查了语言模型在多大程度上为不同的句法和语义现象编码了句子结构,并发现他们在前者方面表现出色,但对属于后者的任务只提供小的改进。虽然这提供了对语言模型的语言知识的见解,但它并没有提供对其事实知识和常识知识的见解。

    • 《Improving language understanding by generative pre-training》 介绍了一种基于 Transformerpretrained 语言模型,他们称之为生成式预训练( GPT-1 )。 《Language models are unsupervised multitask learners》GPT-2) 已经在包含 7000 本书的图书语料库上进行了训练。与我们的调查最接近的是 GPT-2 的工作,他们调查了他们的语言模型在一系列下游任务中的 zero-shot 迁移情况。他们发现,GPT-2 在回答 CoQA 中的问题时达到了 55F1 得分,在 Natural Questions 数据集上达到了 4.1% 的准确率,在这两种情况下都没有使用标记的 question-answer pairs 或信息检索步骤。

      虽然这些结果令人鼓舞,并暗示了非常大的 pretrained 语言模型记忆事实知识的能力,但大型 GPT-2 模型尚未公开,而公开的小版本在 Natural Questions 上取得的成绩不到 1% (比大型模型差 5.3 倍)。因此,我们决定不将GPT-2 纳入我们的研究中。同样,我们也没有将 GPT-1 纳入本研究,因为它使用了有限的小写字母的词表,使得它与我们评估其他语言模型的方式不兼容。

1.1 方法

1.1.1 背景知识

  1. 略。详情参考原始论文。

    因为这里都是简单的关于语言模型、BERT 的知识。

1.1.2 The LAMA Probe

  1. 我们引入了 LAnguage Model Analysis: LAMA 探针来测试语言模型中的事实性知识和常识性知识。它提供了一组由 facts 的语料库组成的知识源。facts 要么是 subject-relation-object 三元组,要么是 question-answer pairs 。每个 fact 都被转换为一个完形填空语句,用于 query 语言模型的 missing token 。我们根据每个模型对 ground truth token 在固定词表中的排名高低来评估该模型。这类似于 knowledge base completion 文献中的 ranking-based 指标。我们的假设是,在这些完形填空语句中, ground truth tokens 排名高的模型有更多的事实性知识。接下来我们详细讨论每个步骤,并在下面提供关于探针(probe )的考虑。

  2. 知识源 (Knowledge Sources ):我们涵盖了各种事实性和常识性知识的源。对于每个源,我们描述了事实三元组(或 question-answer pairs )的来源,我们如何将它们转化为完形填空模板,以及维基百科中存在多少已知表达特定 factaligned text 。我们在 supervised baseline 中使用后者的信息,直接从对齐的文本中提取 knowledge representations

    这些知识源包括:Google-RE, T-REx, ConceptNet, SQuAD 。详细内容参考原始论文。

  3. 模型:如下 pretrained 的、大小写敏感的语言模型(见Table 1 ):fairseq-fconv (Fs), Transformer-XL large (Txl), ELMo original (Eb), ELMo 5.5B (E5B), BERT-base (Bb), BERT-large (Bl)

    为了进行公平的比较,我们让模型在一个统一的词表上生成,这个词表是所有模型的词表的交集(大约 21K 个大小写敏感的 tokens )。

  4. baseline

    • Freq:对于一个 (subject, relation) pair ,这个基线根据每个单词在测试数据中作为给定 relationobject 出现的频率来排序。

      已知三元组的 (subject, relation) ,需要补全 object

    • RE:对于 relation-based 知识源,我们考虑 《Context-aware representations for knowledge base relation extraction》pretrainedRelation Extraction: RE 模型。这个模型是在维基百科的一个子语料库上训练的,该子语料库上有 Wikidata 的关系标注。它使用基于 LSTM 的编码器和注意力机制从一个给定的句子中提取 relation 三元组。

      我们考虑了这个程序的两个版本,它们在实现 entity linking 的方式上有所不同:

      • RE_n 使用了基于精确字符串匹配的朴素的 entity linking 解决方案。

      • RE_o 除了字符串匹配之外,还使用了 entity linking 的一个 oracle

      换句话说,假设我们查询一个句子 x 中所表达的 test subject-relation fact (s,r,o) 的对象 o 。如果 RE 从该句子 x 中提取了任何三元组 (s,r,o)s 将被链接到 so 被链接到 o 。在实践中,这意味着如果从 x 中提取了任何正确类型的 relation 实例,不管它的 subjectobject 是否错误,RE 都可以返回正确的解 o

    • DrQA《Reading wikipedia to answer open-domain questions》 介绍了 DrQA ,一个用于开放领域问答的流行系统。DrQA 使用一个两步的 pipeline 来预测自然语言问题的答案。

      • 首先,使用 TF/IDF 信息检索步骤,从大量的文档存储(如维基百科)中找到相关文章。

      • 然后,在检索到的 top-k 篇文章中,一个神经阅读理解模型随后提取答案。

      为了避免给语言模型带来竞争优势,我们将 DrQA 的预测限制在 single-token 答案上。

  5. 指标:precision at k (P@k) 指标。

    为了考虑到 subject-relation pair 的多个有效对象(即 N-M 关系),我们遵循 《Translating embeddings for modeling multi-relational data》的做法,在测试时将训练数据中除我们测试的 object 之外的所有其他有效 objects 从候选中删除。

  6. 考虑因素:在创建 LAMA 探针时,我们做了几个重要的设计决定。下面我们将为这些决定提供更详细的理由。

    • 手动定义的模板:对于每种关系,我们手动定义一个模板,用于查询该关系中的 object slot 。我们可以预期,模板的选择会对结果产生影响,情况确实如此:对于某些关系,我们发现使用另一个模板查询相同的信息(就一个给定的模型而言),情况有好有坏。我们认为,这意味着我们正在度量语言模型所知道的下限。

    • Single Token:我们只考虑单个 tokenobject 作为我们的预测目标。我们包括这一限制的原因是,multi-token decoding 增加了许多额外的可调优参数(beam size 、候选评分权重、长度归一化、n-gram 重复惩罚等),这些超参数掩盖了我们试图测量的知识。此外,well-calibratedmulti-token generation 仍然是一个活跃的研究领域,特别是对于双向模型。

    • Object Slots:我们选择只查询三元组中的 object slot ,而不是 subject slotrelation slot 。通过包括反向关系(如 containscontained-by ),我们也可以查询 subject slot

      我们不查询 relation slot 有两个原因。

      • 首先,relations 的表面形式的实现会跨越几个 tokens ,正如我们上面所讨论的,这构成了一个技术挑战,不在本工作的范围之内。

      • 第二,即使我们可以很容易地预测 multi-token 短语,关系通常可以用许多不同的措辞来表达,这使得我们不清楚关系的 gold standard pattern 应该是什么,以及如何在这种情况下衡量准确率。

    • 词表的交集:我们考虑的这些模型是用不同的词表训练的。例如,ELMo 使用一个 800K tokens 的列表,而 BERT 只考虑 30K tokens 。词表的大小可以影响 LAMA prob 模型的性能。具体来说,词表越大,就越难将 gold token 排在最前面。出于这个原因,我们考虑了一个由 21K 个大小写敏感的 tokens 组成的公共词表,这些 tokens 是由所有考虑的模型的词表的交集得到的。为了进行公平的比较,我们让每个模型只对这个公共词表中的 tokens 进行排名。

    由于设计上的约束,因此本文的结论是有局限性的:仅限于采用自定义模板的场景、仅限于 single tokenobject、仅限于 object 预测、仅限于一个较小词表中的 tokens

1.2 实验结果

  1. 我们在 Table 2 中总结了主要的结果,它显示了不同模型在所考虑的语料库中的平均精度(P@1 )。在本节的其余部分,我们将详细讨论每个语料库的结果。

  2. Google-RE:我们使用每种关系的标准完形填空模板来查询语言模型。

    • BERT_baseBERT_large 都以很大的幅度超过了所有其他模型。

    • 此外,与 oracle-based RE baseline 相比,BERT_baseBERT_large 分别获得了2.22.9 的平均准确率改进。

    • 此外,RE 基线通过 entity linking oracle 得到了大量帮助。

    值得指出的是,虽然 BERT-large 做得更好,但这并不意味着它是出于正确的原因来达到的。模型可能已经从 co-occurrence 模式中学习了 objectsubject 的关联。

  3. T-REx:结果与 Google-RE 基本一致。按关系类型划分,BERT 的性能对于 1-to-1 relations (例如,capital of )非常高,对于 N-to-M relations 则很低。

    Figure 2 显示了所考虑的模型的平均 P@k 曲线。对于 BERT ,正确的 object 在大约 60% 的情况下被排在 top-10 、在 80% 的情况下被排在 top-100

    为了进一步研究为什么 BERT 取得了如此强大的结果,我们计算了 P@1 和一组指标之间的皮尔逊相关系数,如 Figure 3 所示。

    • 我们注意到,训练数据中提到一个 object 的次数与模型性能呈正相关,而关系的 subject 次数则不是这样的。

    • 此外,预测的对数概率与 P@1 强烈正相关。 因此,当 BERT 对其预测有很高的信心时,它往往是正确的。

    • 性能也与 subject 向量和 object 向量之间的余弦相似度呈正相关,并与 subject 中的 tokens 数量略有关联。

      最底部一行给出了 P@1 和其它指标之间的相关系数;其它行给出了不同指标之间的相关系数。

    Table 3 显示了随机挑选的、 BERT-large 的完形填空模板 query 所生成的样本。我们发现,BERT-large 通常预测出正确类型的 object ,即使预测的 object 本身并不正确。

    为了了解 pretrained 语言模型的性能如何随 query 特定事实的不同方式而变化,我们分析了每种关系中最多 100 个随机事实,我们从 T-REx 中随机选择了维基百科中 10 个对齐的句子。在每个句子中,我们掩盖 factobject ,并要求模型预测它。对于我们的几个语言模型来说,这也测试了它们从训练数据中记忆和回忆句子的能力,因为这些模型已经在维基百科上进行了训练(见 Table 1 )。

    Figure 4 显示了每个事实的十个 query 的平均排名的分布。

    • 两个 BERT 模型和 ELMo 5.5B 表现出最低的方差,同时将正确的 object 平均排在靠近顶部的位置。

    • 令人惊讶的是,ELMo original (即,Eb)的性能与 BERT 相差无几,尽管这个模型在训练期间没有看到维基百科。

      Eb 的性能和 BERT 还是差距挺大的,作者表述有误?

    • Fairseq-fconvTransformer-XL 在其预测中经历了更高的方差。请注意,BERTELMo 5.5Bfairseq-convTransformer-XL 在维基百科上训练了更多的内容,在训练期间可能看到了更多包含 test query 的句子。

  4. ConceptNet:结果与 Google-RET-REx 一致。BERT-large 模型一直取得了最好的性能。

  5. SQuADTable 2 显示了 BERT-largeDrQA 在我们的SQuAD 任务上的性能差距,其中 DrQA 的效果要好得多。请再次注意,pretrained 语言模型是完全无监督的,它没有经过微调,而且它无法访问专门的信息检索系统。此外,在比较 DrQABERT-largeP@10 时,我们发现差距非常小(BERT-large57.1DrQA63.5 )。

二、LPAQA [2019]

论文:《How Can We Know What Language Models Know?》

  1. 近年来,语言模型的主要作用从生成自然文本、或评估自然文本的流畅性,过渡到成为文本理解的有力工具。这种理解主要是通过将语言建模作为用于 feature extractors 的预训练任务来实现的,其中,语言建模目标学到的隐向量随后被用于下游语言理解系统。

    有趣的是,语言模型本身也可以作为文本理解的工具,通过用自然语言制定化 query ,直接生成文本答案,或者评估多个选项并挑选最可能的一个。例如,语言模型被用来回答事实性问题、回答常识性查询、或提取关于实体之间关系的事实性知识。无论最终任务是什么,语言模型中包含的知识都是通过提供 prompt ,让语言模型要么生成 prefix 的延续(例如,"Barack Obama was born in __" ),或者预测完形填空风格的模板中的缺失单词(例如,"Barack Obama is a __ by profession" )。

    然而,虽然这种范式已经被用来实现一些耐人寻味的结果(这些结果关于语言模型所表达的知识),但它们通常依赖于基于实验者的直觉而手工创建的 prompts 。这些手动创建的 prompts (例如,"Barack Obama was born in " )可能是次优的,因为在训练过程中,语言模型可能已经从完全不同的上下文中学习了目标知识(例如,"The birth place of Barack Obama is Honolulu, Hawaii.")。因此,很有可能由于 prompts 不是对 fact 的有效查询,导致语言模型无法检索那些实际上已经知道的事实。因此,现有的结果只是对语言模型所包含的知识程度的一个下限,事实上,语言模型的知识可能比这些初步结果所显示的还要丰富。在本文中,我们提出了一个问题:我们如何才能收紧这个下限,并对 SOTA 的语言模型所包含的知识有一个更准确的估计?这在科学上和工程上都很有意思,前者是对语言模型所包含的知识的探测(probe),后者则是在使用语言模型作为知识提取系统的一部分时会带来更高的召回率。

    具体而言,我们专注于 LAMA 的设定,他们研究了关于实体之间关系的知识提取。我们提出了两种自动方法来系统地提高 prompts 的广度和质量,其中这些 prompts 用于查询 relation 存在与否。具体来说,如 Figure 1 所示,这些方法是基于挖掘(mining-based )的方法,其灵感来自于以前的关系提取(relation extraction )方法(《Learning surface text patterns for a question answering system》),以及基于转述(paraphrasing-based )的方法(该方法采用一个 seed prompt ,无论是手动创建的还是自动挖掘的,并将其转述为其他几个语义相似的表述)。此外,由于不同的 prompts 在查询不同的 (subject, object) pair时可能效果更好,我们还研究了轻量级的 ensemble 方法,将不同 prompts 的答案组合在一起。

    我们在 LAMA 基准上进行了实验,这是一个英语基准,旨在测试语言模型检索实体间关系的能力。我们首先证明,改进后的 prompts 明显提高了这项任务的准确率,通过我们的方法提取的最佳 promptBERT-base 的准确率从 31.1% 提高到 34.1%BERT-large 也获得了类似的收益。我们进一步证明,通过 ensembling 使用多样化的 prompts ,进一步提高了准确率,达到 39.6% 。我们进行了广泛的分析和消融实验,既收集了关于如何最好地查询知识(那些存储在语言模型中的知识)的见解,也收集了关于将知识纳入语言模型本身的潜在方向的见解。最后,我们发布了由此产生的 LMPrompt And Query Archive: LPAQA ,以促进未来对语言模型中包含的知识进行探测的实验。

  2. 相关工作:许多工作都集中在了解 neural NLP models 中的内部表征(《Analysis methods in neural language processing: A survey》),或者通过使用外在的 probing tasks 来研究是否可以从这些 representations 中预测某些语言属性、或者通过对模型的消融来研究行为如何变化。特别是对于 contextualized representations ,一套广泛的 NLP 任务被用来分析句法属性和语义属性,提供证据表明 contextualized representations 在不同 layers 上编码语言知识。

    probing the representations 本身的分析不同,我们的工作遵循 《Language models as knowledge bases?》《BERT is not a knowledge base (yet): Factual knowledge vs. Name based reasoning in unsupervised QA》 对事实性知识的探测。他们使用手动定义的 prompts ,这可能低估了语言模型的真实性能。在这项工作的同时,《Inducing relational knowledge from BERT》 也提出了类似的观点,即使用不同的 prompts 可以帮助更好地从语言模型中提取 relational knowledge ,但他们使用的是显式训练的模型从而用于提取关系,而我们的方法是在没有任何额外训练的情况下检查语言模型中包含的知识。

    此外,以前的一些工作整合了外部知识库,使语言生成过程明确地以符号知识为条件。类似的扩展已经应用于像 BERT 这样的 pre-trained LM ,其中 contextualized representationsentity embeddings 来增强。相比之下,我们关注的是通过对语言模型的prompts 来实现更好的知识检索,而不是修改语言模型。

2.1 从语言模型中检索知识

  1. 从语言模型中检索事实性知识,与查询标准的陈述性的知识库(knowledge base: KB )有很大不同。在标准的知识库中,用户将其信息需求表述为由 KB schemaquery language 所定义的结构化查询。例如, SELECT ?y WHERE {wd:Q76 wdt:P19 ?y} 是一个SPARQL query ,用于搜索 Barack_Obama 的出生地。相比之下,语言模型通过自然语言 prompts 进行查询,例如 "BarackObama was born in__" ,在空白处分配的概率最高的单词将被返回作为答案。与对知识库的确定性查询不同,语言模型不提供正确性或成功的保证。

    虽然 prompts 的想法在从语言模型中提取各种各样知识的方法中很常见,但在本文中,我们特别遵循 LAMA 的表述,其中事实性知识是三元组 <x,r,y> 的形式。这里 s 表示主体(subject ),y 表示客体(object),而 r 是它们的对应关系。为了查询语言模型 ,r 与完形填空风格的 prompt tr 相关联,其中 trtokens 的一个序列组成,序列中的两个 tokensubjectobject 的占位符(例如,"x plays at y position")。通过用 subject 来替换 x ,并让模型预测 missing object y ,从而来评估语言模型中事实的存在(例如,"LeBron James plays at __ position" ):

    (1)y^=argmaxyVPLM(yx,tr)

    其中:V 为词表;PLM(yx,tr) 为语言模型,用于在其它 tokens (如,subjectprompt )给定的条件下来预测空格处的 y 。如果 y^groundtruth y 相同,我们就说语言模型对某一事实有了解。

    因为我们希望我们的 prompts 能够最有效地引导语言模型本身所包含的任何知识,所以一个 ”好“ 的 prompt 应该尽可能多地引导语言模型去预测 ground-truth objects

  2. 在以前的工作中(《The natural language decathlon: Multitask learning as question answering》《Language models are unsupervised multitask learners》《Language models as knowledge bases?》),tr 一直是一个基于实验者直觉的人工定义的 prompt 。正如导言中所指出的,这种方法不能保证是最优的,因此我们提出了从一小部分训练数据中学习 effective prompts 的方法,这些数据由每种关系的 gold subject-object pairs 组成。

2.2 Prompt Generation

  1. 首先,我们处理 prompt generation :该任务为每种关系 r 生成一组 prompts {tr,i}i=1T,其中至少有一些 prompts 能有效地引导语言模型来预测 ground-truth objects 。我们采用两种实用的方法:要么从大型语料库中挖掘 prompt candidates 、要么通过转述来使 seed prompt 多样化。

    Prompt Generation 的核心是:如何使得 prompts 多样化、以及如何使用多样化的 prompts

    这篇论文的 prompts 本质上是 zero-shot 的,那么 few-shot 是不是会更好?

2.2.1 基于挖掘的 generation

  1. 我们的第一个方法受到 template-based relation extraction 方法的启发,这些方法是基于这样的观察:在大型语料库中,subject xobject y 附近的单词经常描述关系 r 。基于这种直觉,我们首先利用 distant supervision 假设,确定所有的这类 WikiPedia 句子:该句子同时包含特定关系 rsubjectobject ;然后提出两种提取 prompts 的方法:

    • Middle-word Prompts:根据观察,subjectobject 中间的单词往往是 relation 的指示,我们直接使用这些单词作为 prompts 。例如,"Barack Obama was born in Hawaii" 通过用占位符替换 subjectobject 被转换成 "x was born in y"prompt

    • Dependency-based Prompts《Representing text for joint embedding of text and knowledge bases》 指出,在中间不出现单词的模板情况下(例如,"The capital of France is Paris" ),基于句法分析的模板可以更有效地进行关系提取。

      我们遵循这一见解,即用 dependency parser 来解析句子,以确定 subjectobject 之间最短的 dependency path ,然后使用 dependency path 中从最左边的单词到最右边的单词的 phrase spanning 作为 prompt 。例如,上述例子中的 dependency path 是:

      (2)FrancepobjofprepcapitalnsubjisattrParis

      其中最左边的单词和最右边的词分别 "capital""Paris" ,给出的 prompt"capital of x is y"

      这种方法依赖于外部的 dependency parser,因此不是端到端的方案。

  2. 值得注意的是,这些基于挖掘的方法不依赖于任何手动创建的 prompts ,因此可以灵活地应用于我们可以获得一组 subject-object pairs 的任何关系。这将导致多样化的 prompts ,覆盖了 relation 在文本中可能表达的各种方式。然而,这也容易产生噪音,因为以这种方式获得的许多 prompts 可能对该 relation 的指示性不强(例如,"x, y" ),即使它们很频繁出现。

    基于挖掘的方法依赖于第三方数据源,即维基百科。这在实验部分提到了这一点。因此,如果任务包含的关系不在维基百科中,那么基于挖掘的方法不可用。

2.2.2 基于转述的 generation

  1. 我们的第二种生成 prompts 的方法更有针对性,它的目的是在相对忠实于原始 prompts 的情况下提高词汇的多样性。具体而言,我们通过对原始 prompts 进行转述(paraphrasing),使之成为其他语义相似或相同的表达。例如,如果我们的原始 prompts"x shares a border with y" ,它可以被转述为 "x has a common border with y" 、以及 "x adjoins y" 。这在概念上类似于信息检索中使用的 query expansion 技术,即重新表述一个给定的 query 以提高检索性能(《A survey of automatic query expansion in information retrieval》)。

  2. 虽然许多方法可以用于转述,但我们遵循使用 back-translation 的简单方法(《Improving neural machine translation models with monolingual data》《Paraphrasing revisited with neural machine translation》):

    这种方法依赖于外部的翻译模型,因此也不是端到端的。

    • 首先将初始 prompt 翻译成另一种语言的 B 个候选。

    • 然后将每个候选翻译成原始语言的 B 个候选。此时我们一共有 B×B=B2 个候选。

    • 最后,我们根据 B2 个候选的 round-trip 概率进行排名,并保留 top Tprompts 。其中 round-trip 概为:

      (3)Pforward(t¯t^)×Pbackward(tt¯)

      其中:t^ 为初始的 promptt¯ 为另一种语言中的翻译后的 prompttfinal prompt

      round-trip 概率的物理含义为:给定原始语言输入 t^ 的条件下,得到原始语言输出 t 的概率。

2.3 Prompt Selection and Ensembling

  1. 这里我们介绍如何使用所生成的 prompts

    下面的所有方法都需要一个验证集来筛选以及 ensemble 候选的 prompts

2.3.1 Top-1 Prompt Selection

  1. 对于每个 prompt ,我们可以用以下公式来衡量其预测 ground-truth objects 的准确率(在训练数据集上):

    (4)A(tr,i)=(x,y)Rδ(y=argmaxyPLM(yx,tr,i))|R|

    其中:

    • R 为关系 r 的所有 subject-object pairs 的集合。

    • tr,i 为关系 r 的第 iprompt

    • δ()Kronecker’s delta function ,当内部条件为 true 时返回 1,否则返回 0

    在用于查询语言模型的最简单的方法中,我们选择准确率最高的 prompt ,并只使用这个 prompt 进行查询。

2.3.2 Rank-based Ensemble

  1. 接下来,我们研究了不仅使用 top-1 prompt ,而且将多个 prompts 组合在一起的方法。这样做的好处是,在训练数据中,语言模型可能在不同的上下文中观察到不同的 entity pairs ,而拥有各种各样的 prompts 可能会允许引导那些出现在这些不同上下文中的知识。

  2. 我们的第一种 ensembling 方法是一种无参数的方法,对 top-ranked prompts 的预测进行平均。我们根据训练集上预测 objects 的准确率对所有的 prompts 进行排名,并使用 top-K prompts 的平均对数概率来计算 object 的概率:

    (5)s(yx,r)=i=1K1KlogPLM(yx,tr,i)P(yx,r)=softmax(s(x,r))y

    其中:

    • tr,i 为准确率排名为第 iprompt

    • K 为超参数:较小的 K 使得结果集中在少数最准确的 prompts 上,较大的 K 增加 prompts 的多样性。

2.3.3 Optimized Ensemble

  1. 上述方法对 top K prompts 一视同仁,这是次优的,因为到一些 prompts 比其他 prompts 更可靠。因此,我们还提出了一种直接优化 prompt weights 的方法。形式上,我们将 s(yx,r) 中的分数重新定义为:

    (6)s(yx,r)=i=1TPθr(tr,ir)logPLM(yx,tr,i)

    其中:Pθr(tr,ir)=softmax(θr) 为在 prompts 上的一个分布并且被 θr 所参数化,它是一个尺寸为 T 的向量。

    对于每一个 relation ,我们要学习对一组不同的 Tcandidate prompts 进行评分,所以参数的总数是关系数量的 T 倍。我们通过在训练数据上最大化 gold-standard objects 的概率 P(yx,r) 来优化参数 θr

    这可以通过固定语言模型,并且学习 Pθr 网络参数来实现。

2.4 实验

  1. 数据集:LAMA benchmarkT-REx 子集。它有一个更广泛的 41 种关系的集合(相比之下,Google-RE 子集只包括 3 种关系)。每种 relation 关联来自维基数据的最多 1000subject-object pairs ,同时也关联一个手动设计的 prompt

    为了学习挖掘 prompts 、对 prompts 进行排序、或学习 ensemble 权重,我们为每个关系创建了一个单独的 subject-object pairs 训练集,该训练集也来自维基数据,与 T-REx 数据集没有重叠。我们把这个训练集称为 T-REx-train 。为了与 LAMA 中的 T-REx 数据集保持一致,T-REx-train 也被选择为只包含单个 tokenobjects

    为了研究我们方法的通用性,我们还报告了我们的方法在 Google-RE 子集上的表现,该子集的形式与 T-REx 类似,但相对较小,只包括三种关系。

    《BERT is not a knowledge base (yet): Factual knowledge vs. Name based reasoning in unsupervised QA》 指出,LAMA中的一些事实可以只根据 entities 的表面形式来猜测,而不需要记忆事实。他们过滤掉了那些容易猜测的事实,创造了一个更难的基准,表示为 LAMA-UHN 。我们还对 LAMA-UHNT-REx 子集(即 T-REx-UHN )进行了实验,以研究我们的方法是否还能在这个更难的基准上获得改进。

    数据集的统计数据总结在下表中。

  2. 模型:BERT-base, BERT-large

    此外,我们实验了一些通过外部 entity representation 来增强的 pretrained model ,如 ERNIE《ERNIE: Enhanced language representation with informative entities》)、KnowBert (《Knowledge enhanced contextual word representations》)。

  3. 评估指标:

    • micro-averaged accuracy :首先计算每种关系 r 上的准确率,然后在所有关系上取平均。

      然而,我们发现一些 relationobjects 分布是极其倾斜的(例如 native language 这个关系,所对应的 objects 有一半是 French),这可能会导致欺骗性的高分。

    • macro-averaged accuracy:首先独立地计算每个 unique object 的准确率,然后在所有 object 上取平均。

  4. 方法:我们尝试了不同的 prompt generationselection/ensembling 方法,并将其与 LAMA 中使用的人工设计的 prompt 进行比较。

    • Majority:为每种 relation 预测占比多数的 object

    • ManLAMA 中使用的人工设计的 prompt

    • Mine:使用通过中间单词和 dependency path 从维基百科挖掘的 prompt

      • Mine+Man:将 Mine 和人工 prompt 相结合。

      • Mine+Para :为每个 relation 将排名最高的被挖掘的 prompt 进行转述。

    • Man+Para:将人工 prompt 进行转述。

    这些得到的 prompts 可以通过 TopKOpti. 等方法结合起来。Oracle 代表 generated prompts 的性能上限:如果任何一个 prompt 使得语言模型成功地预测该 object ,则该事实被判定为正确。

  5. 实现细节:

    • 超参数: T=40B=7

    • 我们删除了如下类型的 prompts 从而减少噪音:仅仅包含 stopwords 或标点符号、长度超过 10 个单词。

    • 我们使用在 WMT'19 上预训练的 round-trip English-German neural machine translation model 进行回译,因为 English-German 是资源最丰富的 language pair 之一。

    • 当优化 ensemble parameter 时,我们使用默认参数的 Adambatch size = 32

2.4.1 评估结果

  1. 不同方法的实验结果如Table 2, Table3 所示,分别给出了micro-averaged accuracymacro-averaged accuracy

  2. Single Prompt (对应于Table 2, Table3Top1 这一列):所提出的最好的 prompt generation 方法在 BERT-base 上将 micro-averaged accuracy31.1% 提高到 34.1% ,而在 BERT-large 上将 micro-averaged accuracy32.3% 提高到 39.4% 。这表明手动创建的 prompt 是一个有点弱的下限。

    Table 4 显示了一些 mined prompts ,与人工 promtps 相比,这些 promtps带来了很大的性能提升。可以看出,使用 mined prompts 的最大收益似乎发生在人工定义的 prompt 在语法上更复杂的情况下(例如前面的几个),或者使用比 mined prompts 更不常见的措辞时(例如后面的几个)。

  3. Prompt Ensembling

    • Table 2, Table3Top3, Top5, Opti. 这三列给出了 ensembling 的结果。

      • ensembling 多个 prompts 几乎总是能带来更好的性能。

      • optimized ensembleBERT-baseBERT-large 上进一步将micro-averaged accuracy 分别提高到 39.6%43.9% ,比 rank-based ensemble (即 Top3, Top5 这两列)要好得多。

      这表明,多样化的 prompts 确实可以以不同的方式 query 语言模型,而且 optimization-based 方法能够找到有效地将不同 prompts 结合在一起的权重。

    • 我们在 Table 5 中列出了所学到的 top-3 mined prompts 的权重,以及与只使用 top-1 prompt 相比的准确率增益。

    • 我们还在 Figure 2 中描述了 rank-based ensemble 方法的性能与 prompts 数量的关系。

      • 对于 mined promptstop-2top-3 通常能给我们最好的结果。

      • 而对于 mined + paraphrased promptstop-5 是最好的。

      • 纳入更多的 prompts 并不总能提高准确率,这一发现与 optimization-based 所学到的权重迅速下降的情况相一致。

    • Table 2, Table3OracleOpti. 之间的差距表明,使用更好的 ensemble 方法仍有改进空间。

  4. Mining vs. Paraphrasing

    • 对于rank-based ensemblesTop1, 3, 5 ),通过转述产生的 prompts 通常比 mined prompts 表现更好。而对于optimization-based ensembleOpti. ), mined prompts 表现更好。

      我们推测,这是因为与转述相比, mined prompts 表现出更多的变化,而适当的加权是最重要的。这种 variation 的差异可以从每个 classprompts 之间的平均编辑距离中观察到, mined promptsparaphrased promp 的编辑距离分别为 3.272.73

    • 然而,与仅仅使用一个prompt 相比,ensembling paraphrases 所带来的改进仍然是显著的(Top1 vs. Opti. )。这表明,即使对 prompts 进行小的修改,也会导致预测的相对较大的变化。

    • Table 6 展示了对一个单词(功能词或内容词)的修改导致显著的准确率提高的案例,表明大型语言模型对查询方式的小变化仍然很脆弱。

  5. Middle-word vs. Dependency-based:我们在 Table 7 中比较了只使用 middle-word prompts 、以及将其与 dependency-based prompts 相拼接的性能。这些改进证实了我们的直觉,即属于 dependency path 但不在 subject and object 中间的单词也是relation 的指示。

  6. Micro vs. Macro:对比 Table 2Table 3 ,我们可以看到,macro-averaged accuracymicro-averaged accuracy 低得多,这表明 macro-averaged accuracy是一个更具挑战性的指标,它评估了语言模型知道多少 unique objects 。我们 optimization-based 方法在 BERT-base 上将macro-averaged accuracy22.8% 提高到 25.7% ,在 BERT-large 上从 25.7% 提高到30.1% 。这再次证实了 ensembling 多个 prompts 的有效性,但收益要小一些。

    值得注意的是,在我们 optimization-based 的方法中,ensemble weights 是在训练集的每个样本上进行优化的,这更有利于优化 micro-averaged accuracy 。优化以提高macro-averaged accuracy 可能是未来工作的一个有趣的方向,这可能会使 prompts 更普遍地适用于不同类型的 objects

  7. 不同语言模型的性能: 在 Table 8 中,我们将 BERTERNIEKnowBert 进行了比较,后两种方法通过明确纳入 entity embedding 来增强外部知识。

    • ERNIE 即使在人工 prompts 的情况下也比 BERT1 分,但我们的 prompt generation 方法进一步强调了两种方法之间的差异。这表明,如果对语言模型进行有效查询,高性能模型之间的差异可能会变得更加明显。

    • KnowBertLAMA 上的表现不如 BERT ,这与 《Knowledge enhanced contextual word representations》 的观察相反。这可能是因为在 《Knowledge enhanced contextual word representations》 中,KnowBert 被用来评估 multi token subjects/objects ,而 LAMA 只包含 single-token objects

  8. LAMA-UHN EvaluationTable 9 中报告了 LAMA-UHN 基准的性能。尽管与原始 LAMA 基准测试的表现相比,整体表现大幅下降(Table 2 ),但 optimized ensembles 仍能以较大的优势胜过人工 prompts ,表明我们的方法在检索无法根据表面形式推断的知识方面是有效的。

2.4.2 分析

  1. 接下来,我们进行进一步分析,以更好地了解哪种类型的 prompts 被证明最适合于促进从语言模型中检索知识。

  2. Prediction Consistency by Prompt:我们首先分析了在什么条件下 prompts 会产生不同的预测。我们用下面的公式来定义两个 prompts tr,itr,jprediction之间的分歧:

    (7)Div(tr,i,tr,j)=(x,y)Rδ(C(x,y,tr,i)C(x,y,tr,j))|R|

    其中:

    • 如果 prompt tr,i 能够成功地预测 y ,那么 C(x,y,tr,i)=1 ;否则 C(x,y,tr,i)=0

    • δ()Kronecker’s delta 函数,当条件为 true 时取值为 1,否则取值为 0

    对于每个关系,我们将两个 prompt 的编辑距离( edit distance )归一化为 [0, 1] ,并将 normalized distance 分成五个区间,区间间隔 0.2 。我们在下图中为每个 bin 绘制了一个箱形图从而可视化 prediction divergence的分布,bin 中的绿色三角形代表平均值,bin 中的绿色 bar 代表中位数。

    随着编辑距离的变大,divergence 也在增加,这证实了我们的直觉,即非常不同的 prompt 往往会引起不同的预测结果。Pearson 相关系数为 0.25 ,这表明这两个变量之间存在着微弱的相关性。

    箱线图最下面的 bar 代表最小值、最上面的 bar 代表最大值、箱体的底部代表下四分位数、箱体的顶部代表上四分位数。

  3. Google-RE 上的表现:我们还在下表中报告了 optimized ensembleGoogle-RE 子集中的表现。同样,ensembling diverse prompts 可以提高 BERT-baseBERT-large 模型的准确率。与 T-REx 子集上的表现相比,收益要小一些,这可能是由于只有三种 relation ,而其中一种关系(预测一个人的出生日期)特别难,以至于只有一个 prompt 产生非零准确率。

  4. POS-based 分析:接下来,我们试图研究哪些类型的 prompts 往往是有效的,方法是通过检查 prompts 的词性标注( part-of-speech: POS )模型,其中这些 prompts 成功地从语言模型中提取知识。

    open information extraction 系统中,人工定义的模式经常被用来过滤掉嘈杂的 relational phrases 。例如, 《Identifying relations for open information extraction》结合了下表中列出的三个句法约束,以提高 mined relational phrases 的一致性和信息量。为了测试这些模式是否也能表明 prompts 从语言模型中检索知识的能力,我们用这三种模式将我们的方法产生的 prompt 分为四个 cluster ,其中"other" cluster包含不符合任何模式的 prompts 。然后,我们计算每个 prompt 在所有 extracted prompts 中的排名,并在下图中用箱线图绘制出排名的分布。

    我们可以看到,与这些模式相匹配的 prompts 的平均排名要好于 "other" 组中的 prompts ,这证实了我们的直觉,即好的 prompts 应该符合这些模式。一些表现最好的 promptsPOS 签名是 "x VBD VBN IN y"(例如,"x was born in y" )、以及 "x VBZ DT NN IN y"(例如,"x is the capital of y")。

  5. Cross-model Consistency:最后,我们有兴趣知道,我们所提取的 prompts 是否是针对某一特定模型的,或者它们是否可以跨模型通用。为了做到这一点,我们使用了两种设置:

    • 一个是比较 BERT-baseBERT-large ,相同的模型架构,但规模不同。

    • 另一个是比较 BERT-baseERNIE ,不同的模型架构,但是规模相当。

    在每种情况下,我们比较了 optimization-based ensembles 在相同的模型上训练时,或在一个模型上训练并在另一个模型上测试时。如 Table 12Table 13 所示,我们发现:

    • 一般来说,在跨模型的情况下,性能通常会有一些下降(第三列和第五列),但损失往往很小。

    • query BERT-base 时,最高的性能实际上是由在 BERT-large 上优化的权重实现的。

    • 值得注意的是,在另一个模型上优化了权重的最佳准确率为 40.1%42.2%Table 12 )以及 39.5%40.5%Table 13 ),仍然比 manual prompts 获得的准确率高得多,这表明 optimized prompts 仍然能在不同的模型上提供大的收益。

    • 另一个有趣的观察是,在 ERNIE 上的性能下降(Table 13 的最后两列)比 BERT-large 上的性能下降( Table 12 的最后两列)更大,表明共享相同架构的模型从相同的 prompts 中受益更多。

    列标题包含两行:第二行表示训练 prompts 的模型,第一行表示测试 prompts 的模型。

  6. Linear vs. Log-linear Combination:如前所述,我们在主要实验中使用了概率的 log-linear 组合。然而,也可以通过常规的线性插值来计算概率:

    (8)P(yx,r)=i=1K1KPLM(yx,tr,i)

    我们在下图中比较了这两种结合来自多个 mined prompts 的预测的方式。我们假设 log-linear combination 优于线性组合,因为对数概率使我们有可能惩罚那些在任何 certain prompt 下非常不可能的 objects

    因为对数概率可以远小于零,因此,对于在任何 certain prompt 下非常不可能的 objects ,它的 P(yx,r) 远小于零,从而在 softmax 中是一个很小的数。

2.5 遗漏的设计元素

  1. 最后,除了我们前面提出的主要方法的要素之外,我们还试验了一些额外的方法,这些方法未被证明是非常有效的,因此在我们的最终设计中被省略了。我们在下面简要地描述这些方法,以及粗略的实验结果。

  2. LM-aware Prompt Generation:我们研究了通过解决一个优化问题来生成 prompts 的方法:

    (9)tr=argmaxtrPLM(yx,tr)

    其中 PLM(yx,tr) 通过一个 pretrained 语言模型来参数化。

    换句话说,这种方法直接寻找 prompt,使得语言模型分配给 ground-truth objects 的概率最高。然而,我们发现,在我们的初步实验中,由梯度引导的直接优化 prompts 是不稳定的,并且经常产生不自然的英语 prompts

    其实这就是 P-Tuning 的思想:直接优化 prompt embedding 而不是 prompt 本身。

    因此,我们转而采用了一种更直接的 hill-climbing ,从初始 prompts 开始,然后每次掩码一个 token ,并以其他 tokens 为条件用最有可能的token 来代替它。这种方法的灵感来自于 non-autoregressive machine translation 中使用的 mask-predict decoding 算法(《Mask-predict: Parallel decoding of conditional masked language models》):

    (10)PLM(witri)=<x,y>∈RPLM(wix,tri,y)|R|

    其中:wiprompt 中的第 itokentri 为掩码了第 itoken 的所有其他 tokens

    我们遵循一个简单的规则,从左到右依次修改 prompt ,这样反复进行,直到收敛。

    我们用这个方法在 T-REx-train 数据集上 refine 了所有的 mined promptsmanual prompts ,并在下表中显示了它们在 T-REx 数据集上的表现。经过微调后, oracle 性能明显提高;而 ensemble 性能(包括 rank-basedoptimization-based )略有下降。这表明,LM-aware fine-tuning 有可能发现更好的 prompts ,但部分的 refined prompts 可能过拟合于它们被优化的训练集。

  3. Forward and Backward Probabilities:最后,考虑到类别不平衡、以及模型过度预测 majority object 的倾向,我们研究了一种方法来鼓励模型预测更强烈一致的 subject-object pairs

    《A diversity promoting objective function for neural conversation models》 使用的 maximum mutual information objective 的启发,我们将每个 promptbackward log probability logPLM(xy,tr,i) 添加到optimization-based scoring 函数 s(yx,r) 中。由于objects 的搜索空间很大,我们转而采用一种近似的方法,在训练和测试时只计算由 forward probability 给出的最可能的 B 个对象的 backward probability

    这种方法的思想是:根据 label yprompts 来预测 x 。这是 《Improving and Simplifying Pattern Exploiting Training》 的核心思想。后者成功的原因有两个:后者是 few-shots 的、后者在 forward/backward 中调整了 prompts 的格式。

    如下表所示,backward probability 带来的改进很小,这表明 diversity-promoting scoring 函数可能对语言模型的知识检索没有必要。

三、AutoPrompt[2020]

论文:《AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts》

  1. pretrained 语言模型(language model: LM)在通过微调来适应下游任务时取得了非凡的成功。尽管很清楚,预训练提高了准确率,但很难确定 finetuned LM 所包含的知识是在预训练过程中、还是在微调过程中学习的。我们如何才能直接评估 finetuned LM 中存在的知识,无论是语言的知识、事实的知识、常识的知识,还是特定任务的知识?

    人们提出了许多技术从而通过分析 pretrained LM 的内部表征(internal representation )来获得这种知识。一个常见的策略是使用探测分类器(probing classifier ):使用语言模型的 representationn 作为特征来预测某些属性的浅层分类器(《Whatyou can cram into a single vector: Probing sentence embeddings for linguistic properties》《Linguistic knowledge and transferability of contextual representations》)。然而,探测分类器需要额外的学习参数,因此容易出现假阳性(false positive );高的探测准确率并不是得出语言模型包含某项知识的充分条件(《Designing and interpreting probes with control tasks》《Information theoretic probing with minimum description length》)。attention visualization 是另一种常见的技术,也有类似的失败模式:注意力得分可能与底层的 target knowledge 相关,但不是由底层的 target knowledge 引起的,这导致了对注意力得分作为解释的批评(《Attention is not explanation》《Attention is not not explanation》)。probingattention 可视化也都难以评估不能被表示为简单的 token-level 分类任务或 sequence-level 分类任务的知识。

    由于这些模型毕竟是语言模型,所以从这些模型中引出知识的一个更直接的方法是 prompting ,即把任务转换成语言模型的格式。例如:

    • GPT-2 将摘要任务设定为一个语言建模任务,通过在文章末尾附加"TL;DR:" 然后从语言模型中生成。

    • 同样,LAMA 手动将知识库补全(knowledge base completion )任务重新表述为完形填空测试(即完形填空问题)。

    与现有的模型分析方法相比,prompting 是非侵入性的:它不引入大量的额外参数,也不需要直接检查模型的 representations 。因此,prompting 提供了一个关于模型 "知道" 什么的下限,因此是一个更有用的分析工具。然而,不幸的是,prompting 需要手动制作上下文从而馈入模型。这不仅耗费时间,而且对于许多任务(例如textual entailment )来说也是不直观的;更重要的是,模型对这种上下文高度敏感:不恰当的上下文会导致人为的低性能(LPAQA)。克服 manually specify prompts 的需要,将使 prompting 成为更广泛有用的分析工具。

    在本文中,我们介绍了 AutoPrompt ,一种为任何任务生成 prompts 的自动方法,如下图所示。给定一个任务,例如情感分析,AutoPrompt 通过将原始任务输入(例如评论)与根据模板的 trigger tokens 集合相结合来创建一个 prompt 。所有输入都使用相同的 trigger tokens 集合,并使用 《Universal adversarial triggers for attacking and analyzing》 提出的 gradient-based search 策略的变体来学习。对 promptLM prediction 通过对一组相关的 label tokens 进行 边际化(marginalizing )从而转换为类别概率,其中 label tokens 集合可以提前学习或人工指定,使得语言模型的评估与其他分类器的评估相同。

    我们在许多实验中验证了AutoPrompt 的有效性。

    • 首先,我们使用AutoPrompt 构建 prompts ,测试 pretrained masked language model 的情感分析和自然语言推理。我们的测试显示,在没有任何微调的情况下,masked language model: MLM 在这两项任务中表现良好:经过适当 promptedRoBERTaSST-2 上实现了 91% 的准确率,在 SICK-E 数据集的平衡的变体上的准确率为 69%

    • 接下来,我们将AutoPrompt 应用于LAMA的事实检索任务,其中我们构建 prompts ,比使用人工 prompts 、以及从语料库挖掘方法生成的prompts 更有效地引导 MLM 的事实知识。具体来说,我们实现了 43.3%precision-at-1 ,而目前最好的 single prompt 结果是 34.1%

      我们还介绍了这项任务的一个变种,类似于关系提取(relation extraction: RE ),测试 MLM 是否能从给定的文本中提取知识。我们表明,当提供具有真实事实的上下文句子时,MLM 实际上可以胜过现有的 RE 模型,然而,当上下文句子被人为地伪造时,它们就会陷入困境。

    最后,尽管 AutoPrompt 的目标是分析模型,但我们发现它比微调提供了某些实际优势。

    • 首先,AutoPrompt 在低数据的情况下比微调实现了更高的平均准确率、 worst-case 准确率。

    • 此外,与微调不同,prompting LM 不需要大量的磁盘空间来存储模型 checkpoints ;一旦找到 prompt ,它就可以用于现成的 pretrained LM 。这在为多个任务 serving 模型时是很有利的。

3.1 方法

  1. pretrained LM 中获取知识的一种自然方式是将任务设定为完形填空问题。然而,编写 prompts 不仅耗费时间,而且不清楚相同的措辞是否对每个模型都有效,也不清楚什么准则决定了某个特定的措辞是否最能引导出所需的信息。有鉴于此,我们提出了AutoPrompt ,一种为特定任务和感兴趣的MLM 构建 customized prompts 的方法从而使 MLM 产生所需的知识。

    Figure 1 提供了AutoPrompt的说明。该 prompt 是通过获取原始任务输入( tokens 的一个序列或多个序列的集合,例如,Figure 1 中的评论),并使用模板将其映射到 tokens 序列中从而构建。在下面的章节中,我们将描述 AutoPrompt 如何使用 标记的训练数据来构建 prompts ,以及如何使用 MLM 的输出作为任务的 prediction

    Trigger Tokens 集合是基于梯度的搜索算法来自动产生的集合,它的数量 k 是一个超参数,每个 token 来自于词表 V

    注意:这里的 prompts 不是位于输入的开头,而是放在输入和输出(即,[MASK] token )之间。

  2. 出于 prompt construction 的目的,我们将原始任务输入 xinp (例如,Figure 1 中的评论,"a real joy.")与馈入 MLMprompt xprompt (例如,"a real joy. atmosphere alot dialogue Clone totally [MASK]." )区分开来。从 xinpxprompt 的映射是通过一个模板来进行的,即 λ。这个模板定义了每个输入序列在 prompt 中的位置,以及任何 additional tokens 的位置。具体而言,它还必须定义一个特殊的 [MASK] token 的位置,用于 MLM 进行完形填空(在模板中用 [P] 表示,以区别于其他可能出现的 [MASK] token )。将 prompt 信息馈入 MLM 会产生一个概率分布 p([MASK]xprompt),描述哪些 tokens 最有可能填入空白(即,完形填空)。

    如果 class labels 自然对应于词表中的 tokens (例如,knowledge base completion 任务中的实体名称),这种分布可能很容易被解释为 class labels 的分布。然而,对于情感分析这样的任务,可能有一组 label tokens Vy 对应于一个特定的标签 y 。例如,在 Figure 1 中,"Cris", "marvelous", "philanthrop" 都表示 positive 情感。在这种情况下,类别概率是通过对 label tokens 的边际化从而得到的:

    (11)p(yxprompt)=wVyp([MASK]=wxprompt)

    由于只有一个 [MASK] token,因此 AutoPrompt 仅支持单个 token 作为 label 的任务。

  3. Gradient-Based Prompt Search:到目前为止,我们已经展示了如何将分类任务重新表述为使用 prompt 的语言建模任务。在此,我们提出一种基于 《Universal adversarial triggers for attacking and analyzing NLP》automatic prompt construction 方法。我们的想法是增加一些 "trigger" tokens,这些 tokens 在所有 prompt 中都是共享的(在 Figure 1 的示例模板中用 [T] 来表示)。这些 tokens 被初始化为 [MASK] tokens ,然后迭代式地更新,从而在 batch 的样本中最大化 label likelihood

    正式地,在每个 step ,我们计算将第 jtrigger token xtrig(j) 与另一个 token vV 交换之后,产生的对数似然的变化的一阶近似值。然后,我们确定一个候选集合 Vcand ,该候选集合估计会导致最大的对数似然增长的 top-k tokens

    (12)Vcand=top-kvV[vintjlogp(yxprompt)]

    其中:

    • vintoken vinput embedding

    • 梯度是相对于 xtrig(j)input embedding tj 来计算的。

    其实这就是 P-Tuning 的思想:直接优化 prompt embedding 而不是 prompt 本身。但是,AutoPrompt 为了确保更新后的 prompt 仍然是词表中的一个 token,它将寻找了那些与梯度最相似的 tokens (通过 embedding 的内积)。

    注意:这里没有采用负梯度,因为目标是最大化 logp(yxprompt)

    注意,计算这个候选集合的成本与模型的一次前向传播和反向传播的成本差不多(点积需要的乘法数量与计算 LM output projection 的乘法数量相同)。对于这个集合中的每个候选,我们再对更新后的 prompt 重新评估方程:

    (13)p(yxprompt)=wVyp([MASK]=wxprompt)

    并在下一步中保留概率最高的 prompt ,这需要模型的 k 次前向传播(k 为超参数,表示 label tokens 的数量)。Figure 1 显示了该方法为情感分析任务产生的一个样例的 prompt

  4. Automating Label Token Selection:虽然在某些情况下,label tokens 的选择是显而易见的(例如,当class labels 直接对应于词表中的单词时),但对于涉及更抽象的 class labels 的问题(例如,自然语言推断),什么 label tokens 是合适的就不太清楚了。在本节中,我们开发了一个通用的 two-step 法来自动选择 label tokens 集合 Vy

    • 在第一步中,我们训练一个 logistic 分类器,使用 [MASK] tokencontextualized embedding 作为输入来预测 class label

      (14)h=Transformerenc(x~)

      我们将分类器的输出写为:

      (15)p(yh(i))exp(h(i)wy+βy)

      其中:

      • wyβy 为针对 label y 学到的权重和 bias

      • i 代表 [MASK] token 的位置索引。

    • 在第二步中,我们用 MLMoutput word embedding wout 代替 h(i),得到一个分数 s(y,w)=p(ywout)。然后,label tokens 的集合是由得分最高的 k 个单词来构建:

      (16)Vy=top-kwV[s(y,w)]

      这等价于寻找与 wy 最相似的 top-ktokens

      假设有 label space 的大小为 M ,则需要为每个标签寻找 ktokens,则一共需要寻找 Mktokens

  5. 与其他 Prompting 方法的关系:我们的工作适合于通过 prompts 来探测语言模型的知识的工作。以前的工作使用人工定义的 prompts 来研究语言模型的能力。PET 方法将手动构建的 prompts 与半监督学习结合起来用于 few-shot learning 。我们为任何任务自动创建 prompts ,这导致了更高的准确率,并打开了新的现象来分析。

  6. 评估设置:在下面的章节中,我们应用 AutoPrompt 来探测 BERT_BASE110M 参数)和 RoBERTa_LARGE355M 参数)对以下任务的知识:情感分析、自然语言推理(natural language inference: NLI )、事实检索、关系提取。

    • 我们使用 PyTorch 的实现和 transformers Python 库提供的 pretrained 权重。

    • 对于情感分析和自然语言推理,我们使用前文描述的基于逻辑回归的启发式方法寻找 label tokens 。对于事实检索和关系提取,我们跳过这一步,因为label (实体)直接对应于词表中的tokens

    • 对于所有的任务,我们进行前文所述的 prompt search ,进行多次迭代。在每个迭代中,我们使用一个 batch 的训练数据来确定候选集 Vcand 。然后,我们在另一个 batch 数据上评估 updated promptslabel likelihoods ,并在下一次迭代搜索中保留最佳 trigger token

      在每个迭代结束时,我们在 holdout 的验证数据集上测量 label likelihoods ,并将整个搜索过程中发现的最佳 prompt 作为最终输出。

    • 我们使用适当的特定任务的指标对性能进行评估(在一个单独的holdout 测试数据集上):例如,情感分析和自然语言推断采用准确率指标、事实检索采用 precision@k 指标。

    我们的 AutoPrompt 实现在http://ucinlp.github.io/autoprompt ,并支持在任意数据集上为 HuggingFace transformers library 中的 pretrained 模型生成 prompt

3.2 实验

3.2.1 情感分析

  1. 数据集:Stanford Sentiment Treebank: SST-2

  2. 设置:

    • 基于 Table 3 中的模板的 prompt 来寻找 label tokens

    • gradient-based prompt search 的超参数网格搜索:|Vcand|{10,100},|Vy|{1,3,5},|xtrig|[3,6]

    • 所有的 prompts 都是以用于寻找 label set 的相同模板来初始化的。

    • 手动构建了一个 prompt (在 automated prompts 生成之前,以避免 bias )。我们使用 "{sentence} this movie was [P]" 作为模板,并分别使用 "terrible""fantastic" 分别作为负面和正面的 label tokens

  3. 实验结果如下表所示。我们自动构建的 prompts 比人工 prompts 更有效,而且这些 prompts 很难用人类的直觉来构建:RoBERTa 的最佳模板是 "{sentence} atmosphere alot dialogue Clone totally [P]"

    上半部分数据为监督学习得到,下半部分为无监督的 prompts 得到。

  4. 低数据环境下的准确率:虽然 AutoPrompt 的目标是探测模型的知识,但我们也发现,它可能是低数据环境下微调的一个可行的替代方案。为了证明这一点,我们在使用训练数据中的 {10, 100, 1000} 个样本的随机子集时,测量了 AutoPromptprompts 的验证集集准确率。结果如下图所示。

    我们观察到,虽然微调在情感分析上优于 AutoPrompt ,但 AutoPromptNLI 上的表现比微调更好。

3.2.2 Natural Language Inference: NLI

  1. 数据集:SICK

  2. 设置:

    • 基于 Table 3 中的模板的 prompt 来寻找 label tokens

    • gradient-based prompt search 的超参数网格搜索:|Vcand|{10,50},|Vy|{1,3,5,10},|xtrig|[1,5]

    • 所有的 prompts 都是以用于寻找 label set 的相同模板来初始化的。

  3. 结果如下表所示,AutoPrompt 在所有实验中都大大超过了大多数基线。

    首先,这里没有看到基线;其次,AutoPrompt 也没有超过监督学习的方法。

  4. MLM 在矛盾上的表现:我们发现,与 entailmentneutral 相比,contradictionlabel tokens 更容易解释( Table 3 的例子)。我们研究这是否会损害模型在 entailmentneutral 类别上的表现。

    我们测量了 3-way balanced SICK-E 数据集中每个标签的 precisionBERTcontradiction, entailment, neutral 情况下分别获得 74.9%, 54.4%, 36.8%precision ,而 RoBERTa 分别获得 84.9%, 65.1%, 57.3%。这些结果表明,AutoPrompt 对于那些可以用自然的 label tokens 轻松表达的概念可能更准确。

3.2.3 事实检索

  1. 数据集:LAMA

  2. 设置:

    • 我们将三元组 (sub, rel, obj) 映射到模板 "{sub}[T]...[T][P]." 从而重新表述 fact retrieval 。其中,trigger tokens 是特定于关系 rel 的,正确的宾语 objlabel token

    • 我们使用 LAMA 的原始测试集,以下简称 Original

    • 我们使用 57tokensAutoPrompt ,并使用 T-REx 验证集选择搜索参数。

    • 我们防止训练数据中作为 gold objects 出现的专有名词和专有 tokens 被选作 trigger tokens 。这样做是为了防止AutoPrompt 通过在 prompts 中嵌入通用答案来 "作弊"。

    • 评估指标:mean reciprocal rank: MRRprecision-at-1: P@1precision-at-10: P@10

  3. 结果如下表所示。

    • 使用 AutoPrompt 生成的 prompts 可以从 BERT 中更有效地提取事实知识:相对于 LAMA,我们在 Original 上将 P@1 提高了 12 个点。

    • 尽管 AutoPrompt 每个关系只使用一个 prompt ,但它仍然比 LPAQAensemble 方法(对多达 30prompts 的平均预测)高出约 9 个点。

    • 使用 7trigger tokens 取得的分数比 5trigger tokens 略高,尽管差异不大。

    • RoBERTa 的表现并不比 BERT 好(右图),这值得在未来的工作中进一步调查。此外,回顾一下,prompts 是对模型知识的一个下限:较低的相对性能并不意味着模型实际上知道的更少。

3.2.4 关系提取

  1. 数据集:T-Rex

  2. 配置:

    • 我们将三元组 (sub, rel, obj) 映射到模板 "{sent}{sub}[T]...[T][P]." 从而重新表述关系提取 。其中,trigger tokens 是特定于关系 rel 的,正确的宾语 objlabel token

    • 为了使监督下的关系提取模型的评价公平,我们修改了标准的评价:对于给定的 relation,只要模型没有预测出主语和宾语的不同 relation ,我们就给它加分;也就是说,我们忽略了"no relation " 的预测、以及所有其他 relation

  3. 实验结果如下表所示。

    • 当使用 AutoPrompt 时,MLM 可以比有监督的关系提取模型更有效地提取关系信息,提供了高达 33% 的绝对增益。

    • MLM 在关系提取环境中的强大结果的一个可能的解释是,他们可能已经知道许多关系。因此,他们可能会直接预测 objects ,而不是提取它们。为了分离这种影响,我们通过将测试数据中的每个 object 替换成一个随机的其他 object ,并对 prompt 进行同样的改变来人工地扰乱 relation extraction 数据集。

      在扰乱的数据上,关系提取模型的准确率没有明显变化。然而 MLM 的准确率明显下降。这表明 MLM 的准确率有很大一部分来自factual knowledge ,而不是 relation extraction 。尽管如此,我们对 BERTprompts 还是超过了 LAMALPAQA 对应的 prompts ,这进一步证明了 AutoPrompt 能产生更好的 prompts

3.3 讨论

  1. Prompting 作为 Finetuning 的一种替代方法:在解决现实世界的任务时,promptingfinetuning 有一些实际的优势:

    • 首先,在低数据量的情况下,使用 AutoPrompt 生成的 prompts 可以达到比微调更高的准确率。

    • 此外,在试图解决许多不同的任务时,promptingfinetuning 更有优势。具体而言,微调需要为每个单独的任务存储大量的语言模型 checkpoints ,并大幅增加系统成本和复杂性,因为它需要在同一时间部署许多不同的模型。相反,prompting 为所有的任务应用相同的 pretrained 模型。

  2. Prompting 的局限性:有一些现象是很难通过 promptspretrained 语言模型中引导的。在我们对 QQPRTE 等数据集的初步评估中,手动生成的 prompts 、以及用 AutoPrompt 生成的 prompts 并没有表现得比随机预测好很多。然而,我们不能从这些结果中得出结论:BERT 不知道 paraphrasingentailment 的意思。

  3. AutoPrompt 的局限性:

    • AutoPrompt 的一个缺点是,它需要标记的训练数据。尽管其他探测技术(例如线性探测分类器)也需要这样做,但 manual prompts 依赖于领域/语言的洞察力,而不是 labeled data

      AutoPrompt 中,标记的训练数据用于搜索 trigger tokenslabel tokens

    • 其次,与人类设计的 prompts 相比,AutoPrompt 生成的 prompts 缺乏可解释性,这与其他探测技术类似,如线性探测分类器。

    • AutoPrompt 的另一个限制是,当训练数据高度不平衡时,它有时会陷入困境。重新平衡训练数据可以帮助缓解这个问题。

    • 最后,由于在大的离散的短语空间上的贪婪搜索,AutoPrompt 有时很脆弱;我们把更有效的制作技术留给未来的方向。

    还有一个局限性,即:仅支持 single-token 作为 label 的分类任务。

四、PET[2020]

论文:《Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference》

  1. 从样本中学习是许多 NLP 任务的主要方法: 一个模型是在一组标记样本上训练出来的,然后从这些样本泛化到 unseen 的数据。由于语言、领域、以及任务的数量庞大,以及数据标注的成本,在 NLP 的实际应用中,只有少量的标记样本是很常见的,这使得 few-shot learning 成为一个非常重要的研究领域。不幸的是,将标准的监督学习应用于小训练集往往表现不佳;许多问题仅仅通过观察几个样本就很难掌握。例如,假设我们得到了以下几段文字:

    此外,设想我们被告知 T1T2 的标签分别是 ll ,并要求我们推断出 T3 的正确标签。仅仅根据这些样本,这是不可能的,因为 ll 都可以找到似是而非的理由。 然而,如果我们知道背后的任务是识别文本中是否有关于价格的内容,我们可以很容易地将 l 分配给 T3 。这说明,如果我们还有任务描述(task description ),即帮助我们理解任务内容的文本解释,那么仅凭几个样本来解决一个任务就会变得容易得多。

    随着 GPTBERTRoBERTapretrained language model: PLM 的兴起,提供任务描述的想法对于神经架构来说已经变得可行: 我们可以简单地将这种自然语言的描述附加到输入中,让 PLM 预测 continuations 从而解决任务(GPT-2《Zero-shot text classification with generative language models》)。到目前为止,这种想法大多是在完全没有训练数据的 zero-shot 场景中考虑的。

    在这项工作中,我们表明,在 few-shot setting 中,提供任务描述可以成功地与标准的监督学习结合起来。我们引入了 Pattern-Exploiting Training: PET ,这是一个半监督的训练程序,使用自然语言模式将输入的样本重新表述为 cloze-style phrases 。如下图所示,PET 分三个步骤工作:

    • 首先,对于每个模式,在一个小的训练集 T 上对一个独立的 PLM 进行微调。

    • 然后,模型的 ensemble 被用来通过 soft label 来标注一个大的unlabeled dataset D

    • 最后,在 soft-labeled dataset 上训练一个标准的分类器。

      这里已经得到了 Dsoft label 了,为什么还需要继续训练一个标准的分类器?这是因为我们的目标不仅仅是预测未标记数据集 D ,而是要泛化到 unseen 的数据。

    我们还设计了 iPET ,这是 PET 的一个迭代式的变体:在这个过程中,这个过程反复进行,并且每次迭代时增加了训练集的规模。

    在多语言的各种任务中,我们表明,只要有少量到中等数量的标记样本,PETiPET 的表现就大大超过了无监督方法、监督训练和强大的半监督基线。

  2. 相关工作:

    • GPT-2 以自然语言模式的形式提供提示,从而用于阅读理解和问答等挑战性任务的 zero-shot learning 。这一想法已被应用于无监督文本分类、常识性知识挖掘、论证关系分类(argumentative relation classification )。

      • 《Zero-shot learning of classifiers from natural language quantification》使用任务描述进行 zero-shot classification ,但需要一个 semantic parser

      • 针对关系提取,《Inducing relational knowledge from BERT》 自动识别模式,该模式表达给定的关系。

      • 《The natural language decathlon: Multitask learning as question answering》 将几个任务重新表述为 QA 问题。

      • T5 将各种问题形式化为语言建模任务,但他们的模式只是松散地类似于自然语言,不适合于 few-shot learning

    • 最近的另一项工作是使用完形填空风格的短语来探测 PLM 在预训练期间获得的知识,这包括探测事实的和常识性的知识、语言能力、对稀有词汇的理解、以及进行符号推理的能力。LPAQA考虑的问题是:找到表达给定任务的最佳模式。

    • NLP 中的其他 few-shot learning 方法包括利用相关任务的样本、使用数据增强,其中后者通常依赖于 back-translation《Improving neural machine translation models with monolingual data》)并且需要大量的平行数据(parallel data )。

      使用 textual class descriptors 的方法通常假定每个类别都有丰富的样本可用。相比之下,我们的方法不需要额外的标记数据,并提供一个直观的接口来利用 task-specific 的人类知识。

    • iPET 背后的思想(即,在前几代标注的数据上训练多代模型)与 self-trainingbootstrapping 方法有相似之处,这些方法用于词义消岐、关系提取、parsing 、机器翻译、序列序列生成等任务。

4.1 方法

  1. Mmasked language model,它的词表为 V 。令 mask token VL 为我们的目标分类任务 Alabel 集合。我们把任务 A 的输入写成短语序列 x=(s1,,sk),其中 siVV 表示所有 token 序列所构成的短语空间;例如,如果 A 是文本推理(两个输入句子),那么 k=2

    我们将模式(pattern )定义为一个函数 P ,它以 x 为输入,输出一个短语或句子 P(x)V ,该短语或句子正好包含一个 mask token 。也就是说,P(x) 可以被视为一个完形填空问题。此外,我们定义 verbalizer 为一个injective function v:LV,它将每个 label 映射到词汇 V 中。我们把 (P,v) 称为 pattern-verbalizer pair: PVP

    ”模式“ 其实就是模版,它们都是将输入的一个或多个句子转换为一个句子。

    使用PVP (P,v) 使我们能够解决任务 A ,如下所示: 给定一个输入 x ,我们应用 P 来获得一个 input representation P(x) ;然后 P(x)M 处理,从而确定标签 yL 使得 v(y) 最可能替代mask token 。例如,考虑识别两个句子 ab 是否相互矛盾(标签 y0)或相互一致(标签 y1 )的任务。对于这项任务,我们可以选择模式 P(a,b)=a?,b. ,并结合一个 verbalizer v ,其中 vy0 映射为 "Yes" 、将 y1 映射为"No" 。给定一个 input pair 的例子:

    (17)x=(Mia likes pie, Mia hates pie),

    现在的任务已经从分配一个没有固有意义的标签,变成了回答 P(x)=Mia likes pie?_ , Mia hates pie.masked position 最可能的选择是"Yes" 还是 "No"

    核心问题是:PVP (P,v) 从何而来?

4.1.1 PET

  1. PVP Training and Inference:令 p=(P,v) 是一个 PVP 。我们假设可以获得一个小的训练集 T 和一个(通常大得多)的未标记的样本集 D 。对于每个恰好包含一个 mask token 的序列 zV 、和每个 wV,我们用 M(wz) 表示语言模型在 masked position 取值为 w 的非标准化分数。给定某个输入 x ,我们定义针对标签 lL 的分数为:

    (18)sp(lx)=M(v(l)P(x))

    然后在所有标签上通过 softmax 获得概率分布:

    (19)qp(lx)=exp(sp(lx))lLsp(lx)

    我们使用 qp(lx)ground-truth 分布(一个 one-hot)之间的交叉熵来作为损失函数,从而用于微调 M

    注意:这里并没有调优 prompts,而是微调模型 M 。即:微调模型,使得模型来匹配 prompts

    注意:这里微调的是模型的 head,模型的 head 以外的参数保持冻结。

    prompt engineering 的思路是:调优/微调 prompts ,使得 prompts 来匹配模型。

    因此,PET 是微调输出侧(LM head)、prompt engineering 是微调输入侧(LM input)。

  2. Auxiliary Language Modeling:在我们的应用场景中,只有少量训练样本可用,而且可能发生灾难性遗忘。由于针对某些 PVP 进行微调的 PLM 的核心仍然是一个语言模型,我们通过使用语言建模作为辅助任务来解决这个问题。用 LCE 表示交叉熵损失、用LMLM 表示语言建模损失,我们计算出最终损失为:

    (20)L=(1α)×LCE+α×LMLM

    这个想法最近 《An embarrassingly simple approach for transfer learning from pretrained language models》 应用在一个数据丰富的场景中。由于 LMLM 通常比 LCE 大得多,在初步实验中,我们发现一个小的 α=104 能一致地提供良好的结果,所以我们在所有的实验中都使用它。

    这就是半监督学习的由来:监督信号来自于 LCE 、无监督信号来自于 LMLM

    这个超参数 α 需要较大的验证集来调优。

    为了获得用于语言建模的句子,我们使用未标记的数据集 D 。然而,我们并不直接对每个 xD 进行训练,而是对 P(x) 进行训练(即,对采用了模板之后的文本进行无监督学习),在这里我们从不要求语言模型对 masked slot 进行任何预测。

  3. Combining PVPs:我们的方法面临的一个关键挑战是,在没有大型验证集的情况下,很难确定哪些 PVP 表现良好。为了解决这个问题,我们使用了一种类似于知识蒸馏的策略(《Distilling the knowledge in a neural network》)。

    • 首先,我们定义了一组PVP ,这些 PVP 对给定的任务 A 来说是有意义的。

      模板怎么定义?模板的选择至关重要,然而论文没有回答这个问题。

    • 然后我们使用这些 PVP 如下:

      • (1):如前所述,我们为每个 pP 微调一个单独的语言模型 Mp 。由于 T 很小,即使是大量的 PVP ,这种微调也很便宜。

      • (2):我们使用所有 finetuned 模型的 ensemble M={MppP} 来标注 D 中的例子。我们首先将每个样本 xD 的未归一化的 class score 合并为:

        (21)sM(lx)=1ZpPw(p)×sp(lx)

        其中:Z=pPw(p) 为归一化的系数,