1. 引言
同样的内容可以用多种不同的方式表达,文本的风格转换即是将句子从当前的表达方式更换到另一种方式,并在这过程中保证描述的内容保持不变。文本风格转换系统能够应用于许多场景,例如1) 对语言格式进行修饰,协助文员撰写正式文书;2) 将复杂文学名著变得简单易懂,吸引儿童接触阅读;3) 将商品特性转为广告标语,方便商家推广销售。
近些年来,随着LSTM (Long Short-Term Memory)、GAN (Generative Adversarial Networks)等许多深度学习方法的日渐成熟,如何按照预设期望生成句子也逐渐成为许多人的研究对象 [1]。对于如何实现文本风格的转换,目前存在许多不同的研究思路。Xu等人 [2] 的方式最为直接,使用一种基于短语的机器翻译系统针对特定的写作风格进行转换,将问题当作翻译问题来处理,并在原始与现代的莎士比亚戏剧文本上进行测试。在此之后,Jang [3] 以及Jhamtani [4] 等人分别通过改用基于Bi-LSTM的seq2seq翻译模型以及加入coverage机制来改进转换效果。这类方法将问题视为翻译处理,需要依赖大量平行语料,在推广应用中容易受到数据分布的限制。后续的工作则结合对抗网络将模型应用于非平行语料上,但实验大多是基于“情感”转换。Singh [5] 与Zhang [6] 等人就直接使用了无监督机器翻译的方法直接修改文本风格;而文献 [7] [8] [9] 对风格的表示进行建模,其中Shen等人 [7] 将编码器输出的隐状态序列视为风格特征,而 [8] [9] 选择在解码时对隐变量加入one-hot类别标签,将文本所属类别作为风格特征。
现有的分离“内容”与“风格”的工作,往往使用简单的方式(如固定的向量、标签等)表示风格特征,风格信息存储量少,因而无法表示复杂的风格类型;此外,这类模型采用同一个解码器生成不同风格的文本,要求解码器得同时兼顾两类不同分布的文本数据,因而当不同类别的句子差异较大时,这类模型在转换能力上表现不佳。
针对以上问题,本文提出一种基于神经网络的风格转换模型,分离提取句子的内容与风格信息,借此扩大模型在不同类型风格下的适应程度。模型首先从编码后的句子提取带有上下文信息的风格与内容特征,借助注意力机制引导调整风格特征,通过风格信息调整输出不同的概率偏好,最终生成出期望风格的句子。之后,参照前人工作,从文本内容保留以及转换能力两方面对模型进行评估,分别在有监督与无监督数据集上进行对比测试。
2. 相关工作
近些年来,国内外有许多关于文本风格转换的研究。从转换方式的角度,这些工作可分为直接端到端以及隐空间编辑两大类:前者构建出从风格A向风格B单向转换的seq2seq模型,而后者通过修改原句的隐状态来实现风格转换。
2.1. 基于翻译框架的文本风格转换
部分研究者从翻译的思路入手,而不讨论风格的表示,如文献 [2] [3] [4] [5] [6] 就提出使用机器翻译的框架对特定的风格进行转换。这类文章直接将转换问题定义为机器翻译问题,其中源“语言”是待转换的原始文本,目标“语言”即为转换后的文本。其中,Zhang等人 [6] 着眼于情感倾向转换,由于数据缺乏平行语料,在训练之前用预训练的语言模型构造伪造的平行语料,借助伪平行数据预训练翻译模型,再通过对抗训练的方式不断优化模型表现;Harsh等人 [4] 用Seq2seq进行莎士比亚戏剧古今版本的转换,使用双向LSTM编码器来充分获取原句子的上下文信息,并加入注意力机制以及Pointer Network提高对原句中生僻词汇的关注程度;而Singh等人 [5] 则在编码器与解码器均加入双向LSTM,将解码器LSTM的输出序列直接输入给判别器进行判断;Wang等人 [12] 使用BERT学习将未处理的原始句子转换为规范化后的句子(如统一大小写,词语纠正等)。
2.2. 修改隐空间的文本编辑
一部分研究者从风格修改的思路着手,将文本对应的标签信息引入模型来协助训练,从而实现对风格变量的建模。这类方法一般对通过修改文本地隐空间表示来实现风格的转换。
Bowman等人 [11] 构建了变分自编码RNN,通过连续地调整文本在隐空间上的表示,实现对文本内容的修改。而Mueller等 [12] 在此基础上,加入分类网络模块的联合近似推断来学习,在该模型下,由于文本在隐空间的表示是连续的,可采用有效的基于梯度的优化来找到附近的局部最优值。通过适当地约束这种优化并使用VAE解码器生成调整后的序列,在一定程度上确保修订与原始序列基本相似。Fu等人 [10] 提出将编码器输出的隐变量作为内容向量,在训练时加入约束让编码器生成风格无关的隐变量,通过拼接不同的可学习的风格向量实现风格转换。Yi等人 [13] 使用两个情感矩阵分别存储不同的情感倾向文本的信息,在编码时借助预先提取的注意力向量让编码器生成情感无关的隐状态,通过不同的情感矩阵控制输出句子的喜恶倾向。
3. 模型框架
3.1. 模型组成
本文提出的模型结构如图1所示,该模型包括输入层,编码层,调整层以及解码层。对于输入文本,首先通过嵌入(Embedding)得到包含词意与词性的表示矩阵,然后通过两个双向LSTM分别抽取句子的内容与风格信息,之后依据需要,经过调整层抽取修改风格信息,最终由解码层转换为目标风格的文本。现对各个部分进行详细说明。
1) 输入层:消歧的文本编码
输入层将输入的原始文本转为向量表示。相同的词汇在不同的语境下有不同的释义,为了消除歧义,丰富语句表达,在输入词汇的同时让模型接收词汇对应的词性信息。

