《SentiGAN: Generating Sentimental Texts via Mixture Adversarial Networks》论文笔记

系统管理员 2022-01-12 19:39 309阅读 0赞

自己的总结:

这篇文章主要是写了一个用多分类器和多个生成器生成带情感的文本的gan模型,结果最后的实验不是生成器的个数还是设为2,相当于并没有比之前的工作多了类型,另外和17年那篇icml的文章一样,这篇也是令训练数据文本小于15个单词,也是短文本生成,回头我在看看它的代码咋写的。

自己的笔记:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xydDM2Ng_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xydDM2Ng_size_16_color_FFFFFF_t_70 1

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xydDM2Ng_size_16_color_FFFFFF_t_70 2

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xydDM2Ng_size_16_color_FFFFFF_t_70 3

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xydDM2Ng_size_16_color_FFFFFF_t_70 4

2019061721150232.png

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xydDM2Ng_size_16_color_FFFFFF_t_70 5

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xydDM2Ng_size_16_color_FFFFFF_t_70 6

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xydDM2Ng_size_16_color_FFFFFF_t_70 7

20190617211606455.png

转自:https://www.itcodemonkey.com/article/6378.html

摘要

在自然语言生成领域,不同情感文本的生成受到越来越广泛的关注。近年来,生成对抗网(GAN)在文本生成中取得了成功的应用。然而,GAN 所产生的文本通常存在质量差、缺乏多样性和模式崩溃的问题。在本文中,我们提出了一个新的框架——SentiGAN,包含有多个生成器和一个多类别判别器,以解决上述问题。在我们的框架中,多个生成器同时训练,旨在无监督环境下产生不同情感标签的文本。我们提出了一个基于惩罚的目标函数,使每个生成器都能在特定情感标签下生成具有多样性的样本。此外,使用多个生成器和一个多类判别器可以使每个生成器专注于准确地生成自己的特定情感标签的例子。在四个数据集上的实验结果表明,我们的模型在情感准确度和生成文本的质量方面始终优于几种最先进的文本生成方法。

背景介绍

情感智能是人工智能的重要分支,理解和生成情感文本不仅仅可以让机器更亲近人类,更可以使他们看起来更智能。如今,情感分类已经取得了良好的进展,但是情感文本生成依然是一大挑战。生成对抗网络是解决这一问题的好方法,它使用判别器而不是某个特定目标函数来指导生成器。主要的想法在于,由于文本情感分类已经十分成熟,我们可以利用分类器来引导情感文本的生成。

在这篇文章中,我们的目标是利用 GAN 生成具有高质量、多样性的情感文本。也就是说,在缺少语料的情况下,我们可以自动生成大量可控的情感文本。然而,在应用 GAN 来生成情感文本时,需要解决几个问题。首先,文本的离散特性使采样步骤是不可微的,因此也无法让梯度通过判别器传递给生成器。其次,GAN 的主要缺点在于“模式崩溃”,经验表明,GAN 更倾向于围绕某几个模式生成样本,而忽略其他模式。因此在生成文本中缺乏多样性。

我们提出的 SentiGAN 解决了上述问题。首先,我们提出新的目标函数,通过最小化整体损失而不是最大化奖励来优化模型。其次,判别器使用多类别分类目标函数,可以让生成器更关注于生成他们情感标签的样本,而不与其他标签混淆,这一点提高了生成文本的情感准确性。我们使用一个情感分类器作为评价方法,来验证生成文本的情感准确度,以及其他指标(流畅度、新颖度、多样性、智能性)。

论文贡献

(1) 我们提出了一个新的框架 SentiGAN 来生成多样性的、高质量的、具有不同情感类别的文本。

(2) 我们提出了一个新的基于惩罚的目标函数,让 SentiGAN 的每个生成器都能为特定情感标签产生多样性的文本。

(3) 我们在四个数据库上进行大量实验,证明了所提方法的有效性和先进性。

SentiGAN

1532263052642525.jpg

图 1 SentiGAN,由 k 个生成器和一个多类别判别器。

算法框架

