APP下载

多样性文本生成方法研究

2021-11-22徐杨

现代计算机 2021年7期
关键词:解码器解码编码

徐杨

(四川大学计算机学院,成都610065)

0 引言

目前各种智能应用出现在不同领域,例如:问答系统、对话系统等,这些应用几乎都涉及文本生成任务,该任务是自然语言处理领域的研究热点之一。文本生成旨在通过机器自动生成符合语法规范、满足特定任务目标的文本,例如:在问答系统中机器根据源文本及问题查询,生成简洁且相关的答案;在对话系统中机器利用对话历史产生对当前对话的回复。然而,随着智能应用的发展,人机交互体验更加受到重视,为了增加智能应用的趣味性与可互动性,生成的文本要求表现多样性。例如:针对某些相似对话,聊天机器人如果只能产生特定的回答,将显得枯燥无味,不利于聊天持续进行。因此,多样性文本生成是文本生成研究的重点问题之一。目前多样性文本生成研究以神经网络的方法为主,利用Seq2Seq(Sequence-to-Sequence)模型对源文本编码,然后再解码产生目标文本。本文第一部分对多样性文本生成任务中面临的问题及其主要原因进行介绍与分析,第二部分重点介绍现阶段各类解决多样性文本生成问题的相关工作,尤其是变分自编码方法。

1 问题描述及原因分析

1.1 问题描述

多样性文本生成任务要求机器根据给定的文本信息自动生成符合语法规范的、多样的、相关的文本。Seq2Seq 模型在众多文本生成任务[1-3]中均取得显著效果,但该模型对输入的相同源文本只能产生固定的输出文本。例如:在聊天机器人中,向机器发送相同或相似的对话,机器只能产生固定的回复,这使机器显得呆板、枯燥。此外,模型还倾向于产生数据集中较高频的通用型文本,例如:总产生类似“I don’t know.”、“Me too.”的对话回复。以上两方面问题显示了Seq2Seq 模型并不直接适用于多样性文本生成任务。

1.2 原因分析

普通的Seq2Seq 模型主要由两部分构成:编码器与解码器。首先编码器接收输入的源文本信息,将源文本信息编码为特定的语义向量,然后解码器利用该语义向量解码出目标文本。通常将一个单向Recurrent Neural Network(RNN)作为解码器,每一解码时刻生成一个词,逐步产生词序列作为输出文本。从上述Seq2Seq 模型工作过程看出:在测试阶段由于模型参数固定,向模型输入相同源文本时,编码器将源文本编码为相同的语义向量,此时解码器只能产生固定的输出文本。因此,Seq2Seq 模型对于相同输入只能得到相同输出,不能直接产生多样性文本。另外,在Seq2Seq 模型中广泛使用最大似然作为优化目标,让模型在训练过程中能尽可能地拟合标注的目标文本。然而,个别标注目标文本大量重复出现在数据集中,出现频率远高于其他文本,因此在最大似然优化过程中模型自然会更加倾向于生成频率高的文本。

综合上述分析,导致Seq2Seq 模型生成文本多样性较差的原因主要是:①模型结构方面,模型只能将输入源文本编码为确定的语义向量,经解码后仅能生成相同文本;②优化目标方面,采用最大似然方法优化模型参数,模型倾向于生成较高频的通用型文本,缺乏多样性。

2 多样性文本生成方法

基于前文对Seq2Seq 模型生成多样性文本面临问题的分析,现有相关工作主要从以下两方面展开:重新构造模型优化目标函数、改变Seq2Seq 模型结构。

2.1 重新构造优化目标

Seq2Seq 模型损失函数通常定义为交叉熵,其损失的计算要求训练阶段生成的文本必须与标注文本一致,一旦不一致就惩罚,但实际上对于给定的源文本并非只有训练数据中的标注目标文本才能作为输出,换句话说,交叉熵损失函数的惩罚侧重于字面上的拟合,未进一步度量生成文本语义与源文本语义相关性等,所以出现了一系列重新构造优化目标的工作,其中最大互信息方法被广泛使用。

