首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Facebook AI 研究室:分层神经网络故事生成

你和“懂AI”之间,只差了一篇论文

很多读者给芯君后台留言,说看多了相对简单的AI科普和AI方法论,想看点有深度、有厚度、有眼界……以及重口味的专业论文。

为此,在多位AI领域的专家学者的帮助下,我们解读翻译了一组顶会论文。每一篇论文翻译校对完成,芯君和编辑部的老师们都会一起笑到崩溃,当然有的论文我们看得抱头痛哭。

同学们现在看不看得懂没关系,但芯君敢保证,你终有一天会因此爱上一个AI的新世界。

这是读芯术解读的第112篇论文

ACL 2018 Long Papers

分层神经网络故事生成

Hierarchical Neural Story Generation

Facebook AI 研究室

Facebook AI Research

本文是Facebook AI 研究室发表于 ACL 2018 的工作,本文致力于研究故事生成,对文本的一个主题生成连贯和流畅的段落。本文从一个在线论坛收集了一个包含300K个人写故事与书面提示的大数据集。我们的数据集支持层次化的故事生成,其中模型首先生成一个前提,然后将其转换为一段文本。我们通过一种新颖的模型融合形式得到了进一步的改进,这种融合形式提高了故事与提示的关联性,并且添加了新的门控多尺度自我注意力机制来对远程上下文建模。实验表明,在自动化和人类评价上都有很大改进。

引言

讲故事技术处于当前文本生成技术的前沿地位,故事必须在整个文档中保持主题的一致性,需要对非常长的依赖关系进行建模;故事需要创造力,需要高层次的情节,需要提前计划而不是逐字生成。

我们用一个层次化模型来处理故事讲述的挑战,该模型首先生成一个称为提示的句子,用于描述故事的主题,然后在生成故事时根据该提示进行调整。对提示或前提进行调整可以更容易地生成一致的故事,因为它们为整个情节提供了基础,也减少了标准序列模型产生主题漂移的倾向。

我们发现,应用于分层故事生成的标准序列-序列(seq2seq)模型容易退化为很少关注写作提示的语言模型(这个问题在其他领域已经注意到,例如对话响应生成中)。这种失败是由于提示和故事之间的复杂且未指定的依赖关系,这比语言建模所需的更紧密的依赖关系更难建模(例如,考虑下图中的第一句和提示之间的微妙关系)。

为了提高所生成的故事与其提示的相关性,我们引入了融合机制,其中我们的模型在预先训练的seq2seq模型的基础上进行训练。为了改进预先训练的模型,第二个模型必须集中在提示和故事之间的联系上。我们表明,融合机制可以帮助seq2seq模型建立它们的输入和输出之间的依赖关系。

故事生成的另一个主要挑战是使用标准循环体系结构对长文档建模的低效率性——在我们的数据集中,故事平均包含734个单词。我们使用卷积架构提高效率,允许整个故事被并行编码。现有的卷积结构只编码有限的上下文,因此我们引入了一种新的门控自注意力机制,允许模型在不同时间尺度上调节其先前的输出。

为了训练我们的模型,我们收集了一个大的数据集,303,358个人类生成的故事与来自在线论坛的写作提示。评估自由形式文本是非常具有挑战性的,因此我们也引入了新的评价指标,它隔离了故事生成的不同方面。

实验表明,我们的融合和自注意力机制改善在自动化和人类评估措施的现有技术。我们的新的数据集和神经架构,允许模型可以创造性地产生更长、更一致和更流畅的文本通道。评价发现人类更喜欢我们层次模型生成的故事,是那些非层次的基线的两倍。

模型

WRITINGPROMPTS的挑战主要在于对远程依赖关系进行建模,并根据抽象的高级提示进行调整。递归和卷积网络已经成功地实现了对句子进行了建模,但是精确地建模几个段落还是一个未解决的问题。虽然seq2seq网络在各种问题上都有很强的性能,但我们发现它们无法构建准确反映提示的故事。

分层故事生成。高级结构对于好的故事来说是不可或缺的,但是语言模型是在严格逐字的基础上生成的,因此不能明确地制定高级规划。我们通过将生成过程分解为两个层次来介绍规划能力。首先,我们利用Dauphin等人的卷积语言模型生成故事的前提或提示。提示给出了故事结构的草图。其次,我们使用seq2seq模型来生成一个遵循这个前提的故事。根据提示进行调整使得故事更容易保持一致性,并且具有超出单个短语级别的结构。

卷积seq2seq模型的高效学习。我们的数据集中的故事长度对RNNs来说是一个挑战,它顺序地处理每个token。为了将提示转换成故事,我们建立在GeLink等人的卷积seq2seq模型上,利用深度卷积网络作为编码器和解码器。卷积模型非常适合于长序列建模,因为它们允许序列内的并行计算。在卷积seq2seq模型中,编码器和解码器与注意力模块连接,注意力模块使用解码器的每一层的注意力来执行编码器输出的加权和。