假设我们想生成 k 类情感文本,我们则使用 k 个生成器和一个判别器。整个框架可以分为两个对抗学习目标:生成器的学习目标和判别器的学习目标。第 i 个生成器 Gi 的目标是生成具有第 i 类情感类型的文本,尽量欺骗判别器。而判别器的目标,是区分生成文本和 k 类真实文本,因此我们采用多类别分类目标函数。在实验中,我们将 k 设置成 2,使 SentiGAN 生成两类情感文本(积极情感和消极情感)。

生成器学习

为了解决离散输出情况下,梯度无法传递回生成模型的问题,我们将文本生成问题转化为序列决策步骤。在每一个时间点 t,我们训练一个生成器 Gi 来产生一个序列:

1532263052860894.png

其中 Xt 代表给定词典 C 中的一个词向量。

1532263052285117.png代表基于之前生成词语:1532263052994141.png来选择第 t+1 个词条的概率。基于此,我们定义一个新的基于惩罚的损失函数:

1532263052450236.png

其中1532263053582766.png是序列1532263053466136.png的惩罚项,由判别器进行计算。最后,第 i 个生成器的目标是最小化整体惩罚项:

1532263053761359.png

由于判别器只能鉴别一个完整的句子,因此我们采用蒙特卡洛搜索和 roll-out 策略对剩下的 X-t 个未知单词进行采样。因此,我们的第 i 个生成器的惩罚函数计算如下:

1532263053508837.png

除此之外,我们的生成器是 LSTM 的简化层,根据如下分布生成第 t 个单词:

1532263053358266.png

判别器学习

我们使用多类别分类目标函数,使判别器能够区分各类情感的真实文本与生成文本。假设有 k 个生成器,判别器则对 k+1 个类别计算 softmax 概率分布。第 i 个分数代表属于真实第 i 类情感文本的概率,第 k+1 个分数代表样本是由生成器生成的概率。判别器的目标函数是最小化:

1532263054750560.png

其中 Pg 是生成器产生的文本,Pri 是真实的第 i 类情感文本。

我们采用 CNN 的一层网络作为判别器。我们对生成器和判别器进行对抗训练,算法总结如下:

1532263054579943.jpg

多类分类目标函数

本节主要介绍多类分类目标函数如何使生成器之间互相不混淆,从而提高生成文本的情感准确度。

首先,最优的第 i 个生成器可以学习第 i 类情感的真实文本分布。通过利用判别器,生成器的目标为最小化如下函数:

1532263054989714.jpg

当 Pgi=Pri 时,上述目标函数可以得到全局极小值。

其次,为了从判别器得到更低的惩罚,第 i 个生成器生成的文本需要与第 i 个情感类型更一致,并且与其他情感类型距离更远。

基于惩罚的目标函数

这里我们介绍惩罚项如何使生成器产生多样性的样本,而不是仅仅产生重复的且“安全”的样本,从而帮助提升生成文本的多样性和质量。我们对比了 GAN、SeqGAN 和 SentiGAN 的生成器目标函数:

1532263054594363.jpg

可以看出,我们的目标函数的提升主要有两个方面。首先,我们的基于惩罚的目标函数可以被视为对 wasserstein 距离的衡量,可以提供有意义的梯度,而另外两个损失函数则不能做到这一点。其次,我们使用损失项而不是奖励项。我们的基于惩罚的损失函数方程

1532263055415513.png

可以看作是在给基于奖励的损失函数

1532263055449939.png

加上1532263055566979.png因此可以生成更有多样性的样本,而不是重复性的“好”样本。

实验

实验设置

我们主要在三个真实数据库上进行实验。

Movie Reviews(影评)。我们使用斯坦福情感分析数据库,包含两类情感文本。原始数据集一共有 9613 个句子。我们选择了最多 15 个词的句子,最终数据库包含 2133 个积极情感的句子和 2370 个消极情感的句子。

Beer Reviews(啤酒评价)。我们使用 BeerAdvocate 的数据,包含 1437767 条积极评价,和 11202 条消极评价。

Customer Reviews(用户评价)。我们收集了各类产品的用户评价,包含 1024 条积极评价和 501 条消极评价。

