授权转载自 哈工大SCIR 公众号
主编:车万翔
副主编: 张伟男,丁效
责任编辑: 张伟男,丁效,赵森栋,刘一佳
编辑: 李家琦,赵得志,赵怀鹏,吴洋,刘元兴,蔡碧波,孙卓
本⽂介绍哈尔滨⼯业⼤学社会计算与信息检索研究中⼼( SCIR)录⽤于COLING 2018的论⽂《 Generating Reasonable and Diversified Story Ending Using Sequence to Sequence Model with Adversarial Training》中的⼯作。本⽂提出⽤对抗训练增强的Seq2Seq模型来⽣成合理且多样化的故事结尾。⼈⼯和⾃动评估指标表明,相⽐于仅仅使⽤最⼤似然估计训练的端到端模型,对抗训练增强的端到端模型能够⽣成合理且多样化的故事结尾。
论⽂作者:李忠阳,丁效,刘挺
关键词:端到端模型,⽣成对抗⽹络,故事结尾⽣成
联系邮箱: zyli@ir.hit.edu.cn
1. 任务
图1. 故事结尾⽣成任务介绍
本文要解决的问题是故事结尾生成。如图1所示,给出一个故事上下文,有两种得到故事正确结尾的任务类型。一是基于故事上下文用生成模型直接生成一个逻辑合理的故事结尾;二是从故事结尾候选中通过常识推理挑选一个合理的故事结尾。本文主要关注第一类任务,即用生成模型生成一个逻辑合理的故事结尾。
在本⽂的任务设置中,给出故事上下⽂,很⾃然地可以使⽤Seq2Seq模型来⽣成故事结尾。然⽽,通常的Seq2Seq模型仅仅使⽤最⼤似然估计进⾏训练。在某些任务中,这种训练⽅式是合理的,例如机器翻译,因为给出了⻩⾦标准答案;这些任务的⽬标就是⽣成与⻩⾦标准答案最为接近的句⼦。然⽽,在故事结尾⽣成任务中,仅仅使⽤最⼤似然估计并不是最优的训练⽬标,因为给出⼀个故事上下⽂,合理、正确的故事结尾并不唯⼀。另一方面,仅仅使用最大似然训练的Seq2Seq模型通常会生成一些高频却无意义的词语或短语,这也是语言生成模型中一个非常棘手的问题。例如,"go to hospital"和"go to the church"在训练集中出现频率很高,Seq2Seq模型就倾向于生成这些短语,尽管他们与故事上下文没有任何关联。因此,探索生成合理且多样的故事结尾的新方法是非常有必要的。本⽂借鉴了⽣成对抗⽹络的思想,提出⽤对抗训练增强的Seq2Seq模型来⽣成合理且多样化的故事结尾。实验评估表明使用该策略后,人类合理性平均打分提升21.1%,bigram多样性打分提升126.9%。
2. 方法
图2. 对抗训练增强的Seq2Seq模型总图
图2展示了本⽂使⽤的对抗训练增强的Seq2Seq模型框架图。整个模型包含3个部分,⼀个⽣成器: Seq2Seq模型,定义了从故事上下⽂⽣成结尾的策略;⼀个判别器:是⼀个⼆元分类器,⽤于判别结尾是⼈类撰写的还是机器⽣成的;以及⽣成器和判别器之间的对抗训练过程。对抗训练增强的意思是,本⽂的模型并没有完全抛弃最⼤似然训练,⽽是在最⼤似然预训练Seq2Seq模型的基础上,使⽤对抗训练对其进⾏增强。通过这种⽅式,我们希望模型既可以发挥最⼤似然训练的⻓处,可以⽣成通顺流畅、合乎语法的结尾,⼜希望模型能借鉴对抗训练的优势,能够⽣成逻辑合理、更加多样的结尾。
2.1 Seq2Seq模型作为⽣成器
如公式1所示,给出⼀个故事上下⽂
作为输⼊,⽣成器定义了⼀个输出Y上的分布,并基于softmax依次⽣成故事结尾的每⼀个单词,直到⽣成句⼦结束符EOS。柱搜索被⽤于下⼀个单词的预测过程中。
公式 1
2.2 基于层次化句⼦Embedding的判别器
通过对抗训练,本⽂想要⽣成逻辑合理且多样的故事结尾。我们引⼊了⼀个判别器来判断输⼊是⼈类撰写的,还是机器⽣成的。判别器是⼀个⼆元分类器,本⽂采⽤了⼀个层次化句⼦embedding⽅法来学习故事的表示,然后将其送⼊⼀个⼆元softmax层来得到分类为人类⽣成结尾的概率。这个概率值就是reward,模型将此信号传递给⽣成器以帮助调节其参数。
2.3 对抗训练过程
在对抗训练过程中,期望判别器能⽣成⽆法与⼈类撰写的结尾相区分的结尾,本⽂采⽤了策略梯度⽅法来达到这样的⽬标。如公式2所示,判别器给出R+({X,Y})作为⽣成器的奖励,然后⽣成器使⽤REINFORCE算法来最⼤化⽣成结尾的期望奖励。θ表示⽣成器的参数集合。
公式2
对于每⼀个机器⽣成的故事结尾Y,判别器给出⼀个打分R+({X,Y})。公式2对θ的梯度计算如公式3所示,可以被⽤来更新⽣成器的参数。
公式3
为了得到对抗训练增强的⽣成器,本⽂⾸先使⽤最⼤似然在训练集上训练⼀个Seq2Seq模型,然后预训练⼀个判别器(⼈类撰写的故事作为正例,机器⽣成的结尾加故事上下⽂作为负例),之后再采⽤⽣成器和判别器迭代训练的⽅式。最后,就能得到对抗训练增强的Seq2Seq⽣成器。
3. 实验
3.1 数据集
本⽂使⽤的数据集是ROCStories数据集。训练集中每⼀个样例都是5句话组成的⼩故事,开发集和测试集中每⼀个样例包含⼀个4句话组成的故事上下⽂,以及⼀对⼀错两个故事结尾。详细的数据集统计详⻅表1。
表1. 数据集统计
3.2 实验结果
表2~5 中展示了本⽂的实验结果。
表2. 100条随机挑选的故事结尾的⼈⼯评估结果
从表2中可以看出,对抗训练增强的Seq2Seq模型取得了更好的故事结尾⽣成打分( 1.78),⽐仅仅使⽤MLE训练的Seq2Seq模型( 1.47)提升了21%。对于Perfect和Good等级,对抗增强的Seq2Seq模型表现更好;⽽且在Perfect等级上,对抗增强的Seq2Seq模型领先了10个百分点。
表3. Pairwise模型对⽐
在表3的结果中,我们直接⽐较了对抗训练增强的Seq2Seq模型和仅仅使⽤MLE训练的Seq2Seq模型⽣成结尾的好坏。可以发现,对抗训练增强的Seq2Seq模型在49%的情况下,都⽣成了更好的结尾。⽽仅仅使⽤MLE训练的Seq2Seq模型只在33%的情况下⽣成了更好的结尾。
表4. 故事结尾多样性评估结果。 UnigramDiv和BigramDiv分别是不同的unigram数和bigram数除以⽣成的单词总数
表4中展示了⽣成故事结尾的多样性评估结果。从中可以发现,对抗训练增强的Seq2Seq模型可以⽣成更加多样的故事结尾。
表5. 测试集上Story Cloze Test实验结果
此外,本⽂也在故事结尾挑选的任务上对⽐了⼀些基线⽅法。从表5中可以看出,最好的基线⽅法CGAN只取得了60.9%的结果。 Seq2Seq-MLE取得了与DSSM相近的实验结果,⽽对抗训练增强的Seq2Seq模型取得了最⾼的准确率为62.6%。实际上,所有的基线⽅法都不能⽣成故事结尾,他们均通过直接⽐较相似度的⽅法挑选故事结尾。⽽本⽂的⽅法从⽣成的⻆度来解决挑选问题:本⽂⾸先使⽤⽣成模型⽣成真实的故事结尾,然后通过⽐较⽣成结尾和候选结尾的相似性进⾏挑选。对于读者来说,这种⽅法可解释性更好,因为读者可以通过阅读⽣成的结尾和候选结尾来理解是如何挑选出正确结尾的。
4. 结论
故事⽣成是⼈⼯智能中⼀个⾮常具有挑战性的任务。给出⼀个故事上下⽂,本⽂探索了⽣成故事结尾的新⽅法。具体地,我们采⽤了⽣成对抗⽹络的思想,提出⽤对抗训练增强的Seq2Seq模型来⽣成合理且多样化的故事结尾。⼈⼯和⾃动评估指标表明,相⽐于仅仅使⽤最⼤似然估计训练的Seq2Seq模型,对抗训练增强的Seq2Seq模型能够⽣成合理且多样化的故事结尾。