You are on page 1of 51

分 类 号 TP391.

9 密 级

U D C 编 号 10486

硕 士 学 位 论 文

一种基于预训练模型的
条件文本生成框架

研 究 生 姓 名 : 段誉

学 号 : 2016202110035

指导教师姓名、职称 : 李晨亮 副教授

专 业 名 称 : 网络空间安全

研 究 方 向 : 信息检索、深度学习

二〇一九年五月

万方数据
A Conditional Text Generation Framework
based on Pre-trained model

by
Duan Yu
Supervised by Associate Professor Li Chenliang

School of Cyber Science and Engineering


Wuhan University

May, 2019

万方数据
论文原创性声明

本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进

行研究工作所取得的研究成果。除文中已经标明引用的内容外,本论文

不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的

研究做出贡献的个人和集体,均已在文中以明确方式标明。本声明的法

律结果由本人承担。

学位论文作者(签名):

年 月 日

万方数据
万方数据
一种基于预训练模型的条件文本生成框架

摘 要

文本生成无论是在实际应用中、还是在学术研究中,都是一种十分重要的任务,
而条件文本生成更是其中一种重要的任务。大多数现有的基于深度学习的工作都
需要丰富的样本参与模型的训练,并且一旦有新增的条件只能重新训练模型,无法
灵活的进行扩展,这些缺点对于日新月异的互联网时代是不够效率的。对于人类而
言,我们常常事先学习了足够的知识,有能力在更高的抽象层面对新问题进行思考,
并不需要“从零开始”,而且可以根据少数几次经验就能够很好的学习一个崭新的任
务。从这一点出发,我们针对现有工作的不足,决定探讨一种灵活、有效的,仅仅
需要少量标注样本的条件文本生成框架,我们的核心思路是借助预训练模型,将字
符级别的文本生成学习过程抽象成更高层面的特征空间学习过程,这样不仅可以
减少我们对于大量标注样本的依赖,同时在面对新的条件时,也不再需要重新训练
预训练模型,大大节省了时间。通过在真实数据集上的详细实验比较,发现我们所
提出的方法在少量标注样本上的单条件、多条件文本生成任务上都能取得良好的
表现,在多数的任务中可以超越较强的对比方法,这些实验同时证明了在高层特征
上进行文本生成的学习是具备合理性和有效性的,这也对未来的文本生成工作提
供了一点小小的想象空间。

关键词:条件文本生成,少量样本,预训练模型,深度学习

万方数据
万方数据
一种基于预训练模型的条件文本生成框架

ABSTRACT

Text generation is an important task in both academic research and realistic


application, one of the necessary subtask in text generation is conditional text generation.
But almost all of the conditional text generation methods based on deep learning need
huge amount of labeled data, and need “retrain” if new “conditional” appears, in Internet
era, this way is inefficient. In fact, for a human being, it’s easier to learn a brand new task
by few examples because he/she has enough background knowledge. From this point, we
decided to introduce a new framework for conditional text generation task, our main idea
is to transform the original word-level learning procedure to high-level feature space
learning procedure by the help of pre-trained model, then only few labeled data are needed
for effective conditional text generation, and if new “condition” appears, we don’t have
to retrain the pre-trained model, which is more efficient for realistic application. In
experiments on a real-world dataset, we found our proposed method could achieve better
performance in both single and multiple conditional generation tasks than baselines. The
experimental results prove that generating texts on high-level latent space is suitable and
effective, which is beneficial for further research on text generation field.

Key Words: conditional text generation, few labeled data, pre-trained model, deep

learning

III

万方数据
万方数据
一种基于预训练模型的条件文本生成框架

目 录
摘 要 ........................................................................................................... I
ABSTRACT ...............................................................................................III
第1章 绪论 .............................................................................................1
1.1 研究背景 ........................................................................................................... 1
1.2 国内外研究现状与发展趋势 ........................................................................... 2
1.2.1 无监督文本生成 .................................................................................... 2
1.2.2 有监督条件文本生成 ............................................................................ 4
1.2.3 半监督条件文本生成 ............................................................................ 4
1.2.4 迁移学习 ................................................................................................ 5
1.3 研究目标及意义 ............................................................................................... 6
1.4 文章结构 ........................................................................................................... 6
第2章 相关研究技术与理论基础 .........................................................7
2.1 神经网络 ........................................................................................................... 7
2.1.1 递归神经网络 ........................................................................................ 7
2.1.2 自注意力机制 ........................................................................................ 9
2.2 变分自编码器 ................................................................................................. 11
2.3 韦森自编码器 ................................................................................................. 12
2.4 对抗训练 ......................................................................................................... 13
第3章 模型及方法 ...............................................................................15
3.1 任务定义 ......................................................................................................... 15
3.2 框架与方法 ..................................................................................................... 15
3.2.1 条件文本生成框架 .............................................................................. 15
3.2.2 预训练 .................................................................................................. 16
3.2.3 单条件文本生成方法 .......................................................................... 18
3.2.4 多条件文本生成方法 .......................................................................... 19
3.3 模型结构 ......................................................................................................... 20
3.4 模型设计讨论 ................................................................................................. 21
3.5 模型训练 ......................................................................................................... 22
第4章 实验 ...........................................................................................23
V

万方数据
武汉大学硕士学位论文

4.1 数据集介绍 ..................................................................................................... 23


4.1.1 Yelp ........................................................................................................ 23
4.1.2 News Titles ............................................................................................ 23
4.2 实验设置 ......................................................................................................... 23
4.2.1 任务介绍 .............................................................................................. 23
4.2.2 对比模型介绍 ...................................................................................... 24
4.2.3 评价标准 .............................................................................................. 25
4.2.4 超参数的选择及训练 .......................................................................... 26
4.3 单条件文本生成 ............................................................................................. 26
4.4 多条件文本生成 ............................................................................................. 28
4.5 不同样本数量的影响 ..................................................................................... 30
4.6 不同参数 C 的影响......................................................................................... 31
4.7 人工测评 ......................................................................................................... 32
4.8 算法效率 ......................................................................................................... 33
4.9 生成样例 ......................................................................................................... 33
第5章 总结 ...........................................................................................35
参考文献 .....................................................................................................36
致 谢 ...........................................................................................................41

VI

万方数据
一种基于预训练模型的条件文本生成研究

第1章 绪论
本章主要介绍与本论文相关的背景知识。首先介绍本研究的相关背景,然后介
绍国内外关于本课题的研究现状与发展趋势、本研究的目标及意义,并在最后介绍
本文的整体结构,让读者对论文有一个大致了解。

1.1 研究背景
语言、文字作为人类历史长河中一项不可思议的成就,为人类之间卓有成效的
沟通建立了桥梁。直至今日,文字仍然是人类最常见的沟通方式,打电话、写邮件
需要用文字,表达情感、抒发议论也需要文字,建立组织与国家更加需要文字,文
字俨然是人类不可缺少的一部分。正因为文字在人类生活中的重要作用,有关文字
生成的相关研究一直都在如火如荼的发展之中[1,2,3,4]。
从广义上讲,一切有文本产生的场景,都可以叫做文本生成。而从狭义上来看,
文本生成在学术上更多的指无监督文本生成以及有条件控制的文本生成。无监督
文本生成的目标是设计一种建模文本的方法,通过精确捕捉隐藏在文本中的高层
次信息,来生成相似的、真实的文本。在实际应用当中,有条件控制的文本生成任
务可能更具备价值。根据不同的应用,“条件”一词可以有多样而丰富的涵义。在
对话中,条件即对话的上下文信息、谈话者的个性信息等,在新闻摘要中,条件即
整个新闻的内容。本文所关注的是其中一个分支任务----有条件文本生成,即给定
带条件(结构化)标签的文本,产生符合条件要求的、真实而多样的文本。这一任
务具备丰富的应用场景,例如在诗歌生成应用中,可以生成符合用户喜好的诗歌等。
早期文本生成方法主要基于规则[1,2],人类专家负责为机器编写产生文字的规
则。很明显,这种方法完全依赖人类专家编写规则的能力,是一种耗时耗力做法,
后来,更多的研究人员利用机器学习(例如统计机器翻译)的方法来生成诗歌[3,4,5],
这些相比基于规则的方法更能发挥机器从大量数据中学习模式的潜力。而如今更
多的文本生成任务基于深度学习[6,7,8,9,10]。所谓深度学习指的是通过多层具有复
杂建模能力的网络结构(例如卷积神经网络、递归神经网络、注意力机制等)来提
取抽象、结构化的特征表达来从而完成复杂的学习任务。基于深度学习的方法常利
用递归神经网络(Recurrent Network,可简称为 RNN)[6,7]、变分自动编码器
( Variational Auto-Encoder, 可 简 称 为 VAE ) [8,9,10,11] 以 及 生 成 式 对 抗 网 络
(Generative Adversarial Network,可简称为 GAN )[12,13,14]进行文本生成,在诗
歌[17],故事[15,16],作文[18]上出现了大量优秀的算法。
在本文所关注的有条件文本生成任务上,出现过许多有监督、半监督的方法
[36,37,38],这些方法在生成文本的条件准确度、流畅度、多样性上已经取得了良好
的效果。但是现有的方法存在至少两个重要局限。一个是在仅提供少量标注样本时,
模型无法鲁棒的、有效的利用这些样本来生成足够真实、多样、准确的样本;而另

万方数据
武汉大学硕士学位论文

一个是目前现有工作不具备较好的灵活性,当条件信息发生改变时,往往只能够进
行“重新训练”来对新条件进行拟合。
针对这些问题,本研究旨在提出一种结合预训练模型的条件文本生成框架,通
过预训练模型所学习的编码、解码知识,将文本生成任务从高维度稀疏的字词级别
训练过程转换为低维度、更抽象的特征空间学习过程,此时少量标注样本就足够进
行有效的条件文本生成。同时在面对新条件时,也只需要训练一个参数少、结构简
单的网络,而不再需要重新训练参数庞大、复杂的网络,更加具有灵活性。

1.2 国内外研究现状与发展趋势
本文所研究的任务主要与四种相关任务有关:无监督文本生成、有条件文本生
成、半监督文本生成以及迁移学习,故本小节主要从这四个部分出发介绍各自的研
究现状、相关工作的优劣势以及发展趋势。

1.2.1 无监督文本生成
无监督生成的核心通常是对于给定的文本数据集,学习一个生成器来拟合给
定文本集的“潜在”分布,并生成与文本集类似的文本。无监督生成的技术的目标
就是如何有效的提炼高层次、抽象的文本隐含信息。最基础的技术是基于递归神经
网络的语言模型[6],其主要思路是训练一种深度神经网络(通常为递归神经网络),
根据目前所生成的文本,自动决定下一个单词的产生。部分学者认为由于缺少一种
全局的视野,语言模型近似于一种单峰模型[20],限制了语言模型生成文本的能力。
正因如此,许多无监督生成模型都转而使用隐含变量模型(Latent Variable
Models,可简称为 LVMs),其核心思想是通过一个隐含变量来代表一个句子、文
档的全局信息。其常见的技术分为变分自编码器(VAE)[10]以及生成对抗式网络
(GAN)[14]两种。两种技术的不同点在于前者通常同时包含一个编码器以及解码
器,并通过对后验分布添加上规范项来使得模型具备生成能力;而后者通常仅包含
编码器,其训练目标函数通常由一个对抗式训练的判别器提供,在其中判别器负责
分辨生成器生成的伪样本以及真实样本,生成器则负责生成足以“愚弄”判别器的
样本。
Bowman 等人[11]首次尝试使用 VAE 对句子进行建模,发现在训练良好的情
况下,VAE 不仅可以生成流畅的句子,同时也学习到了平滑的隐含空间,在隐含
空间上进行线性插值等操作可以带来语意、句法上的逐渐变化。但同时他们也指出
了后验坍塌的现象,即在使用递归神经网络这样具有强大建模能力的自增模型作
为编码器时,损失函数中的规范项非常容易坍塌为零,该现象使得 VAE 会退化为
普通的语言模型,于是出现了许多用来解决这一问题的工作。Semeniuta 等人[8]提
出使用一种结合卷积神经网络和递归神经网络的编码器可以缓解后验坍塌现象,
Yang 等人[9]则直接纯粹运用膨胀卷积神经网络作为编码器。近期 Ma 等人[21]提

万方数据
一种基于预训练模型的条件文本生成研究

出了一种新的双向的规范项,在理论上可以缓解后验坍塌的情况,He 等人[22]则
指出 VAE 之所以会后验坍塌是因为编码器的训练过程远远落后于编码器,通过给
编码器提供更加激进的训练机会,可以缓解后验坍塌现象。同时也有许多学者另辟
蹊径,他们的做法是直接更改原始 VAE。Xu 等人[23]提出当使用一种 von Mises-
Fisher(vMF)分布作为先验时,VAE 的后验规范项会是一个固定值,此时后验坍塌
的情况不会发生。Tolstikhin 等人[24]则提出使用对抗式判别器来充当规范项,并证
明该方式实际上是对于韦森距离的一次优化过程,能够在防止后验证坍塌的同时,
增强模型的重构能力。Zhao 等人[26]更进一步的使用一个生成器来生成先验分布,
这种方式为模型引入了更大的自由度。为了对比现有的如此众多的基于 VAE 句子
生成算法的优劣,Cifka 等人[27]对多种先进算法进行了详细的实验,发现先进的
技术其实不一定总是带来更好的效果,而算法的重构能力与生成能力存在一个明
显的平衡,规范因素的权重在其中起到了至关重要的决定影响。基于 VAE 的文本
生成方法未来的发展趋势除了更稳定地解决后验坍塌问题之外,也包含对于算法
的重构能力、生成能力的平衡研究。
尽管基于 VAE 的方法在无监督文本生成中已经取得了不少可观的进展,但是
它们实际上仍然使用最大似然估计(Maximum Likelihood Estimation,可简称为
MLE)的思想来对模型进行训练。这种方式会让模型缺少全局眼光,同时也会让模
型陷入 Exposure Bias 的问题[28]。为了避免这些问题,许多学者转而使用生成对抗
式网络(GAN)的技术进行无监督文本生成[29,30,31]。但是利用 GAN 来生成文本
也存在许多根深蒂固的问题,一是面对离散的文本特性,生成器无法通过判别器的
打分直接得到梯度进行训练,为了解决这一问题 Yu 等人[29]利用强化学习中的
Policy Gradient 技术解决了离散不可训练的问题,但是这种方式通常会带来较大的
方差。Zhang 等人[30]则使用一种 soft-argmax approximation 的方法,通过在 softmax
中加入逐渐趋近于 0 的“温度”作为除数,从而将稀疏的离散学习过程泛化为连续
学习过程,但这种方式在较大的词汇表的情况下效率较低,同时这种近似的方法不
可避免的会带来噪音。另一个关于 GAN 的问题在于,由于文本高维度、稀疏的特
性,判别器提供给生成器的信号可能也十分稀疏,而稀疏的信号不足以给生成器良
好的指导。Guo 等人[13]专注于解决长文本生成中训练信号稀疏的问题,提出了结
合层次强化学习的 LeakGAN,层次强化学习的算法很好的解决了信号稀疏的问题,
这使得 LeakGAN 在长文本生成中可以取得比以往算法更好的效果。Chen 等人[31]
则使用 Feature Mover’s Distance 来作为判别器的信息来源,这种方法可以让判别器
在更高层面的特征上分辨真伪样本,这种更高层次的比较信息也让生成器更容易
训练。另外 GAN 也存在模型坍塌问题,即生成器可能只学习到了少量的可以欺骗
Shi 等人[32]引入了逆强化学习的方法来提高 GAN
判别器的模式。为解决这一问题,
所生成文本的多样性。目前基于 GAN 的文本生成的发展趋势是如何更加稳定快捷