Li 等人[4]利用最大互信息替代原最大似然优化方法,两者的主要区别在于最大化互信息除了考虑到对标注目标文本的最大似然优化之外,还进一步考虑了标注目标文本自身出现的概率大小,对于那些高频的标注文本施加更大的惩罚,以缓解模型倾向于生成高频文本问题。然而计算互信息需要等文本生成结束,在生成过程中每个解码时刻都涉及对词表采样,但离散词表的采样过程对模型参数是不可导的。为了解决此参数优化问题,Li 等人[5]利用强化学习延迟回报特性,借助策略梯度方法将互信息作为回报的一部分反馈给模型进行优化。虽然不少工作证明了最大互信息的有效性,但其优化过程也较为复杂,后续工作中提出了更为简单、有效的启发式方法。

Nakamura 等人[6]统计数据集语料后发现越高频的词越容易出现在通用型标注文本中,他们在原始交叉熵损失函数中考虑利用词自身频率的倒数加权,降低了高频词占损失的比例,让模型关注到更多较低频的词。该方法优点在于简单直观,但其启发式规则可能会受不同数据集的影响。

除了上述两大类方法,不少工作考虑引入强化学习方法,基于各文本生成任务特点设计不同的回报函数对生成文本进行评分,设计的回报函数避免了交叉熵损失函数严格惩罚生成文本字面拟合的问题。从原理上看,强化学习方法更适合于文本生成任务,但在实际应用中强化学习面临着较多优化问题,例如:每次决策时面临的候选动作词表空间较大,很难有效探索到高质量样本,此外,回报函数极大地影响了模型性能,合适的回报函数较难确定。

2.2 改进Seq2Seq模型结构

当Seq2Seq 模型参数固定时,编码器只能将输入的相同源文本编码为确定的向量表达,最终解码器生成相同文本。从编码角度看,编码器的编码方式限制了源文本语义表达的多样性。为此,变分自编码(VAE,Variational AutoEncoder)方法[7-9]被引入到文本生成任务中。与普通Seq2Seq 编码方式不同,VAE 引入潜变量刻画源文本语义分布,利用编码器将输入的源文本编码为语义分布(通常假设为相互独立的多元高斯分布),而不是特定的语义向量。解码器在生成文本前需从语义分布中采样出语义向量解码。语义分布蕴含了更具多样性的语义表达,为解码器提供了可变的源文本语义向量。因此,变分自编码方法通过改进Seq2Seq 模型结构,注入了更多样的源文本语义。

Bowman 等人[10]较早将VAE 引入文本生成任务,他们发现直接将VAE 用于文本生成任务会出现KL 损失降为0 问题(KL 消失),即:优化目标中KL 项损失降为0。当VAE 优化目标中的KL 损失降为0 后,VAE模型逐渐退化为普通Seq2Seq 模型,此时生成文本的多样性依旧有限。他们还指出原因在于RNN 解码器在当前时刻会依赖之前解码时刻及上一时刻的标注词,这种较强的依赖关系使当前解码时刻更多关注到之前时刻的状态信息与当前时刻输入的标注词信息,忽略了引入的潜变量,所以注入到潜变量中的多样性语义不起作用。Bowman 等人提出了两个启发式方法改变模型的训练过程,首先在训练开始时将优化目标中的KL 损失项权重置为0,随着训练进行再逐渐增加KL 项权重至1,然后在解码过程中随机遮蔽一定比例的标注词,尽量削弱解码器各解码时刻间的依赖关系,迫使当前解码时刻能更多关注到来潜变量提供的语义信息。虽然以上两种启发式方法能在一定程度上提高生成文本的多样性,但实际效果受超参数影响较大,例如:当遮蔽比率过大时,模型拟合性能下降;反之则起不到遮蔽效果。此后,不少工作进一步针对VAE 在文本生成中存在的KL 消失问题展开了进一步研究与分析。