基于门控多规模自注意力机制的无边界上下文建模。CNNs只能建模有界上下文窗口,防止在输出故事中建模过长范围的依赖关系。为了能够对无界上下文进行建模,我们使用自注意力机制来辅助解码器,该机制允许模型引用任何先前生成的单词。自注意力机制提高了模型提取长距离上下文的能力,同时由于其并行性,并不会对计算性能造成太大影响。

门控注意力:本文使用多注意力机制,允许在不同的位置关注特定信息。然而,查询、键和值不是由线性映射给出的,而是由具有门控线性单元激活的更具表现力的门控深层神经网络给出。我们表明,门控辅以自注意力机制,可以得出更加细粒度的选择结果。

多尺度注意力:进一步,我们建议每个头部在不同的时间尺度上运行,如下图所示。因此,对每个头的输入进行不同量的下采样——第一个头看到完整的输入,第二头看到第二个输入时间步长,第三磁头看到第三个输入时间步长,等等。不同的刻度鼓励头部关注不同的信息。下采样操作限制了注意力图中token的数量,使它们更清晰。

单注意力头的输出定义为:

其中,包含层次L在时间t的隐藏状态,q,k,v为下采样网络。我们允许模型在每一个时间步上,如果它选择去忽略历史步骤上的信息时,可以选择关注一个0向量,如下图所示。

这种机制允许模型恢复为无自注意力机制的架构,并且避免历史数据提供噪音。此外,我们不允许自注意力机制关注当前时间步中的信息,只能关注过去的信息。

利用模型融合提高输入提示相关性。与诸如翻译的任务不同,在翻译任务中,目标的语义由源完全指定,比根据提示生成故事要开放得多。我们发现seq2seq模型忽略了提示,只关注对故事建模,因为语言建模所需的本地依赖关系比提示和故事之间的细微依赖关系更容易建模。

我们提出了一种基于融合的方法根据提示调整生成故事。我们训练一个seq2seq模型,可以访问预训练的seq2seq模型的隐藏状态。这样做可以看作是一种增强或剩余学习,它允许第二种模型将注意力集中在第一种模型未能学习的内容上,例如对提示进行调节。据我们所知,本文首次表明,融合减少了seq2seq模型退化为主要捕获句法和语法信息的语言模型的问题。

冷融合机制对语言模型进行预训练,然后利用门控机制训练seq2seq模型,该门控机制在seq2seq训练期间学习利用语言模型的最终隐藏层。我们通过将两个seq2seq模型按以下公式组合来改进这种方法:

具体见下图。

其中,将预训练seq2seq模型和训练seq2seq模型(由ht表示)的隐藏状态连接起来以学习门gt。使用具有权重矩阵W的线性映射来计算门。门控隐藏层通过级联来组合,之后是具有GLU激活的完全连接层。在每个完全连接层之后,我们使用分层正则化方法。

实验与分析

为了训练融合模型,我们首先在提示数据集上训练一个具有自注意力模型的卷积seq2seq。对于每个模型,我们在生成时为softmax调整参数,固定产生150字的故事,不产生未知的单词序列。对于提示生成,我们使用一个自注意力机制的GCNN语言模型,该模型使用与序列到序列的故事生成模型相同的提示词汇进行训练。生成提示的语言模型具有63.06的验证困惑。提示生成使用从10个最有可能的候选中的top-k随机抽样进行。

下表显示了所提出的添加自注意力机制的影响。

下表展示了与基线相比,深度多尺度自注意力和融合都显著地改善了困惑。在卷积seq2seq基线上添加这些,可以降低困惑度9个点。结果表明,添加我们的融合机制大大提高了故事生成的质量,甚至比集成的性能更好,尽管具有更少的参数。

我们使用下表中的数据来评估分层生成的效果。400个故事是从自注意力机制的GCNN语言模型产生的,另外400是由我们的分层融合模型产生的。评分者要求选择他们喜欢读的故事,评委喜欢的时间层次模型的大概有67%。

我们在下图中观察到融合对故事的主题性有更大的影响。相比之下,集成对人们将故事与提示关联的能力没有影响,但是添加模型融合将精度提高了7%。

融合模型还可以最精确地对提示和故事进行配对,如下表所示。

为了量化这种改进,下图描绘了第k个最佳故事与给定提示的相关性;KNN的性能下降得更快。

下图显示了一个示例,预先训练的seq2seq模型类似于产生普通单词和标点符号的语言模型。第二个seq2seq模型学习专注于罕见的单词,如horned和robe。

总结

我们收集了基于短写提示的创造性文本生成的第一个数据集。这个新的数据集通过要求更长的依赖范围和抽象前提条件来推动文本生成。基于该数据集,我们通过自动和人工评估表明,新颖的分层模型、自我关注机制和模型融合显著提高了生成的故事的流畅性、主题性和整体质量。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190215B0HDOA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券