万方数据
武汉大学硕士学位论文

的训练网络并避免模型坍塌现象。另外无监督文本生成中还存在一个重要的趋势,
即能否利用无监督算法的能力,将其迁移到更多任务(例如生成)中,本文可以看
作是这种方向上的一次尝试。

1.2.2 有监督条件文本生成
从广义上讲,一切带有条件限制的文本生成都可以叫做有条件文本生成任务,
例如诗歌生成[17],对话生成[25]等。但是这些与本文所关注的任务存在区别,这
一点需要特别指出。本文所关注的任务是这样一类:给定一些符合某些(结构化)
条件要求的样本后,模型要生成同样包含这些结构化条件信息的样本。在这一任务
上,关键点在于此时的条件信息是结构化的,类似于“类别”或者“主题”信息。
而在诗歌生成、对话生成这类任务里,条件指的是一种由诗歌主题关键字、对话上
下文所形成的对生成文本具有影响的一种非结构化信息,在本文以后的描述中,我
们不对此类方法予以更多的描述,而将利用结构化条件信息进行文本生成的这一
任务统称为有条件文本生成。
有条件文本生成的常见方式是将结构化的条件以向量的形式来表示,并将其
提供给 VAE 或者 GAN 的生成器以及判别器(若有判别器)[33,34],通过这样的学
习过程,模型可以自动学习到条件向量对生成过程的影响,在生成时,便能直接通
过条件向量来生成满足条件的文本。但是采用这种方式并不能保证条件向量没有
编码其他的非结构化噪音信息,而这将影响条件生成的效果。在图像领域 Chen 等
人[35]提出了 InfoGAN,其要点是额外增加了一个针对条件信息的判别器,通过强
迫通过条件信息生成的样本依然包含足够多的条件信息,从而增大了条件向量与
所生成样本的互信息,这样可以让结构化条件信息和非结构化的信息进行一定程
度的解纠缠,从而让生成器产生更具有条件性的样本。在情感文本生成方面,为了
生成更好的情感文本,Wang 等人[36]提出了 SentiGAN,与其他算法不同的是此算
法训练了多个生成器(每个情感训练一个),同时使用了一个多分类的判别器来提
供给生成器有关真实样本、真实情感类别的信息,其实验证明这种方法可以取得比
传统的方法更好的条件准确度。目前有监督条件文本生成的发展趋势是如何让非
结构化的信息与结构化的条件信息进行更好的解纠缠,从而产生更加精确、鲁棒的
生成效果。

1.2.3 半监督条件文本生成
在现实场景当中,存在着海量的无标注样本数据,这些数据往往不用费多大力
气就能进行大量收集,如何利用大量的无标注数据来增强有监督学习的能力成为
了一项越来越重要的一种技术。这种结合无标签样本来进行学习的方法通常被称
做半监督学习。在条件文本生成领域中,最早提出的结合深度学习的半监督条生成
算法是由 Kingma 等人[37]提出的 S-VAE,该方法在原始的 VAE 基础上,额外增添

万方数据
一种基于预训练模型的条件文本生成研究

了一个判别器,该判别器的作用是给定无标注样本时,能够自动推断出结构化条件
的分布以供模型使用,此时少量的有标签的数据便足够为判别器提供有效的训练
信号。作为一种扩展,Hu 等人[38]进一步提出了 Ctrl-gen 算法,该算法同样是基于
VAE 进行修改的算法,其结构中也同样引入了判别器的结构,但是与 S-VAE 不同
的是,Ctrl-gen 更进一步的提出了两个 “独立性限制”,作者证明该方法可以让结构
化的条件信息与非结构化的信息更加解纠缠,并最终提高模型在有条件生成时的
精准度,但是 Ctrl-gen 的问题在于引入了类似于 GAN 的训练方式,这让 Ctrl-gen
的训练存在一定的模型坍塌、不稳定的风。而且通过额外引入判别器的方式,尽管
S-VAE 和 Ctrl-gen 都能够利用较少的标注样本进行半监督生成,但是这也导致 S-
VAE 和 Ctrl-gen 对于新增类别信息、不完整的类别信息缺乏扩展能力。当新的类
别来临时,S-VAE 以及 Ctrl-gen 只能够进行重新训练,这是一个耗时耗力的过程。
目前半监督条件文本生成的发展趋势是提出在少量标注样本上效果更好、面对新
增条件信息更灵活的算法,本文即是这一方向的一个尝试。

1.2.4 迁移学习
迁移学习的核心思想是将在某一任务上学习到的知识迁移到其他相关任务中,
这一方法往往可以简化学习的难度,同时让有监督方法更加的鲁棒。当我们事先学
习的任务是在无标签数据上进行的无监督学习(例如语言模型、VAE 等),那么
这种迁移学习也看作是一种半监督学习。现在常用的迁移学习方法是直接迁移模
型学习的深层表达或者模型的部分结构(例如编码器)。Subramanian 等人[39]通
过多任务学习的方式学习到一个通用的编码器,该编码器同时可以通过 fine-tune
而运用于后续的有监督任务(例如分类)上,Peters 等人[40]通过在大量无标注数
据上训练深层语言模型,并综合其中学习到的多层隐含表示提供给有监督任务使
用,可以充分利用深度语言模型学习到的句法、语意信息。Howard 等人[41]则通
过直接在预训练的语言模型上进行 fine-tune 来进行文本分类任务,这种方式通过
进一步的调整语言模型,在多种数据集上进一步提高了文本分类任务的效果,
Devlin 等人[42] 提出了 BERT 框架,他们利用深层的双向 Transformer[45]来进行
多任务学习的训练。双向、深层的 Transformer 通过多层的自我注意力机制可以学
习出富含信息量、高度抽象的特征,众多有监督任务取得了明显的效果提升。Zhang
等人[43]更进一步的发现利用 BERT 在编码信息方面的能力可以增强文本摘要任
务的效果,这也是第一个利用预训练模型来增强文本生成任务的工作。迁移学习由
于充分利用了大量无标注数据的信息,提高了模型的效果及泛化能力,同时在小样
本上表现优异,逐渐成为学术界、工业界瞩目的技术。关于迁移学习的一个可能的
发展趋势是如何将多种媒介(例如图片、视频)的信息迁移到 NLP 任务中,另一
个重要的趋势是如何将迁移学习拓宽到更多的生成任务当中。目前在分类、匹配、
阅读理解等任务上基于预训练模型的迁移学习已经取得了非常优秀的结果,但是

万方数据
武汉大学硕士学位论文

生成任务上此类工作还是非常有限,这将是具备前景的一项研究工作。

1.3 研究目标及意义
本研究的目标是探究一种灵活、有效的结合预训练模型进行有条件文本生成
的框架。通过利用预训练模型已学习到的编码、解码知识实现在少量标注样本下生
成精准、流畅、多样的条件文本,同时在面对新条件时能比以往的算法更加的灵活。
本研究的意义如下:
1) 研究一种在文本生成中有效结合预训练模型的方式。预训练模型通过深层
复杂网络,在无标签样本上已能够提取高度抽象、结构化的特征,同时生成器也已
具备良好的生成能力。本研究试图提出一种有效的结合预训练模型的有条件文本
生成框架,为未来更多利用预训练模型来增强文本生成的研究奠定一点基础;
2) 结合预训练模型,提出一种仅需要少量标注样本的、面对新条件更具灵活
性的有条件文本生成框架。在不断变化的网络环境下,全新的、稀少的条件层出不
穷,以往的算法往往依赖大量标注数据,对于新条件的出现也只能进行重新训练。
与之相比,本研究所提出的框架对小标注量样本更加友好、对新条件也更加灵活。

1.4 文章结构
全文一共分为 5 个部分:
第一部分为绪论。主要介绍文本生成领域的发展背景,同时介绍了与本文工作
相关的无监督文本生成、有监督条件文本生成、半监督条件文本生成以及迁移学习
的相关研究现状以及发展趋势,并在最后对本研究的目的和意义进行了梳理;
第二部分为相关研究理论和技术。主要介绍本研究所使用到的神经网络、变分
自编码器、韦森自编码器、对抗训练等方面的背景知识,旨在让读者对于本研究的
技术基础有一个大体的了解;
第三部分为算法模型。详细介绍了所提出的结合预训练模型的条件文本生成
框架,并对模型的详细结构、设计讨论、训练方式等方面进行了充分的阐述;
第四部分为实验部分。其中包括数据集的介绍、测评指标的选取、实验的设计、
基准模型的介绍以及最终的实验结果、调参影响及分析,最后通过展示部分生成样
例来对模型的优缺点进行一个更加直观的定性分析;
第五部分是对整个研究工作的总结,以及对未来工作的展望。

万方数据
一种基于预训练模型的条件文本生成研究

第2章 相关研究技术与理论基础
本章主要介绍本研究所使用技术的相关理论与技术原理,为提出我们的框架
奠定理论基础。本章的主要内容包括神经网络结构、变分自动编码器、韦森自动编
码器以及对抗训练的介绍。

2.1 神经网络
2.1.1 递归神经网络
1)RNN
神经网络技术中有一类重要的网络结构,通常称之为递归神经网络(Recurrent
Neural Network,可简称为 RNN)。其核心思想是赋予每一个神经元在当前时间步
能够回顾前面时间步的能力,由于这种神经网络具备递归的性质,所以特别适合同
样具备递归性质的数据例如文本,当我们写字、说话的时候,所要写出/说出的字
取决于我们前面写了/说了什么。正因为与文本天然的存在相关性,所以文本领域
中经常使用 RNN 作为模型中的重要组成部分。下面详细的介绍 RNN 的基本结构。
普通的 RNN 包含一个单一的、自我连接的隐藏层,其按时间展开后的整体框
架如图 2.1 所示。可以看出,RNN 所增加的自我连接的部分,使得 RNN 在原则上
可以将整个之前输入的历史信息映射到输出,这让 RNN 具备感知上下文信息的能
力,这种循环连接的方式在理论上可以让之前的所有输入以“记忆”的形式存储在了
网络的内部状态中,这一点在数学上也保证了有足够隐藏神经元的 RNN 可以以任
何精度模拟任何可度量的序列到序列的映射函数。
H0 H1 Hn
output layer

展开

RNN RNN RNN RNN hidden layer

· · · · · · input layer

图 2.1 RNN 框架图

假设将一个长度为 T 的序列 x 输入到一个输入层大小为 I 的、隐藏层为 H 的


神经元以及输出层为 K 个神经元的 RNN 中。令𝑥#$ 为输入 i 在时刻 t 的值,令𝑎#& 和
𝑏#& 分别为神经元 h 在时刻 t 的网络输入以及神经元 h 在时刻 t 的激活函数值。对于
隐藏层神经元,通过公式 2.1 来计算隐藏层的输入和输出的激活函数值:
/
𝑎#& = ∑+$,- 𝑤$& 𝑥#$ + ∑1 &
& / ,- 𝑤& / & 𝑏#0-

𝑏#& = 𝜎(𝑎#& ) 式 2.1

万方数据
武汉大学硕士学位论文

其中, σ( )为非线性激活函数,在 RNN 中其通常为 tanh 和 sigmoid(或 hard-


sigmoid)函数。隐藏层神经元对完整序列的详细计算过程是从 t=1 时刻开始,并
递归地在每个时刻应用公式 2.1。需要注意的是递归过程中需要一个初始的隐藏
层神经元输出值𝑏5& 来表示在接收到数据之前网络的状态,通常我们将这个初始值
设为全零。RNN 的输出可以按照公式 2.2 进行计算:

𝑦#7 = 𝜎(𝑎#7 ) = 𝜎(∑1 &


&,- 𝑤&7 𝑏# ) 式 2.2

在这里 σ( )的选择根据最后的任务要求而定,如果是二分类任务,则可以使用
sigmoid,如果是多分类问题,可以用 softmax 函数,而如果是回归任务,则可以去
掉这个激活函数。
2)LSTM 和 GRU
在利用反向传播更新参数时,传统的 RNN 在训练长序列时因为其梯度的传播
经过了长时间的累积,可能会遇到梯度消失或梯度爆炸的问题。而为了缓解梯度消
失的问题,研究者们发明了长短时记忆网络(Long Short-Term Memory Network,
可简称为 LSTM)和门控循环单元(Gated Recurrent Unit,可简称为 GRU)[44],
两者都是在 RNN 的基础上增加了门单元或记忆单元,其作用是有选择性地记忆输
入、控制存储的信息、控制输出。图 2.2 为 LSTM 和 GRU 中每一个神经元的结构
示意图。

f z

C IN h IN
r
o
OUT OUT

(a) LSTM 神经元 (b) GRU 神经元


图 2.2 LSTM 和 GRU 神经元示意图

如图 2.2 所示,对于一个长度为 T 的序列 x,LSTM 中的每一个神经元 j 都在


