【Coling 2022】Context-Tuning: Learning Contextualized Prompts for Natural Language Generation

在这里插入图片描述

如何根据上下文生成好的prompt?

摘要

近年来,预训练语言模型在语言生成方面取得了很大的成功。为了利用预训练语言模型中丰富的知识,一种简单而强大的范式是使用离散token形式或连续embedding形式的prompt。
然而,在当前的研究中,这些prompt通常独立于输入,缺乏对于输入语义的充分考虑。
为了解决问题,本文提出一种新颖的,基于连续embedding的prompt方法,即context-tuning方法,来对预训练语言模型进行微调。
具体地说,第一,在context-tuning方法中,prompt是基于输入文本生成的(contextualized prompts),并在文本生成过程中帮助诱导预训练语言模型的知识;第二,本文使用连续逆prompt,通过建模从输出到输入的逆过程,来使得生成的文本与输入的相关性更强,从而改进自然语言生成的过程。
通过使用上述方法,本文能在只微调0.12%模型参数的情况下保持良好的实验性能。

简介

Introduction部分第一段介绍了自然语言生成任务,并说明了使用prompt方法的主要目的(利用预训练语言模型中的知识),并介绍了prompt方法的一般做法(在输入前添加离散token或连续embedding),最后说明了本文的主要目的,即设计更加高效的prompt方法。
第二段进一步用论文说明了prompt的两种一般做法,并指出了这些方法的共同缺陷:即,prompt是静态的,其中包含了和任务相关的信息,但是对于不同的输入文本,使用的prompt是相同的。
第三段作者主要是结合自己的任务说明了,为什么使用动态的prompt是一件重要的事情。本文主要想研究的任务是开放式的生成任务,比如故事或评论生成,在这种设置下,输入文本中所包含的信息通常非常有限,而任务目标是根据有限的输入产生具有丰富信息量的输出。此时如果还是只使用手工的静态prompt,如Table1中的Write a story about:,prompt能提供的信息量则非常少,因此作者认为应该从输入title中生成上下文化的prompt(contextualzed prompt)。

但是在分类这样的较为简单的任务中,利用语言模型所生成的prompt中是有用的知识更多,还是噪声更多恐怕有待考量。

第四段作者介绍了本文所使用的方法,主要包括3点贡献:

  1. prompt是由输入文本通过从PLM中诱导知识所生成的。具体地说,本文通过拼接输入与一段[MASK] token序列,并将它们送入BERT模型,利用BERT的完形填空能力,来预测这些[MASK] token,从而从BERT中诱导出与输入相关的知识,以增加输入的信息量。作者将BERT模型最后一个隐藏层的输出作为prompt向量的表示,由于这些表示与输入高度相关,因此本文将其叫做contextualized prompts。
  2. 为了进一步增强生成文本和输入文本之间的关联,本文使用连续prompt进行了逆prompting过程,并将这种方法称作continuous inverse prompting。具体地说,作者根据生成文本和连续prompt来生成输入文本,以使得生成文本和输入更加相关。
  3. 作者采用了轻量的训练方式,即只调整模型bias term,这样,可以在只使用模型0.12%的参数量的情况下,达到全量微调98%的效果(所以prompt方法效果还是没有超过全量微调吗)
    最后,作者对本文的贡献做出了总结,即,本文是第一个在文本生成领域编码与输入相关的信息到prompt中的方法,这种方法可以诱导与输入相关的知识,并且提高生成文本和输入文本之间的相关程度。

related work中补充说明了使用contextualized prompt的用处,即丰富输入

在这里插入图片描述

方法

Contextualized Prompts

在输入两端拼接[MASK] token序列,利用BERT的完形填空能力,获取[MASK]位置的表示,获取一些和输入X相关的知识。
在这里插入图片描述
在这里插入图片描述
为了将这些[MASK] token的表示映射到语义空间当中,作者进一步训练了一个转换矩阵 W V W^V WV,将[MASK] token的表示映射为词表的分布,然后对词表所对应的token embedding进行加权,得到转换到语义空间之后的prompt的表示:
在这里插入图片描述
在这里插入图片描述
最后将所得到的prompt用于生成模型的生成过程中:
在这里插入图片描述

Continuous Inverse Prompting

尽管contextualized prompts可以提高输入的信息量,但是随着生成文本长度的增加,生成过程仍然面临着脱离主题的问题。为了解决这一问题,本文提出连续逆prompting方法,来增加生成文本和输入文本的相关程度,从而解决主题脱离的问题。基于的假设是,如果可以根据生成文本产生输入文本,那么生成的文本是与输入文本高度关联的。
在这一步中,作者认为从输出到输入的生成过程体现的是y与x之间的关系,是与任务相关,而非与输入相关的,因此使用了静态的连续prompt。
在这里插入图片描述
两个和prompt相关的任务作者是同时训练的:
在这里插入图片描述

实验结果

相比原始BART, prompt-tuning效果较差,prefix-tuning效果有点下降,Context-tuning效果在Full fine-tuning和Lightweight fine-tuning的情况下均取得了较好的效果。
在这里插入图片描述
消融实验,手工prompt受prompt设计的影响较大,ROBERTA生成的[MASK] token效果不如BERT(why!!?),Semantic Mapping以及Inverse Prompting都能起到一定效果。
在这里插入图片描述
Prompt长度需要达到150个左右token。
在这里插入图片描述
生成文本示例,contextual prompts中的单词为BERT词表中和[MASK] token输出表示的cosine相似度最大的单词。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值