我们分别在每个数据库上训练模型,然后随机初始化词嵌入,维度为 300。在预训练中,生成器训练 120 步,判别器训练 50 步。在对抗训练中,生成器为 5 步,判别器为 1 步。优化方法为 RMSProp。我们用 Tensorflow 实现模型,然后使用 TITAN X 图像处理器。

生成文本的情感准确度

我们使用先进的情感分类器来自动评价生成文本的情感准确度。我们与多个文本生成网络进行比较,包括 RNNLM、SeqGAN、VAE、C-GAN 和 S-VAE。为了说明用多个生成器和单个生成器的区别,我们也对比了 SentiGAN(k=1)。

1532263055577973.jpg

表 1 生成文本的情感准确度对比。

可以看出我们所提的模型表现超过了所有其他方法,说明带有多个生成器和一个多类判别器的框架可以让每个生成器更好的生成自己的情感文本。除此之外,SentiGAN(k=1) 和 SentiGAN(k=2) 的对比说明多生成器极大提高了生成文本的情感准确度。

生成文本的质量

我们使用 4 个评价指标来衡量生成句子的质量。

流畅度:我们使用语言建模工具箱 -SRILM 来评价生成语言的流畅度。结果如下所示。

1532263055787158.png

图 2 生成文本的流畅度(困惑度)对比,低困惑度 = 高流畅度。

可以看出 C-GAN 和 S-VAE 方法不能很好的保持句子的流畅度,相反,我们的模型在生成不同情感表情的文本时保持了较好的流畅度,甚至在 CR 这种小数据库上也超过了现有方法。

创新性:我们想探究生成文本和训练语料的区别。换言之,我们想看看生成器是生成了新的文本,还是仅仅抄了语料库中的文本。我们对每个生成的文本用如下方法计算创新性:

1532263056365812.png

生成文本的平均值如表 2 所示:

1532263056703193.jpg

表 2 生成文本的创新性对比。

可以看出,RNNLM、SeqGAN 和 VAE 不能产生新的文本。对比之下,我们的模型表现十分好,能够生成与训练语料库不同的文本。

多样性:我们希望生成器能够生成具有多样性的句子。给定生成句子集合 S,我们定义句子 Si 的多样性如下:

1532263056779017.png

1532263056620455.jpg

表 3 生成文本的多样性对比

从表 3 中可以看出,我们的模型能够生成多样的语句,而其他模型不能保证生成文本的多样性。

智能性:我们用人为评价来衡量生成文本的智能性。我们从生成句子中随机提取了 100 个句子,然后让三个研究生根据其智能性对它们进行评价。分数从 1 到 5,5 分为最高。

1532263056482644.png

图 3 生成句子的智能性评价

基于惩罚项的目标函数效果验证

这里我们使用合成数据来评测我们提出的基于惩罚项的目标函数的效果(SentiGAN(k=1))。

1532263057458561.png

表 4 不同方法在合成数据上的表现对比,采用 NLL(负对数似然)分数评价。

1532263057651441.jpg

图 4 学习曲线。点画线为预训练的结束点。

结果显示了采用基于惩罚的损失函数的有效性,我们的模型在捕捉序列词条的依赖性上优于其他模型。

样例研究

1532263057297691.jpg

表 5 SentiGAN 和 C-GAN 在 MR 训练数据集上生成的样例语句

从样例中,可以看到 C-GAN 生成的语句存在一些问题(无法阅读、太短、情感错误),而我们提出的模型产生的语句可读性更强,情感更准确,并且质量更高,而且语句长度也比 C-GAN 长。

结论与未来工作

在这篇文章中,我们提出了 SentiGAN,能够生成不同情感类别表情的多样高质量文本。大量实验表明了 SentiGAN 的有效性。在未来工作中,我们将利用更复杂的生成器来增强生成文本的质量,尤其是长文本生成。我们也会将该模型应用到其他类标文本的生成(例如不同写作风格)。

查看论文原文:

SentiGAN: Generating Sentimental Texts via Mixture Adversarial Networks

https://www.ijcai.org/proceedings/2018/0618.pdf

发表评论

表情:
评论列表 (有 0 条评论,309人围观)

还没有评论,来说两句吧...

相关阅读