学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN

选自arXiv

作者:William Fedus等

机器之心编译

参与:Jane W、李泽南



生成对抗网络(GAN)自推出以来,在计算机视觉领域中引起了一股风潮,在自然语言处理中却鲜有研究。看来,这或许需要 GAN 的提出者 Ian Goodfellow 自己来推动。谷歌大脑 William Fedus、Ian Goodfellow 和 Andrew M. Dai 共同提交的论文中,研究人员使用 GAN 和强化学习方法在 NLP 中做了自己的探索。目前,该论文已提交至 ICLR 2018 大会。

前言



循环神经网络(RNN)(Graves 等人, 2012)是序列型数据以及序列标记任务中最常见的生成模型。循环神经网络在语言模型(Mikolov 等人,2010)、机器翻译(Wu 等人,2016)和文本分类(Miyato 等人,2017)中显示出引人注目的结果。在这些模型中,文本通常是模型生成的,通过从条件分布中抽样得到,而条件分布基于前一个词语以及一个包含目前为止产生的词语的隐藏状态。这些训练通常通过最大似然以一种 teacher forcing 的方法进行训练,其中真实的词语作为条件被馈送回模型中以便生成句子中新的词语。



但是这会在生成抽样样本时造成问题——模型通常被动以未作为训练条件的序列作为条件。这导致了 RNN 中无法预测的动态隐藏状态。一些方法如 Professor Forcing(Lamb 等人, 2016)、Scheduled Sampling(Bengio 等人, 2015)可以解决这个问题。这些方法间接通过使隐藏状态动态变得可预测(Professor Forcing)或者通过随机将训练时抽样的词语作为条件。但是,这些方法都不直接指定基于 RNN 输出的损失函数的形式,从而无法鼓励高质量的样本抽样。而谷歌大脑提出的新方法可以实现这个目的。

生成对抗网络(GAN)(Goodfellow 等人, 2014)是一个在对抗设置下训练生成模型的框架,对抗分为两部分:生成图像并试图愚弄判别器的生成器(generator)和通过训练鉴别真实图像和合成图像的判别器(discriminatory)。相比其它方法,GAN 在生成超仿真图像的领域取得了巨大成功,但是它在文本序列领域并没有广泛的应用。这归结于自然文本的离散性,使得标准 GAN 中的传播梯度(propagate gradient)从判别器回到生成器变得难以实现。我们通过使用强化学习(RL)解决了这一问题,利用最大似然和随机梯度下降方法,在训练判别器的同时进行生成器的训练。GAN 也通常受到诸如训练不稳定性和模式下降(mode dropping)等问题,这两个问题在文本情况下都更加恶化。模式下降会在某些形式的训练集中由生成器很罕见地引起,例如,使得所有生成的火山图像变成同一个火山的多个变体。这在文本生成中变成一个重要的问题,因为数据含有许多复杂模式,从 bigram 到短语到长习语。训练稳定性也是一个问题,因为不同于图像,文本是自回归生成的,从而只有在完整的句子生成之后才能从判别器观察到损失函数的具体值。当生成越来越长的句子时,这个问题会复杂化。



我们通过文本 fill-in-the-blank 或 in-filling 任务训练我们的模型,从而减少这些问题带来的影响。这与 Bowman 等人(2016)提出的方法类似,但是我们的设置更具有鲁棒性。在这个任务中,一部分文本被删除或编辑。这个模型的目的是随后填充文本中缺失的部分,使其无法与原始数据相区分。当填充文本的过程中,模型自回归地对已经填充的字符(token)进行操作,如在标准的语言模型中以真实的已知文本作为条件时那样。如果整个文本被编辑,那这就简化到语言模型问题。



在以前的自然语言 GAN 研究中,设计每个时间步的误差分布被视为是重要的(Yu 等人, 2017; Li 等人, 2017)。文本填充任务自然地考虑到了这个问题,因为判别器会评估每个字符并因此向生成器提供一个细粒度的监督信号。例如,设想如果生成器生成一个在前 t-1 时间步完美匹配数据分布的序列,但是随后生成了一个异常字符 yt,(x1:t?1yt)。尽管整个序列由于错误字符而明显是合成的,判别模型在异常字符处产生了很高的损失信号,但是对于其它不是,判别模型将很可能产生一个更有信息的错误信号给生成器。