9 9 9 9
t 时刻保持了一个记忆单元𝑐# 和三个门单元𝑖# 、𝑓# 、𝑜# 。在 LSTM 中,我们首先需
9
要决定对于每个神经元,我们会丢弃什么信息,这个步骤通过遗忘门𝑓# 完成。遗忘
门会输出[0,1]之间的值(用 sigmoid 函数作为激活函数),1 表示完全保留,0 表
示完全丢弃,计算过程如公式 2.3 所示:
9
𝑓# = 𝜎(𝑊> 𝑥# + 𝑈> ℎ#0- + 𝑉> 𝑐#0- )9 式 2.3

9
下一步我们需要确定需要什么样的新信息,这里 LSTM 利用一个输入门𝑖# 来

万方数据
一种基于预训练模型的条件文本生成研究

决定什么新信息是我们可能需要的,并且创建一个候选记忆单元来保存需要更新
的新信息,计算方式如公式 2.4 和 2.5 所示:
9
𝑖# = σ(𝑊$ 𝑥# + 𝑈$ ℎ#0- + 𝑉$ 𝑐#0- )9 式 2.4

9
𝑐̃# = 𝑡𝑎𝑛ℎ(𝑊F 𝑥# + 𝑈F ℎ#0- )9 式 2.5

然后 LSTM 综合利用计算好的输入门、遗忘门和候选记忆单元来更新记忆单
元的状态。如公式 2.6 所示:
9
𝑐# = (𝑓# ⨀𝑐#0- + 𝑖# ⨀𝑐̃# )9 式 2.6

最后,LSTM 通过输出门来决定最终的输出值。如公式 2.7 和 2.8 所示:


9
𝑜# = 𝜎(𝑊H 𝑥# + 𝑈H ℎ#0- + 𝑉H 𝑐# )9 式 2.7
9
ℎ# = (𝑜# ⨀tanh (𝑐# ))9 式 2.8

接下来本文介绍 GRU 的计算方式。如图 2.7(b)中所示,给定一个长度为 T 的


序列 x,GRU 中的每一个神经元 j 都在 t 时刻维护了一个记忆单元和重置门,同时
将 LSTM 中的遗忘门和输出门合成了一个单一的更新门。可以看到 GRU 模型比
LSTM 要简洁,但在众多实验中其效果与 LSTM 几乎相同[44]。对于 GRU,模型
9 9 9
首先计算重置门𝑟# 和更新门𝑧# 的输出,然后根据重置门和输入来创建记忆单元ℎO# ,
9
最后根据候选记忆单元与更新门决定最终的神经元输出ℎ# 。如公式 2.9~2.12 所示:
9
𝑟# = 𝜎(𝑊P 𝑥# + 𝑈P ℎ#0- )9 式 2.9
9
𝑧# = 𝜎(𝑊Q 𝑥# + 𝑈Q ℎ#0- )9 式 2.10
9
ℎO# = tanh (𝑊𝑥# + 𝑈(𝑟# ⨀ℎ#0- )) 9
式 2.11
9
ℎ# = ((1 − 𝑧# )⨀ℎ#0- + 𝑧# ⨀ℎO# )9 式 2.12

总体来说,LSTM 和 GRU 通过各种门的操作让前面时刻的信息以更直接的方


式添加到模型的“记忆”当中,这样的机制限制的缓解了梯度消失的现象,同时门机
制在理论上可以过滤不重要的特征,而保留对具体任务而言重要的特征,能更好的
提高 RNN 的长距离建模能力,现实中,需要使用 RNN 的场合一般都用 LSTM 和
GRU 来代替普通的 RNN,这两种技术不论是在编码信息方面还是生成序列化数据
方面都取得了巨大的成功,两者通常可以取得近似的效果[44],而 GRU 模型由于
少了一个门的机制从而包含比 LSTM 更少的参数,这一点让 GRU 在理论上可以减
少一部分过拟合的风险。

2.1.2 自注意力机制
RNN 模型由于梯度消失等原因,往往只能仅仅保持十分短期的“记忆”,这限
制了 RNN 的能力。尽管通过加入了门机制和记忆单元,LSTM 和 GRU 模型一定

万方数据
武汉大学硕士学位论文

程度上缓解了梯度消失的负面影响,使得它们能够保持较长时期的“记忆”能力,但
是他们仍然会丢失更长时间步的信息。于是 Vaswani 等人[45]提出了自注意力机制
(Self-Attention)。在详细介绍 Self-Attention 机制之前我们先介绍基础的 Attention
机制。基础的 Attention 机制里面,存在 query Q,key K 以及 value V。Attention 的
作用就是根据 Q 与 K 之间的相关性,来求得 value 的正确表达方式,如公式 2.13
所示:
𝑄𝐾 \
A𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄, 𝐾, 𝑉) = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 [ _𝑉 式 2.13
]𝑑7

这种机制称之为 Scaled Dot-Product Attention 机制,其中]𝑑7 用来缩放分布避免


造成梯度消失的状况。更进一步的,Vaswani 等人[45]又提出了多头自注意力机制
(Multi-Head Attention),其核心思想是将很长的向量上的操作分为多个“小头”上
进行的操作,这样可以保证模型学习到多方面的丰富信息,并可以提高长距离依赖
的获取能力,如公式 2.14 所示:
Mu𝑙𝑡𝑖𝐻𝑒𝑎𝑑(𝑄, 𝐾, 𝑉) = 𝐶𝑜𝑛𝑐𝑎𝑡(ℎ𝑒𝑎𝑑- , … , ℎ𝑒𝑎𝑑& )𝑊 f
式 2.14
f
𝑤ℎ𝑒𝑟𝑒 ℎ𝑒𝑎𝑑$ = 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄𝑊 , 𝐾𝑊 f
, 𝑉𝑊$h )
其中𝑊 、𝑊 、𝑊 f 、𝑊$h 均为可训练的矩阵,一般目前的自注意力机制都使用
f f

多头机制。所谓的自注意力机制,指的就是 Q、K 以及 V 都是句子表达自身。我


们可以看到在回顾前 N 步的时间信息时,RNN 所耗费的操作数量为O(N),而自注
意力机制机制所耗费的操作数量仅仅为 O(1),也就是说,对于自注意力而言它获
取任意长度的信息的难度就和获取上一步的信息的难度一致,这一机制让它对于
长距离关系的建模上比 RNN 更有优势,同时 RNN 往往被诟病由于其递归的特性
而导致的计算过程难以并行化,这使得在大量数据的训练下,RNN 往往不容易利
用并行计算的优势而需要更多的训练时间,而自注意力机制由于不具备递归结构,
在并行化方面更具有优势。正因为上述的原因目前很多任务都开始用纯粹的自注
意机制代替原有的 RNN 模块,Vaswani 等人[45]在机器翻译任务中,完全的用自注
意机制而提出了 Transformer。最终作者发现这种方式可以取得比 RNN 结构更好的
结果、更少的训练时间。同时为了解决 Self-Attention 无法感知位置信息的缺点,
本文提出了一种 Position Embedding 的方式来将位置信息编码到模型中,通常采用
无参数的形式,如公式 2.15 所示:
𝑃𝐸(mHn,o$) = sin (𝑝𝑜𝑠/10000o$/uvwxyz )
式 2.15
𝑃𝐸(mHn,o${-) = cos (𝑝𝑜𝑠/10000o$/uvwxyz )
除了运用自注意力机制代替 RNN,也有使用自注意机制进行文本表征[54]等工
作出现,同时也有许多针对自注意机制的改进技术出现,例如 Shen 等人[54]参考
类似于 LSTM 的方式,让自注意力机制也带有“方向性”,让注意力机制只能对
前面或后面的信息进行操作,并发现这种方法可以进一步提高模型的效果。

10

万方数据
一种基于预训练模型的条件文本生成研究

2.2 变分自编码器
在介绍变分自编码器(Variational Auto-Encoder,简称 VAE)前,先介绍自编
码器(Auto-Encoder,简称 AE)。AE 的思想是将一段文字通过一个编码器表达为一
个瓶颈向量,然后将其通过一个解码器来重构回输入的文字(见图 2.3(a))。

(a) (b)

图 2.3 (a)自编码器结构示意图,(b)变分自编码器结构示意图

自编码器的损失函数通常为公式 2.16 所示:


𝑙𝑜𝑠𝑠~• = 𝐶𝐸(𝑥, 𝑅𝑒𝑐(𝑥))
式 2.16
𝑤ℎ𝑒𝑟𝑒 𝑅𝑒𝑐(𝑥) = 𝐷𝑒𝑐(𝐸𝑛𝑐(𝑥))
其中 CE 指的是在文本中惯用的用以衡量样本 x 与重构样本 Rec(x)之间差距的
交叉熵(Cross-Entropy),Dec、Enc 依次为解码器、编码器。在良好训练的情况
下,模型可以学习到把最具有信息量的信息存储在瓶颈向量中。而所谓 VAE 则是
相对于 AE 新增了一个对后验分布的规范项(见图 2.3(b)),这个规范项的作用是
让模型的后验分布更加接近简单的先验分布(通常选择为高斯分布),而度量后验
分布与先验分布之间的差距通常用 Kullback-Leibler (KL)距离,一个常见的 VAE 的
损失函数通常如公式 2.17 所示:
𝑙𝑜𝑠𝑠h~• = 𝐶𝐸‚𝑥, 𝑅𝑒𝑐(𝑥)ƒ + 𝐾𝐿(𝑞(𝑧|𝑥)||𝑝(𝑧)) 式 2.17

损失函数前半部分的与 AE 相同,后半部分的规范项中 q(z|x)为模型所学习的


后验分布表示,即编码器学习到的对每一个样本点的向量表达,p(z)为瓶颈变量 Z
的先验分布,通常选用简单高斯分布、unit 分布等等。在数学理论上,VAE 的损失
函数接近于样本分布的一个下界[10],这保证了 VAE 的建模、生成能力。同时先
验分布通常具备每一维度变量不相关、线性可插值的优良特性,而规范项的加入通
过强迫模型的后验分布趋近于先验分布,可以让模型学习到更加解纠缠、泛化的文
本表征 Z,这个表征通常可以更好的迁移到其他任务中。同时,当模型的后验分布
趋近于先验分布时,VAE 便具备了生成能力,具体的方法是先从先验分布里采样
一个向量𝑧mP$HP ,然后通过解码器 Dec 便可以得到新产生的文本𝑥‡,其过程如公式
2.18 所示:
𝑥‡ = 𝐷𝑒𝑐(𝑧mP$HP ) 式 2.18

11

万方数据
武汉大学硕士学位论文

2.3 韦森自编码器
Tolstikhin 等人[24]在研究 VAE 的时候发现,在原始 VAE 的损失函数中,其规
范项 KL 散度由于强迫每一个数据点都接近高斯分布,而使得模型很容易出现重构
错误的情况(如图 2.4(a)所示),于是提出一种对于多个点的聚合后验分布进行规
范限制的全新自编码器,称之为韦森自编码器(Wasserstein auto-encoders,可简称
为 WAE),通过让聚合后验分布而不是每一个点的后验分布接近先验,让模型的
重构过程更加容易,其示意图见图 2.4(b)所示。

图 2.4 在重构时 VAE(a)以及 WAE(b)的示意图,可以看到 VAE 由于限制每一


个数据点接近先验高斯分布而容易出现重构失败的情况,而 WAE 限制多个数据
点的聚合分布接近先验高斯分布,让重构过程变得更加简单

之所以称这种全新的自编码器为 WAE,是因为 Tolstikhin 等人[24]在数学理论


上指出,当我们试图优化聚合后验分布与先验之间的距离时,可以将此问题近似为
求解最优传输(Optimal Transport)问题,同时也是在优化两个分布之间的韦森距
离。其损失函数如公式 2.19 所示:
𝑙𝑜𝑠𝑠ˆ~• = 𝐶𝐸‚x, Rec(x)ƒ + 𝜆𝐷• (𝑄(𝑍|𝑋), 𝑃(𝑍)) 式 2.19
其中前半部分依然和 AE 一样的重构误差,后半部分中,𝐷• 函数表示一种衡量
两个聚合分布之间差距的函数,λ代表其权重。𝐷• 的选取有两种方式两种方式,第
一种是训练一个对抗式的分类器来区分聚合后验分布以及先验分布。在原始的
GAN 框架中,这个对抗式分类器为一个二分类分类器。另一种方式是用非对抗式
的 Maximum Mean Discrepancy(MMD)来计算两个分布之间的距离,这种方式的
优点是避免了对抗训练所带来的不稳定性,但是在原论文的实验[24]中发现这种效
果不如对抗式的方法。于是本文所使用的预训练模型就是基于对抗式的 WAE,我
们发现此方法可以取得良好的采样和重构的平衡,并且可以很好避免后验坍塌现
象的出现。有关对抗训练的部分则见后文。

12

万方数据
一种基于预训练模型的条件文本生成研究

2.4 对抗训练

图 2.5 生成对抗网络示意图

对抗训练源自于生成式对抗网络(GAN)中生成器与判别器之间的训练过程。
一个常见的对抗场景是:为了训练一个生成器时,额外给定一个对抗判别器,其作
用是正确判断真实样本于生成样本的真伪,而生成器的目标则是生成可以“骗过”
对抗器的样本,即让对抗器分辨不出来自己生成的样本为伪样本(见图 2.5)。这
一过程是一个相互对抗的过程,所以称之为对抗训练过程,最早提出的生成式对抗
网络的损失函数如公式 2.20 所示:
𝑚𝑖𝑛‘ 𝑚𝑎𝑥’ 𝔼”~–x—˜— (”) [𝑙𝑜𝑔𝐷(𝑥)] + 𝔼Q~m(Q) [log ž1 − 𝐷‚𝐺(𝑧)ƒ ] 式 2.20
其中 D 为判别器,G 为生成器,p(z)为一个噪音分布(通常也为高斯分布)。
可以通过该损失函数看出判别器 D 为普通的二分类判别器,其输出往往使用
sigmoid 作为激活函数。但是使用 sigmoid 当激活函数时,若判别器的表现明显好
过生成器时,会容易陷入饱和状态,此时判别器可提供的梯度十分有限,同时
Arjovsky 等人[46]指出原始的 GAN 在理论上是优化 JS 距离,而在高维度的情况
下,当两个分布之间没有交集的时候,JS 距离会非常小,这也会导致生成器所接
受的梯度非常小,从而不利于生成器的学习。为了缓解原始的对抗训练存在的这些
问题,于是 Arjovsky 等人[46]提出了 WGAN,其核心思路是将原始的 GAN 求解
JS 距离问题转化为求解韦森距离问题,这种方法在高维度、无交集的分布中也能
为生成器提供稳定的梯度。WGAN 的损失函数如公式 2.21 所示:
𝑚𝑖𝑛‘ 𝑚𝑎𝑥’,||’||¡ ¢- 𝔼”~–x—˜— (”) [𝐷(𝑥)] − 𝔼Q~m(Q) [D(G(z))] 式 2.21
可以看到,WGAN 里判别器的输出不再是一个概率,而变成了一个实数,所
以此时不论判别器有多好,都不会存在梯度消失的情况。但是值得注意的是,在数
学上若要求 WGAN 成立,存在一个前提,即判别器需要处于 1-Lipschitz 的约束之
下。所谓的 1-Lipschitz 约束,指的是满足公式 2.22 的一类函数:
|D(x) − D(y)| ≤ ||x − y|| 式 2.22

为了让判别器处于 1-Lipschitz 约束之下,主要利用基于权重裁剪和梯度惩罚的


方法,前者主要是进行一种后处理的方式,其思路是在模型学习好了参数之后,对
权重进行裁剪,让其模长不超过 1,这样就能够保证模型抖动幅度足够小,从而满

13

万方数据
武汉大学硕士学位论文

足约束条件,后一种方法也称为 WGAN-GP[51],其思路是||𝐷||¨ ≤ 1可以通过其导


数||∇𝐷|| ≤ 1来进行保证,于是把判别器的梯度作为一个惩罚项加入到判别器的损
失函数中,于是 WGAN-GP 中的判别器损失函数成为了如公式 2.23 所示:
o
D = 𝑎𝑟𝑔𝑚𝑖𝑛’ − 𝔼”~–x—˜— (”) [𝐷(𝑥)] + 𝔼Q~m(Q) ª𝐷‚𝐺(𝑧)ƒ« + 𝜆’ 𝔼”~P(”) [‚¬|∇𝐷|¬ − 1ƒ ]
式 2.23
为了要求公式 2.23 在处处都成立,r(x)应该是全空间的均匀分布,为了取得近
似的效果, Gulrajani 等人[51]用真假样本之间进行随机插值来进行模拟,用来保
证真假样本之间的过渡区域满足 L 约束。而 Wu 等人[47]根据数学原理出发,指出
WGAN-GP 所优化的距离并不是一个真正的“散度”,所以按照这个方式进行更新
并不能保证模型向着拉近两个分布的距离方向发展,并且在过渡区域进行插值的
方法过于启发式,不够鲁棒,于是他们从韦森散度的理论出发提出了更加完备的
WGAN-DIV 方法,其公式如公式 2.24 所示:
m
D = 𝑎𝑟𝑔𝑚𝑖𝑛’ − 𝔼”~–x—˜— (”) [𝐷(𝑥)] + 𝔼Q~m(Q) ª𝐷‚𝐺(𝑧)ƒ« + 𝑘𝔼”~P(”) [‚¬|∇𝐷|¬ƒ ]
式 2.24
可以看到 WGAN-DIV 也是属于梯度惩罚类型的方法,从表面上看其公式和
WGAN-GP 很类似,但是 Wu 等人[47]指出此时所求解的是一个对称的“散度”,
这让模型真的朝着拉近两个分布的距离优化,同时其最优解与韦森距离很大的关
联性,并且此时 r(x)的选择在理论上不存在限制,这相比 WGAN-GP 的启发式选择
要在理论上更加优越和鲁棒,在他们的实验中也发现,在多种情况下,WGAN-DIV
比 WGAN-GP 都能取得更好的效果。所以本文所使用的对抗训练方式采用 WGAN-
DIV 的方式,在后续的实验中也发现该训练方法可以让对抗训练的过程更加稳定。

14

万方数据
一种基于预训练模型的条件文本生成研究

第3章 模型及方法
本章主要介绍本文所提出的结合预训练模型的条件文本生成框架,以及用于
单条件、多条件生成的 condVAE 模型和 multi-condVAE 模型。首先我们给出有条件
文本生成的问题定义,然后介绍条件文本生成框架、预训练过程、以及用于条件生
成的两个模型,在本章最后对模型结构、设计、训练方面进行一些探讨与说明。

3.1 任务定义
本节旨在定义有条件文本生成任务。给定一个较大的文本数据集Χ =
{𝑥- , 𝑥o , … , 𝑥° },其中 N 为数据集的大小,每个数据点𝑥$ 不包含任何标签信息。然后
给定一个少量的标注条件样本集Y = {𝑦- , 𝑦o , … , 𝑦³ },其中 M 为数据集大小,本文
专注少量标注样本的条件生成,此时 M 为一个较小的值(以百为单位)。每一个
数据点𝑦$ 属于类别集合L = {𝑙- , 𝑙o , … , 𝑙7 }中的一个标签(例如正面情感、负面情感等)。
我们的目的是结合无标签数据集 X 以及条件标签数据集 Y,训练一个生成器 G,
来产生符合特定条件要求的文本。当类别种类k = 1,称之为单条件文本生成,当
类别种类k ≥ 2称之为多条件文本生成。需要额外提到的是,在本文的场景下,标
注样本 Y 为无标注样本 X 的一个子集。

3.2 框架与方法
3.2.1 条件文本生成框架
本节首先介绍本框架的原理,然后详细介绍本框架的流程。在大量无标注样本
上预训练生成模型往往有能力提取平滑、且较有信息量的隐含空间 Z,通常可以完
成一些随机采样、线性插值等操作[11]。受 Engel 等人[50]的工作启发,我们首先
在大量无标注样本上预训练一个生成模型,该模型具备将样本投射到一个较低维
的编码空间的能力。给定少量有标注条件样本后,我们假设每一种条件对应编码空
间中一个隐含的条件子空间,此时我们直接从预训练编码空间中寻找、拟合条件子
空间,然后通过在该子空间中采样条件向量,便能借助预训练的解码器(与生成器
同义)直接生成条件文本。其原理示意图如图 3.1 所示。由于预训练模型训练好了
之后在该框架中不再参与训练,而且条件子空间的拟合是直接在预训练编码空间
中进行处理得到,故本文所提出的框架可看成是“后处理”式的文本生成框架。
这样“后处理”式的条件文本生成框架,我们认为至少可以获得如下两种好处:
1)灵活。由于采用“后处理”的方法,我们的条件生成框架并没有局限条件的
种类以及数量。即只要训练好了预训练模型,那么面对任意类型、数量的条件,不
需要像以往的方法一样重新训练整个模型,而仅需要采取某种方法拟合条件子空
间,并在条件子空间中进行采样,就能够生成符合条件要求的文本了,这种方式往
往更加省时省力,也更加灵活;

