1 月 12 日,在机器之心 AI 科技年会 AIGC 技能使用论坛上,澜舟科技创始人兼 CEO、中国计算机学会 CCF 副理事长、创新工场首席科学家周明宣布了主题讲演《文本生成研讨发展》。

以下为讲演的详细内容,机器之心进行了不改变本意的修改、收拾:
我今天首要介绍一下文本生成,尤其是可控文本生成现在的几个重要研讨发展,包括文本生成根本办法与使用、文本生成中的可控办法研讨、文本生成中怎么融入常识和常识,长文本生成办法以及文本生成中的解码办法。在此之后,我会介绍一下澜舟科技在文本生成方面的最新项目。

首要我来介绍一下文本生成的使命和干流的框架。文本生成的使命定义是输入结构化的数据、图片或许文本来生成一段新的文本。例如输入结构化的数据、输入一张图片,或许输入若干关键词来生成文本。现在的干流生成模型都是依据 Transformer 架构的编码器 – 解码器框架,如下图所示。

Transformer 是谷歌在 2017 年提出的一个架构系统,能够使用多头注意力模型来扩展不同的信息抽取才能,而且使用多层的神经网络架构来完成愈加精准的编码和解码过程。
可控文本生成是指咱们期望生成文本不是随意生成的,而是能够把一些要素增加进去,比方情感的要素,关键词的要素,主题的要素和现实的要素,如下图所示。

面向文本生成的预练习模型,有像 GPT 这样的自回归解码器模型,例如最新的 ChatGPT,它首要的模型架构是 GPT-3.5 的 InstructGPT。当然也有一些其他类型的模型,例如 BART 是自编码解码器模型,还有 T5 是多使命编码器 – 解码器模型。

文本生成面临的问题许多,我这儿总结了 4 点:
- 常识过错;
- 内容逻辑过错;
- 内容发散;
- 语句重复。

处理当下文本生成问题的关键技能有如下几点:第一是怎么来改善文本生成的可控性;第二是怎么改善现实的正确性;第三是怎么改善文本生成的前后一致性和连贯性。第四是怎么战胜重复生成,怎么增加多样性等等。下面我就逐个快速介绍一下。

首要我介绍一下文本生成中的可控办法。可控办法现在有几种:
- 第一种是调整解码战略,使得生成的成果尽或许地包括方针的内容,也便是咱们所指定的主题关键词;
- 第二种是调整练习的方针函数,构建面向特定使命的可控练习方针函数;
- 第三种是调整模型输入,经过输入操控元素来影响生成的成果。

下面我对这几种办法逐个展开介绍。第一个是依据加权解码的可控文本生成。当咱们想生成一句 positive 的话,就会期望下一个生成的词挨近 positive,所以这就需求增加一个操控器。原始模型是依据前面的词猜测下一个词的 GPT 模型。加一个操控器就意味着如果下面的词是 positive 的,咱们就愈加倾向于挑选它,因而加了一个这样的操控器来操控解码的过程。其间,操控器中的参数 是固定的。

咱们有时需求依据上下文信息,增加或减少某些词的输出概率,做一个动态的调整,所以咱们能够参加一个动态的解码权重。

可控文本生成也能够用 prompt 的办法。咱们已经有一个预练习模型,能够用一些提示词的办法来生成可控成果,比方咱们要生成正面情感的一句话,能够输入「这首歌充溢爱情」这句话,输出的成果或许就倾向于正面。但是这种办法需求人工地针对不同场景找到相应的提示词。这是很花工夫的一种办法。

另一种办法,咱们针对可控要素生成一个接连向量(prefix)来替代详细的 prompt,与传统的经典预练习模型(例如 GPT)组合在一同来表现某些可控要素。

有一种特别简略的办法是我每生成一种情感或许要素,就构建一个网络,每次都从头开始练习网络。还有一种改善的办法是基础的网络不变,只是每次针对详细的生成方针来调整 prompt。这方面已经出现了一些详细的发展,比方依据对比学习的可控文本生成办法:要生成一个 positive 的要素,在做 positive 要素的模型时,就试图让生成成果尽或许逼近 positive,远离 negative。这便是将对比学习的机制引入到模型练习中。

还要特别重视一个叫可继续学习的办法。通常在练习一个文本生成模型时,每增加一个要素,都或许从头练习或许调整网络。咱们考虑在增加一个新要素时,能否复用(reuse)已有的网络。这儿有一种研讨办法是在层间参加一个自适应的组合模块,来进行轻量化的微调,进步练习效率。

当咱们参加一些自适应的组合模块,只需调整需求调整的模块。而且在参加新使命时,最大限度地 reuse 已有的一些模块,来进步练习效率。这种详细的学习办法是当面临一个有新要素的文本生成使命,咱们经过计算的办法来挑选网络之间已有的自适应模块,挑选跟练习方针最挨近的模块,这样就从每一层到最后一层构成一个挑选途径。如果没有一个特别适宜的已有自适应模块,那么就增加一个新的自适应模块。然后再使用大规模的微调(fine-tune) 数据调整整个网络,就能够得到一个针对新要素的文本生成网络。

