机器之心报道
在 WAIC 2022 AI 开发者论坛上,澜舟科技创始人兼 CEO、中国计算机学会 CCF 副理事长、创新工场首席科学家周明发表主题演讲《基于预训练语言模型的可控文本生成研究与应用》。
在演讲中,他主要从四个部分进行了介绍:可控文本生成背景、可控文本生成研究进展、澜舟可控文本生成应用实践、总结与展望。说到可控文本生成研究进展,周明总结了三个技术要点:可控文本生成神经网络模型、可控文本生成模型训练与解码、改进生成文本的事实正确性。此外,周明还介绍了澜舟可控文本生成平台,并从应用角度进行介绍,例如基于关键词的内容生成、基于写作模板的内容生成、现代文小说续写等。
以下为周明在 WAIC 2022 AI 开发者论坛上的演讲内容,机器之心进行了不改变原意的编辑、整理:
大家下午好,今天非常荣幸来到机器之心开发者日,向大家介绍一下我们最新的工作,我的演讲题目是《基于预训练语言模型的可控文本生成研究与应用》。
主要有四个方面,第一可控文本生成的背景,第二可控文本生成的研究进展,第三澜舟科技在可控文本生成中的应用实践,第四是总结与展望。
可控文本生成背景
先说一下可控文本生成的背景,文本生成大家都清楚,比如我们平时要写一些东西,一般会有题目、关键词或者提纲,然后人开始去写。当然这是一个迭代的过程,第一遍写完之后再改进、修正,直到满意为止。现在我们让机器来写文本,它的输入可以是一个两个关键词、几个小题目。如今,文本生成几乎成了人工智能研究的必要技术,比如写小说、写报告以及对话生成。
文本生成的任务有很多,但什么是可控文本生成?用 AI 去写,有时候可能不是你要表达的意思,有时想控制一下,例如生成的文本里必须包含如下几个关键词,或者必须体现某种风格;比如说幽默或者欢乐的表达,或者文本使用对象是小孩、老人、男孩、女孩之类。这些关键词、限制信息等各种参数就是可控参数,我们希望电脑生成的文本可以满足这些要求。这样生成文本的方式就是可控文本生成。
这里给大家看几个例子,可以输入一些关键词或者事实、知识图谱三元组、键值对(比如天气一定是好,房子一定是白色的),再就是标题,然后电脑就可以自动生成我们想要的文本。
面向文本生成任务的可控文本生成,目前都是用预训练模型来做的,比较常见的有 GPT、BART、T5 等等。预训练模型有时候用海量文本进行自监督学习,有时候用多任务去学习一个语言模型;有的语言模型非常擅长于理解任务,有的非常擅长于生成任务,GPT 之类的模型就比较善于生成任务。
尽管基于预训练的文本生成取得了较大进步,大家看到,有的生成模型生成的文本仍有各种各样的问题,比如内容逻辑错误、内容发散不聚焦、语句重复等等。
可控文本生成研究进展
我给大家简单综述一下可控文本生成最新的研究进展,分三个部分:第一部分是可控文本生成的神经网络模型、细粒度可控文本生成建模方法、长文本生成建模方法;第二部分是可控文本生成的模型训练与解码、可持续学习与轻量化微调、长文本生成模型训练方法、可控生成的解码方法;第三部分是如何改进生成文本的事实正确性,即融入知识的可控文本生成方法。
这些是可控文本生成的一般方法。我们说可控,什么是可控,关键词要体现出来、语义风格要体现出来,具体怎么做?
实现可控生成通常有三种方法,第一种方法是调整解码策略,在解码的时候,把我们希望突出的词的生成概率往上调,使模型倾向于输出这样的词;第二种方法是调整一些训练的目标函数,比如说我们要输出非常快乐的语句,就在 模型的输出层再加一个模块,用于判断它是正面的或者欢快的,然后再输出,这就相当于增加了一个训练函数;第三种就是调整模型输入,像我们用提示方法,或者专门做一个 prompting 网络来控制输出的过程。
像 GPT 是比较常见的方法,但是有些问题,它很难实现细粒度可控的学习。简单采用 Prompting-based 的方法难以实现细粒度的控制,随着生成距离的增加控制能力越来越弱,难以使用一个 Prompting 控制整个生成的文本。
在最近一个 ACL 论文的工作中,研究者提出了细粒度的可控文本生成模型。它有一个 Prompt 网络,把希望可控的部分放在 Prompt 里面,可以是具体的关键词或者写作风格;后面用了一个 GPT,GPT 原封不动,让 GPT 输出文本的表示。为了可控,由于没办法控制 GPT 某一个地方输出你所喜欢的风格,该模型添加额外的一个生成模块,如图中黄色部分,它同时接受 Prompt 网络的输出,加上 GPT 部分的输出,再次作为输入,然后决定下一个词是什么词。这个词决定完了之后,再加入到 GPT 的输出,然后继续生成下一个词。
这样做的好处是,第一利用 Prompt 网络非常灵活;第二不用改 GPT;第三训练成本非常低,因为基本上 GPT 不用动,只需要训练 Prompt 网络和黄色部分的生成网络参数就可以了。
这里有一个小细节,第一步是初始化,这个 Prompt 网络用 GPT 本身的参数来初始化,Prompt 网络就容易达到相对来讲比较满意的值;然后,第二步对 Prompt 做一些预训练;第三步对 Prompt 网络和 GPT 互动的部分再进行一些微调;最后,如果有真实输入和输出对应的数据,可以再把 Prompt 网络进行微调。
第二个是基于记忆网络的长文本生成模型。长文本在用预训练模型生成时越到后面越发散,同时,太长的文本难以放到 Transformer 中计算,所以就把已经生成好的部分用一个记忆网络存着。这里做了一个改进,引入记忆单元(向量矩阵)存储历史信息,并对历史生成信息进行压缩,将记忆网络的部分当成将要生成内容某种意义上的输入,然后输出的结果就变好了。
持续学习是什么意思呢?比如,我已经做了一个文本生成,这个文本生成能实现 N 个任务,现在再做一个文本生成实现 N+1 个任务,同时希望任务之间共享一些参数节省训练效率,这是怎么实现的呢?这里就用了可持续学习的方法。
最右边的蓝图假设有三个任务实现,传统的方法就是三个任务分别训练一个模型,模型和模型之间不搭界;中间的图是三个任务让他们共享一个模型,中间插入一些参数,但每个任务的路径还是独立的;第三个图表示,还是有些路径可以共享的;怎么样利用已有的神经网络部分,不要再做重复的工作呢?
于是提出了可持续学习模型,来一个新的任务的时候,先去算跟已有任务之间的相似度,如果相似度比较大,就重复使用已有的模型,这样来提高效率。
还有一种情况是,在输出的时候总是有重复的词或重复的句子,所以就有人研究使用对比学习方法。这里的对比学习方法意思是,输出的词既要算最大似然,还要跟前面已经输出的词算语义相似度,如果语义相似度特别近则给一个惩罚值。用这个方法就减少了后面的词跟前面的词重复出现的概率。
我们总是希望生成是多样化的生成,尤其是在实际应用的时候。比如营销文案生成的时候,我们希望每一次输出多个结果,而且各不相同。这个解码的多样化是非常重要的任务。怎么样来实现解码的多样化呢?Beam Search 用得比较多,可以生成多个结果;然后 Greedy 的话,每次只选第一个词。但是 Beam Search 和 Greedy 每次输出的结果都类似。这里有人提出了一个新的方法——组合采样;就是在输出的时候,先输出若干个关键词作为前缀词来引导输出,输出的关键词就是多样化的,每个多样化的关键词再用 Beam Search,它的多样化就会增加,这样就有效解决了多样化的问题。
还有一种情况是在生成的时候有知识图谱,如何把领域知识和知识图谱融入在生成过程中,有两种方法可行。第一种方法把这些知识图谱文字化;第二种方法是在生成的时候利用关键词查知识图谱,利用知识图谱拓展输入层,使它生成更多的东西,而每个生成都符合知识图谱。
前面快速介绍了文本生成目前的关键技术,总结一下,第一改进细粒度的生成,第二改进长文本,第三改进多样化的问题,还有减少重复出现问题。这都是文本生成领域大家非常关注的问题。我刚才介绍的绝非是最优的方法,只是给大家一个思路。我们在自己做文本生成的时候也受到很大的启发,也开发了自己的思路。
可控文本生成应用实践
下面介绍一下我们的项目。第一个是我们做了澜舟的可控文本生成平台,最底层是各种各样的数据。我们有一个基于神经网络的生成模型,基于这个模型可以接受垂直领域的数据或者知识图谱。我们目前有弱标注学习数据构建、篇章结构建模、自动评测,然后生成各种各样的文本。
我们在做的时候需要造一些伪数据来训练预训练模型,伪数据就是给一篇文章我们把关键词、知识图谱抽出来,然后反过来把这些知识图谱、关键词作为输入看能不能生成原文,然后训练预训练模型。
基于这样的模型,我们就做了一些工作。第一个是基于关键词的生成,这个是可控文本生成只能输入关键词的时候,让机器根据你的关键词扩展语义,把整篇文章或者一个段落生成出来。目前来讲,我们是生成一个段落;你可以选择文体;也可以定义自己的一个模板,让电脑来进行填空造句,它也可以生成得非常好。
我们在写作的时候,往往可以自己写一小段,但是不太漂亮;这时让电脑来做优化,这个过程叫渲染;有点像做 CV,把一个图形变得更漂亮,我们就模仿这个过程。用户随便输入一些句子或者一两个关键词,然后表达你想写的东西。另外也可以续写,就是人写了一小段,让电脑接着往下写;我们甚至可以指定用现代文或者文言文进行续写。
基于这些成果,我们考虑把文本生成落地,让它有用。于是,我们做了一件事——营销文案生成,即用最快的时间把一个营销文案写出来。这个有很多的应用,好多公司每天都要写营销文案,写的时候既要有趣,还要尊重事实,还要快等等。我们有三步就能生成,第一是指定模板,第二是输入关键词,第三是一键生成。机器跟人做对比,人写一篇营销文案是一个小时,写完了之后还要人工检查审核;用电脑几乎一瞬间写出 N 篇营销文案,而且多样性、趣味性都比较强。
最后总结一下,可控文本生成应用前景非常广泛,但是现在传统的文本生成如果不做可控技术便会有很多问题,最常见的问题就是前后不一致,长文本的时候越写越散,有时候知识无法融入,实现多样化也是它的难题,以及连续出现重复的词、重复的句子等等。相应的工作都有人做了很好的研究,我们把有关的技术融会贯通,加入自己新的技术,做了很多可控文本生成的工作,包括网文写作、渲染、续写,文言文与现代文风格转换。另外,我们把它用在营销文案方面,进行具体的产品落地。未来还有很多工作会引起大家关注。刚刚介绍的可控文本生成研究虽然有点进展,但不是长足的进展,还有很多的地方需要深入的研究,也希望在座的 AI 开发者仔细了解目前的进展情况,结合自己的实际,把可控文本生成推向新的高度,谢谢大家。
有关北京澜舟科技有限公司的详细技术,请访问 https://langboat.com。
© THE END
转载请联系本公众号获得授权
投稿或寻求报道:content@jiqizhixin.com