15

万方数据
武汉大学硕士学位论文

图 3.1 条件文本生成框架原理示意图

2)更高抽象层面的学习简化了学习过程。该框架实际上是将文本生成任务从
高维、稀疏的字词级别任务,转化为更抽象、低维、紧密的高层空间学习任务。这
种更高抽象层面的学习方式可以充分利用预训练模型学习到的与生成有关的背景
知识,通过这种迁移学习的方式,能大大简化学习过程,使得我们的方法在小标注
样本上也能仅通过少量参数的网络来取得较好的生成效果。
介绍完原理后,我们详细介绍该框架。其完整流程图如图 3.2 所示。首先,如
图 3.2(a)所示在无标注样本集 X 上训练 WAE 作为预训练模型,从而得到预训练编
码器、解码器。然后在给定少量条件样本 Y 后,如图 3.2(b)所示通过预训练编码器
将其转化为处于预训练编码空间的条件向量集,在该向量集上使用基于 VAE 的模
型(即后文将介绍的 condVAE、multi-condVAE)来拟合隐含条件子空间。至此训练
部分已完成。最后,生成条件文本的过程如图 3.2(c)所示,先从用于拟合空间的 VAE
的先验中随机采样一个向量,再通过 VAE 解码器将其转化为使处于条件子空间中
的向量表达,随后直接使用预训练解码器来将该向量表达转化为条件文本即可。

3.2.2 预训练
在挑选预训练模型方面,由于本文专注文本生成,所以需要采取生成式的无监
督模型。同时我们需要该模型具备编码能力,即该模型需要包含编码器结构。于是
我们选择 VAE 相关模型作为预训练模型。由于原始 VAE 后验坍塌[11]的问题,于
是选用更易于重构的 WAE 作为预训练模型。Tolstikhin 等人[24]指出基于对抗训练
的 WAE 可以取得更好的效果,而对抗训练技术中 WGAN-DIV[47]可以带来比
WGAN-GP 更加稳定的训练过程。综上我们选择利用 WGAN-DIV 进行对抗训练的
WAE 作为预训练模型,后文我们仅用 WAE 代表我们的预训练模型(关于 VAE、
WAE、对抗训练的具体知识已在第二章进行了阐述,故不赘述)。
具体而言,给定无标注数据集 X 之后,WAE 学习到一个编码器𝐸m 、一个解码
器(或称为生成器)𝐺m ,以及一个判别器𝐷m 。训练良好时,WAE 可以学习到用一
个较低维的空间来表示数据 X,该空间我们定义为Z ∈ ℝu» ,其中𝑑m 为其维度。

16

万方数据
一种基于预训练模型的条件文本生成研究

图 3.2 本文所提出框架的流程图。 (a):预训练模型 WAE 的示意图,P(Z)为先验


分布,enc-p 为预训练编码器𝐸m ,gen-p 为预训练解码器𝐺m ;(b):condVAE 模型示
意图,P(Zc)为先验分布,enc-c 为条件编码器𝐸F ,gen-c 为条件解码器𝐺F ;(c):成
单条件文本的流程示意图,gen-c 为条件解码器𝐺F ,gen-p 为预训练解码器𝐺m

WAE 的示意图如图 3.2(a)所示。需要着重提出的一点是,VAE 类型的网络通常


明显的存在一个“采样能力”与“重构能力”的平衡[27],采样好说明模型学习到的空
间十分平滑,重构能力好说明模型尽可能的编码了足够多的信息。在本文所提出的
方法里,预训练模型需要同时具备良好的生成能力以及重构能力。于是在训练过程
中,我们用随机生成的文本的流畅度、线性插值的平滑性来作为采样能力的衡量指
标,使用验证集上的重构误差来作为重构能力的衡量指标,当预训练模型取得了良
好的采样能力与重构能力的平衡时,存储下预训练模型的全部参数,以供后续方法
使用。在本论文使用的数据集 Yelp 中,最终我们选取的预训练模型可以在验证集
上取得 1.4083 的重构误差,并可以生成流畅的随机样本、平滑的线性插值,我们
列举了一些简单的例子来展示预训练模型的效果,见表 3.1。
表 3.1 预训练模型的重构、随机采样、线性插值的生成样例展示表(Yelp)
生成样例
原始句子:the fish and shrimp was good too.
重构
重构句子:the fish and shrimp was good too.
I’ve always had a wonderful haircut.
随机采样 Their breakfast coffee was great, but a little pricey.
Great service, quick!
I love casey moore’s.
I adore the classes here!
I adore the harley anderson!
线性插值
Amazing sites, great place.
Thanks for the service department!
Thanks for the service rick!

17

万方数据
武汉大学硕士学位论文

在这里我们对一些细节进行解释。重构指的是给定一个人工挑选的原始句子作
为输入,使用 WAE 进行编码、解码所重新产生一个句子,该句子称为重构句;随
机采样过程是指,从先验分布中随机采样一个向量,将该向量通过 WAE 的解码器
产生句子;线性插值指的是,随机从先验分布中采样两个向量𝑍- 和𝑍o 后,对其进行
线性插值得到𝑍$¼#½P ,其中𝑍$¼#½P = 𝛼𝑍- + (1 − 𝛼)𝑍o , 𝛼 ∈ [0,1],随后使用 WAE 的解
码器将𝑍$¼#½P 转化为句子,在所给的例子当中,进行的是等距离的 4 次线性插值。
且所有生成方式都采用“贪心”解码的方式,也就是每一次输出概率最大的单词。

3.2.3 单条件文本生成方法
在本小节我们提出在单条件设定下用于拟合条件子空间的模型 condVAE。具体
而言,给定一个仅包含一种条件标签的数据集 Y,首先利用预训练模型的编码器
𝐸m ,获得每一个有标签数据点𝑦$ 在 Z 空间上的表达𝑧¿À ,从而得到条件样本的高层
次向量集合𝑍Á = {𝑧¿Â , 𝑧¿Ã , … , 𝑧¿Ä },其过程如公式 3.1 所示:
𝑧¿À = 𝐸m (𝑦$ ) 式 3.1
得到𝑍Á 后,下一步是在预训练编码空间 Z 上寻找一个满足隐含条件要求的条
件子空间𝑍ÅH¼u 。为了达到这一目的,我们构建了一个瓶颈向量层较小的 VAE 用来
拟合条件子空间,这样的 VAE 我们称之为 condVAE。在这里使用 VAE 的结构是因
为,瓶颈层较小的 VAE 可以提取𝑍Á 中最相关的条件信息而丢弃其他不相关的信息,
而 VAE 具备的生成能力使它能够拟合出包含条件信息、并处于编码向量空间中的
条件子空间𝑍F ,在后续实验中我们也发现 VAE 拟合条件子空间的效果优异。
具体而言,condVAE 包含一个条件编码器𝐸F ,其作用是从向量集𝑍Á 中提取出共
有的条件信息,同时包含一个条件解码器𝐺F 负责重构以及后续的生成任务,其瓶颈
空间表示为𝑍F ∈ ℝuÆ ,其中𝑑F 表示维度。有关 condVAE 的示意图参见图 3.2(b)。为
了提高生成样本的多样性,而不牺牲准确性和流畅性,我们参考[52]的做法,在普
通的 VAE 损失函数中增加了一个参数 C 来控制模型编码的信息量大小,修改后的
condVAE 的损失函数如公式 3.2 所示:
𝑙𝑜𝑠𝑠FH¼uh~• (𝑌) = 𝐶𝐸‚𝑦, 𝑅𝑒𝑐(𝑦)ƒ + ¬𝐾𝐿‚𝑞(𝑧|𝑦)¬𝑝(𝑧)ƒ − 𝐶¬ 式 3.2
其中 CE 表示 CrossEntropy,Rec(y)表示 y 的重构(具体请参见第二节关于自
编码器的介绍)。这种方式引入变量 C 可以控制 KL 散度大小,进而控制变量与样
本之间的互信息[52],在避免后验坍塌的同时,可以保证模型编码到足够的信息,
从而让模型获得足够的重构能力,在实验中我们也发现这种方法的确可以有效提
高多样性。
在训练完 condVAE 后,接下来是如何生成与给定数据集具备相同条件属性的
文本。由于我们的 condVAE 可以良好的拟合隐含的条件子空间,同时预训练的 WAE
也学习到了良好解码器,故直接使用采样的方式来生成(如图 3.2(c)所示)。具体

