欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

阐明控制文本生成发展的文本

最编程 2024-03-18 08:31:10
...

本文正在参加「金石计划 . 瓜分6万现金大奖」

写文章之前先带你们断一下句哦 “一文理清/受控文本生成/发展脉络”


可控文本生成

这个是填坑的,看过带你了解自然语言处理文本生成方向的应该知道我举了个聊天机器人的例子。没看过也没事,继续往下看就行了。

image.png

还是这个例子,你朋友说他焦虑,如果你们俩都是大叔,你可以跟他说:来根烟缓缓。但是如果对方打开青少年模式,你肯定不能这样讲。“来根烟缓缓”就变成了毒数据。

也就是说在一些情况下某些回答是合理的,但是另一些情况下,同样的回答可能就不合理了。我们就要对控制回复过程中的情绪、角色、语气等等,也就是为了控制对话过程的合理性,生成对话内容的时候就用到了可控文本生成(Controllable Text Generation)。

除了我前边说的是这几个,我们还可以想到:

  • 在生成故事的时候我们要考虑故事线和故事结局发展方向。

  • 用文本生成做数据增广的时候,我们要确定生成的数据在不同的域上分布是均匀的。

  • 在人工智能伦理方面,要避免生成有误导性或者争议性的东西,比如性别歧视,种族歧视等等。

  • ……

可控文本生成任务发展之初

其实这个任务很早之前就有了,但是以前都是基于规则的,哪来什么可控不可控的。但是随着深度学习的发展,这个任务才有了真正的进展。

基于序列模型和特征嵌入

早期的方法是基于一些序列模型和特征嵌入的。

image.png

1603.06155.pdf (arxiv.org)

这篇文章做的主要工作是控制对话生成,通过一个基于任务的模型来确保模型对话过程中的一致性问题。

  • 先是用一个说话人模型(speaker model)将角色进行编码,获得其分布式嵌入。以此捕获任务特征信息,比如说话风格啊,对话背景啊之类的。

  • 再使用对话双方二元模型(dyadic speaker-addressee model)捕获对话者之间交互的属性。

通过上边两个模型,就可以提高模型在对话中的人格一致性,这就是基于特征嵌入

image.png

1707.02633.pdf (arxiv.org)

这个文章是使用RNN模型来控制生成内容,主要是控制文本风格去写影评(所以是真的打算拿来当水军是吗。)

基于深度生成模型

之后就是大量基于生成模型的文章,比如基于VAEs的,基于GANs的,基于能量模型的。了解的人可能知道,GANs、VAEs这些不都是图像那边的模型吗?怎么都拿来做受控文本了?这就可以拓宽迁移思路了。以下是放了是三个文章,第一个是基于VAE的,让你知道图像到文本的迁移是要考虑连续分布到离散分布的;第二个是基于GAN的,在这里是学了生成器和鉴别器的思路;第三个就是基于能量模型的,这块超出我知识范围了,感兴趣的可以自己去看。

  • [1703.00955] Toward Controlled Generation of Text (arxiv.org)

  • [2002.10375] Discriminative Adversarial Search for Abstractive Summarization (arxiv.org)

  • Energy-Based Reranking: Improving Neural Machine Translation Using Energy-Based Models - ACL Anthology

小结

基于深度学习的方法能够以数据为驱动进行端到端学习,学习到文本语言特征的低维密集向量表示。这样既可以缓解数据稀疏性问题,又能防止手工特征偏见问题。所以基于深度学习的方法具有很大的潜力。

大模型时代下的可控生成

虽然随着深度学习的发展可控文本生成取得了一定的进展,但是我们要知道,深度学习的真正的崛起很大一部分是依赖于大数据集的。因此大数据集(尤其是有标签数据集)这一点对于监督学习和一些交叉领域的文本生成还是一项挑战。

17年transformer出来了,18年开始大型预训练模型(large-scale pretrained Language models,PLMs)开始发展起来了。这些预训练模型可以依靠无标签数据进行训练,也就是借助transformer使用无监督方法学习,这样就可以使用大量无标签语料了。这些预训练模型的出现又解决了我刚才提到的问题。

因为使用了大量语料,大型预训练模型可以从数据中获得大量的语义和句法知识。大模型的强大之处在于,我们只需要对其进行微调就可以获得SOTA性能。当然现在还出现了zero-shot,你不需要微调也可以获得很好的结果。

大模型的发展对文本生成有什么影响?

在自然语言生成方面,预训练模型从大量语料中进行学习,因为语料集足够大,比如很多大模型训练都是从社交媒体爬上亿数据,因此预训练模型可以从很大程度上建模自然语言的分布,从而自然就能生成高质量文本。

但是预训练模型已经好强大了,甚至不需要任何外部知识就可以生成具有特定约束的文本了,那我们受控生成岂不是没有用武之地了?

不是的嗷。

预训练模型是基于神经网络的,神经网络是个黑盒,缺乏良好的可解释性和可控性。因此从这时候开始,可控文本生成的热点转向为如何提高基于大型预训练模型的生成模型的可解释性和可控性。

我个人的一些观点

在接触可控文本生成的过程中,我个人觉得在大型预训练模型方面还存在一个原因。

image.png

从17年Transformer出来以后,基于 Transformer 的预训练语言模型发展如火如荼。于是OpenAI那些人成功拿着Transformer做出了语言模型,那个时候GPT刚出来,惊为天人,在GPT之前,虽然图像领域已经有用ImageNet做的预训练模型了,但是NLP领域是没有像ImageNet那样大的有标签数据集的,因此迟迟没有出现预训练模型。但是GPT用无标签数据,做出来了预训练模型+微调的范式,所以说是惊为天人。

然后呢BERT就出来了,用更大的数据集更大的模型训练了语言模型。并且还在论文中写的“我们做了两个模型,一个bert base,一个bert large,做bert base的原因。就是要和GPT比较。这话一出来你能忍吗。所以GPT啪就做了一个GPT-2。用更更大的数据集做出来一个更更大的语言模型。从那之后NLP领域的预训练模型就有着越做越大的趋势。各家都开始搞大的预训练模型。不过这两年这个趋势已经收住了,大家发现大并不一定有效。开始专注于小而美的模型了。这里的小不是指把模型越做越小,而是模型体量适中,但是能取得更好的效果。

接着说预训练模型。虽然已经意识到模型越来越大也不一定有用,但是对于一些研究人员来说,即使是体量适中的模型,他们连微调的算力也承担不起。如果冻结部分模型去微调一部分,又会非常影响最后的生成效果。在不改变预训练模型架构的情况下,一些人就会想着怎么去从外部控制文本生成。

所以在我看来,这是大模型时代下可控文本生成发展的一个重要原因。仅仅是个人理解嗷

之后我大概率会单开一篇文章写大模型视角下的可控文本生成。

推荐阅读