Automatic generation of sentimental texts via mixture adversarial networks读书笔记
创新
- 提出了一个新颖的框架SentiGAN,以生成具有不同情感标签的通用、多样化和高质量的情感文本。
- 提出一个扩展模型C-SentiGAN,以处理条件性情感文本生成问题。
- 提出了一个基于惩罚的新目标,以使我们模型中的每个生成器都生成具有特定情感标签的多种文本。
- 在各种数据集上进行了实验,证明了提出的模型的有效性和优越性。
介绍
如上图所示,有情感的回答的效果明显是更加智能的
通过情感分类和GAN的启发有以下两点:
(1)由于文本情感分类非常强大,因此我们可以使用分类器指导感性文本的生成。
(2)由于难以设计与情感相关的特定训练目标,因此我们使用鉴别器网络来学习与情感相关的目标随着时间的损失函数,而不是明确地制定它。
使用GAN来控制情感文本的生成,并旨在生成具有更高质量,更多种类和更准确的情感极性的文本。但是目前生成的文本仍面临质量差的问题。其次,GAN的主要缺点之一是“模式崩溃”问题,并且已通过经验证明GAN倾向于只围绕少数几个模式生成样本,而忽略了其他模式(如下图所示),所以生成的文本缺乏多样性。
(a)是GAN的直观可视化视图,它倾向于仅在几种模式下生成样本,而忽略其他模式;
(b)是如何将发电机推向不同的不同模式的直观可视化。红色箭头是我们基于惩罚的目标的简化;
(c)是如何将不同的生成器推向生成特定的情感文本的直观可视化。红色箭头是我们的多类别分类目标的简化。
最大似然估计法
文本生成的主要方法是基于最大似然估计(MLE)模型。MLE通常用于通过给出观测值来估计统计文本生成模型的参数,然后最大化相应的似然函数。给定生成器G和训练语句和长度|x|MLE方法旨在最大化似然函数:
其中是生成器G的参数,可以是递归神经网络[54]或其变体(例如LSTM ,GRU )
SentiGAN
假设我们要生成具有k种情感类型(即k个情感标签)的文本,我们使用k个生成器
{}和一个鉴别器,和分别是第i个生成器和鉴别器的参数,以及从分布中采样的先前输入噪声z~用于初始化生成器的输入
整个框架可分为两个对抗性学习目标:生成器学习和鉴别器学习。第i个生成器的目标生成具有第i个情感类型的文本,该文本会欺骗鉴别器。具体来说,它旨在最大程度地减少我们建议的基于惩罚的目标。相比之下,区分器的目的是尽可能区分假文本(由生成器生成的文本)和具有k个情感类型的真实文本,这是我们采用的多类别分类目标。
C-SentiGAN
为了将SentiGAN应用于条件文本生成任务,提出了C-SentiGAN,它更适合于使用条件输入文本迁移到其他特定的文本生成任务,例如对话框系统。
与SentiGAN相比,我们的C-SentiGAN添加了一个额外的编码器E来对条件文本进行编码,并使用条件文本的高级表示形式而不是噪声作为生成器的初始输入z。我们在编码器和生成器之间添加了全局关注机制。整个模型看起来像是具有全局注意力机制的编码器-解码器框架,并且解码器部分与SentiGAN相同,并且使用鉴别器网络作为损失函数来确保高层目标,例如情感极性和真实感。
基于惩罚的损失函数
其中中由鉴别器计算,⊕是串联运算符,并且表示为:
由于判别器只能根据完整的序列进行判断,因此我们将蒙特卡洛搜索应用于推出策略采样未知的最后|x|-t令牌。我们将N次蒙特卡洛搜索表示为:
我们对第i个生成器的惩罚函数计算为:
训练
如图所示,输入为k个生成器、一个判别器、一个解码器(如果需要使用C-SentiGAN),k类情感文本数据集
输出为训练好的k个生成器
- 首先随机初始化生成器
- 使用MLE方法预训练生成器
- 生成欺骗文本
- 预训练辨别器,使用真实文本和生成的欺骗文本
- 多轮训练,使用随机噪声(符合正态分布)
实验
数据集
- Movie Reviews (MR)
使用斯坦福情感树库[69],它具有两个情感类别(负面和正面)。原始数据集共有9,613个句子。我们选择最多包含15个单词的句子,并且结果数据集包含2133个肯定句子和2370个否定句子。 - Beer Reviews (BR)
我们使用从BeerAdvocate 抓取的数据。BeerAdvocate是一个大型的在线评论社区,该数据包含1,586,614条针对33,387个用户组成的66,051个不同商品的评论。每个评论都带有许多数字等级,分别对应于“外观”,“香气”,“口感”,“口味”以及用户的“整体”印象。 - Customer Reviews (CR)
我们使用各种产品的客户评论。我们选择最多包含15个单词的句子,并且结果数据集包含1,024个肯定句子和501个否定句子。
结果对比
通过情感分类器对各个模型生成的句子进行评分:
通过人工评估方法对各个模型进行比较:
生成文字的质量
流畅度:使用语言建模工具包-SRILM 来计算流畅度
新颖性:
计算每个生成句子的新颖性如下:
其中R是训练语料库的句子集,φ是一种文本相似度函数,这里使用的是Jaccard相似度函数
多样性:
定义句子的多样性如下:
其中φ是相似度函数,计算每个句子之间的最大相似度。
清晰度:使用人工评估评估所产生的句子的清晰度。评分得分从1到5,最高为5。
文本相似度函数比较:Jaccard相似度(Jac)[77],余弦相似度(Cos)和Euclidean相似度(Euc)
由先验知识,文本相似度函数φ使用了Jaccard相似度可以有更好的区分度和较小的计算复杂度。
总结
提出了SentiGAN和C-SentiGAN,它们可以以通用或有条件的方式生成具有不同情感标签的各种高质量文本,SentiGAN是使用GAN来直接指导情感文本的生成,然后与多个生成器进行交互,以进一步提高情感准确性和所生成句子的质量。C-SentiGAN是额外添加了一个额外的编码器E来对条件文本进行编码,且使用文本条件代替了之前的随机噪声。