coreteker 2019-02-20
ACL 2018 Long Papers
学习使用协同判别器进行写作
Learning to Write with Cooperative Discriminators
华盛顿大学
University of Washington
本文是华盛顿大学发表于 ACL 2018 的工作,本文提出了一个统一的学习框架,通过采用一个判别器组合来解决RNN生成长格式文本时重复、自相矛盾的问题,该组合可以指导一个基本的RNN生成器得出更加全局、一致化的生成结果。人类评价表明,我们模型生成的文本比基线模型更好,大大提高了文本生成的整体连贯性、风格性和信息量。
基于递归神经网络(RNN)的语言模型在许多语言任务中都取得了长足的进步。然而,当用于长格式文本生成时,RNN常常会导致退化文本,这种退化文本是重复、自相矛盾的,并且过于通用的,如下图所示。
我们提出了一个统一的学习框架,通过组成一个判别器组,每个判别器专门研究不同的交流原则,可以应对长文本生成的几个挑战。从RNN语言模型开始,我们的框架学习通过训练多个能够共同解决基本RNN生成器局限性的判别模型,来构造更强大的生成器,然后学习如何对这些判别器进行加权以形成最终的解码目标。这些“协同”的判别器与基本语言模型相辅相成,形成一个更强、更全局的解码目标。
我们的判别器的设计灵感来自Grice关于数量、质量、关系和方式的Grice格言。判别器通过选择训练数据来学习编码这些质量,该模型包括部分模型的生成结果。系统然后学习平衡这些判别器,首先将它们均匀地加权,然后通过比较系统给它自己生成的延续和参考延续的分数来不断更新它的权重。
实验结果表明我们的学习框架在将一般的RNN语言模型转换为更强大的生成模型方面是高效的。人类评价证实,由我们的模型生成的语言在两个不同的领域都显示出较优的结果,并且显著地提高了生成文本的整体连贯性、风格和信息内容。自动评估表明,与基线相比,我们的系统既不那么重复,也更加多样化。
模型
我们提出了一个通用的学习框架,用于给定固定上下文x生成条件语言y。
其中每一个sk是一个打分公式。提出的目标将RNN语言模型概率Plm和由经过判别训练的通信模型产生的一组附加得分sk(x,y)相结合,该通信模型用学习混合系数λk加权。当分数sk是日志概率时,这相当于专家产品(PoE)模型。
使用波束搜索进行生成,在每个时间步骤i对不完整的候选生成y1:i进行评分。然而,为了允许在远程上下文中有更高的表达能力,我们不需要区分模型分数来对y的元素进行刻画,这解决了RNN的一个关键限制。更具体地说,我们使用一个估计得分
,它可以针对y=y1:n的任何前缀来计算,以便在波束搜索期间对目标进行近似匹配,例如,
。为了确保训练方法尽可能地匹配这个近似值,训练计分器以区分相同长度(从预先挖掘的前缀长度集合中选择)的预固定,而不是完整的延续。在每个时间步长重新估计前缀得分,而不是通过波束搜索累积。
基本语言模型:RNN语言模型将上下文x和延续y视为单个序列s:
协作通信模型:我们引入一组判别器,每个判别器可以编码RNN通常无法捕获的正确写作的一个方面。每个模型都经过训练以区分好和坏的生成;我们改变模型参数和训练示例,以指导每个模型关注Grice的不同方面。判别器得分被解释为分类概率(在必要时用logistic函数缩放),并且在目标函数中内插为对数概率。
设D={(x1,y1),...(xn,yn)}为条件生成的训练示例集。DX表示所有上下文和DY表示所有的连续性。在y的前缀上训练评分函数,以模拟它们在推理时对部分连续的应用。
在所有模型中,第一层将每个单词w嵌入到用GloVe预处理嵌入初始化的300维向量e(w)中。
重复模型:该模型通过有偏生成器来处理数量准则,以避免重复。重复判别器的目的是通过利用我们的经验观察来学习区分RNN生成的和黄金内涵。然而,我们不想完全消除重复,因为单词在英语中确实经常重复出现。
为了对自然重复水平进行建模,基于单词嵌入在前k个单词的固定窗口内的成对余弦相似度,计算关联中每个位置的分数di,其中
连续打分定义为:
其中RNrep(d)是单向RNN在相似性得分d=d1……dn上运行的最终状态。wr是一个学习到的向量。该模型被训练以最大化排序对数似然,
蕴含模型:判断文本质量可以与识别文本蕴涵的自然语言推理(NLI)任务相关:我们希望引导生成器既不与它自己的之前的生成(质量准则)相矛盾,也不能轻易地从上下文(数量准则)出发陈述一些东西。后一种情况是由RNN在生成过程中解释自己的习惯导致的。
我们训练一个分类器,它以两个句子a和b为输入,预测它们之间的关系是矛盾、蕴涵还是中性。我们使用句子对的中性类概率作为判别器得分,以抑制矛盾和蕴涵。作为蕴涵分类器,我们使用可分解的注意力模型,该分类器在两个大的蕴涵数据集,SNLI和MultiNLI上训练,这两个数据集合在一起。R有超过940,000个训练实例。我们基于用于评估的每个数据集的词汇表来训练独立的模型。
设t(a, b)为中立类的对数概率。设S(y)是y中的完句组,Slast(y)是最后一个完句组,Sinit(y)是最后一个完句前的句组。我们针对x和y中所有前面的句子计算Slast(y)的蕴涵得分,并使用我们在中性分类中具有最小置信度的句子对的得分:
关联模型:关联模型通过预测候选延续的内容是否与给定上下文相关来编码关系准则。我们训练该模型以区分真实延续和随机延续,这些延续是根据给定的上下文从语料库中的其他(人写)结尾中抽样的。
首先,上下文序列和连续序列都通过卷积层,然后maxpooling以获得序列的向量表示:
maxpooling的目标是获得表示每个维度中最重要的语义信息的向量。然后将评分函数定义为:
我们优化排序对数似然:
其中,yg是金结尾,yr是随机抽样的结束。
词汇风格模型:在实践中,RNNs生成文本与训练数据相比,具备较少的词汇多样性。为了克服这种影响,我们引入了一个基于观察词汇分布的简单判别器,它捕捉通过词选择表达的写作风格。因此,该分类器对方式准则进行编码。
评分函数定义为:
混合权重学习:一旦所有的通信模型都经过训练,我们学习组合解码目标。特别地,我们学习权重系数λk,以使用判别损失线性组合评分函数。
在线学习混合权重:基于当前λ值执行每一连续生成,然后基于预测执行梯度下降步骤。这就使得目标函数在训练过程中动态变化:由于来自模型的当前样本用于更新混合权重,它通过区别地应用生成模型来创建自己的学习信号,并为每个数据集分别调整SGD学习率。
波束搜索:由于贪婪解码的局限性以及评分函数不跨时间步长分解的事实,我们使用波束搜索过程执行生成,算法如下。
实验与分析
我们使用两个英语语料库进行评估。第一个是TripAdvisor语料库,一个酒店评论的集合,总共有3.3亿字。第二个是BookCorpus,一个由未出版的作家收集的9.8亿字的小说集。SEQ2SEQ和SEQGAN基线,我们将两个语料库分割成十个句子长度的片段,并使用前5句作为上下文,后5句作为延续。
我们在给定初始上下文的情况下生成延续的任务上进行模型评估。在我们的开放式生成设置中,延续不需要是特定的长度,因此我们需要模型和基线来生成5句延续,这与构造判别器和seq2seq基线数据集的方式是一致的。
前人工作指出,当用于长句或创造性文本生成时,诸如BLEU和Meteor的自动测量评估意义不大,其中可接受的生成输出之间可能存在高差异。然而,我们仍然将这些措施作为我们评估的一个组成部分。此外,我们报告了一些定制度量,它们捕获生成文本的重要属性:长度——每个示例的平均序列长度;图表——每个示例的特有图表的百分比;Vocab——每个示例特有单词的百分比。由我们的模型和基线生成的结尾与原文中的参考结尾进行比较。结果见下表。
对于人类评价,人们根据几个准则来评估文本,这些准则受到Grice准则的启发:重复性、矛盾性、关联性和清晰度。人类评价在100个从每个语料库的测试集中选择的样本上进行,用于比较每对生成器的效果。我们将这些示例呈现给Amazon Mechanical Turk的工作人员,每个示例使用三个标注器。结果见下表。对于Likert量表,我们报告每个标准的平均得分,而对于总体质量判断,我们只汇总所有示例的投票。
下表通过我们的模型(L2D)和各种基线(与参考延续相比,TripAdvisor都给出了相同的上下文)生成的示例延续。有关更多的例子,请访问https://ari-holtzman.github.io/l2w-demo/。
为了研究个体判别对整体性能的影响,下表报告了我们模型的消融结果。对于每个消融,我们只包括一个通信模块,并训练一个单一的混合系数来组合该模块和语言模型。表中的对角线只包含正数,表明每个判别器有助于其设计的目的。有趣的是,大多数判别器有助于写作的大部分方面,但除了重复以外,实际上无法提高ADAP-TiVLM的整体质量。
总结
我们提出了一个统一的学习框架来生成长而连贯的文本,它克服了RNNs作为文本生成模型的一些共同局限性。我们的框架通过子模型的学习组合来学习适合生成的解码目标,这些子模型捕获了优秀范文的语言驱动特性。人类评价表明,我们的模型产生的文本质量大大超过其他基线。
论文下载链接:
http://aclweb.org/anthology/P18-1152