Bahuleyan 等人[11]研究发现当直接传递源文本信息到RNN 解码器会更容易出现KL 消失问题,因为当解码器能够直接访问到源文本信息后,会逐渐绕开潜变量,使后续解码过程忽视潜变量。普通的注意力机制本质上是对源文本信息的一种加权,此时解码器通过注意力机制得到的上下文向量同样相当于直接访问源文本信息,所以容易出现KL 消失问题。Bahuleyan 等人提出了变分注意力机制缓解解码器绕过潜变量的问题,将原来确定的上下文向量转化为潜变量分布,让解码器访问源文本信息时不能绕过潜变量。

原始VAE 是作为自编码方法,后续研究进一步提出了针对给定源文本情况下目标文本生成概率的建模方法——条件变分自编码方法(CVAE,Conditional Variational Autoencoder)[12]。CVAE 与VAE 的主要区别在于两者建模过程中学习的分布不同以及模型输入不同。VAE 模型的输入只有源文本,而CVAE 需同时输入源文本与标注目标文本,因CVAE 需建模一个后验分布,并从后验分布中采样参与解码器训练。此外,CVAE 还需学习一个条件先验分布,该分布未直接参与解码器训练过程。由于CVAE 训练过程中直接将标注目标文本作为输入,而测试阶段没有标注文本,所以测试阶段无法直接使用后验分布,而是从条件先验分布中采样生成文本。因此,CVAE 模型在训练和测试阶段分别从不一致的分布中采样,使模型性能在测试阶段明显下降。

之后,不少基于CVAE 的方法被提出来解决多样性文本生成问题,例如:Zhang 等人[13]为了增强解码器与潜变量之间的关联,引入了一个标签网络,学习了标注目标文本的自编码表达,然后利用均方误差损失惩罚潜变量与标注文本自编码表达的距离。虽然该工作在一定程度上提升了生成文本的多样性,但依然面临CVAE 训练阶段与测试阶段间的非一致性采样过程。

上述VAE/CVAE 方法主要改进Seq2Seq 模型结构,引入潜变量对源文本语义分布建模,为解码器提供了更多样的源语义表达,解决了原编码器仅能将源文本编码为确定语义向量的问题。变分编码方法作为目前用于多样性文本生成任务的流行方法,提高了生成文本的多样性,但不可否认此类方法在优化过程中依旧面临挑战,现有缓解KL 消失问题的方法大多从是问题表面出发的或者启发式的,仍缺乏理论上的分析与论证,因此,对于KL 消失的根本原因还值得深入研究。

3 结语

本文首先描述了多样性文本生成任务的研究背景与意义,然后分析了多样性文本生成任务中面临的问题及主要原因(编码器只能将源文本编码为确定的语义向量、模型倾向于生成数据集中高频的文本),接着分别以上述两原因为切入点,重点介绍了从重新构造模型优化目标、改变Seq2Seq 模型结构两角度解决多样性文本生成问题的现有工作,其中重点分析了目前基于VAE/CVAE 的相关工作。VAE/CVAE 引入潜变量对源语义分布建模,Seq2Seq 方法注入不同的源语义表达,提高了生成文本的多样性,然而此类方法仍面临优化挑战(KL 消失问题)。虽然现有工作提出方法在一定程度上缓解了KL 消失问题,但仍缺乏理论上的分析与论证,如何从根本上解决KL 消失问题依然是待攻克的难题。

猜你喜欢

解码器解码编码
HEVC对偶编码单元划分优化算法
住院病案首页ICD编码质量在DRG付费中的应用
解码 四十五度仰望天空
文化解码
基于Android环境下的数据包校验技术分析
文化 解码
文明 解码
浅谈SCOPUS解码器IRD—2600系列常用操作及故障处理
做一个二进制解码器
因人而异调整播放设置