Figure 1. Our text style transfer framework
图1. 本文的文本风格转换框架
模型的输入包括原始的句子以及对应的词性序列。首先将原始文本的每个单词为one-hot编码,通过词嵌入(word embedding)将句子中的每个词将维表示为一个k维向量,则每个句子可表示为:
,其中wi为句中第i个词的词向量,n为句子x最大长度。
同样的,句子对应的词性序列经过one-hot以及Embedding后表示为:
其中pi为句中第i个词对应词性的高维向量,维度大小为l。将词序列与词性序列拼接,得到最终消歧后的输入编码。
将输入文字经过编码后输出到下一层,提取风格与内容特征。
2) 编码层:依据上下文抽取风格与内容特征
为了修改句子的风格信息,首先经过编码层获取原句子的内容与风格信息。与以往工作不同,本文使用两个编码器分别提取内容与风格特征。
句子的内容与风格的表达需要根据上下文词汇,而为让模型尽可能获取序列上下文信息,采用双向LSTM来对提取句子的高维特征。
LSTM的全称是Long Short-Term Memory,它是RNN (Recurrent Neural Network)的一种。相较于传统的RNN,LSTM内部引入了记忆单元,因而对序列具有更好的长期记忆功能。如图2所示,LSTM包含输入门、输出门以及遗忘门三个结构,根据上一时刻的隐状态
、细胞状态
,以及当前时刻的输入
,来计算对历史信息的保留程度。首先计算内部门控,具体如下:
其中t时刻的输入门i(t),遗忘门f(t),输出门o(t)的计算均是一个单层前馈网络,W,b分别表示对应的权重以及偏置。之后的序列的状态信息更新方式如下:
式子中,
表示向量中对应元素直接相乘;
为新产生的待定细胞状态,由输入门i(t)控制参与更新的维度;遗忘门f(t)对历史信息
进行取舍,再加上
更新细胞状态;输出的隐状态h(t)由激活的当前细胞状态经过输出门o(t)筛选后得到。
LSTM根据先前状态来输出下一个状态,仅能捕捉先序列的上文信息。双向LSTM则能够同时考虑上下文信息,其每一层都中包含了一个前向LSTM与一个后向LSTM,每个时刻的状态由为两个方向的状态信息组合得到,输出的编码能够结合上下文特征。在本文的模型中,t时刻状态h(t)的计算为前向
与后向状态
的相加,即
。
本文使用两个双向LSTM作为编码器,从不同侧面对句子进行编码,以分别提取句子的内容以及风格信息。用ENCs以及ENCc分别表示风格以及内容编码器,
与
为其提取风格与内容的特征序列。在后续结构中,内容特征hc将被输入到解码器中生成词汇,而风格特征hs则用于调整输出词汇概率分布。
3) 注意力机制
引入注意力机制的目的在于,利用编码层所有隐状态来构建解码器输出所需的上下文向量。对于内容特征序列,在解码器输出下一个词前,用当前输出的词汇编码
的查询(query)Q分别与编码器的所有隐状态
对应的键(key)K计算相关性,得到各个状态值(value)V的权重系数。t时刻关注的文本向量
计算如下:
其中,
表示与t时刻下对第编码序列第j个状态的权重系数。K,Q,V的值均为对应的状态向量h经过前馈网络计算得到,
计算向量之间的相似度。文本向量
是隐状态的值的加权平均。
4) 调整层:引导调整风格特征
调整层的目的在于根据预设对原句的风格特征调整。为了让模型能够兼容多种类型风格的文本,风格向量对输出的影响应当具有足够的灵活性,即在每一个时间步,风格特征对生成的词汇的贡献度不同。本文借助注意力机制从ENCs输出的序列抽取风格特征,并在其中根据需求对抽取过程加以不同的引导。首先是查询所用的key向量。在注意力机制中,query与key相似,则受关注度越高。在生成不同风格的句子时,模型对风格特征序列hs关注的侧重点应当有所差异,因而采用如下方式得到查询风格所用的键向量Ks:
其中
为目标风格的编号,每一类风格有其对应的矩阵
;每个风格矩阵由
个e维的属性向量拼接而成,
为预设种类数量,e为隐状态的尺寸;设定Ks来自矩阵中属性向量的组合,组合方式则是依靠当前输出的词汇编码
经过映射得到,它是一个长度为
的向量,每个维度的值均处于[0,1],表示对M中每种属性的权重。
考虑到若目标句子与原句词汇差异较大,仅仅用attention的方式难以获得目标风格的特征。因此在经过attention抽取风格特征后,依据生成句子的目标风格
,对其结果添加对应的偏置向量
。当前时刻,调整后的序列特征s(t)计算如下:
5) 解码层
解码层的目的是将编码后的特征向量恢复为文本。对隐状态的解码分为内容特征以及风格特征两个部分,内容特征用于句子主干生成,而风格特征负责为对结果进行调整。首先通过不同的方式对二者进行解码,再将结果汇总输出最终的词概率。
文本特征的解码通过一个LSTM完成,时刻t输出词汇
的计算过程如下所示:
其中
为上个时刻输出词汇的词向量,d(t)为解码器输出向量,
是仅基于内容向量输出的词概率;
为温度系数,用于在训练时调整概率的平滑程度。
由于风格特征作用在于对输出内容进行微调,为避免出现输出文本过分依赖的局面,仅采用简单的手段对该部分解码:经过一层前馈网络将风格特征映射到词表的长度,后通过softmax转为概率。
最后输出的词概率为二者的加权平均,限定内容向量输出的权重
高于风格特征的输出,具体大小根据训练数据学习得到。
3.2. 损失函数
为了让模型能够达到期望的能力,在训练过程中根据应用设定了如下的损失函数。
1) 端到端误差
模型通过不同的风格矩阵引导生成句子的风格类型。当采用与输入文本相同的风格参数时,模型应当类似于一个自编码器,重新构建回原先的文本。对于输入的句子
,采用交叉熵度量此刻的损失,有
其中P(t)是t时刻模型输出的概率向量,当时对应风格特征为
。
倘若风格
与
之间存在平行语料
,通过优化二者转换之间的交叉熵损失对模型进行训练:
2) 隐空间对齐
理论上,相同内容的句子,内容编码器的输出内容应当相近,反之则相离。
模型在转换前后,首先应当保证描述内容不失真,因而对于原句x以及转换结果
,在隐空间对二者内容状态序列的计算差异:
而对于不同内容的句子对(x1,x2),要使误差,首先经过负梯度层转换后再计算二者距离,
而对于风格特征,鼓励增强其灵活性,从而增大对不同类型数据的实用性。因此,不对其计算某一类别的相似度。但对于模型的输入与输出,若是进行了风格的调整,则二者的风格状态序列应当有较低的相似度,反之则相似度高:
式子中,
计算矩阵的差异程度,而
计算向量相似度。
3) 策略梯度
倘若训练数据平行语料较少或不完全可靠(语料由机器生成),需要引入无监督的训练方式,由风格判别器引导对应风格的文本生成。此时利用策略梯度来计算模型的损失。将新生成的句子
视为一个策略序列,需要获得每一个策略
最终对全局产生的增益。首先通过目标风格语料的language Model对已生成序列补全获得完整的序列,对补全的序列通过风格判别模型得到当前策略的增益
最终整句生成文本损失大小:
4. 实验与分析
4.1. 数据集
为验证所提出模型在不同类型数据的适应性,本文在以下几组数据集上对模型进行训练与测试:古今版本的莎士比亚戏剧,不同翻译版本的圣经,以及yelp中不同情感倾向的评论语句。表1展示了所使用数据集的统计信息。
圣经译本:Keith等人 [11] 搜集了古今多种不同版本的圣经并用于文本风格转换的任务。链接(https://github.com/keithecarlson/StyleTransferBibleData)中为其中对齐后的8个公开版本,当中根据版本间的相似程度设定了三个不同难度的数据集合:KJV到ASV,King James译本与美国标准版,BLEU为68.72;BBE到ASV,基本英语版与美国标准版,BLEU为22.75;YLT到BBE,Yong的翻译与基本英语版,BLEU为9.42。这三种平行语料共约18万条。
莎士比亚戏剧:该数据集首先来自Wei Xu [2] 等人的工作,从网站(http://nfs.sparknotes.com/, http://www.enotes.com/)搜集了共计23部莎士比亚戏剧的文本,包括原始英语与现代译本两种版本,并匹配了当中的平行语料,总计达到4万条句子。该数据集也在许多风格转换的工作中被使用。
Yelp评论:许基于多隐空间编辑方法的工作都选择yelp评论数据来对模型进行训练测试。本文依据评论对应的打分等级区分文本的情感倾向:打分4至5星则归为积极类型,2星及以下归为消极类型的评论。过滤后的句子总数量约在63 w以上。由于缺乏平行语料,通过替换反义词的方式为模型构建临时的转换目标。

Table 1. Statistic information of Datasets
表1. 数据集信息统计
4.2. 对比方法
选取与本文模型结构相似的工作作为基线进行比较:
CE-S2S (Copy-Enriched Sequence to Sequence Models):Harsh等人 [4] 用之间翻译的方式来进行风格转换任务,采用的模型是机器翻译方法里具有代表性的一种。该工作同样采用双向LSTM作为模型编码器,LSTM作为解码器,并在当中加入attention机制以及pointer-network来增强模型表现。
Style-Embedding:来自Fu [10] 等人的工作,采用隐空间编辑的方法进行转换任务。模型主体由基于GRU的编码器与解码器组成,使用对抗训练让编码器生成风格无关的内容向量,通过对内容向量拼接不同的风格向量来改变生成句子的风格。
Ours-SE (双注意力的Seq2Seq):在本文模型的基础上,删去风格编码器,文本注意力与风格调整均作用于同一个隐状态序列。
Ours-DE (双编码器的Seq2seq):在本文模型的基础上,将调整层替换为用固定的风格
向量来对风格特征序列做attention操作,因此每个时刻对输出的词概率分布调整将相对固定。
4.3. 评估指标
前人的工作 [2] - [13] 中,大多从风格转换的准确率以及内容保留程度两方面评估模型好坏。
对具有平行语料的数据集,依照Keith等人 [7] 的方法,用BLEU与PINC分数分别衡量转换结果的准确程度与保留程度:生成句子与目标句子的BLEU越高,表示转换准确性越好;而生成句子与原句子的PINC越高,代表生成句子创新程度越高,反之则与原句越相似。BLEU计算如下:
其中,BP(Brevity Penalty)是过短惩罚因子;log(Pn)计算预测句子与参考句子的n-gram分数,wn是对应n-gram分数的权重。
而PINC分数的计算如下所示:
式子中,Ngram(x, n)代表句子x的n-gram列表,实验中n取值在[1,4]之间;PINC分数本质在于分数是计算原句x与生成句子
计算各种N-gram下共有词组数量的占比平均值,当生成句子与原句用词越相似,则分数越低。由于语料之间存在差异性,PNIC的高低受到目标与原句之间相似性的影响。本文采用相对PNIC来计算模型对原句的保留能力:
若p > 0,说明模型能够生成更加多样性的用词、句法,p < 0则模型更倾向于保留原句的用词。
在无监督语料中,为了评估模型是否顺利将文本从一种风格转移到另一种风格,最直观的方法是对生成文本的风格所属进行判断。Zhirui [5] 等人采用一个文本分类器为判断文本的转换结果,且在实验中,分类器对模型的优劣判断与人类评分的结果相似。因而在测试yelp数据集中,本文采用具有相同结构的预训练分类器,对各模型的风格转换能力进行评估。对于内容的一致程度,则通过计算生成句子与原句子的BLEU分数来反映。
4.4. 参数与设置
将数据集按照8:1:1划分为训练集、验证集以及测试集。对于yelp与Shakespeare,句子按照20的最大长度对尾部进行截断,并筛去长度小于4的文本;而圣经文本则截去超过35个词的部分。将英文文本统一小写,之后采用Keras提供的tokenizer库对文本进行分词与语料搭建,将词频低于5的词替换为“
”。之后根据词库id替换单词文本,将句子转为one-hot编码序列。此外,通过NLTK库获取原始输入句子的词性序列,构建对应的语料库,转换为词性id序列。
关于模型参数,词向量与词性向量大小设为128,双向LSTM以及LSTM隐空间大小为256,均采用单层结构;训练过程中初始的温度系数
为100,batch size为16对共32条句子。模型参数的优化采用ADAM算法,使用Pytorch默认参数。经过测试,在莎士比亚与圣经数据集中,各个损失函数的权重
,
,
,
,
;而在yelp中,损失权重设为
,
,
,
。
4.5. 实验结果与分析
1) 内容保留与风格程度
分别在不同数据集上对各模型进行测试。首先在无监督语料下测试各模型的内容保持与转换成功率,结果如表2所示。从整体上看,本文转换模型在内容保留与转换程度上均高于基线模型StyleEmbedding,且完整结构下(双编码器 + 动态调整层)的表现最优,这充分说明模型具有良好的转换能力与保存内容的能力。其次,采用双编码器(Ours, Ours-DE)分开提取内容与风格,相比于单编码器模型(StyleEmbedding, Ours-DA),能够更好地保存内容详细;另外,从风格转换上,本文提出的风格调整方式相比于固定的风格向量(Ours-DE, Style-Embedding)具有更好的转换效果。

Table 2. Model performance for unsupervised datasets
表2. 无监督数据下的模型表现
表3是模型再有监督数据下的表现,与无监督数据有着相似的结果:在莎士比亚古今版本以及各类别圣经的转换任务中,模型的BLEU值均优于基线CE-S2S (S2S + attention + pointer),说明具有更好的转换能力;另外,本文模型的相对PINC值普遍低于基线模型,反映其在句子生成上相对保守,即更加倾向于对原句进行少量改动,保持原有的词汇组合。
2) 适应能力讨论