18

万方数据
一种基于预训练模型的条件文本生成研究

而言,首先,我们从 condVAE 的先验分布 P(𝑍F )中采样一个向量𝑧m ,然后用 condVAE


的解码器𝐺F 将𝑧m 转化为𝑧F 向量,如公式 3.3 所示。
𝑧F = 𝐺F (𝑧m ) 式 3.3
在 condVAE 训练良好的情况下,𝑧F 不仅属于条件子空间,同时也属于预训练
编码空间。由于预训练模型始终是固定不变的,此时生成条件文本就变得十分简单:
直接用预训练模型的解码器𝐺m 将𝑧F 转化为符合文本𝑥F 即可,其过程如公式 3.4 所示。
𝑥F = 𝐺m (𝑧F ) = 𝐺m (𝐺F ‚𝑧m ƒ) 式 3.4
通过这一生成过程可以发现,我们的方法不仅仅是一种“后处理”方法,同时
也属于一种层次模型,即借助预训练编码器将学习任务从低层次字词级别转换到
高层次特征空间级别,这种层次建模的思路符合深度学习的基本思想。

3.2.4 多条件文本生成方法
尽管在多数场景下,要生成某种条件的文本,可能只能获得那一种条件的标注
样本集,但在某些场景下,往往能获取其他相关条件的文本。例如在评论中,我们
就可以同时获得正/负情感的文本。这些不同条件的文本在条件信息上存在明显
差异,若能将这种不同条件之间的交互影响作为某种先验知识引入到模型中,也许
可以指导模型生成更满足条件性的文本。于是本文扩展了 condVAE 方法而提出一
种可以结合多条件文本来进行条件子空间拟合的模型,我们称之为 multi-condVAE。
具体而言,在给定一个包含多种条件属性的数据集 Y 后,其中包含的标签类
型有 k 种,那么我们的方法是训练出 k 个生成器,每一个生成器只负责生成属于
某种条件的文本。在训练针对第𝑙$ 个条件类别的生成器𝐺F,$ 时,我们训练一个和
condVAE 拥有相同结构的 VAE,其中包含一个编码器𝐸F,$ 、一个解码器𝐺F,$ 以及瓶颈
层空间𝑍F,$ ∈ ℝuÆ ,其中𝑑F 为瓶颈层维度,至此与 condVAE 中一致。为了结合多种
样本,我们将 Y 中属于条件𝑙$ 的样本视为正样本𝑌P½ÈÉ ,而将其他条件的样本视为负
样本𝑌>È7½ ,并鼓励模型在能够尽量重构正样本的同时,无法重构负样本。此时 multi-
condVAE 模型的损失函数如下:
𝑙𝑜𝑠𝑠 = 𝑙𝑜𝑠𝑠P½ÈÉ − 𝜆F 𝑙𝑜𝑠𝑠>È7½
式 3.5
其中 𝑙𝑜𝑠𝑠P½ÈÉ = 𝑙𝑜𝑠𝑠FH¼uh~• (𝑌P½ÈÉ )
𝑙𝑜𝑠𝑠>È7½ = 𝑙𝑜𝑠𝑠FH¼uh~• (𝑌>È7½ )
根据损失函数我们可以看到,我们此时希望 multi-condVAE 能够在提取条件𝑙$
的样本中所包含的条件信息之外,也能够尽量少的包含其他类别的信息。这种简单
的设计,可以鼓励 multi-condVAE 提取到更加纯粹的条件信息,从而进行更加准确
的条件文本生成,在实验部分我们也发现,尽管这种方式较为简单,但是效果十分
不错。
而在进行条件文本生成的时候,其生成过程与 condVAE 的单条件文本生成过
程完全一致,唯一需要特别指出的是,我们针对每一个类别𝑙$ 都训练了一个 multi-

19

万方数据
武汉大学硕士学位论文

condVAE 模型,所以在进行多条件文本生成时,对于不同的条件𝑙$ ,要使用相应的


条件解码器𝐺F,$ 来将对应的先验向量转化为条件子空间中的条件向量,然后再进一
步通过预训练解码器生成属于条件𝑙$ 的文本。
与传统方法不同的是,我们并不要求 Y 中的条件完全覆盖无标注样本集 X,
Y 只要包含任意两种及以上的条件即可以运作 multi-condVAE(例如 X 中包含正向
/中立/负向三种类别,传统方法需要 Y 中包含这三种类别的样本,但是我们的
方法只需要正向/负向即可),这是因为 multi-condVAE 是对每一种条件构建生成
器,而其他条件的样本仅仅是作为负样本加入训练中的,就算不完全也能够提供一
定的信息。而其他的半监督方法如 S-VAE[37]、Ctrl-gen[38],它们都假设无标注样
本集 X 中隐含一个条件分布𝑄(𝐶|𝑋),并且都引入了一个判别器在模型中,在这种
情况下,Y 中包含条件要覆盖 X 中的全部条件才能够进行有效的判别器训练。在
这一点上,我们的多条件生成方法和单条件生成方法一样,比传统的方法更加灵活。
另外,multi-condVAE 相比 condVAE 并没有引入额外的参数,它们拥有一样的结构。
尽管需要多个生成器来进行多条件文本生成,但其总参数量仍然远远少于现有的
模型。

3.3 模型结构
对于预训练 WAE,我们使用一层双向 GRU 作为编码器,尽管 WAE 允许使用
非概率式编码器,但我们通过实验发现概率式编码器效果要好一些,于是我们仍然
使用概率式编码器,值得提到的是,在测试阶段(以及为得到条件向量集时)我们
不使用概率式编码而使用编码器得到的中心向量作为表达。需要额外说明的是,在
文本领域中,输入通常为句子或文档的集合,我们使用词向量来代表离散的单词信
息,该词向量在训练中是随机初始化并通过梯度更新来获得的。判别器部分我们使
用两层全连接层作为隐藏层,每层都使用 LeakyRelu 作为激活函数,由于使用
WGAN 方法,所以输出层仅为一层线性全连接层,没有使用任何激活函数,这样
可以防止判别器因为训练饱和而出现梯度消失的情况。至于解码器部分,为了让解
码器获得足够的长距离建模能力,我们使用了类似于 Transformer 的结构,也用纯
粹的自注意力机制替代了 RNN,具体而言,我们使用了三层 8-head 的自注意力机
制的 block 的结构,每一个 block 内部结构与 Transformer 也类似,同样使用了诸如
残差连接、层归一化的技术,但与之不同的是我们在每一层 block 的输出后都加上
了 Position Embedding 以增强解码器感知位置的能力,同时为了强调编码器学习的
向量表达对解码器的作用,我们使用了多层残差的方式,在每一层 block 都将编码
向量 z 进行线性变换并作为输入拼接到当前层的输入中,这种方法启发自图像领
域近期的工作[49],这种方式理论上可以让模型自动学习到如何在不同层运用不同
的变吗信息,在实验中也发现这种方式可以加快模型的收敛速度。关于解码器每一
层 block 以及整体的结构如图 3.3 所示。需要额外说明的是,Add&Norm 层指的是

20

万方数据
一种基于预训练模型的条件文本生成研究

残差连接以及 Layer Normalization 操作(由于不是主要的论文内容,具体的细节可


参见[45])。
而对于 condVAE、multi-condVAE,由于它们需要拟合的不再是离散的字词信
息,而是连续的向量特征信息,所以可以直接使用纯粹的全连接网络来充当编码器
和解码器。具体而言,我们使用对称的两层全连接层作为编码器、解码器的隐藏层,
每一层的激活函数也都选用 LeakyRelu。需要额外注意的是,为了让 condVAE、multi-
condVAE 尽可能少的编码“条件信息”之外的噪音,瓶颈层的大小𝑑F 要足够的小。

图 3.3 预训练模型的解码器结构:(a)包含自注意力机制的一个 block 的内部结


构,(b)解码器的最终结构图,其中每一个 block 对应图(a)

3.4 模型设计讨论
我们所提出的框架实际上来自于 Engle 等人[50]工作的启发,他们在图像领域
中首先使用了这种类似的在编码空间上寻找条件子空间的“后处理”方法来进行图
像生成。但是我们与他们的方法存在一个明显的不同,他们使用了基于 GAN 的方
法来直接将噪音先验向量转换为满足条件子空间的向量,而我们的方法中,则是使
用了基于 VAE 的思路,通过编码、解码的步骤来提取结构化的条件信息并拟合条
件子空间。我们这样设计模型,一方面是因为在早先的实验中基于 GAN 方法久久
无法取得良好的效果,另一方面,通过分析,我们认为目前在文本领域,预训练模
型所学习到的表征没有图像领域那么抽象、解纠缠,条件信息和非条件信息存在一
定的“耦合”现象。而基于 GAN 的方法不具备直接过滤掉这些无用的信息的能力,
这导致直接利用 GAN 来拟合条件子空间在文本领域是比较困难的,相比之下 VAE
更加适合在文本中去拟合条件子空间。VAE 所具备的特征提取功能(来自于损失
函数中的重构误差)让我们能够在一定程度上忽略条件样本集不共有的“噪音信息”,

21

万方数据
武汉大学硕士学位论文

而仅仅保留最共有的“条件信息”,这样的“提纯”功能在文本领域额外具有价值,
这就是我们如此设计单条件、多条件文本生成模型的原因,这也是我们与 Engle 等
人[50]工作的最大不同。

3.5 模型训练
在预训练环节,WAE 所需要更新的参数来自于编码器、判别器与解码器。我
们训练解码器的训练方式是生成中常用的 Teacher Forcing 的方式,即将正确的句
子全部提供给模型进行训练,解码器每一个时间步的迭代都依靠真实输入而不是
模型自己的预测,尽管这样的方式会造成 Exposure bias 的问题[28],但是这样的方
法在训练时间上十分具有优势,所以我们仍然选择这种方式。由于我们这里采用了
基于对抗训练的 WAE,判别器、编码解码部分是以交替训练的方式进行参数更新
的,两者的训练步伐按照预设的比例来进行,由于预训练模型是一个完全端到端的
模型,所以按照惯例采用参数随机初始化,并利用随机梯度下降以及反向传播的方
法来进行高效的参数更新。在训练过程中需要注意的是,我们不仅需要预训练模型
具有良好的采样能力也需要良好的重构能力,所以训练中我们需要每隔一段时间
输出一些可视化的观测指标(如随机生成句子、线性插值、验证集上的重构误差
等),然后人工选取一种最能够平衡采样能力以及重构能力的预训练模型供后续使
用。而至于预训练模型的超参数方面,尽管看起来模型的参数众多,则并不需要额
外的注意,大多数参数靠经验值以及前人工作的推荐值便能够取得良好的效果。
对于 condVAE 以及 multi-condVAE,它们所需要更新的参数来自于编码器和解
码器,由于它们都是端到端的模型,所以也同样采取经典的随机梯度下降、反向传
播的参数更新算法即可进行高效的训练。参数方面,参数 C 的选取需要根据模型
生成样本的效果来进行人工选定,瓶颈层的维度𝑑F 按经验设定一个适当较小的值,
用以保证仅有最相关的“条件信息”被模型提取,而至于其他的参数则按照经验值
设定即可,由于两种模型结构简单、参数较少,调参环节十分省时。但是对于 multi-
condVAE 要额外注意一点,由于负样本的重构误差不存在上限的,这导致模型有可
能学习到一种毫无意义的结果----仅学会最大程度的分辨不出负样本,这时模型无
法提取有效的条件信息。这种现象在多种条件样本之间差异较大时容易出现,正因
如此,multi-condVAE 的超参数权重𝜆F 需要进行精细的人工调整,以达到一种刚好
提供给模型足够的条件信息又不至于让模型崩坏的状态。

22

万方数据
一种基于预训练模型的条件文本生成研究

第4章 实验
本章首先介绍我们所使用的真实数据集的基本情况,然后介绍我们将进行比
较的条件文本生成任务、评价指标、超参数选择的情况。在介绍完对比模型后,我
们将给出单条件、多条件文本生成任务上的实验结果情况并作出相应分析,并对样
本数量对效果的影响、参数对效果的影响进行调参实验并进行分析,在本章的最后
提供部分真实生成样例用以直观分析模型的优点和缺点。

4.1 数据集介绍
4.1.1 Yelp
Yelp 是收集自点评网站 Yelp 的真实评论数据,其中主要是针对餐厅方面的评
论。数据集包含二值的情感倾向,经常用于情感文本生成、风格迁移等生成任务当
中[31,48],我们直接使用 Shen 等人[48]提供的数据集,该数据集已经过了分词、单
词小写化等预处理工作,我们选取了训练集中前 8900 个词作为最终的词汇表。该
数据集中正负情感文本比例约为 0.6:0.4,详细信息参见表 4.1。

4.1.2 News Titles


News Titles 是来自于 UC Irvine Machine Learning Repository 的新闻数据。其中
每一个新闻包含类别、标题等信息。我们选用其中属于商业、健康、娱乐类别的新
闻标题作为数据集。我们使用 NLTK 对标题进行分词,将所有的单词都进行最小
化处理并去除了长度大于 15 的标题,并最终选取了前 10000 个词作为词汇表。其
中商业、娱乐、健康的比例约为 0.38:0.47:0.15,存在一定的“不平衡”现象。详细
信息参见表 4.1。
表 4.1 数据集基本统计情况
数据集 训练集大小 验证集大小 测试集大小 平均长度
Yelp 444,101 63,483 126,670 8.93
News Titles 249,043 23,949 20,000 9.85
在后续实验中,训练集用于预训练模型、分类器(见后文)的训练,验证集用
于挑选预训练模型、分类器(见后文),测试集则用于挑选条件文本。在这里我们
选用较短的数据集是为了方便学术研究,在更复杂的数据集上的实验则留待日后
进行。

