写点什么

独家 | 亲历 IJCAI 2018,深度解读北京大学 SentiGAN 杰出论文

  • 2018-08-07
  • 本文字数:6379 字

    阅读完需:约 21 分钟

AI 前线导读:在上周刚刚结束的 IJCAI 2018 大会上,中国研究人员收获颇丰,来自北京大学、武汉大学、清华大学、北京理工大学的研究均登上了杰出论文榜单。AI 前线的社区编辑小伙伴、西安电子科技大学计算机视觉在读博士马卓奇也前往斯德哥尔摩参与了这一学术盛会。会后,她为 AI 前线的读者带来了这场 AI 顶级大会的参会见闻,并精选了本次大会杰出论文中的一篇进行深度解读,这也是 AI 前线第 41 篇论文导读。

更多干货内容请关注微信公众号“AI 前线”(ID:ai-front)

七月,斯堪的纳维亚半岛的阳光温暖舒适,继 ICML2018 后,在斯德哥尔摩这片文化氛围浓郁的土地上,召开了同为人工智能顶级会议的 IJCAI2018。本届 IJCAI(International Joint Conference on Artificial Intelligence,人工智能国际联合大会)与 ECAI(European Conference on Artificial Intelligence,人工智能欧洲会议)合办,所以全称为 IJCAI-ECAI2018。

我有幸参与这一学术盛会,在过去一周的时间里,与学界和业界人士进行了各种交流,今天便给大家带来会议见闻,以及 IJCAI 的杰出论文解读。本次会议主题为:人工智能的进化图景(The Evolution of the Contours of AI),鼓励人们围绕人工智能的发展趋势进行深入讨论。

会议在斯德哥尔摩会展中心举行,13 号 -15 号为 Workshop 和 Tutorial。13 日,蒙特利尔大学教授 Yoshua Bengio 带来了主题为《Deep Learning for AI》的报告。主要介绍了卷积神经网络、循环神经网络、注意力机制、生成模型、迁移学习以及强化学习等深度学习方法,以及他们在各个不同场景的应用;并且探讨了未来无监督学习、强化学习的挑战。

在 16 号早晨的开幕式中,大会以一段人与机器人的舞蹈开场,随后 FaceBook 首席人工智能科学家、纽约大学教授 Yann LeCun 做了以《Learning world models: the next step towards AI》为主题的演讲。回顾了过去几年监督式学习和强化学习取得的成功。Yann LeCun 谈到当前深度学习缺乏推理能力,因此未来的一个重点发展方向就是深度学习和推理的结合。目前 AI 系统缺乏关于世界运行的通用背景知识,所以为系统建立完整的世界表征才是真正需要的。

在上午的开幕式中,大会公布了杰出论文(Distinguished Paper)。与往届不同,今年的 IJCAI 大会未颁发“最佳论文”、“最佳学生论文“等奖项,而是 7 篇杰出论文。本文选择了北京大学计算机科学技术研究所的《SentiGAN: Generating Sentimental Texts via Mixture Adversarial Networks》进行解读。



摘要

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

背景介绍

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

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

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

论文贡献

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

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

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

SentiGAN



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

算法框架

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

生成器学习

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



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

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



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



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



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



判别器学习

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



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

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



多类分类目标函数

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

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



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

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

基于惩罚的目标函数

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



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

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

实验

实验设置

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

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)。



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

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

生成文本的质量

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

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



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

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

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



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



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

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

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





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

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

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



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

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

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



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



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

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

样例研究



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

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

结论与未来工作

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

查看论文原文: SentiGAN: Generating Sentimental Texts via Mixture Adversarial Networks

感谢蔡芳芳对本文的审校。

2018-08-07 18:102112
用户头像

发布了 52 篇内容, 共 30.1 次阅读, 收获喜欢 73 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

LeetCode题解:213. 打家劫舍 II,动态规划(不缓存偷盗状态),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

跟我学ModelArts丨探索ModelArts平台个性化联邦学习API

华为云开发者联盟

AI 联邦学习 API 华为云 modelarts

智慧党建信息管理平台系统建设

13530558032

EGG Network公链技术创新,EFTalk打造高效全能公链

币圈那点事

区块链

Python 生成 QR 二维码

HoneyMoose

收藏!Linux常用命令合集

roseduan

Linux

「面试高频」秒杀架构的设计套路,你值得拥有

我爱娃哈哈😍

架构设计 架构设计实战 秒杀架构

GO训练营第10周——日志&指标&链路追踪

Glowry

Java 和 Python 关于 % 的那些坑

与你一起学算法

Java Python

寻找被遗忘的勇气(十九)

Changing Lin

3月日更

MySQL的锁

一个大红包

3月日更

源中瑞智慧社区解决方案,社区服务平台

13530558032

安卓嵌入式底层开发!整理出这份8万字Android性能优化实战解析,已开源

欢喜学安卓

android 程序员 面试 移动开发

快点来学吧!Android性能优化面试题集锦,深度解析,值得收藏

欢喜学安卓

android 程序员 面试 移动开发

冲击大厂!阿里P9纯手打Java面试小抄(21版)在GitHub上已获80万star

Java 程序员 面试

Java面试必看!阿里(嵩山版)分布式核心原理笔记来了

Java架构追梦

Java 阿里巴巴 架构 面试 架构分布式

如何批量下载YouTube视频到本地

科技猫

软件 音视频 经验分享 资源分享 工具分享

【前端面试题】关于一些js的一些面试题(金融行业),我和面试官扯了三个小时

孙叫兽

JavaScript 大前端 金融 笔试题

【LeetCode】设计停车系统Java题解

Albert

算法 LeetCode 28天写作 3月日更

电子门锁没电的解决办法

孙叫兽

生活 程序人生 电子锁

区块链电子发票平台,区块链电子发票优势

13530558032

干货 | 万字详解整个数据仓库设计体系

五分钟学大数据

大数据 数据仓库 28天写作 3月日更

论文免费开源:NB-IoT智慧路灯监控系统

不脱发的程序猿

28天写作 论文 3月日更 NB-IoT智慧路灯 大学生毕业

一个合格的CloudNative应用:程序当开源软件编写,应用配置外置

华为云开发者联盟

云原生 华为云 Cloud Native CCE CSE

使用“零信任”,不惧“内部威胁”!

龙归科技

管理 数据完整性 零信任 内部威胁

2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)

比伯

Java 编程 架构 面试 程序人生

2021 年要了解的 34 种 JavaScript 简写优化技术

LeanCloud

JavaScript 面试 大前端

一文搞懂三级管和场效应管驱动电路设计及使用

不脱发的程序猿

28天写作 电路设计 三极管 3月日更 场效应管

2B营销路径: 9大步骤自我拆解

boshi

营销数字化 七日更

拍乐云推出“实时标注”,助力少儿编程、在线金融等行业场景实现高效互动

拍乐云Pano

音视频 在线教育 互动白板 实时标注 在线金融

在线数据迁移,数字化时代的必修课 —— 京东云数据迁移实践

京东科技开发者

数据库 数据迁移

独家 | 亲历IJCAI 2018,深度解读北京大学SentiGAN杰出论文_语言 & 开发_马卓奇_InfoQ精选文章