下面我解释一下文本生成中怎么融入常识和常识。在真实国际中,无论是不同的场景,不同的范畴,都有自己的一些特定常识系统,包括常识常识和现实常识。咱们期望在文本生成中交融这些常识和常识。一种通用的办法是依据文本生成的输入和关键词或要素,来触发相应的常识库条目,并融入到生成模块中,以发生一个更好地表现常识和常识的输出。

另一种办法是隐含地交融常识和常识,便是咱们把常识 – 结构化的三元组转换成常识的天然语言描绘方式,并把这些天然语言的描绘方式参加到练习数据中继续练习,GPT 便是这种文本生成模型。

咱们也能够显式地交融常识和常识,详细流程如下:首要依据上文来猜测未来的关键词,从常识和常识库中检索相应的常识和常识条目,把检索成果参加到原有的上文中,并依此得到一个新的输出成果。

还有一种办法是依据输入得到一个成果,动态地生成一些参阅常识条目,把这些常识条目再融入原输入来得到一个输出。这个使命就变成依据一个输入的语句,怎么来触发(trigger)或许生成相应的常识条目。假定咱们有大规模的对话 Q&A 和一个常识库,首要咱们依据 Q&A 寻找出匹配的常识条目,得到练习文本,依据练习文本,输入一个语句,就能够触发或许生成一些新的常识条目,咱们挑选概率最大者参加到生成过程中。

下面我再介绍一下长文本生成的办法。由于建模才能的问题,非常长的文本就没办法生成很好的成果了。一种简略的办法便是两阶段生成办法。
首要咱们做一个 planning 的阶段,生成一些关键词来代表 storyline。把输入和 storyline 都参加到文本生成模块中,作为输入来发生一个更长的语句。这样的过程能够迭代分层,每次发生更多的 storyline,直到发生满足的 storyline,然后再去得到一个文本生成的成果。

还有一种办法是依据隐变量的长文本生成办法。这种办法的思路是:一篇天然的文本能够分割为多个接连的语义片段,每个片段环绕一个主话题展开;提出片段级词袋重构方针,使离散隐变量建模每个语义片段中的话题信息;使用话题感知的隐变量序列指导文本生成,使生成的内容与输入更相关且语义片段之间具有语义相关。

咱们也能够依据动态规划来做长文本生成。现在的两阶段长文本生成,规划和生成二者是别离的,存在过错累积问题。依据动态规划的办法便是将规划和生成联合在一个模型中,并给定一个文本生成的输入来动态发生一个隐变量(SN),再生成组成下一个语句的单词序列,同时生成代表下一个语句的隐变量,然后继续生成。

上图右是详细的流程示意图,给定输入,编码器的输出成果作为解码器的输入,解码器先输出代表一个语句的隐变量 SN_1,然后隐变量生成 Bag-of-words,用于词序列信息的学习,然后依据生成的前文和 SN_1 再生成下一个语句的隐变量,继续地进行输出。
这样就相当于先生成了一个语句的架构,再依据语句架构生成详细的词序列。这样就对整体语句结构有很好的操控才能。也能够使用回忆网络的长文本生成办法来做,每一层都参加一个回忆网络。在输出的时分,回忆网络跟当时 encoder 的成果一同决议输出的成果。我这儿就不逐个介绍回忆网络的练习公式了。

下面我介绍一下文本生成中解码办法的研讨。文本生成一般是依靠一个编码器和一个解码器,解码器是逐词进行解码。

神经文本生成模型常用的解码战略是 Greedy search 和 Beam search。它们都存在一个问题,便是输出的时分或许出现重复的词或许片段,这个不容易操控。

当时针对这个问题的两种已有办法,一个叫 Top-K k sampling,一个叫 Top-p sampling,都是从概率最高的 n 个词中采样,或在概率最高的空间内挑选,随机挑选输出的成果,再继续往下输出,这样就改善了多样性。

为了处理重复生成的问题,这类办法还引入了一种叫对比练习的办法。如果输出的成果跟前面已经生成的成果有很大的重复性,则对它进行必定程度的赏罚,以减少重复生成的情况,生成多样化的文本。

这儿我简略总结一下,刚才我介绍了可控文本生成的关键技能、可控生成融入常识和常识、文本生成解码办法等等。

未来还有许多需求探究的方向,例如现在的可控首要集中在情感关键词方面,而篇章的可控,多样性的可控,细粒度的可控现在都做得不够。在融入常识和常识方面,当时的办法都是使用常识图谱中的三元组,这种办法常识获取难度比较高,还需求进行有用改善。
长文本生成则需求对主题一致性、现实一致性、文章层次结构和前后逻辑进行学习。还有回忆网络的才能怎么进一步提高?这些都需求咱们进行更多的探究。
最后,在多样化解码才能方面,从词汇到短语到单句到跨句,都有一些改善空间。