NLP Prompting for Text Classification(1)

NLP Prompting for Text Classification

  • UniFew
  • LM-BFF

UniFew

  • 号称是简单,没有现在普遍的定制的、通常是复杂的元学习算法,大量手动/自动工程文本prompt,训练样本的排序,对held-out sets进行广泛的超参数调整,或定制学习算法。
  • UniFew将例子转换为多选题-答案(QA)格式,使用UnifiedQA,一个在大量QA对上进一步预训练的T5模型进行答案生成。
  • 与其他基于提示的模型相比,UniFew有两个主要优势。首先,提示设计问题要简单得多,因为UnifiedQA问题有明确的格式。例如,我们只需要四个通用的提示模板,涵盖了FLEX中的所有数据集,而之前的工作则需要为每个数据集提供专门的提示。其次,UnifiedQA的多选题格式确保了模型输出有效的类别标签,而不需要其他基于提示的方法所需的学习或手动定义的映射或verbalizer。
  • QA模版如下
    NLP Prompting for Text Classification(1)_第1张图片

LM-BFF

  • 我们通过引入自动提示生成来解决这个问题,包括一个修剪的暴力搜索来识别最佳的工作标签词,以及一个新颖的解码目标,使用生成性T5模型自动生成模板–所有这些都只需要重新获得少数的训练数据。

  • 我们开发了一个更精细的策略,对于每个输入,我们每次从每个类中随机抽取一个例子来创建多个最小的演示集。我们还设计了一种新的抽样策略,将输入与相似的例子配对,从而为模型提供更多的辨别性比较。
    NLP Prompting for Text Classification(1)_第2张图片

  • Prompt-based Fine-tuning
    基于提示的微调,其中L直接承担 "自动完成 "自然语言提示的任务。例如,我们可以用输入x1的提示(例如,“没有理由看它。”)制定一个二元情感分类任务。并让L决定为[MASK]填写 “伟大”(正面)还是 “可怕”(负面)更合适。现在我们将这种方法正式用于分类和回归。
    在这里插入图片描述

    1. 分类
      NLP Prompting for Text Classification(1)_第3张图片
      其中,h[MASK]是[MASK]的隐藏向量,wv(可训练)表示与v∈V相对应的pre-softmax向量。当有监督实例{(xin,y)}时,可以对L进行微调,使交叉熵损失最小。值得注意的是,)种方法重新使用了预先训练好的权重wv,没有引入任何新的参数。它也重新缩小了预训练和微调之间的差距,使其在少数情况下更加有效。
    2. 回归
      我们假设与分类中的基本设置相同,但将标签空间Y视为一个有界区间[vl, vu]。受Mettes等人(2019)的启发,我们将问题建模为两个对立极{yl,yu}之间的插值,其值分别为vl和vu。例如,我们可以将之前的情感分析任务表述为[0,1]范围内的回归问题,我们在 “可怕”(vl=0)和 “伟大”(vu=1)之间滑动。通过这种方式,我们可以将y表达为一个混合模型。
      在这里插入图片描述
      其中p(yu | xin)是yu的概率,而p(yl|xin)=1-p(yu|xin)。M: {yl,yu} → V, p(yu | xin)的建模公式与分类的建模公式公式相同。我们对L进行微调,使推断出的p(yu | xin)与观察到的混合物权重(y-vl)/(vu-vl)之间的KL差值最小。
  • 自动生成label词汇
    对于每个类别c∈Y,我们构建一个修剪后的Vc⊂V的前k个词汇集,基于它们使用初始的L计算出的条件可能性排序。也就是说,让Dc⊂Dtrain是训练的子集,含有所有类别c。我们使用如下方法计算Vc:
    NLP Prompting for Text Classification(1)_第4张图片
    PL是预训练模型对MASK槽输出的所有语料库中词语的概率。为了进一步缩小搜索空间,我们在修剪后的空间中找到前n个分配,使在Dtrain上的zero-shot学习准确性最大化。然后,我们对所有的前n个分配进行微调,并使用Ddev重新排序以找到最佳分配。

  • 自动生成模版
    为了生成模版,我们使用了T5这个大型的文本到文本的预训练Transformer。 T5经过预先训练,可以填补其输入中缺失的跨度(由T5掩码标记取代,如或)。例如,给定输入 “感谢你我参加你的聚会周”,T5被训练成生成"邀请上",这意味着 "邀请 "是的替换,"上"是的替换。这很适合于提示生成:我们可以简单地从Dtrain中获取输入信息,并让T5模型构建模板T,而不需要为其准备数据集数量的模版。
    NLP Prompting for Text Classification(1)_第5张图片
    NLP Prompting for Text Classification(1)_第6张图片
    如上图所示,我们依靠T5模型来填充占位符。解码时,我们的目标是
    找到一个对Dtrain中的所有例子都能很好地工作的模版输出。也就是说找到一个logP(T|T(x,y))最大的输出模版,其中PT5表示T5的输出概率分布。它可以根据以下情况进行分解。
    NLP Prompting for Text Classification(1)_第7张图片

  • 给提示(demonstration)训练法
    在每个训练步骤中,我们从每个类别中随机抽取每一类中的一个例子{x©,y©}∈Dtrain,在训练中将其转化为T(xin),并将[MASK]替换为M(y©)–我们将其表示为T~{x©, y©}–并在将它们与xin连接起来。
    在这里插入图片描述
    为了保证demonstration和输入保持一定的相似性,我们使用一个预训练的SBERT(Reimers和Gurevych,2019年)模型来获得所有输入句子的嵌入(对于sentence-pairs任务,我们使用两个句子的的concat)。在这里,我们只是将没有模板的原始句子输入SBERT。对于每个查询xin和每个标签c∈Y,我们把所有具有c类标签的输入与原始输入计算余弦相似性得分cos(e(xin), e(x)),并只从每个类别的前r = 50%的实例中取样作为demonstration。

你可能感兴趣的:(论文阅读,自然语言处理,深度学习,python)