Table 3. Model performance for supervised datasets
表3. 有监督数据下模型表现
借助不同相似性(BLEU)的圣经数据代近似代表不同类型风格下的文本。表4显示各类型数据下,模型对风格信息的自适应调整:当两类风格之间的语句相似性高时(KJV & ASV),风格信息需求较少,内容特征提供了0.82%增益;而随着句子差异增大,模型需要更多的风格信息来协助。为直观展示不同模型对生成的影响,在表5中对各模型部分转换结果进行展示。

Table 4. Weights learned from data with different similarities
表4. 不同类型数据下的内容概率权重

Table 5. Transferred sentences by different model
表5. 各数据集转换结果示例
5. 结束语
本文提出了一种基于循环神经网络的风格转换方法。在传统seq2seq框架上,通过两个双向LSTM从不同角度提取序列信息,以此获取句子的内容与风格特征;并引入风格矩阵与风格偏置,对输出概率实时调整,从而提高风格向量的表达能力,模型对不同风格的适应性。在不同类型数据集的实验表明,对比机器翻译与隐向量编辑等方法,本文的方法在转换能力与内容保留程度上均具有明显的优势。下一步考虑引入聚类方法表示风格,增强风格变量的可解释性。
基金项目
国家自然科学基金(61472089);NSFC-广东联合基金(U1501254);广东省自然科学基金资助项目(2014A030308008);广东省科技计划项目(2015B010108006)。