这项研究也为自然语言环境下的条件 GAN 模型提供了进一步的研究。在以下部分中,

  • 我们将介绍一个由填充(MaskGAN)训练的文本生成模型。

  • 在极大动作空间(action space)中考虑 actor-critic 架构。

  • 考虑新的评估指标和生成合成训练数据。

  • 学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN

    图 1:seq2seq 生成架构。蓝色的方块代表已知字符,紫色的方块代表生成的字符。我们通过虚线展示了一个抽样过程。编码器在掩码序列中读取,此处掩码字符用下划线表示,然后解码器通过使用编码器隐藏状态生成缺失字符。在这个例子中,生成器应该按照字母表顺序填充(a,b,c,d,e)。

    方法细节

    训练之前,我们先进行预训练。首先我们用标准最大似然训练一个语言模型。然后将预训练语言模型的权重应用于 seq2seq 编码器和解码器模块。在这些语言模型的基础上,我们使用最大似然方法在 in-filling 任务中预训练 seq2seq 模型,特别的是,Luong 等人(2015)提到的注意(attention)参数。我们通过超过 500 次的超参数扫描来选择在掩码任务中产生最小验证复杂度(validation perplexity)的模型。初始的算法不包含 critic,但是我们发现包含 critic 将梯度估计的方差降低了一个数量级,这显著改善了训练。



    学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN

    表 1:用于 MaskGAN 和 MaskMLE 模型的来自 PTB 数据集的条件样本。



    学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN

    表 3:用于 MaskGAN 和 MaskMLE 模型的来自 IMDB 数据集的条件样本。.



    学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN

    表 7:Mechanical Turk 平台对 IMDB 评论训练的两个模型的盲评估。来自每一个模型的 100 条评价(每条 40 词长度)为无条件随机抽样。评估者被询问两个样本中哪个更喜欢。每个模型对比比较中得到 300 个打分。



    学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN

    表 8:Mechanical Turk 平台对 PTB 数据集训练的两个模型的盲评估。来自每一个模型的 100 条新闻(每条 20 词长度)为无条件随机抽样。评估者被询问两个样本中哪个更喜欢。每个模型对比比较中得到 300 个打分。

    论文:MaskGAN: Better Text Generation via Filling in the ______



    学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN



    论文链接:http://arxiv.org/abs/1801.07736

    神经网络文本生成模型通常为自回归(autoregressive)语言模型或者 seq2seq 模型。这些模型通过序列抽样词语生成文本(抽样分布将前一个词语作为条件),并且对于几种机器翻译和摘要总结的基准是最先进的模型。这些基准通常通过验证复杂度定义,尽管这不是直接对生成文本质量的衡量。除此以外,这些模型通常使用极大似然或者 teacher forcing 进行训练。这些方法非常适合优化复杂度(perplexity),但是可能导致样本质量差,因为生成文本需要将可能从来没有在训练过程中观察到的词语序列作为条件。我们提出使用生成对抗网络(GAN)来提高样本质量,它通过显式地训练生成器产生高质量样本,并且已经在图像生成领域取得很大成功。GAN 最初设计用于输出可微分的值,所以生成离散语言是具有挑战性的。我们认为验证复杂度本身不代表模型生成的文本质量。我们引入条件 actor-critic GAN,它可以基于上下文填充缺失的文本。我们从定性和定量的角度证明,相比最大似然训练的模型,这种方法生成了更真实的有条件和无条件文本样本。

    学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN





    本文为机器之心编译,

    转载请联系本公众号获得授权



    ?------------------------------------------------

    加入机器之心(全职记者/实习生):hr@jiqizhixin.com

    投稿或寻求报道:editor@jiqizhixin.com

    广告&商务合作:bd@jiqizhixin.com

    点击「阅读原文」,在 PaperWeekly 参与对此论文的讨论