《A Survey of Natural Language Generation Techniques with a Focus on Dialogue Systems - Past, Present and Future Directions》
论文: https://arxiv.org/abs/1906.00500
Abstract
自然语言处理和人工智能领域最困难的问题之一是自动生成连贯的、人类可以理解的语言。教机器如何像人类一样交谈属于自然语言生成的广泛范畴。近年来,学术和行业研究人员在会议和期刊上发表的关于这一主题的研究文章数量出现了前所未有的增长。此外,还专门针对这一问题与顶级的NLP会议一起举办许多研讨会。所有这些活动使得我们很难清楚地定义场的状态和对其未来方向的推理。在这项工作中,我们提供了这一重要和蓬勃发展的领域的概述,包括传统方法,统计方法,以及使用深度神经网络的方法。本文对自然语言生成的一个重要应用——开放领域对话系统的构建进行了全面的综述。我们发现,构建对话系统的方法主要使用seq2seq或语言模型架构。值得注意的是,我们确定了为建立更有效的对话体系而进一步研究的三个重要领域:1.融入更大的语境,包括对话语境和世界知识;2.在NLG系统中添加人物或个性;3.克服那些会影响系统生成的回答质量的乏味和通用的回答。我们提供了如何通过使用模仿人类语言理解和生成能力的认知架构来解决这些开放问题的指针。
1. Introduction
语言生成是自20世纪60年代以来自然语言处理(NLP)、人工智能(AI)和认知科学(CS)领域的一个子领域。NLG不仅包含人工智能的基本方面,还包括认知科学。然而,它仍然是实现人工通用智能(AGI)的主要挑战之一。
在图1中,我们概述了可以归类在语言生成框架下的应用程序。在这项工作中,我们专注于对话系统领域,这是自然用户界面的基础。
语言生成领域的一些早期成功是建立了像Eliza (Weizenbaum, 1966)和PARRY (Colby, 1975)这样的系统。这些系统通过一套规则生成语言。然而,这种基于规则的系统太受约束且脆弱,不容易推广以及不易产生不同的回应。其他传统的NLG技术从结构化数据或知识库生成文本。例如,可以生成天气报告(Angeli et al., 2010)和体育报告(Barzilay and Lee, 2004)的基于领域的系统。
文本生成系统的领域从传统方法转向了统计方法,其中重点是利用文本数据中的模式,并构建模型,根据所看到的文本进行预测。Mikolov等人认为,在使用统计方法建模语言方面还没有任何显著的进展。这一观察结果促使他进行了使用循环神经网络的实验,并取得了当时最好的结果,使神经网络成为对文本等顺序数据建模的首选模型。神经网络属于一类机器学习模型,能够识别文本中的模式,并识别有助于解决与计算机视觉、物体识别、图像字幕和语音识别相关的不同问题的特征(Sutskever et al., 2014)。另一个与神经网络的兴起相适应的现象是大量的语料库和重要的计算资源变得可用。在语言生成的应用中,神经网络在机器翻译(Bahdanau等人,2014年)、故事讲述Holtzman等人(2018年)、对话系统(Wolf等人,2019年;邢等,2017;Dinan et al., 2018)和诗歌生成(Zhang and Lapata, 2014)。
然而,即使神经网络在开发对话系统方面具有强大的性能,目前的系统仍然存在一些问题,如迟钝和通用的响应,缺乏编码上下文和缺乏一致的角色。目前大多数对话系统和对话模型缺乏风格,这可能是一个问题,因为用户可能对交互不完全满意。生成个性化对话是另一项相当困难的任务,因为生成的回应必须与对话的上下文相关,同时还必须传递准确的副语言特征。
为了明确该领域的发展方向,我们对开放领域对话系统领域进行了全面概述。我们的主要目标是确定该领域的研究差距,并为未来的研究确定明确的途径。而最近的一些有关调查论文也存在 (Gatt and Krahmer, 2017; Gao et al., 2019),这些报告没有明确指出研究空白,也没有提供对开放领域对话系统领域的全面审查。
综上所述,本文的目的是:a.概述了从传统方法到基于深度学习方法的自然语言生成领域的研究(我们将在第2节和第3节中介绍);b.对开放领域对话系统领域进行全面概述(我们在第4节的表1中总结);c.提出解决这些开放性问题的未来研究途径(见第5节)。
2. Traditional Approaches to Language Generation
Reiter和Dale(2000)将自然语言生成(Natural Language Generation, NLG)定义为“人工智能和计算语言学的子领域,它关注计算机系统的构建,从一些潜在的非语言信息表示中产生可理解的英语或其他人类语言文本”。他们还提出了开发NLG系统的标准架构(图2),由六个组件组成,每个组件执行一个重要的任务,以产生一致的输出。
他们的架构的动机是这样一个事实:当时有许多NLG系统用于不同的应用程序,但没有定义良好的、全面的架构。在六阶段流程之前,Reiter引入了简单的三阶段流程:1. content determination;2. sentence planning;3. surface realisation,并将其命名为“ “consensus””架构(Reiter, 1994)。Cahill et al.(1999)进行了实验,认为管道过程不详细,架构过于受限。为了克服这些问题,作者提出了一种基于语言操作的更精细的架构,如1. lexicalisation;2. referring expression generation;3. aggregation(Cahill et al., 1999)。Cahill等人(1999)提出的架构的一个缺点是没有提供关于系统如何获得输入以及以何种形式获得输入的细节。 Reiter和 Dale迭代了他们的初始架构,并为NLG系统提出了一个新的标准架构,包括4元组< k, c, u, d >,其中k是知识来源,c是交际模型,u是用户模型,d是话语理论(Evans et al., 2002),迭代模型还将Cahill等人(1999)的一些方面的工作实现到架构中。
在下面的小节中,我们将解释这六个组件的功能,以及为解决该组件而进行的广泛研究工作。
2.1 Content Determination
Content Determination是确定为给定输入生成文本所需的域的问题。Content Determination受交际目标的影响,即不同人群的不同交际目标可能需要满足交际各方需求的系统来表达不同的内容。Content Determination受到最终用户的专业知识的影响,也受到系统中存在的信息源的内容的影响(Reiter和Dale, 2000)。
本文从两个不同的角度探讨了内容确定的问题:1.Schemas or templates(模式或模板);2. Statistical data driven approaches(统计数据驱动方法)。
Schema- or Template-based content determination方法侧重于通过对语料库的分析生成内容,它们在任务中非常突出,而它们是标准化的,如天气预报系统,如FOG (Goldberg et al., 1994),其中修辞关系可以编码为schemas or schemata(McKeown, 1985)。 schemata由identification, constituency, attributive and contrastive(认同、构成、定语和对比)四部分组成。模式的每个组件都用来描述不同的谓词模式(McKeown, 1985)。可以通过使用基于规则的方法来改进模式或模板。基于规则的内容确定方法已用于领域特定系统,其中领域专家的隐性知识被用于更多的知识获取(Reiter等人,2000;Elhadad and Robin, 1996)。Reiter等人(2000)列出了不同的技术,如分类、大声思考、专家修改STOP系统中获取知识的方法,该系统生成了个性化的戒烟传单。
随着更多数据的可用性,Content Determination的过程变得由数据驱动。Duboue和McKeown(2003)开发了一个系统,通过精确匹配和统计选择两阶段的过程,自动生成每个输入的约束,并决定它是否应该作为输出的一部分,其中语义数据被聚类,每个聚类对应的文本被用来衡量其对其他聚类的影响程度。Barzilay和Lee(2004)提出了另一种方法,通过使用一种新的隐马尔可夫模型的改编,内容选择可以应用于没有提供知识库的领域。在他们的方法中,隐马尔可夫模型的状态对应于感兴趣领域的信息特征类型。Barzilay和Lapata(2005)提出了另一种类似的方法,通过捕获输入项之间的上下文依赖关系,将内容选择视为一个集体分类问题。
Liang等人(2009)扩展了Barzilay和Lapata的工作,通过描述一个概率生成模型,该模型使用隐藏马尔可夫模型在一个统一的框架中结合文本分割和事实识别。他们提出了一个生成模型,包括三个阶段:选择一组记录,从记录中识别字段,并从字段中选择一组单词序列,每个阶段都使用期望最大化(EM)进行优化。Liang等人(2009)所做的工作证明了将含量测定过程结合起来是有帮助的并将语言实现转化为一个统一的框架。另一个例子是Angeli等人(2010)所做的工作,其中生成的过程被分解为一系列本地决策,并在决策上使用分类器,包括从数据库中选择记录、从记录中选择字段子集以及选择一个模板来呈现生成的文本。然而,Kim和Mooney(2010)发现了Liang等人(2009)提出的方法的缺点,即只使用词袋和一个简单的隐马尔可夫模型,没有考虑上下文无关的语言句法。为了解决这个问题,Kim和Mooney使用了带有混合树的生成模型,该模型表示自然语言中的单词和语法结构(意思表示)之间的对应关系,并使用迭代生成策略学习(一种类似于EM的方法,迭代地提高概率,以确定可能从人类输入的事件)。内容确定的另一个例子(在端到端系统中)是Konstas和Lapata(2012)所做的工作,其中一组记录被转换成描述数据库结构的概率上下文无关语法,语法被编码为加权超图。生成过程是基于找到超图的最佳推导。在下一节中,我们将讨论文档结构,即语言生成的下一个子问题。
2.2 Document Structuring
Reiter和Dale(2000)指定的第二个子问题是 document or text structuring。这是在内容确定之后,确定文本返回给用户的顺序的过程。 Document Structuring 和 Content Determination是紧密相连的。
对解决这一问题有重要影响的方法是借助修辞结构理论( Rhetorical Structure Theory,RST)来理解话语关系(Mann and Thompson, 1986)。RST有四个组成 “relations”的元素,以 Nuclei和 satellite的形式确定文本不同部分之间的关系。 Nuclei代表文本的重要部分, satellite代表文本的补充部分,“ “schemas””定义了文本部分中的模式,可以根据其他跨度(树的节点)、“schemas application”和“”structures””进行分析,并帮助创建连贯的文本(Mann和Thompson, 1987)。
Moore和Paris(1993)在试图使用单个片段和片段之间的修辞关系来构建对话系统的文本计划时发现了RST的问题。RST未能对后续问题产生适当的回答。由于RST的这些问题,Moore和Pollack(1992)提出了一个两层次的话语分析过程。第一个层次被称为“信息层次”,它涉及话语中两个句子之间传递的关系,第二个层次被称为“意图层次”,它处理产生的话语,以影响参与者的心理状态的变化(Moore and Pollack, 1992)。Dimitromanolaki和Androutsopoulos(2003)使用监督机器学习学习了一种新的document structuring task表示,并将这种方法应用于特定领域的document structuring task。许多其他研究人员已经将文本结构和内容确定的过程联系在一起,形成一个单独的过程,这在前面的小节中已经描述过。
2.3 Lexicalization
词汇化或选择正确的词来表达信息内容的任务是Reiter和Dale(2000)定义的第三个子问题。他们把词汇化的任务分为两类,即概念词汇化和表达词汇化。概念词汇化是指将数据转换为语言上可表达的概念表达词汇化是指语言中可用的词汇如何被用来表示概念意义(Reiter和Dale, 2000)。为了解决选择最佳词素来实现意义的问题,Bangalore和Rambow(2000)建议使用句法结构的树表示和独立手工制作的语法。这种方法的缺点之一是没有使用词性标记,没有使用将同义词集合中的所有同义词组合在一起的机制。传统的NLG方法将词汇化过程与句子聚合和指称表达生成过程一起视为句子规划阶段,然而,最近的NLG研究将词汇化视为语言实现阶段的一部分(Gatt和Krahmer, 2017)。
2.4 Referring Expression Generation
参考表达式生成(reference Expression Generation, REG)是Reiter和Dale(2000)定义的第四个子问题,它与架构的句子规划阶段聚合在一起。REG是产生实体描述并将其与其他领域实体区分开来的能力(Reiter和Dale, 2000)。一个实体可以以许多不同的方式被引用。例如,考虑下面的句子,“Adrian arrived late to an event and he missed a majority of it”。可以有两种方法来引用实体。第一个是实体被引入话语时的初始引用(例子中的Adrian),另一个是实体被引入话语后的后续引用(例子中的he) (Reiter and Dale, 2000)。Reiter和Dale(2000)建议的解决方案的第一步是确定目标的引用类型,例如代词、描述或专有名称。专有名词的识别是最容易的,而代词的识别则可以基于“目标在前一句中被提及,且该句中没有其他同性别实体”的规则(Krahmer and Van Deemter, 2012)。
目前已有多种用于REG任务的算法。Dale(1989)创建了Full Brevity algorithm,通过识别目标和干扰物,生成非常短的描述引用表达式。然而,该算法存在着主要的缺陷,如只能生成短引用表达式,并且计算这些短表达式具有较高的复杂性(NP-hard)(Krahmer and Van Deemter, 2012)。对完全简洁的改进是贪婪启发式算法(Greedy Heuristic algorithm),它选择目标的一个属性,排除大多数干扰(与目标没有共同引用的词),并将该属性添加到描述中(Dale, 1992)。贪心算法在性能上被增量算法(Incremental algorithm, IA)所取代。增量算法依次挑选属性,然后排除干扰,直到产生一个可区分的表达式(Dale和Reiter, 1995)。但是,这些描述可能包含冗余属性,这成为增量算法的一个缺点。
为了解决这些缺陷,Kees和Van Deemter(2002)探索了如何通过两阶段算法生成布尔描述来克服IA的不完整性。第一个阶段是对IA进行泛化的过程,通过取一个有助于挑选出目标集的属性的联合,下一个阶段是优化产生的表达式(Van Deemter, 2002;Krahmer和Van Deemter, 2012)。这项工作未能解决的一个问题是Horacek(2005)的工作中解决的概念模糊性。Horacek(2005)引入了包括以下措施来表示不确定性:$p_k$ -用户熟悉提到的术语,$p_p$-用户可以感知说出的属性,$p_A$ -用户同意使用的术语的适用性。借助这三种概率,得到识别概率$p$被计算为三种概率的乘积,这有助于区分模糊、误解和歧义(Horacek, 2005)。后来,Khan等人(2008)以“形容词Noun1 Noun1”的形式解决了协调短语中结构歧义的问题,以确定该形容词与Noun1或Noun2相关联。Khan等人(2008)进行了用户研究,并建议如何避免这些问题。然而,Engonopoulos和Koller(2014)认为听众可能会误解生成的表达。为了解决这些问题,Engonopoulos和Koller(2014)提出了一种算法,在概率引用表达式模型$P(a|t)$的帮助下,最大化用户理解引用表达式的可能性,其中$t$指表达式,$a$指域中的对象。在下一小节中,我们将讨论依赖于REG算法能力的句子聚合。
2.5 Sentence Aggregation
句子聚合(Sentence Aggregation)的特点是在话语生成过程中去除冗余信息而不丢失任何信息,以简洁、流畅、可读的方式生成文本的过程(Dalianis, 1999)。Dalianis,在他的调查中指出,聚合可以在NLG过程的所有阶段完成,除了在内容确定和表面实现阶段。Reiter和Dale将这个子问题标记为属于句子计划或微计划阶段(Reiter和Dale, 2000)。Reiter和Dale将聚合问题与词汇化紧密联系在一起,因为两者都涉及对单词、短语和句子的知识来源和语言元素的理解(Reiter和Dale, 2000)。
Cheng和Mellish(2000)利用遗传算法(Genetic Algorithms)提出了解决句子聚合问题的初步方法之一,他们使用一个基于约束的程序,带有偏好函数来评估文本的连贯性。沃克et al . .(2001)使用数据驱动的方法克服了Cheng等人(2000)使用的手工制作偏好函数的问题。在他们的工作中,他们使用了两个阶段;第一阶段为输入生成大量的句子样本,下一阶段利用训练数据生成的规则对句子进行排序。Barzilay和Lapata(2006)提出了一种自动学习分组约束的方法,该方法利用并行语料库的句子及其对应的数据库条目,通过查看条目共享的属性数量来学习这些条目的分组约束。在下一节中,我们将介绍语言实现方面,这是流水线的最后阶段,以及在流水线早期阶段完成的工作上运行的不同机制。
2.6 Linguistic Realization
Reiter和Dale将语言实现定义为对句子的不同部分进行排序,并使用正确的词法和标点符号,这些标点符号受语法规则的约束,以产生语法和正字法上正确的文本(Reiter和Dale, 2000)。在本节中,我们将介绍三种实现语言的方法。
2.6.1 HAND-CODED GRAMMAR-BASED SYSTEMS
基于语法的NLG系统是根据语言的语法做出选择的系统,可以在 multilingual realizers的帮助下手动编写语法。 multilingual realizers的一个例子是KPML,由贝特曼开发(Gatt和Krahmer, 2017;Bateman, 1997),它依赖于系统语法来帮助理解一个句子的句法特征。另一个流行的 realizers SURGE是由Elhadad和Robin(1996)基于功能统一的形式主义开发的。另一种流行的 realizers是由Langkilde(2002)介绍的Halogen。该系统使用一组手工制作的语法规则作为特征来生成可选表示。使用这些实现器的一个缺点是它们使用起来很复杂,对用户来说有一个陡峭的学习曲线,这使得NLG社区转向了简单的realization engines。
2.6.2 TEMPLATES
模板常用于输出中对语法可变性要求有限的系统(Reiter和Dale, 1997)。假设模板 [person] is leaving [country] ,在此场景中,系统可以在输出阶段替换person和country值。基于模板的NLG系统的一个问题是模板在生成不同的生成文本集方面缺乏灵活性。McRoy等人(2003)提出了一种方法,可以通过声明式控件表达式来增强传统模板,从而克服这些问题。Van Deemter等人(2005)认为,随着新的NLG系统的开发,标准NLG系统和基于模板的系统之间的区别已经模糊,因为现代系统使用手工编写的语法来帮助实现。使用模板的另一个缺点是需要专业知识为系统构建模板(McRoy等人,2003;Gatt和Krahmer, 2017)。Angeli等人(2012)使用概率方法和组合语法来学习解析时间表达式的规则。Kondadadi等人(2013)使用k-means聚类创建了由命名实体标记和语义分析派生的模板库。尽管使用基于模板的方法具有优势,但大多数最近的NLG系统已经转向基于统计的方法。
2.6.3 STATISTICAL APPROACHES
统计方法已被用于NLG系统,以减少使用手写语法规则的人工工作,并处理大量语料库以获得概率语法,以更好地实现文本。Langkilde(2000)的工作是使用统计方法实现语言实现的开创性工作之一。在这种方法中,Langkilde(2000)使用基于语料库的统计知识和一个手工制作的小语法来生成一个句子的许多不同的表示形式,这些表示形式以树的形式包装起来。Langkilde(2000)通过计算评分对每个短语进行排名,评分被分解为内部评分和外部评分,前者已知是上下文无关的,后者是上下文相关的。Langkilde介绍的这种方法为后续该领域的研究奠定了基础。
Langkilde和Knight(1998)进行了另一项重要的工作,通过引入新的语法形式,从意义表示中计算词格,从而构建了一个生成器。Bangalore和Rambow(2000)建议通过引入基于树的语法表示模型和独立手工制作的语法规则来改进语法选择模块的性能。Cahill等人(2007)提出了一种不同的排序方法,并建议使用对数线性排序系统,他们表明对数线性排序比现有系统获得了更好的性能。
上面列出的这些方法的一个主要缺点是它们的计算成本很高,因为它们生成大量可能的句子,然后在排名机制的帮助下进行过滤。为了克服这个缺点,Belz和Anja(2008)引入了概率上下文无关表征不足( The Probabilistic Context-free Representationally Underspecified,pCRU),它使用概率选择来通知生成,而不是列出所有的选择然后选择一个短语。
上面描述的方法都使用一组手工制作的规则作为基本生成,并且只使用统计方法过滤输出。另一种办法是在基本 base-generation systems上应用统计方法。已经有了从树库中衍生出语法规则的方法(Gatt和Krahmer, 2017)。Hockenmaier和Steedman(2007)提出了一种从Penn Treebank语料库中提取依赖项和组合范畴语法( combinatory categorical grammar,CCG)的方法。
在概述了用于NLG的传统方法以及处理语言生成过程的子组件的方法之后,在下一小节中,我们将介绍深度神经网络以及这些体系结构中最近涌现的解决自然语言生成问题的方法。
3. Deep Learning approaches for Language Generation
将深度神经网络应用于自然语言处理已经帮助实现了跨越不同任务的最先进性能,包括语言生成任务,因为神经网络有能力学习具有不同抽象级别的表示(LeCun et al., 2015;戈德堡,2016)。最简单、应用最广泛的神经网络类型是前向神经网络或多层感知器(Rosenblatt, 1958),其中数据流是单向的,前向神经网络是无环图结构。Bengio等人(2003)证明了前馈神经网络在语言建模任务中的能力。
另一种更适合处理顺序数据的神经网络结构是循环神经网络( the Recurrent Neural Network ,RNN)结构。RNN在循环连接的帮助下用于处理顺序数据,循环连接在每个序列上执行相同的任务(Goodfellow等人,2016)。与没有基于序列专门化的网络不同,RNN有能力使用从先前序列计算中获得的知识(“内存”)处理长序列。记忆在神经网络中的应用早在1982年就被证明了,通过Hopfield Network,它被用于从一组预先训练的模式或记忆中存储和检索记忆,类似于人类的大脑。该网络依赖于每个神经元产生的值为+1或-1,这取决于来自前一层的输入(Hopfield, 1982)。
Hopfield Network是Jordan网络(Jordan, 1986)(如图3A所示)背后的灵感来源,用于在单个隐藏层和特殊单元的帮助下对序列进行监督学习,这些单元从输出单元接收输入,然后将值转发到隐藏节点(Lipton等人,2015a)。Elman简化了Jordan的架构(如图3B所示),他添加了一个上下文单元,每个隐藏单元在前一个时间步骤从单元接收输入。Elman表明网络可以通过训练3000位的序列来学习依赖关系。该模型在预测序列中的第三位时达到了66.7%的准确率(Elman, 1990;Lipton等人,2015a)。
Elman架构在发现长短期记忆网络( long short term memory networks, LSTM)中发挥了重要作用(Hochreiter和Schmidhuber, 1997)。在训练神经网络时,LSTMs有助于解决由反向传播引起的梯度消失和爆发的重要问题(Schmidhuber, 2015)。在反向传播过程中,神经网络的权重得到与误差函数梯度成比例的更新。这些梯度在不同的层间相乘,有时梯度变得太小或消失,在某些情况下,梯度呈指数增长并爆发。LSTM用一种叫做记忆细胞(memory cell)的新概念取代了神经网络的隐藏单元,它是围绕一个中央线性单元(内部状态)建立的,具有固定的自我连接,以确保梯度可以通过而不爆炸或消失。所述存储单元还包含输入输出门( input and output gate);后来, Gers等人(1999)将遗忘门添加到记忆细胞的结构中。门是规范结构,它小心地允许添加或删除内部状态的信息。
下面我们将描述图4所示的各个组件:
- 输入节点( Input node)——输入节点接受来自当前层$x^{(t)}$的输入,$t$表示当前时间步长,也接受来自前一个时间步长$h^{(t−1)}$的隐藏层的值,并将所取的加权和输入通过激活函数“$sigmoid$”传递,随着LSTM架构的改进,激活函数“$sigmoid$”被“$tanh$”取代。
$g^{(t)}c = σ (W_g.[x^{(t)}, h{(t−1)}] + b_g)$ (1)
- 输入门( Input gate gate)——输入门接受来自当前层$x^{(t)}$的输入和来自前一个时间步$h^{(t−1)}$的隐藏层的值,并对加权和应用一个“$sigmoid$”激活函数。在这种情况下,$sigmoid$被用作门,以确保任何为0的值,那么来自输入门的对应值也被切断,不会影响内部状态更新。
$i^{(t)}c = σ (W_i.[x^{(t)}, h{(t−1)}] + b_i)$ (2)
- 遗忘门(Forget gate)——遗忘门被添加到LSTM架构中,以克服细胞状态线性增长的限制,当呈现连续流时,细胞状态可能在无界站中增长(Gers等人,1999)。遗忘门的主要工作是提供一种重置单元状态内容的方法。
$f ^{(t)}c = σ (W_f .[x^{(t)}, h{(t−1)}] + b_ f )$ (3)
- 单元状态(Cell State)——单元状态是存储单元的核心,携带着它一直维持到当前时间步长$t$的信息,因此损失函数不仅依赖于当前时间步长的数据。
$s^{(t)}_c = s^{(t−1)}_c × f ^{(t)}_c + g^{(t)}_c × i^{(t)}_c$ (4)
- 输出门(Output Gate)——输出门接受来自当前层$x^{(t)}$的输入和来自前一个时间步$h^{(t−1)}$的隐藏层的值,并对加权和应用$sigmoid$激活函数。在这种情况下,$sigmoid$被用作门,以确定单元格状态的单元格部分要输出什么值。
$o^{(t)}_c = σ (W_o.[x^{(t)}, h^{(t−1)}] + b_o)$ (5)
- 输出节点(Output Node)——LSTM单元的最终输出是通过$tanh$激活函数传递单元状态并将其与输出门的内容相乘后获得的。
$v^{(t)}c = o^{(t)}c × tanh(s^{(t)}c )$ (6)
RNN模型的另一种变体称为GRU(见图5)由Cho等人(2014a)介绍,其灵感来自LSTM的功能。 Cho等人(2014)对LSTM和GRU之间的性能进行了比较,他们发现两者之间的性能具有可比性。GRU包含两个门,重置门(公式 7)和更新门(公式 8),并在没有机制控制的情况下每次暴露整个状态。重置可以帮助隐藏单位忘记不需要的信息和更新门控制从以前的隐藏状态转出的信息的数量。实际激活被计算为先前激活和候选激活的线性插值(公式9)。
$r_j = σ ([W_r.x] j + [U_r.h{(t−1)}] j$ (7)
$z_j = σ ([W_z.x]j + [U_z.h{(t−1)}]j$ (8)
$h^j_t = (1 − z^j_t).h^j{t−1} + z^j_t.\tilde{h}^j_t$ (9)
$\tilde{h}^j_t=tanh(W.x_t +U(r_t \odot h_{t−1)})^j$
在接下来的四个小节中,我们将列出不同的方法,如语言建模、编码器解码器、内存网络和基于转换模型的方法,这些方法已经应用到语言生成任务中。
3.1 Language Models
语言模型是一种概率模型,它能够根据顺序中前面的单词预测下一个单词。语言模型被广泛应用于生成式建模任务中。语言模型使用前馈神经网络对固定长度上下文的顺序数据建模的能力在Bengio等人(2003)的工作中首次得到证明。然而,该方法的一个主要缺点,即使用固定长度的上下文,在Mikolov等人(2010)的重要工作中被克服,证明了基于RNN的语言模型的效率。类似地,语言模型领域的另一项开创性工作是Sutskever等人(2011)所做的工作,证明了LSTM在预测序列的下一个字符方面的有效性。条件语言模型也被用作语言模型的变体,在这种语言模型中,语言模型的条件不是前面的单词,比如根据情绪、作者、项目或类别生成产品评论(Lipton等人,2015b)或生成带有情绪上下文的文本(Ghosh等人,2017)。
3.2 Encoder-Decoder Architecture
另一个增强语言生成任务的重要架构是在端到端模型中使用两个RNN(图6)(Cho等人,2014b),它克服了一个重要的限制其中神经网络只能应用于输入和目标可以用固定维度编码的问题。编码器通过公式10将输入序列转换为固定向量表示形式$c$,其中$h_t$表示时间步$t$的隐藏状态,$f$表示任意非线性函数,$x$表示输入序列。解码器试图在上下文向量$c$的帮助下预测符号的序列。解码器的隐藏状态依赖于上下文向量$c$,由公式11表示,下一个要预测的符号基于条件概率12,其中$g$是一个$softmax$函数。
$h_{(t)} = f (h_{(t−1)}, x_t )$ (10)
$s_i = f (s_{i−1}, y_{i−1}, c)$ (11)
$P(yt |yt−1, yt−2, …, y1, c) = g(s(t), yt−1, c)$ (12)
语言生成任务的大部分工作都是使用编码器-解码器体系结构完成的。Zhang和Lapata(2014)提出了利用RNN生成中文诗歌的模型。在他们的工作中,他们把内容的确定过程和实现过程联合起来成为一个联合过程。
另一个例子是Wen等人(2015)开发的NLG系统,他们修改了LSTM的体系结构,以在语义上约束它,并能够预测对话上下文中的下一个话语。采用改进的LSTM单元结构进行表面实现,采用与记忆单元作用相似的对话行为单元进行句子规划。类似的还有Goyal等人(2016)的工作,他们提出了一个用于对话生成的字符级RNN,并解决了去语义化和稀疏性的问题。Mei等人(2015)使用编码器-解码器对齐器体系结构对一组天气数据库事件记录作为联合任务执行内容选择和实现任务。The aligner基于注意力机制(Xu et al., 2015;Bahdanau et al., 2014)。编码器-解码器架构也被用于生成情感文本,Asghar等人(2017)、Zhou等人(2018)和Ke等人(2018)所做的工作证明了这一点。
3.3 Memory Networks
记忆网络是(Memory Networks) Weston et al.(2014)提出的一种学习模型,用于克服隐藏状态下编码的短记忆。这些网络被用于各种各样的问题回答任务,其中答案是由输入到模型中的一组事实生成的。模型生成的答案可以是一个单词的答案,也可以是一段文本。Weston等人(2014)提出的记忆网络有四个主要组成部分:输入特征映射、泛化( generalisation)、输出特征映射和响应。Kumar等人(2016)介绍了一种不同类型的记忆网络,它基于情景记忆,能够解决更广泛的问题回答任务,也能解决与词性和情感分析相关的问题。Kumar等人(2016)所做的工作被Xiong等人(2016)扩展为可视化问题回答。其他关于视觉问题回答的工作包括在问题图像对上使用分层注意力(Lu等人,2016),使用关系网络为视觉问题回答生成答案(Santoro等人,2017),以及使用事实进行视觉问题回答(Wang等人,2016)
3.4 Transformer Models
Vaswani等人(2017)引入的Transformer模型(图7)已经帮助实现了对大量NLP任务的改进。Transformer模型基于注意机制,它绘制了输入和输出之间的全局依赖关系。Transformer由编码器-解码器结构组成,但每个编码器是由六个编码器组成的堆栈,每个编码器包含一个自我注意和按点完全连接的前馈神经网络。解码器也是一个由六个解码器组成的堆栈,每个解码器包含与编码器相同的成分,但有一个额外的注意层,帮助解码器专注于输入句子的相关部分。使用变压器模型的工作仍处于初级阶段。Radford等人(2018)和Devlinet等人(2018)在几个NLP任务上显示了令人印象深刻的结果。他们的工作在广泛的任务中改进了现有的先进技术,如语言建模、儿童书籍测试、阅读理解、机器翻译、问题回答、建模长期依赖关系(LAMBADA)、Winograd模式挑战和总结。
4. Open Domain Dialogue Systems using Deep Learning
对话系统或对话代理( conversational agents,CA)的设计目的是在系统与人类进行对话时,生成有意义的、连贯的、易于响应的、有信息的响应。一个被纳入会话代理的良好对话模型应该能够生成与人类交谈方式高度相似的对话(Li et al., 2017)。会话代理对于许多应用程序都非常重要,可以分为两大类,即:(1)帮助用户实现特定目标的面向封闭域的系统,(2)与人类进行对话的开放域会话代理,也称为闲聊模型。致力于构建端到端系统使用神经网络近年来越来越多地出版,是本节的主要重点。
随着这一领域研究的快速发展,我们发现特别是在开放域对话系统领域缺乏全面的调查。为了弥补这一研究空白,我们通过分析2015年以来在顶级会议上发表的所有论文,总结了该领域的研究。我们关注这些论文的关键方面来总结当前的趋势:语料库的使用、体系结构的实现、优化策略的使用、评价指标的评价效果。
这些在表1中进行了总结,我们观察到以下趋势:
语料库(Corpora)是指论文中使用的语言数据。最常用的语料库是Open Subtitles, Twitter Conversation Dialogues, Movie Triples, Cornell Movie Dialogues。最近,新的数据集如PERSONA聊天数据集、Reddit数据集已经向社区提供。
体系结构(Architecture)概述了本文中使用的体系结构类型。在这一领域所做的大多数研究都使用了具有注意机制的seq2seq模型的变体。最近,随着 transformer模型的创建,研究人员已经开始在开放领域对话系统中使用这种体系结构,但这项工作仍处于初级阶段。
评估(Evaluation)是开放域对话系统最重要的方面之一。这仍然是一个开放的研究问题,因为没有适当的或标准化的指标来评估绩效。研究人员主要依赖于适应自动化指标,如BLEU (Papineni等人,2002)、METEOR (Banerjee和Lavie, 2005)和基于嵌入的指标Shen等人(2017);Lowe等人(2017)验证了性能。然而,研究表明,这些指标与人类的评价几乎没有关联(Novikova等人,2017;Lowe等人,2017)。我们发现,人的评价是该领域存在的另一个主要的评价指标,研究人员使用不同的标准,如语义相关性,适当性,趣味性,流畅性,语法。它们列在表1中。当论文中没有提出标准时,我们简单地列出了人的评价。这指的是研究人员让人们简单地判断生成的回答和基本事实的回答中哪一个更好。




5. Conclusio
在这项工作中,我们总结了在语言生成领域所做的工作,从传统方法开始,到最近使用深度学习方法的工作。尽管开放领域对话系统的自然语言生成这一子领域进展迅速,但许多方法都是基于历史发现和先前的研究。我们总结了标准Reiter和Dale (Reiter and Dale, 2000)体系结构的重要贡献,并提供了解释和针对体系结构的六个不同组件进行的研究。
这项总结工作的另一个重要方面是识别会话代理领域持续存在的潜在研究空白。我们建议,解决这些问题将进一步推动该领域的发展。
5.1 Open Challenges for Open-Domain Dialogue Systems
尽管之前在开放领域对话系统领域所做的工作有助于推动该领域的发展,但仍存在影响其质量的具体问题。我们发现了三个主要问题:
1.编码上下文( Encoding Context)——编码上下文信息,如来自知识库的世界事实或对话的前几轮是重要的问题,以确保对话主体有足够的信息来产生一个连贯的、有信息的和新颖的响应,与对话的上下文协调一致。从表1中,我们发现很多之前的研究都使用了单个输入话语和生成的反应之间的一对一映射。这使得很难判断生成的响应的质量,或者根据对话的上下文判断模型的性能,或者当涉及到多回合对话时,模型将如何执行。
为了克服这一问题,研究人员将注意力集中在将对话的前几个回合作为模型的上下文信息。这是通过两种不同的方式实现的:通过顺序模型(Sordoni等人,2015年)和分层模型(Serban等人,2016年)。在上下文的顺序编码中,对话的前一轮被连接到当前输入的话语。在上下文的分层编码中,采用两步方法,分别执行话语级编码和话语间编码。Tian et al.,(2017)进行了一项实证研究,评估了顺序模型和层次模型的优缺点,表明在编码上下文信息时,层次模型优于顺序模型。
Dinan等人(2018)和Young等人(2018)分别使用 transformer模型和Tri-LSTM编码器方法对事实知识进行编码以增强模型。
2.融入个性(Incorporating Personality)——赋予对话代理连贯的人格是构建迷人和令人信服的对话代理的关键(Niu和Bansal, 2018)。人格的概念在心理学中得到了很好的研究。传统上,使用人格特征的研究一直基于标准的Big Five模型(外向性 extraversion、神经质 neuroticism、宜人性 agreeableness、尽责性 conscientiousness 和经验开放性 openness to experience ),一些早期构建个性化对话系统的工作也基于Big Five模型(Mairesse和Walker, 2007)。
然而,通过Big Five模型识别人格特征的获取是困难和昂贵(郑等人,2019;张等人,2018b)。利用心理语言学的替代方法仍处于初级阶段。为了解决这个问题,一些提出的方法是通过外显或内隐人格建模(Zheng等人,2019)。显式建模包括创建具有年龄、性别等特征的用户配置文件(Zheng等人,2019)或为用户分配人工角色并要求他们进行交互(Zhang等人,2018b)。人物角色的内隐建模涉及基于年龄、性别和其他个人信息等相似特征创建关于用户的向量(Li et al., 2016a;Kottur等人,2017)。
最近, transformer模型已用于会话代理(Wolf等人,2019年;Dinan等,2018;拉什金等人,2018)。Wolf等人(2019)演示了在PERSONA-CHAT数据集上使用 transformer模型生成个性化响应该模型将每个人工角色与对话的话语连接起来。
3.枯燥和通用的响应(Dull and generic responses)——基于 vanilla seq2seq构建端到端对话代理的一个问题是,它们容易生成枯燥和通用的响应,如“ I don’t know, I am not sure. ”。等(Vinyals和Le, 2015;Li et al., 2015)。这些琐碎的反应使得对话代理无法与人进行更长的对话。Li等人(2015)提出了一种通过优化函数克服这一问题的机制(见公式14,其中$T$T为目标句,$S$为源句)。当给定输入时,作者只考虑响应的似然性,并提出使用最大互信息(Maximum Mutual Information, MMI)作为优化目标函数(见式15),其中$\lambda$是惩罚一般响应的超参数。
$\hat{T} = arg \space max_T {logp(T \mid S)}$ (14)
$\hat{T} = arg \space max_T {logp(T \mid S) − \lambda logp(T )}$ (15)
最近的会话建模方法都是通过使用之前的话语作为上下文信息,或借助专注于输入话语的特定部分的注意机制,或使用强化学习(当代理产生琐碎或重复的话语时惩罚代理)来解决枯燥反应问题(Li等人,2016b, 2017;刘等人,2018)。
5.2 Future Directions
在上述小节中确定了三个开放挑战之后,我们现在就如何应对这些开放挑战提出两个有希望的未来方向。
1.认知架构(Cognitive Architectures)———— 我们认为自然语言生成不仅需要整合人工智能的基本方面,还需要整合认知科学(Reiter和Dale, 2000;太阳,2007)。认知架构(Cognitive Architectures,CA)的作用提供了一个不同的视角,还没有探索深度学习架构。认知架构为通过模拟人类行为构建智能代理提供了蓝图。认知架构中一个突出的模型是标准模型(图8)(Norris, 2017;Laird等人,2017)。这个模型提供了一个框架,在概念上和实践上处理长期记忆和短期记忆(也称为工作记忆),以及作为两者之间桥梁的动作选择机制。根据人类认知的这个模型,给定一个输入(例如,通过感知),输出是通过考虑存储在工作记忆和长期存储中的元素而产生的。
2.编码情绪内容( Encoding Emotional Content)———— 通过影响动机和行动选择,情绪被认为是决策的功能因此,计算情感模型应该建立在智能体决策体系结构的基础上。例如,Badoy等人(2014)提出使用四种基本情绪:快乐、悲伤、恐惧和愤怒来影响Qlearning代理。仿真结果表明,所提出的情感代理所需的步骤更少找到最优路径。在语言生成工作中,Zhuo等人(2018)提出了情绪聊天机(Emotional chat Machine, ECM),它不仅可以在内容(相关和语法)上生成适当的响应,还可以在情感(情感一致)上生成适当的响应。ECM使用三种新机制来解决这一问题,它们分别是:(1)通过嵌入情绪类别来建模情绪表达的高级抽象,(2)捕捉内隐内部情绪状态的变化,以及(3)使用外部情绪词汇表来使用外显情绪表达。实验表明,该模型不仅能生成适合于内容的反应,而且能生成适合于情感的反应。然而,在较长时间的对话中产生适当的情感反应的问题仍有待探索。
我们假设,通过整合认知架构的元素和添加情感内容,研究人员可以解决我们在前面部分中确定的开放挑战。通过调整深度学习方法来密切反映标准模型(图8)所假设的记忆机制,对话系统可以利用较长的会话上下文以及数据库中的世界和领域知识。通过加入情感内容,可以解决让对话代理反映个性的挑战。在未来的工作中,我们的目标是通过这两个方向来解决开放挑战。