李彦霖作者萝卜兔编辑整理

无监督诗词风格生成

对于同一个意象,不同风格的诗人可以写出不同风格的诗句。大多数自动作诗的研究集中在提高诗句前后的一致性上,对于风格化的作诗,一些研究通过风格转换来实现,但是这类方法严重依赖于标注数据。本文通过引入互信息作为正则约束,提出了基于无监督的方法实现诗词风格化输出。

Introduction

利用计算机来作诗是很有意思,也具有挑战性的任务。近年来,对自动作诗的研究也越来越多,方法从最初基于规则和模板的方法发展到基于神经网络序列到序列Seq2Seq)的方法,但这些方法大多都在关注生成诗词的质量上,比如连贯性,一致性等。但是古诗中还有另外一个问题,就是对于同一个意象,不同风格的诗人会写出截然不同的诗句,这就要求对于同一个输入,模型需要输出不同的结果,如Fig1所示。

基于Seq2Seq的方法在机器翻译中也广泛应用,但是两者的目的存在很大不同,对于翻译任务来说,它的一一对应关系较强,比如“苹果”这个词在英文翻译中必定会有 “apple” 与之对应,对于诗句则不然。本文提出了一种对于同一输入可以产生多个输出的生成模型,同时保证不同的输出之间有较大的区分性。另一方面,因为语料库中对于诗歌风格暂时没有专家标注,本文的模型利用互信息作为约束正则项,可以实现完全无监督的风格生成。人工评测结果表明,这个模型生成的各种风格都是可识别的,并且其他指标也优于基线模型。

Method

我们首先来回顾下互信息和基于注意力机制Seq2Seq模型。

  • 互信息

本文提出基于互信息的方法来实现风格化的诗句生成。给定两个随机变量X和Y,互信息I(X,Y)衡量的是给定其中一个变量,能得到关于另一个变量的多少信息量,数学定义如公式1。 互信息也可以用来衡量X与Y的联合分布 P(X,Y) 与它们边缘分布乘积 P(X)P(Y) 之间的相似程度。

  • Seq2Seq Model with Attention

对于序列到序列的建模,经典的框架是 Encoder-Decoder 框架,这个框架最早用于机器翻译任务中,本文的诗句生成模型也基于这种框架。对于Encoder部分,采用双向的LSTM结构,将输入的句子X映射到特征空间,LSTM隐层状态的计算过程为:

(2)(3) 分别对应着前向和反向的计算,是对输入句子每个字的 Embedding。最后将T 时刻前向和反向计算得到的隐层状态级联起来作为对输入句子进行编码之后的特征表示,然后将其送入 Decoder 部分。

解码器也是用 LSTM,并且采用 Attention 机制。其中的 Attention 机制是在解码每个输出字符时,同时利用 encoder 的每个时刻状态的加权计算一个context 向量 ,共同用来产生当前时刻的输出。因此对于解码第 i 个字符时,对应的概率分布可以表示为:

其中g(·) 是基于 softmax 的分类,si是解码器 LSTM 的第 i 个隐层状态,其中, e(yi-1)是 yi-1的 embedding,ai 是 context 向量。

  • Decoder Model with Style        Disentanglement

为了生成不同风格的诗句,解码器的输入除了上一句诗句的特征,还需要一个表示风格的输入。对于风格采用 one-hot 编码表示,假设拥有 K 种风格,然后将句子的特征 hT 和风格的 one-hot 编码级联起来。但是这样输出模型并不能保证生成的句子和 style 之间有很强的相关性。换句话说,当 style 改变的时候,输出的句子也可能完全一样,导致这个问题的根源在于在模型训练时没有相关的监督信号使得模型对于不同的 one-hot 风格编码产生不同的输出。因此,需要添加一个正则来加强风格化编码和生成诗句之间的相关性。

在这里我们假设输入的 style 是服从均匀分布的,即。由于互信息是衡量两个随机变量之间的相互依赖性,因此本文提出最大化风格的分布 Pr(Sty) 与生成句子的分布 P(Y; X)之间的互信息来增强它们的相关程度。接下来我们计算 Pr(Sty) 和 给P(Y; X) 之间的互信息:

注意上面推导中用到了这样的性质,后验分布,这是由于 X 与风格 sty 之间相互独立。但是上述的后验分布 Pr(Sty=k|Y) 不可知,因此没法直接求解上述积分。这种情况下,我们采用变分推断的思想,引入另一个分布 Q(sty=k|Y) 来逼近 P,通过推导我们能得到式子7中互信息的下界:

注意上述推导中不等号部分采用的性质是 KL 距离的非负性和当 KL 为0时,两个分布相等。我们的问题从最大化 Str 和 P(Y;X)的互信息,转化为最大化式子8给出的下界。接下来的难题是如何得到分布 Q 和如何计算下界式子中积分。

  • Posterior Distribution Estimation

给定输出的句子,Q 分布可以估计出给定 Y 时风格的概率分布,因此可以区分出不同的风格。我们利用神经网络来拟合函数 Q。具体地,首先计算输出句子 Y 的平均的 embedding ,然后使用线性映射,通过 softmax 进行归一化,其中

  • Expected Character Embedding

最后要解决的问题是对进行积分,由于积分的空间与词汇表的大小成指数关系,不太可能枚举所有的可能性来计算这个积分。我们提出采用expected character embedding来近似输出句子的概率空间。

式子4给出了生成第 i 个字的概率分布,因此对输出字符 embedding 的期望为:

其中。随后作为解码器的 LSTM 的输入,更新下一时刻的隐层状态:

最后,使用所有的作为 Y 的概率空间的近似,因此式子8可以写为:

最后将正则加入到训练的Loss 中,我们的目标是最大化如下的Loss:

实验

具体的实验细节请参考论文, 这里主要来看下人工评测的结果,从Fluency,Coherence,Meaningfulness,Poeticness四个方面进行评测。对比的是 Seq2Seq 模型和利用本文提出的方法 SPG 生成的结果进行评分的结果:

参考链接

1. https://www.paperweekly.site/papers/2500

2. 论文链接:

http://nlp.csai.tsinghua.edu.cn/~yangcheng/publications/emnlp2018.pdf


极验
极验

极验是全球顶尖的交互安全技术服务商,于2012年在武汉成立。全球首创 “行为式验证技术” ,利用生物特征与人工智能技术解决交互安全问题,为企业抵御恶意攻击防止资产损失提供一站式解决方案。

理论极验LSTM机器翻译Seq2Seq模型风格迁移无监督学习
2
相关数据
变分推断技术

see Variational Bayesian methods (approximation)

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

序列到序列技术

长短期记忆网络技术

长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。

推荐文章
暂无评论
暂无评论~