4.2 实验设置
4.2.1 任务介绍
1)情感文本生成
首先我们试图让模型生成不同情感的文本。由于 Yelp 提供了二值的情感标签,

23

万方数据
武汉大学硕士学位论文

所以我们进行生成正/负情感的单条件/多条件生成实验。对于单条件生成,我们
随机从测试集中采样了 200 个样本为条件生成模型训练使用。对于多条件生成,
我们直接利用单样本中的 200 个正/负样本的合集作为训练集,这样更便于对比
多条件生成方法和单条件生成方法的效果差异;
2)不同长度文本生成
情感文本生成可看成语意文本生成任务,为了检测模型捕捉句法信息的能力,
进行不同长度的文本生成任务。我们认为文本的长度在一定程度上包含句法结构
信息。例如短文本更偏向于感叹、疑问,而长文本则更偏向于冷静的分析、陈述。
实验方面专注于 Yelp 数据集,并选取较长文本、较短文本以及中等长度文本作为
生成目标。在测试集上随机选取 200 个长度小于等于 3、 200 个长度大于等于 12
的作为较短/较长文本,随机选取 200 个长度大于 3、小于 12 的作为中长文本。
并且多条件的训练集也是单条件的训练集的合集。值得一提的是,该任务也能在一
定程度上验证模型对稀疏条件(较短文本仅在训练集中占 6.69%)的处理能力;
3)主题文本生成任务
为了进一步测试模型的语意文本生成能力,我们在 News Titles 上进行了主题
文本生成任务的实验。随机从测试集中选取 200 个属于商业、娱乐、健康的类别的
文本作为条件样本,并将单条件样本的合集作为多条件样本集。该数据集由于存在
一定的类别不平衡现象,可以在一定程度上检验模型对不平衡类别的处理的能力。

4.2.2 对比模型介绍
针对不同的任务我们运用不同的对比模型进行对比。
单条件文本生成对比模型:
1)fine-tune
给定少量有标签样本后,直接在这些样本上 fine-tune 并作为我们的对比模型。
由于我们关注于给定少量标签的生成,标注样本仅有 200 个,有监督方法由于
在词汇表大小上大大受限,只能生成多样性有限的文本,而多样性是条件文本生成
中一个重要的衡量指标,于是不予比较。而现有的半监督生成模型如 SVAE、Ctrl-
gen,则需要提供至少两个类别的文本才能够训练,单条件生成不符合该要求,于
是也无法进行比较。综合考虑之后,考虑使用 fine-tune 作为单条件对比模型。
多条件文本生成对比模型:
1) S-VAE
S-VAE[37]是一种经典的可以用于半监督生成的模型,相比 VAE 增加了一个
判别器负责为无标注样本提供条件信息,采用其中的 M2 模型作为对比模型;
2) Ctrl-gen
Ctrl-gen 是 Hu 等人[38]提出的一种半监督条件文本生成的模型,同样也包含
一个判别器,相比 SVAE 又增加了两个加强非结构变量与结构化条件向量之间解

24

万方数据
一种基于预训练模型的条件文本生成研究

纠缠的“独立性”规范项。
对于两种对比模型,我们统一优先使用原论文推荐的参数设定来进行实验,在
效果明显不好时进行适当参数调整。同时注意,为了更公平的对比,对于 S-VAE
以及 Ctrl-gen 我们统一使用与我们一致的编码器、解码器结构。另外,由于原始
VAE 模型在文本生成领域需要精细的去调整 KL 权重 anneal 机制以及 word dropout
(指在解码时随机丢弃掉 word)比例才能够取得效果,这一过程在我们的实验中
发现不够稳定,很难让对比模型发挥作用,于是我们统一使用我们在第三章提到的
加入参数 C 来控制 KL 大小的方法代替原始的 VAE 来帮助对比模型进行学习,对
于 S-VAE 和 Ctrl-gen 我们统一设置 C 值为 20,并且都采用线性递增的机制,在实
验中发现这样效果表现良好。

4.2.3 评价标准
对于有条件生成任务,我们选取两个自动测评的维度。
一是生成文本的条件准确率。我们参考[38]的做法,在 Yelp 上训练了一层的
卷积神经网络作为情感分类器,在 News Titles 上同样训练一个类别分类器,最终
它们在各自的验证集上可获得 90%、97%左右的准确率。然后直接运用预训练分类
器来自动给模型生成的条件文本分类。当测试任务为长度文本生成时,则不需要任
何辅助,直接通过生成文本的长短进行判断即可。最终条件准确率通过 #符合条件
文本/#全部生成文本 来表示,一般而言这个指标越大越好;
二是生成文本的多样性。若仅仅考虑条件准确率以及流畅度,那么模型即使学
会重复的输出少量情形的条件文本,也能够取得好的效果,而多样性在生成任务中
是很重要的一个指标。我们选择了与[53]一致的 Distinct-1 以及 Distinct-2 作为多样
性指标。其中 Distinct-1/Distinct-2 表示生成文本中独特的 1-gram/2-gram 所占的
比例。其计算公式为:#独特的 1/2-gram/#全部的 1/2-gram。当 distinct-1 越大,
说明模型越能生成多样的 1-gram,同理当 distinct-2 越大,模型越可以生成多样的
2-gram。
另外我们选择两个维度进行人工测评。
一个是生成文本的真实性。这一点主要衡量文本的流畅度等方面,真实性越高
越好。虽然有许多工作采用预训练的语言模型作为文本的流畅度的自动测评指标,
但是它们大多是选用在海量数据上预训练的语言模型作为评测,而本文的数据集
并不足以训练足够鲁棒的语言模型,所以在这里采用人工测评的方法来衡量生成
文本的真实性;
另一个是生成文本的条件性。这一点用来衡量生成文本是否符合给定的条件,
作为自动测评指标里的准确率的一个补充,因为预训练分类器也可能会因为训练
不充分、不鲁棒而产生有偏差的评测结果。
后文中主要通过自动测评指标来进行实验,有关人工测评的实验结果、设置则

25

万方数据
武汉大学硕士学位论文

参见 4.7 小节。

4.2.4 超参数的选择及训练
对于预训练模型 WAE,我们在 Yelp 中设置对抗分类器的权重λ=20,在 News
Titles 中设置为 15,其余的设定在两个数据集中保持一致。编码器中双向 GRU 的
每个方向大小为 150 维,编码空间 Z 的维度𝑑Q 设置为 128,先验分布使用中心为 0
方差为 1 的高斯分布,词向量维度为 256,解码器部分,我们使用三层自注意力
block,其中自注意力机制均使用 8-head,对抗训练的 WGAN-DIV 部分,k 设置为
2,p 设置为 6,batch size 设置为 512,实验中训练 2W5 次左右迭代即可收敛,优
化器使用 Adam[55],beata1 设置为 0.0,学习率设置为 5e-4 并保持不变;
对于 condVAE,编码器为两层使用 LeakyRelu 的全连接层,维度分别为 64/32。
解码器为两层使用 LeakRelu 的全连接层,维度为 32/64,输出层用 128 维的线性全
连接层,为了让模型仅仅提取最有共性的“条件信息”,我们设置瓶颈层维度𝑑F =
20,其先验也使用中心为 0 方差为 1 的高斯分布,参数 C 在所有实验中均设置为
5,并在前 1W 次迭代中以线性方式上升,再保持不变训练 1W 次迭代,batch 大小
设置为 128(因为标注样本仅仅为 200 个),优化器使用 Adam[55],beta1 设置为
0.5,学习率设置为 3e-4 并保持不变。对于 multi-condVAE,我们也使用相同的参数
及结构,对于新增的参数𝜆F ,我们在情感生成任务中设置为 0.1,在长度生成任务
中由于不同长度样本之间的差异较明显,𝜆F 设置为较小的 0.003,在主题生成任务
中设置为 0.05,这个权重设定既能保证良好的提纯作用,也能较好的防止不稳定的
训练过程发生。
对于 fine-tune,我们也使用大小为 128 的 batch,为防止训练过度,学习率设
置为较小的 1e-4,1K 次迭代收敛。对于 S-VAE、Ctrl-gen,为保证公平,使用和预
训练模型一样的编码器、解码器结构,其他参数则主要参考原论文中推荐的参数设
定。需要注意的是在 Ctrl-gen 中,我们去掉了初始化的步骤,因为如果不去掉 Ctrl-
gen 较难有效训练。

4.3 单条件文本生成
本节中,我们主要测评 condVAE 以及对比模型 fine-tune 在单条件文本生成中
的实验结果。我们测试了八种单条件文本生成任务,分别是正向情感文本生成、负
向情感文本生成、较短文本生成、中等长度文本生成、较长文本生成以及商业、健
康、娱乐标题生成任务。最终其结果参见表 4.2。注意所有的结果都是在随机生成
的 1W 个文本上求平均所得到,并且采取的都是贪心解码的方法,同时为了消除随
机初始化带来的不稳定性,都是对三次随机实验的结果求平均得到。
我们从实验结果中可以得到如下重要观察:
1)condVAE 在情感、主题文本生成以及较短文本生成中并没有取得比 fine-

26

万方数据
一种基于预训练模型的条件文本生成研究

tune 更好的效果。但这也是情有可原的,因为 fine-tune 方法的参数量达到了 6.5M,


而 condVAE 由于仅包含几层全连接,参数量只有 22K 左右,那么 condVAE 仅使用
了 3.7%的参数量,那么某些任务上效果不够好也情有可原。但在后文(4.4、4.8 小
节),我们可以看到引入多条件信息后有更多的任务可以超过 fine-tune,同时有更
小的时间开销;
2)不论是在语意层面的情感、主题文本生成,还是在与句法有关的长度文本
生成中,condVAE 可以取得良好的准确性以及多样性。具体而言,在主题文本生成
上,condVAE 则可以取得比 fine-tune 更好的多样性,这说明 condVAE 能够充分利
用预训练模型丰富的编码信息。而在中等长度、较长文本生成任务上我们能够取得
比 fine-tune 方法更好的条件准确度,这进一步说明了 condVAE 的有效性;
表 4.2 单条件文本生成实验结果,其中准确率、Distinct-1/2 数值均越大越
好,指标更高的以粗体展示
任务类型 方法 准确率↑ Distinct-1↑ Distinct-2↑
fine-tune 0.8937 0.0273 0.2745
正向情感
condVAE 0.7870 0.0369 0.2680
fine-tune 0.8300 0.0289 0.2945
负向情感
condVAE 0.7793 0.0343 0.2456
fine-tune 0.9306 0.0465 0.3265
较短长度
condVAE 0.9205 0.0393 0.2410
fine-tune 0.9529 0.0348 0.3300
中等长度
condVAE 0.9831 0.0428 0.3125
fine-tune 0.9534 0.0206 0.2204
较长长度
condVAE 0.9903 0.0296 0.2086
fine-tune 0.9008 0.0385 0.2805
商业标题
condVAE 0.8692 0.0493 0.3367
fine-tune 0.8397 0.0354 0.2342
健康标题
condVAE 0.5635 0.0470 0.2875
fine-tune 0.9344 0.0378 0.2501
娱乐标题
condVAE 0.8849 0.0528 0.3215
3)在短文本生成上,condVAE 取得了良好的效果。而注意到训练集中只有 6.69%
的短文本,所以预训练 WAE 学习到的短句法信息十分稀疏。尽管如此, condVAE
依然能够从向量空间中提取这些稀少的特征;
4)在健康标题生成中,condVAE 取得了明显更差的准确度。这一点一方面由
于预训练模型无法很好的处理这种类别不平衡现象,导致学习到的编码、解码空间

27

万方数据
武汉大学硕士学位论文

比较“扭曲”,另一方面类别不平衡现象也会影响预训练分类器的效果,导致其测
评结果不够真实,针对这一点,我们在后续的实验中引入了人工测评环节。
总体来看,不论是语意任务(情感、主题),还是在句法任务(长度)上,condVAE
都可以取得良好的效果,最终生成的文本既包含准确的条件,同时也足够多样。对
于稀疏的条件,condVAE 也能够进行精确的子空间拟合并生成符合要求的文本。和
对比模型 fine-tune 的比较说明,condVAE 可以使用 3.7%的参数量在部分任务上接
近 fine-tune,在部分任务上甚至可以超越 fine-tune。

4.4 多条件文本生成
本小节中我们测试了 multi-condVAE 以及对比方法 S-VAE,Ctrl-gen 在多条件
文本生成任务上的表现。所有的实验结果也都是在使用贪心编码生成的 1W 样本
上进行平均得到的。其最终结果如表 4.3 所示。同时为了测试 multi-condVAE 方法
在不完全条件样本集上的结果,我们在(较短+较长)、(健康+娱乐)的任务进行
了不完全样本集上的条件生成实验,其结果如表 4.4 所示。
从这些结果中我们可以得到如下重要结论:
1)在提供了其他条件的样本之后,multi-condVAE 能够稳定的取得比仅使用单
条件的 condVAE 更好的效果(多条件样本是单条件样本的组合,故结果具备可对
比性),这说明负样本的机制可以帮助模型提取更纯粹的条件模式。同时在负情感、
较短文本、商业标题生成任务上 multi-condVAE 的准确性也已经超过 fine-tune 了,
而 fine-tune 由于缺乏利用多种条件信息的能力,无法像 multi-condVAE 一样借助多
条件信息取得更好的效果。同时在引入其他条件后,multi-condVAE 在多样性与流
畅性上依然表现鲁棒;
2)multi-condVAE 可以稳定的取得比对比方法 S-VAE、Ctrl-gen 更好的效果。
具体而言,在大多数任务上 multi-condVAE 都可以取得比 S-VAE 更好的准确度和
多样性。在仅有 200 个标注样本的情形下,S-VAE 中包含的判别器不具备良好的
泛化能力,这让 S-VAE 仅能提取少量、不精准的条件模式,对比之下,multi-condVAE
并不包含判别器结构,正好可以避免在小标注样本上泛化能力不强的弊端。而对于
Ctrl-gen 而言,其准确度比较波动,结果更加缺乏鲁棒性,这与 Ctrl-gen 采用类似
GAN 的训练过程有一定关联。相比 S-VAE、Ctrl-gen,multi-condVAE 不仅更准确,
而且更加多样。这与 multi-condVAE 未包含判别器结构、参数量更少有关;
3)在使用不完全条件样本集时,multi-condVAE 依然能够取得良好的表现(见
表 4.4),其效果依然好于运用完全条件样本的 S-VAE、Ctrl-gen,并且与 multi-
condVAE 使用完全条件样本集时的结果也接近。说明 multi-condVAE 引入负样本提
高模型提纯条件信息能力的设计可以灵活而有效的利用多种条件信息。

28

万方数据
一种基于预训练模型的条件文本生成研究

表 4.3 多条件文本生成实验结果(更好的结果用粗体展示)
任务类型 方法 准确率↑ Distinct-1↑ Distinct-2↑
Ctrl-gen 0.9492 0.0025 0.0154
正向情感 S-VAE 0.6516 0.0252 0.2667
multi-condVAE 0.8505 0.0367 0.2751
Ctrl-gen 0.4504 0.0027 0.0174
负向情感 S-VAE 0.7872 0.0143 0.2372
multi-condVAE 0.8463 0.0333 0.2502
Ctrl-gen 0.2010 0.0014 0.0098
较短长度 S-VAE 0.8565 0.0303 0.2625
multi-condVAE 0.9414 0.0362 0.2157
Ctrl-gen 0.9217 0.0026 0.0183
中等长度 S-VAE 0.7518 0.0171 0.1441
multi-condVAE 0.9854 0.0448 0.3321
Ctrl-gen 0.0644 0.0022 0.0158
较长长度 S-VAE 0.9712 0.0088 0.1319
multi-condVAE 0.9908 0.0301 0.2112
Ctrl-gen 0.3716 0.0097 0.0374
商业标题 S-VAE 0.9266 0.0211 0.1456
multi-condVAE 0.9101 0.0457 0.3166
Ctrl-gen 0.4388 0.0111 0.0455
健康标题 S-VAE 0.2492 0.0650 0.3573
multi-condVAE 0.5773 0.0466 0.2861
Ctrl-gen 0.7901 0.0113 0.0464
娱乐标题 S-VAE 0.9032 0.0218 0.1456
multi-condVAE 0.9198 0.0512 0.3140
表 4.4 不完全条件生成(较短+较长、娱乐+健康)上 multi-condVAE 的表现
任务类型 准确率↑ Distinct-1↑ Distinct-2↑
较短长度 0.9431 0.0386 0.2332
较长长度 0.9885 0.0305 0.2137
健康标题 0.5680 0.0464 0.2877
娱乐标题 0.9164 0.0506 0.3034
总而言之, multi-condVAE 可以充分利用多种条件之间的关联性信息,不仅可
以取得比单条件下的 condVAE 更好的效果,而且不论是灵活性还是有效性上都比

29

万方数据
武汉大学硕士学位论文

现有的半监督方法好。同时要着重提到的是,不论是 S-VAE 还是 Ctrl-gen,它们在


面临新的条件时,都只能重新训练模型,而 multi-condVAE 只需要额外训练一个包
含 22K 参数量的轻量网络即可,所需的时间与精力大大减少。并且 multi-condVAE
可以通过不完全的条件样本集来进行生成,这对于事先无法完全确认条件种类的
场景来说非常重要,现有的 S-VAE、Ctrl-gen 无法做到这一点。

4.5 不同样本数量的影响
在现实应用中,可以获得的标注样本量有可能远少于 200,为了验证本文所提
出的方法以及对比模型对于更少量样本的鲁棒性,在本小节中,测试在{20,100,180}
个样本上,各个方法在正向情感文本生成上的效果。最终详细实验结果见表 4.5、
4.6 所示。而为了更加直观的看到样本减少对于各个模型的影响,我们在准确率指
标上绘制了一个折线图,见图 4.1 所示。
表 4.5 不同样本量对于单条件下的正向情感文本生成的影响
方法 指标 样本量 20 样本量 100 样本量 180
准确率↑ 0.8437 0.8885 0.8977
fine-tune Distinct-1↑ 0.0315 0.0296 0.0279
Distinct-2↑ 0.2040 0.2477 0.2770
准确率↑ 0.7712 0.7724 0.7885
condVAE Distinct-1↑ 0.0346 0.0380 0.0374
Distinct-2↑ 0.2699 0.2820 0.2763
表 4.6 不同样本量对于多条件下的正向情感文本生成的影响
方法 指标 样本量 20 样本量 100 样本量 180
准确率↑ 0.6227 0.6406 0.6384
S-VAE Distinct-1↑ 0.0278 0.0261 0.0242
Distinct-2↑ 0.2659 0.2439 0.2679
准确率↑ 0.7025 0.7540 0.8580
Ctrl-gen Distinct-1↑ 0.0021 0.0035 0.0023
Distinct-2↑ 0.0153 0.0173 0.0164
准确率↑ 0.8154 0.8343 0.8407
multi-
Distinct-1↑ 0.0344 0.0344 0.0364
condVAE
Distinct-2↑ 0.2445 0.2480 0.2756
综合实验结果,我们可以得到如下重要观察:
1)在更少的样本上,表现的最鲁棒的模型是我们提出的 condVAE、multi-
condVAE 以及 S-VAE。我们的方法之所以鲁棒,是由于参数量少,结构简单。同
时尽管 S-VAE 可以取得鲁棒的效果,但是它的准确率一直处于较低的水平;

30

万方数据
一种基于预训练模型的条件文本生成研究

图 4.1 不同条件样本数对于各个模型的影响

2)fine-tune 方法在准确率上表现较为鲁棒(但是不及我们的方法),但是样本
显著减少的时候,其多样性也显著的随之降低,这是由于训练集太少,而 fine-tune
训练过度的缘故。相比之下,我们的 condVAE、multi-condVAE 却一直可以维持较
高的多样性,这主要是缘于我们“后处理”式的框架设计,与训练编码空间已经具
备了丰富的信息,及时仅提供非常少(如 20 个)的样本,我们的框架也能够利用
这些信息从而提取足够多样的条件模式,并生成更多样的条件文本;
3)在较少的样本上表现的最不好的是 Ctrl-gen 模型,这与它采用的复杂结构、
类似于 GAN 的不稳定的训练方式有关。

4.6 不同参数 C 的影响


表 4.7 不同参数 C 对单条件较短文本生成的影响
指标 C=0 C=2 C=5 C=10
准确率↑ 1.0000 0.9755 0.9205 0.8641
Distinct-1↑ 0.0003 0.0175 0.0393 0.0464
Distinct-2↑ 0.0004 0.8170 0.2410 0.3274
表 4.8 不同参数 C 对多条件较长文本生成的影响
指标 C=0 C=2 C=5 C=10
准确率↑ 1.0000 0.9938 0.9908 0.9875
Distinct-1↑ 0.0001 0.0256 0.0301 0.0324
Distinct-2↑ 0.0001 0.1629 0.2112 0.2370
本小节中,我们探讨参数 C 对于 condVAE、multi-condVAE 在单条件、多条件
文本生成上的影响,我们选取单条件下的较短文本生成任务以及多条件下的较长

31

万方数据
武汉大学硕士学位论文

文本生成任务来进行实验,其结果见于表 4.7、4.8。
通过这些结果,我们可以发现:参数 C 明显影响了生成样本的多样性与准确性
之间的平衡。当参数 C 很小时,模型往往能够取得极高准确率,但由于模型仅仅
关注了少数的条件模式,这时候只能生成非常重复的句子,例如当 C=0、C=2 时候
的情形,此时尽管准确率非常高,但是 Distinct-1/2 却处在比较低的水平。而当参
数 C 选择较大的值时,尽量可以提取更多样的条件模式,但此时不可避免的引入
了更多的噪音,会牺牲一部分准确性。在大体上,一个小的 C 值可以带来好的准
确率,但是会牺牲模型的多样性;而一个较大的 C 值则与之相反,往往可以在牺
牲一部分准确性的基础上,得到较多样的文本。参数 C 的选取可以根据实际需求
而定。对于非常要求准确率而可以适当牺牲多样性的场合,可以设置一个较小的值,
而对于更要求多样性的场合,可以设置一个较大的值。在本文中,我们的策略是选
取一种适中大小的 C 值,我们发现 5 这个值可以帮互我们的方法取得准确性与多
样性之间的平衡。

4.7 人工测评
前文所提到的自动测评指标依赖预训练分类器,同时并没有对生成文本的流
畅性、真实性进行测评,于是本小节引入人工测评来进一步验证模型的有效性。具
体而言,对 5 种模型(fine-tune、condVAE、S-VAE、Ctrl-gen、multi-condVAE),
各自针对 8 种条件产生 200*8 个条件样本以供人类测评者打分。打分维度分为真
实性(是否像人说的话)和条件性(是否满足给定条件),取值范围均为 0,1,
2。0 代表完全不真实(不满足条件),1 代表略真实(略满足条件),2 代表真实
(满足条件)。我们邀请 8 位具备较好英文素养的同学当测评者。并保证每一个样
本至少同时受 2 位测评者的打分,以消除不同测评者之间的差异。最终人工测评
的结果如表 4.9 所示。人类标注者之间的 Kappa 系数对于真实性、条件性分别为
0.23、0.37,为一般的一致性,与部分生成工作[56]取得了相近的一致性。
表 4.9 各方法的人工测评结果(更好的结果用粗体表示)
方法 真实性 条件性
fine-tune 1.47 1.49
condVAE 1.46 1.37
S-VAE 1.43 1.13
Ctrl-gen 1.21 1.08
multi-condVAE 1.47 1.46
根据人工测评的结果,我们可以看到,condVAE 和 multi-condVAE 的真实性得
分都比较高,说明我们提出的方法可以较好的拟合条件子空间。而 Ctrl-gen 的真实
性在这里明显较低,通过分析发现 Ctrl-gen 极易产生局部重复的句子(例如 i like

32

万方数据
一种基于预训练模型的条件文本生成研究

it, but but but),这一点导致其真实性得分偏低,而局部重复的出现主要因为 Ctrl-


gen 采取了类似于 GAN 的训练方式。在条件性方面,condVAE 和 multi-condVAE 都
能够产生比 S-VAE 和 Ctrl-gen 更符合条件的样本,而 multi-condVAE 通过引入其他
条件样本作为负样本,可以进一步提高条件准确性,同时保持真实性不受影响。总
而言之,condVAE、multi-condVAE 可以取得良好的真实性以及条件性,并与较强
的对比模型 fine-tune 结果接近,这进一步说明了本文提出框架的有效性。

4.8 算法效率
本小节中,我们对 fine-tune、S-VAE、Ctrl-gen 以及 condVAE、multi-condVAE
在算法效率上进行了对比实验。我们记录了每个方法在 200 个标注样本的情况下
从训练到收敛所需要的总训练时间,并将最终结果连同各个方法的训练参数量一
起列入表 4.10。
表 4.10 各算法之间的训练参数量、运行效率比较
方法 训练参数量 训练时间
fine-tune 6.5M 90.09s
condVAE 22K 53.08s
S-VAE 6.5M 1.4h
Ctrl-gen 6.5M 3.5h
multi-condVAE 22K 63.94s
这些结果表明,condVAE 以及 multi-condVAE 是更加有效率的算法。效率的提
升主要是由于结合了预训练模型后,学习过程由复杂的字词级别抽象为特征级别,
从而节省了编码、解码所需要的操作时间,同时我们的 condVAE、multi-condVAE
的训练参数量也远远少于其他所有方法,这也让我们的方法更加具有效率。

4.9 生成样例
本小节,我们列举一些 condVAE, multi-condVAE 随机生成的条件文本,用来更
加直观的展示模型的条件文本生成能力。同时我们也给出部分生成“失败”的样本,
用以分析模型目前存在的局限。其结果见表 4.11。
通过这些“成功”的样例,我们可以发现运用所提出的框架可以生成流畅、真
实同时又满足条件要求的样本,这再次证明了我们的框架的有效性,同时也说明在
高度抽象的特征空间进行文本生成任务的学习是一种可行的技术。
而通过观察这些“失败”例子我们可以发现,目前我们的框架仍然存在一些问
题。一方面我们用来拟合条件子空间的基于 VAE 的方法并不完美,不可避免的会
出现拟合错误,所以会生成不符合要求的样本(例如生成句子的情感前后不一致,
生成句子的情感不符合条件要求);另一方面由于预训练模型也没有达到完美的解
码、编码状态,尽管我们可以成功的拟合条件子空间,也无法避免生成真实性欠缺

33

万方数据
武汉大学硕士学位论文

的样本(例如我们生成的句子依然有可能在局部上出现语法错误)。要解决这些问
题,一方面需要使用更好的拟合子空间的算法,另一方面,我们需要使用更强大的
无监督生成模型,需要更能获取长距离依赖关系的解码器以及引入能够有效解决
Exposure bias 问题的技术。
表 4.11 生成样本示例(其失败原因在括号中解释)
条件 生成样本
正向 have been to their locations and are absolutely professionals .

正向 staff was good and the shake was exactly what i wanted !

正向 i found the pills and it 's perfect .

失败样例 i wo n't be returning and will recommend this place ! (前后情感不一致)

失败样例 i loved how the meat here was even better than this place . (语法有误)

负向 i hate to deal with it !

负向 ( however the cook just salt , i do n't order ! )

负向 i decided to use the app and it was n't very impressive either .

失败样例 and it 's ok , nothing special . (情感不是负向)

失败样例 that 's disappointing : try . (语法有误)

较短 poor service !

较短 terrible cupcakes !

较长 this local style is great , but i 've had better pizza .


较长 i wrote this to the point of cvs and it was a joke .
失败样例 thanks , for the quick and pleasant service , busy , service .
(后半句语法有误)
失败样例 love the fresh ( and plentiful ) and the staff ) .
(局部出错)
商业标题 fda approves new case of e-cigarettes
商业标题 facebook buys video ad company liverail to improve advertising
健康标题 ebola : virus spreads in the us
娱乐标题 bryan review : ' x-men ' is back with more thriller
失败样例 bieber asks fans to be replaced by david letterman (语意不明)
失败样例 death of million americans misdiagnosed each year(语意不明)

34

万方数据
一种基于预训练模型的条件文本生成研究

第5章 总结
本文提出了一种基于预训练模型的有条件文本生成框架,其结构简单、参数量
小,训练快速而稳定,可以灵活利用多条件信息,在单条件生成、多条件生成任务
上均取得了良好的表现,多数的任务上可以超越较强的对比模型。这说明结合预训
练生成模型来增强文本生成任务是具备可行性的,类似的方法理应在更多的文本
生成任务中被尝试采用。同时本文所提出的框架在面对之前从未见过的崭新条件
时,可仅仅依靠数以百计的标注样本来生成流畅、多样的条件文本,这种灵活性在
某些真实场景中是具备价值的。
尽管本文所提出的框架在条件文本生成任务上初步取得了效果,但是本文依
然存在一些局限,这些局限也指出了我们日后开展工作的方向:
1)在多条件文本生成中, multi-condVAE 存在一定的“不稳定性”,而目前
除了设置权重外并没有找到一种简单、有效的方法来减小这种“不稳定性”,对此
需要进行调整、改进;
2)我们的框架所能取得的上限效果取决于预训练模型,尽管使用了 WAE、
自注意机制等较为领先的算法,但是通过模型的生成样例我们可以发现仍然会有
很多不真实的样本出现,这与不够完美的预训练模型有关。为提高条件文本生成的
效果,在未来还需要使用更强大的无监督模型作为预训练模型;
3)目前我们的实验还局限在较短长度的文本数据集上,而现实中存在许多更
复杂的文本数据,未来我们可以在更复杂的文本数据集上进行类似的实验;
4)目前我们仅仅关注有条件文本生成任务,对于其他的任务例如对话生成、
文本摘要、文本风格迁移,也可以进行一些尝试。
总而言之,本文所提出的框架方法在学术上具备一定的启发性和开创性,在应
用层面上具备高度灵活性和快捷性,是一种较有潜力的有条件文本生成框架。

35

万方数据
武汉大学硕士学位论文

参考文献
[1] Naoko Tosa, Hideto Obara, Michihiko Minoh. Hitch Haiku: An Interactive Supporting System
for Composing Haiku Poem[C]//ICEC, 2008: 209-216.
[2] Xiao-feng Wu, Naoko Tosa, Ryohei Nakatsu. New Hitch Haiku: An Interactive Renku Poem
Composition Supporting Tool Applied for Sightseeing Navigation System[C]//ICEC 2009: 191-
196.
[3] Jing He, Ming Zhou, Long Jiang. Generating Chinese Classical Poems with Statistical Machine
Translation Models[C]// AAAI 2012: 22-26.
[4] Ming Zhou, Long Jiang, Jing He. Generating Chinese Couplets and Quatrain Using a Statistical
Approach. [C]// PACLIC 2009: 43-52.
[5] Rui Yan,Han Jian,Mirella Lapata, et al. i, Poet: Automatic Chinese Poetry Composition through
a Generative Summarization Framework under Constrained Optimization [C]//IJCAI 2013:
2197-2203.
[6] Rafal Józefowicz, Oriol Vinyals, Mike Schuster,et al. Exploring the Limits of Language
Modeling [J]//CoRR 2016.
[7] David Ha, Andrew M. Dai, Quoc V. Le. HyperNetworks [J]//CoRR 2016.
[8] Stanislau Semeniuta, Aliaksei Severyn, Erhardt Barth. A Hybrid Convolutional Variational
Autoencoder for Text Generation [C]//EMNLP 2017: 627-637.
[9] Zichao Yang, Zhiting Hu, Ruslan Salakhutdinov, et al. Improved Variational Autoencoders for
Text Modeling using Dilated Convolutions[C]//ICML 2017: 3881-3890.
[10] Diederik P. Kingma, Max Welling. Auto-Encoding Variational Bayes[C]// ICLR 2014.

[11] Samuel R. Bowman, Luke Vilnis, Oriol Vinyals,et al. Generating Sentences from a Continuous
Space[C]//CoNLL 2016: 10-21.

[12] Tong Che, Yanran Li, Ruixiang Zhang,et al. Maximum-Likelihood Augmented Discrete
Generative Adversarial Networks [J]// CoRR 2017 .

[13] Jiaxian Guo, Sidi Lu, Han Cai,et al. Long Text Generation via Adversarial Training with Leaked
Information[C]//AAAI 2018: 5141-5148.

[14] Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza,et al. Generative Adversarial Nets
[C]//NIPS 2014: 2672-2680.

[15] Angela Fan, Mike Lewis, Yann Dauphin, Hierarchical Neural Story Generation[C]//ACL (1)
2018: 889-898.

[16] Parag Jain, Priyanka Agrawal, Abhijit Mishra,et al. Story Generation from Sequence of
Independent Short Descriptions[J]//CoRR 2017.

36

万方数据
一种基于预训练模型的条件文本生成研究

[17] Xiaopeng Yang, Xiaowen Lin, Shunda Suo,et al. Generating Thematic Chinese Poetry using
Conditional Variational Autoencoders with Hybrid Decoders[C]//IJCAI 2018: 4539-4545.

[18] Xiaocheng Feng, Ming Liu, Jiahao Liu,et al. Topic-to-Essay Generation with Neural
Networks[C]//IJCAI 2018: 4078-4084.

[19] Matthew Olson, Abraham J. Wyner, Richard Berk. Modern Neural Networks Generalize on
Small Data Sets [C]//NeurIPS 2018: 3623-3632.

[20] Anirudh Goyal, Alessandro Sordoni, Marc-Alexandre Côté,et al. Z-Forcing: Training Stochastic
Recurrent Networks [C]//NIPS 2017: 6716-6726.

[21] Xuezhe Ma, Chunting Zhou, Eduard H. Hovy. MAE: Mutual Posterior-Divergence
Regularization for Variational AutoEncoders[J]//CoRR 2019.

[22] Junxian He, Daniel Spokoyny, Graham Neubig,et al. Lagging Inference Networks and Posterior
Collapse in Variational Autoencoders[J]//CoRR 2019.

[23] Jiacheng Xu, Greg Durrett. Spherical Latent Spaces for Stable Variational
Autoencoders[C]//EMNLP 2018: 4503-4513.

[24] Ilya O. Tolstikhin, Olivier Bousquet, Sylvain Gelly,et al. Wasserstein Auto-Encoders[C]//ICLR
2018.

[25] Xiaodong Gu, Kyunghyun Cho, JungWoo Ha,et al. DialogWAE: Multimodal Response
Generation with Conditional Wasserstein Auto-Encoder[J]//CoRR 2018.

[26] Junbo Jake Zhao, Yoon Kim, Kelly Zhang,et al. Adversarially Regularized
Autoencoders[C]//ICML 2018: 5897-5906.

[27] Ondrej Cífka, Aliaksei Severyn, Enrique Alfonseca,et al.Eval all, trust a few, do wrong to none:
Comparing sentence generation models[J]//CoRR 2018.

[28] Samy Bengio, Oriol Vinyals, Navdeep Jaitly,et al. Scheduled Sampling for Sequence Prediction
with Recurrent Neural Networks[C]// NIPS 2015: 1171-1179.

[29] Lantao Yu, Weinan Zhang, Jun Wang,et al. SeqGAN: Sequence Generative Adversarial Nets
with Policy Gradient[C]//AAAI 2017: 2852-2858.

[30] Yizhe Zhang, Zhe Gan, Kai Fan,et al. Adversarial Feature Matching for Text Generation[C]//
ICML 2017: 4006-4015.

[31] Liqun Chen, Shuyang Dai, Chenyang Tao,et al. Adversarial Text Generation via Feature-Mover's
Distance[C]//NeurIPS 2018: 4671-4682.

37

万方数据
武汉大学硕士学位论文

[32] Zhan Shi, Xinchi Chen, Xipeng Qiu,et al. Toward Diverse Text Generation with Inverse
Reinforcement Learning[C]//IJCAI 2018: 4361-4367.

[33] Mehdi Mirza, Simon Osindero Conditional Generative Adversarial Nets[J]//CoRR 2014 .

[34] Tiancheng Zhao, Ran Zhao, Maxine Eskénazi .Learning Discourse-level Diversity for Neural
Dialog Models using Conditional Variational Autoencoders[C]// ACL (1) 2017: 654-664.

[35] Xi Chen, Yan Duan, Rein Houthooft,et al. InfoGAN: Interpretable Representation Learning by
Information Maximizing Generative Adversarial Nets[C]// NIPS 2016: 2172-2180.

[36] Ke Wang, Xiaojun Wan. SentiGAN: Generating Sentimental Texts via Mixture Adversarial
Networks[C]//IJCAI 2018: 4446-4452.

[37] Diederik P. Kingma, Shakir Mohamed, Danilo Jimenez Rezende,et al. Semi-supervised Learning
with Deep Generative Models[C]// NIPS 2014: 3581-3589.

[38] Zhiting Hu, Zichao Yang, Xiaodan Liang,et al. Toward Controlled Generation of Text[C]// ICML
2017: 1587-1596.

[39] Sandeep Subramanian, Adam Trischler, Yoshua Bengio,et al. Learning General Purpose
Distributed Sentence Representations via Large Scale Multi-task Learning[C]// ICLR 2018.

[40] Matthew E. Peters, Mark Neumann, Mohit Iyyer,et al. Deep Contextualized Word
Representations[C]//NAACL-HLT 2018: 2227-2237.

[41] Jeremy Howard, Sebastian Ruder. Universal Language Model Fine-tuning for Text
Classification[C]// ACL 2018: 328-339.

[42] Jacob Devlin, Ming-Wei Chang, Kenton Lee,et al. BERT: Pre-training of Deep Bidirectional
Transformers for Language Understanding[J]// CoRR 2018.

[43] Haoyu Zhang, Yeyun Gong, Yu Yan,et al.Pretraining-Based Natural Language Generation for
Text Summarization[J]// CoRR 2019.

[44] Junyoung Chung, Çaglar Gülçehre, KyungHyun Cho,et al. Empirical Evaluation of Gated
Recurrent Neural Networks on Sequence Modeling[J]// CoRR 2014.

[45] Ashish Vaswani, Noam Shazeer, Niki Parmar,et al. Attention is All you Need. [C]//NIPS 2017:
6000-6010.

[46] Martín Arjovsky, Soumith Chintala, Léon Bottou. Wasserstein Generative Adversarial
Networks[C]// ICML 2017: 214-223.

[47] Jiqing Wu, Zhiwu Huang, Janine Thoma,et al. Wasserstein Divergence for GANs[C]// ECCV (5)
2018: 673-688.

38

万方数据
一种基于预训练模型的条件文本生成研究

[48] Tianxiao Shen, Tao Lei, Regina Barzilay,et al. Style Transfer from Non-Parallel Text by Cross-
Alignment[C]// NIPS 2017: 6833-6844.

[49] Andrew Brock, Jeff Donahue, Karen Simonyan. Large Scale GAN Training for High Fidelity
Natural Image Synthesis[J]// CoRR 2018.

[50] Jesse Engel, Matthew Hoffman, Adam Roberts. Latent Constraints: Learning to Generate
Conditionally from Unconditional Generative Models[C]//ICLR 2018.

[51] Ishaan Gulrajani, Faruk Ahmed, Martín Arjovsky,et al. Improved Training of Wasserstein
GANs[C]// NIPS 2017: 5769-5779.

[52] Emilien Dupont. Learning Disentangled Joint Continuous and Discrete Representations[C]//
NeurIPS 2018: 708-718.

[53] Jiwei Li, Michel Galley, Chris Brockett,et al. A Diversity-Promoting Objective Function for
Neural Conversation Models[C]// HLT-NAACL 2016: 110-119.

[54] Tao Shen, Tianyi Zhou, Guodong Long,et al. DiSAN: Directional Self-Attention Network for
RNN/CNN-Free Language Understanding[C]// AAAI 2018: 5446-5455.

[55] Diederik P.Kingma, Jimmy Ba. Adam: A Method for Stochastic Optimization[C]// ICLR 2015.

[56] Jian Guan, Yansen Wang, Minlie Huang. Story ending generation with incremental encoding and
commonsense knowledge[J]// CORR 2018.

39

万方数据
武汉大学硕士学位论文

攻读硕士学位期间的研究成果
本人于 2017 年 9 月,在 CCF A 类期刊 TOIS 上,以导师第一作者、本人第二
作者的发表一篇题为“Enhancing Topic Modeling for Short Texts with Auxiliary Word
Embeddings”的论文。

40

万方数据
一种基于预训练模型的条件文本生成研究

致 谢
随着正文部分的结束,毕业越来越临近了,七年的漫漫求学路,走到这里也快
到达了终点,不得不让人感慨。
在毕业论文撰写期间,心情经历了很多的波折,但幸好一直都有爱着我的人鼓
励我、帮助我,才让我能够以一种平和的心态迎接这最终的试炼,才能让我意识到
自己现在是多么的幸福。在这里,我首先要感谢我的室友、朋友们,每一次不论谁
心情低落,我们一起开开心心的出去喝酒一直喝到烂醉,度过了不知道多少个快乐
洒脱的夜晚,人生哪得几回醉,和你们的快乐时光是我研究生生涯不可磨灭的记忆。
然后我要感谢实验室的同门师兄弟及姐妹,如果说室友们伴着我生活,那么你们就
是伴着我学习的那些人,每一次与优秀的各位讨论学术想法和最新的学术动态的
时候,你们卓越而具有思辨的见解都能给我带来学术上的全新理解,启发了我很多
的想法,我会一直记得与你们在实验室一同学习、钻研的情景。再然后,我要感谢
我的导师,如果没有你在学术上的指路,我可能现在还是一个学术上的门外汉,感
谢老师对我的教导以及严格的要求,也祝愿老师在学术科研的路上走的越来越坚
实。在撰写毕业论文的最后期间,我长时间在家里度过,所以我当然也要特别的感
谢我的父母,从小到大,你们一直无私的给予我在生活上的便利,为我遮挡了许多
的风雨,而我也要渐渐的承担起应有的责任了。最后的最后,我要感谢我的仙女女
朋友,在我情绪落入低谷的时候,你总是开导我的那个人,如果没有你的鼓励、安
慰,我可能会拥有一段更加难熬的时光,感谢你一直以来各方各面的陪伴:)
写完最后一行字,收拾好心情,打包好行囊。让我最后再看一眼山水如画、繁
花似锦的校园,让我最后再与我的朋友们、室友们喝上一顿酒,让我最后再看一眼
曾日夜奋战的图书馆、实验室,让我最后再拥有一段回不去的校园时光。
后会有期,希望你我再见时仍是少年。

41

万方数据

You might also like