论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey 深度学习在自然语言处理中的进展
Natural Language Processing Advancements By Deep Learning: A Survey深度学习在自然语言处理中的进展摘要自然语言处理(NLP)通过增强基于语言的人机交流的人类语言的理解,帮助增强智能机器的功能。根据计算能力的最新发展和大量语言数据的出现,推动了使用数据驱动方法自动进行语义分析的需求。由于在诸如计算机视觉,自动语音识别(尤其是NL...
Natural Language Processing Advancements By Deep Learning: A Survey
深度学习在自然语言处理中的进展
目录
摘要
自然语言处理(NLP)通过增强基于语言的人机交流的人类语言的理解,帮助增强智能机器的功能。根据计算能力的最新发展和大量语言数据的出现,推动了使用数据驱动方法自动进行语义分析的需求。由于在诸如计算机视觉,自动语音识别(尤其是NLP)等领域使用深度学习方法已显示出重大改进,因此数据驱动策略的使用现已普及。该综述对于深度学习的NLP的不同方面和应用进行了分类和讨论。它涵盖了NLP的核心任务和应用领域,并描述了深度学习方法和模型如何推动这些领域的发展。我们将进一步分析和比较不同的方法和最新模型。
索引词
自然语言处理,深度学习,人工智能
I.介绍
自然语言处理(NLP)是计算机科学的一个分支,为自然语言和计算机之间架起了一座桥梁。它可以帮助机器理解、处理和分析人类语言[1]。NLP通过数据上下文相关性的逻辑结果,能帮助理解人类生成的数据的工具的重要性。通过对数据上下文的更深入了解,数据变得更加有意义,从而促进了文本分析和挖掘。 NLP通过人类的通信结构和模式来实现这一目标。
NLP方法的开发越来越依赖于数据驱动的方法,这些方法有助于构建更强大、更健壮的模型[2,3]。计算能力的最新发展以及大数据更大的可用性使深度学习成为NLP领域中最吸引人的方法之一[2 – 4],特别是考虑到深度学习已经在相邻领域中表现出了卓越的性能,例如计算机视觉[5– 7]和语音识别[8,9]。这些发展导致范式从传统的数据驱动方法转变为旨在推动NLP的新型数据驱动方法。这种转变背后的原因很简单:新方法在结果方面更有希望,并且更易于设计。
作为利用深度学习方法在相邻学科中取得显著进步的重要提示,深度神经网络已应用于各种NLP任务,包括词性标注[10 – 12],命名实体识别[13,14]和语义角色标注[15 – 17]。与NLP应用相关的深度学习中的大多数研究工作都涉及有监督的学习或无监督的学习。
该综述涵盖了深度学习在NLP领域中所扮演的新角色以及各种应用。我们提出的研究[18]主要集中在架构上,很少讨论具体的应用程序。另一方面,本文介绍了将深度学习应用于NLP问题的挑战、机遇和评估。
该综述分为六个部分,包括本节介绍。第二部分列出了NLP和人工智能的理论层面,并探讨了深度学习解决现实问题的一种方法。它通过解决以下问题来激励这项研究:为什么在NLP中使用深度学习?第三部分讨论了理解NLP所必需的基本概念,涵盖了表示法、模型框架和机器学习中的示例性问题。第四部分总结了NLP域中使用的基准数据集。第五节重点介绍了深度学习已证明具有明显优势的一些NLP应用程序。最后,第六节进行了总结,还解决了一些开放的问题和有待改进的领域。
II.背景
长期以来,NLP一直被视为人工智能(AI)的一个重要领域,因为理解和生成自然语言是机器是否达到高级智能的重要指标。深度学习是一种有效的AI工具,因此我们接下来将介绍如何把深度学习应用于AI世界中。之后,我们解释将深度学习应用于NLP的动机。
A.人工智能与深度学习
曾经有“成功之岛”,其中通过AI功能处理大数据以产生信息来实现关键的运营目标(例如,欺诈检测)。因此,科学家和消费者期望在各种应用中得到增强。但是,要实现这一点需要了解AI及其机制和方法(例如算法)。Ted Greenwald,向不是人工智能专家的人解释了人工智能,他评论道:“Generally AI is anything a computer can do that formerly was considered a job for a human” [19]。
AI的目标是将信息技术(IT)的功能从以下功能扩展到(1)生成、通信和存储数据,以及(2)将数据处理为决策者和其他人所需的知识[20]。原因之一是可用数据量迅速增加,以至于人们现在无法处理所有可用数据。这留下了两个选择:(1)必须忽略甚至大部分现有数据,或者(2)必须开发AI以将大量可用数据处理为决策者和其他人可以理解的基本信息。深度学习是海量数据与AI之间的桥梁。
1)定义:深度学习是指将深度神经网络应用于大量数据,通过学习来处理任务的过程。任务的范围从简单分类到复杂推理。换句话说,深度学习是一套理想的机制,能够在给定足够广泛且相关的输入数据集的情况下,为任何问题提供最佳解决方案。笼统地说,深度学习是检测和分析数据中的重要结构/特征,目的是为给定问题制定解决方案。在这里,人工智能和深度学习相遇。 AI的目标或野心的一种形式是使机器胜过人脑的工作。深度学习是达到此目的的一种手段。
2)深度学习架构:在不同的研究领域,例如在采用递归神经网络(RNN)[21],卷积神经网络(CNN)[22]以及最近的递归神经网络[23]的NLP应用中,已经开发了许多深度学习架构。我们将讨论的重点放在对基本模型的回顾上,相关的重要出版物对此进行了解释。
多层感知器:多层感知器(MLP)至少具有三层(输入层、隐藏层和输出层)。一层只是神经元的集合,这些神经元用于将信息从上一层转换到下一层。在MLP体系结构中,一层中的神经元彼此不通信。 MLP采用非线性激活函数。一层中的每个节点都连接到下一层中的所有节点,从而创建了一个完全连接的网络**(图1)。 MLPs最简单的前馈神经网络(FNNs)类型。 FNNs代表神经网络的一般类别,其中节点之间的连接不创建任何循环,即在FNN中没有信息流的循环**。
卷积神经网络:卷积神经网络(CNNs)的结构受人类视觉皮层启发,是前馈神经网络的子类。 CNNs以基本的数学运算卷积命名,卷积产生了输入函数互操作性的度量。卷积神经网络通常需要用2D或3D数据图表示数据的情况。在数据映射表示中,数据点的接近度通常对应于它们的信息相关性。
在输入是图像的卷积神经网络中,数据图表明图像像素与它们的相邻像素高度相关。因此,卷积层具有3个维度:宽度、高度和深度。该假设可能解释了为什么大多数致力于CNNs的研究工作都是在计算机视觉领域进行的[24]。
CNN拍摄的图像表示为数值数组。执行特定的数学运算后,它将在新的输出空间中表示图像。此操作也称为特征提取,有助于捕获和表示关键图像内容。提取的特征可用于进一步分析,以完成不同的任务。一个例子是图像分类,其目的是根据一些预定义的类别对图像进行分类。其他示例包括确定图像中存在哪些对象以及它们的位置。参见图2。
在将CNN用于NLP的情况下,输入是表示为矩阵的句子或文档。矩阵的每一行都与语言元素(例如单词或字符)相关联。大多数CNN架构在其训练阶段都学习单词或句子的表示形式。各种分类任务中使用了各种CNN架构,例如情感分析和主题分类[22],[25] – [27]。 CNN也用于关系提取和关系分类[28],[29]。
递归神经网络:如果我们排列一系列FNN,并将每个FNN的输出作为输入提供给下一个,则将构建递归神经网络(RNN)。像FNNs一样,RNN中的图层可以分为输入、隐藏和输出图层。在离散的时间范围内,输入向量的序列作为输入被馈送,一次输入一个向量,例如,在输入每批向量,进行一些操作并更新网络权重之后,下一批输入将被馈送到网络。因此,如图3所示,我们在每个时间步进行预测,并使用当前隐藏层的参数作为下一个时间步的输入。
循环神经网络中的隐藏层可以承载过去的信息,换句话说,就是记忆。此特性使它们特别适用于处理一系列输入的应用程序,例如语言建模[30],即以机器可以理解的方式表示语言。稍后将详细描述该概念。
RNNs可以承载过去的丰富信息。考虑一句话:“迈克尔·杰克逊是歌手;有些人认为他是流行音乐之王。”人们很容易识别出他是指迈克尔·杰克逊。他的代名词出现在迈克尔·杰克逊之后的七个字上。捕获这种依赖性是RNNs的优势之一,其中RNNs中的隐藏层充当存储单元。长期短期记忆网络(LSTM)[31]是RNN最广泛使用的类别之一。 LSTMs试图捕获来自不同时间步长的输入之间的长时间依赖关系。现代机器翻译和语音识别通常依赖于LSTMs。
自动编码器:自动编码器在深度学习中实现了无监督方法。它们被广泛用于降维或NLP应用中,这些应用包括序列到序列的建模(图4所示)自动编码器的示意图。由于自动编码器不受监督,因此没有与每个输入相对应的标签。他们旨在学习每个输入的代码表示形式。编码器就像前馈神经网络,其中输入被编码为向量(代码)。解码器的操作类似于编码器,但是相反,即基于编码的输入构造输出。在数据压缩应用程序中,我们希望创建的输出尽可能接近原始输入。自动编码器是有损耗的,这意味着输出是输入的近似重建。
生成对抗网络:Goodfellow [32]引入了生成对抗网络(GAN)。如图5所示,GAN是两个神经网络(鉴别器和生成器)的组合。整个网络以迭代过程进行训练。首先,生成器网络生成假样本。然后,鉴别器网络试图确定该样本(例如,输入图像)是真实的还是假的,即,它是否来自真实的训练数据(用于建立模型的数据)。生成器的目标是以使鉴别器认为由生成器合成的人工(即生成的)样本是真实的方式来欺骗鉴别器。
这个迭代过程一直持续到生成器生成由鉴别器无法区分的样本为止。换句话说,将样本分类为伪造或真实的概率变得像是将一枚硬币投给鉴别器一样。生成模型的目标是在鉴别器试图识别伪造数据的同时捕获真实数据的分布。 GAN的有趣特征之一(关于生成)是:一旦训练阶段完成,就不需要鉴别网络,因此我们只能与生成网络一起工作。换句话说,访问经过训练的生成模型就足够了。
已经引入了不同形式的GAN,例如Sim GAN [7],Wasserstein GAN [33],info GAN [34]和DC GAN [35]。在最优雅的GAN实施方式之一[36]中,生成了完全人工的但几乎完美的名人面孔。这些图片不是真实的,而是网络制作的假照片。在NLP域中,GAN通常用于生成文本[37],[38]。
B. NLP中深度学习的动机
深度学习应用基于(1)特征表示和(2)深度学习算法以及架构的选择。这些分别与数据表示和学习结构相关联。令人惊讶的是,对于数据表示,通常认为哪些信息对手头的任务很重要与哪种表示实际产生良好的结果之间存在脱节。例如,在情感分析中,某些语言学家认为词典语义、句法结构和上下文具有最重要的意义。尽管如此,以前基于词袋(BoW)模型的研究显示了可接受的性能[39]。词袋模型[40],通常被视为向量空间模型,涉及仅表示单词及其出现频率的表示形式。 BoW忽略单词的顺序和交互,并将每个单词视为唯一特征。 BoW忽略了语法结构,但为某些人认为依赖语法的应用程序提供了不错的结果。该观察结果表明,简单的表示形式与大量数据结合使用可能比更复杂的表示形式效果更好或更好。这些发现证实了支持深度学习算法和架构重要性的观点。
NLP的进步通常与有效的语言建模息息相关。统计语言建模的目标是语言中单词序列的概率表示,由于维数灾难,这是一项复杂的任务。 [41]中提出的研究是神经网络语言建模的一项突破,旨在通过(1)学习单词的分布式表示和(2)提供序列的概率函数来克服维数灾难。
与其他领域(例如,计算机视觉)相比,NLP研究的主要挑战似乎是使用统计模型实现语言的深入表示的复杂性。 NLP应用程序的主要任务是提供文本表示,例如文档。这涉及特征学习,即,提取有意义的信息以使得能够进一步处理和分析原始数据。
传统方法首先是通过对特定应用程序进行仔细的人工分析来进行费时的手工制作功能,然后是开发算法以提取和利用这些功能的实例。另一方面,深度监督的特征学习方法是高度数据驱动的,可用于旨在提供可靠数据表示的更一般性的工作中。
由于大量未标记的数据,无监督的特征学习被认为是NLP中的关键任务。本质上,无监督特征学习是从未标记的数据中学习特征,以提供高维数据空间的低维表示。为此,已提出并成功实施了几种方法,例如K均值聚类和主成分分析。随着深度学习和大量未标记数据的到来,无监督特征学习已成为表示学习(NLP应用的先驱)的关键任务。当前,大多数NLP任务都依赖于带注释的数据,而大量的无注释数据进一步推动了利用深度数据驱动的无监督方法的研究。
鉴于深度学习方法在NLP应用程序中的潜在优势,对各种深度学习方法和体系结构进行全面分析,尤其是对NLP应用程序的关注似乎至关重要。
III.NLP中的核心概念
本章节主要从特征表示、seq2seq框架和NLP中的强化学习这三个方面来介绍与NLP相关的概念,其中特征表示有四种不同的类型:1)One-Hot 特征表示,2)连续词袋特征表示,3)词向量特征表示,4)字符级别的嵌入表示。
A.特征表示
分布式表示形式是一系列紧凑的、低维的数据表示形式,每个表示形式都具有一些独特的信息属性。对于NLP系统,由于与符号的原子表示有关的问题,必须学习单词表示。
首先,让我们集中讨论功能的表示方式,然后重点研究用于学习单词表示的不同方法。编码的输入特征可以是字符、单词[23]、句子[42]或其他语言元素。通常,与稀疏单词相比,更希望提供单词的紧凑表示。
如何选择文本表示的结构和级别曾经是一个尚未解决的问题。在提出了word2vec方法[43]之后,随后,在[42]中提出了doc2vec作为一种无监督算法,被称为Paragraph Vector(PV)。 PV的目标是从可变长度的文本部分(例如句子和文档)中学习定长表示形式。 doc2vec的主要目标之一是克服诸如BoW之类的模型的缺点,并为诸如文本分类和情感分析之类的应用程序提供有希望的结果。一种更新的方法是==“跳跃思维”模型==,该模型在句子级别应用word2vec [44]。通过利用编码器-解码器体系结构,该模型使用给定的句子生成周围的句子(图6)。接下来,让我们研究各种特征表示。
1)独热编码:在独热编码中,需要表示的每个唯一元素都有其尺寸,这导致了非常高的尺寸,非常稀疏的表示。假设用独热编码方法表示单词。关于表示结构,特征空间中不同单词之间没有有意义的联系。例如,与诸如“海洋”和“火”等不那么相关的词对相比,诸如“海洋”和“水”等高度相关的词不会彼此靠近(在表示空间中)。然而,一些研究工作使用独热编码提出了有希望的结果[2]。
2)连续词袋:连续词袋模型(CBOW)在NLP应用程序中经常使用。 CBOW在给定其周围上下文的情况下尝试预测一个单词,该单词通常由附近的几个单词组成[45]。== CBOW既不依赖于单词的顺序也不依赖于概率特征。因此,它通常不用于语言建模。通常对该模型进行训练,以用作更复杂任务的预训练模型。 CBOW的替代方法是加权CBOW==(WCBOW)[46],其中不同的向量获得不同的权重,反映了上下文中的相对重要性。最简单的示例可以是文档分类,其中特征是单词,权重是相关单词的TF-IDF分数[47]。
3)词级嵌入:词嵌入是上下文元素的一种学习表示,理想情况下,具有相关语义的单词在表示空间中高度相关。词嵌入表示背后的主要诱因之一是高泛化能力,而不是稀疏的高维表示[48]。与传统的词袋模型不同,在传统的词袋模型中,不同的词具有完全不同的表示方式,而不论它们的使用或搭配如何,学习分布式表示都利用上下文中的词使用优势,为语义相关的词提供相似的表示。创建词嵌入的方法有很多,包括[43],[45]在内的数项研究工作通过对随机数进行均匀采样来使用随机初始化,目的是在大型数据集上训练模型的有效表示。这种设置在直观上是可接受的,可用于初始化诸如词性标签之类的常见功能。但是,这可能不是表示频率较低的特征(例如单个单词)的最佳方法。对于后者,通常利用以有监督或无监督的方式进行训练的预训练模型来提高性能。
4)字符级嵌入:前面提到的方法大多处于较高的表示水平。低级表示(例如字符级表示)也需要特别注意,因为它们的表示简单并且具有纠正异常字符组合(例如拼写错误)的潜力[2]。为了生成字符级嵌入,已成功利用了CNNs [10]。
字符级嵌入已在不同的NLP应用程序中使用[49]。主要优点之一是能够使用较小的模型大小并使用较低级别的语言元素来表示单词[10]。这里的词嵌入是在字符上利用CNN的模型。采用字符级嵌入的另一个动机是词汇外词(OOV)问题,通常在给定单词的词嵌入中没有等效向量时会遇到这种问题。字符级方法可以大大缓解此问题。但是,这种方法在字符与语言的语义和句法部分之间的相关性较弱。因此,考虑到上述利用字符级嵌入的利弊,一些研究工作试图提出并实现更高级别的方法,例如使用子词[50]为OOV实例创建词嵌入以及在相关词之间创建语义桥[51]
B. Seq2Seq框架
NLP应用程序中的大多数基础框架都依赖于序列到序列(seq2seq)模型,在该模型中,不仅输入而且将输出表示为序列。这些模型在各种应用中都很常见,包括机器翻译、文本摘要、语音到文本和文本到语音应用。
最常见的seq2seq框架由编码器和解码器组成。编码器提取输入数据的序列,并生成一个中级输出,随后由解码器消耗,以产生一系列最终输出。编码器和解码器通常通过一系列递归神经网络或LSTM [31]单元实现。
编码器采用长度为T的序列,X = {x1,x2,···,xT},其中xt∈V = {1,···,| V |}是来自词汇表的单个输入的表示V,然后生成输出状态ht。随后,解码器从编码器获取最后一个状态,即ht,并根据其当前状态st,开始生成大小为L的输出,Y’= {y’1,y’ 2,…,y’ L},但真地输出是yt。在不同的应用中,解码器可以利用更多信息(例如上下文向量[52]或自注意力向量[53])来生成更好的输出。
seq2seq模型最广泛的训练方法之一是Teacher Forcing [54]。让我们将y = {y1,y2,···,yL}定义为与给定输入序列X对应的ground-truth输出序列。模型训练基于最大似然函数准则,采用向下交叉熵(CE)损失最小化:
其中θ是训练期间优化的模型参数。
使用交叉熵损失对模型进行优化后,即可生成如下完整序列。令 ˆyt表示模型在时间t处生成的输出。然后,通过下式生成下一个输出:
在NLP应用中,可以通过使用beam search来找到合理的良好输出序列来提高输出[3]。在beam search过程中,我们没有在每个步骤中选择前K个输出,也不是使用argmax来选择最佳输出,而是为输出序列生成了K条不同的路径,最后选择了性能更好的输出作为最终输出。尽管最近有一些研究[55] [56]通过在模型训练过程中加入类似的机制来改善beam search,但研究超出了本文的范围。
给定一系列ground-truth输出Y和生成的模型输出ˆY,使用任务特定的度量(例如ROUGE [57],BLEU [58]和METEOR [59])评估模型性能。例如,ROUGEL是NLP任务中的评估指标,它使用ground-truth Y和模型输出ˆY之间的最大公共子串来评估生成的输出。
C. NLP中的强化学习
尽管在III-B节中解释的seq2seq模型取得了巨大的成功。传统方法中,如何训练这些模型存在一些问题。一般来说,seq2seq模型(如在NLP应用中使用的模型)面临两个问题:(1)曝光偏差和(2)训练时间与测试时间测量之间的不一致[60]。
大多数流行的seq2seq模型都通过Teacher Forcing(第III-B节)将交叉熵损失最小化作为其优化目标。在Teacher Forcing中,在模型训练期间,解码器利用两个输入,即前一个解码器的输出状态st-1和ground-truth输入yt,来确定其当前的输出状态st。此外,它使用它们来创建下一个token,即yt。但是,在测试时,解码器完全依赖于模型分布中先前创建的token。由于没有真实数据,因此需要采取这一步骤来预测下一个动作。此后,在训练中,解码器输入来自ground-truth,而在测试阶段,它依赖于先前的预测。
曝光误差[61]在测试阶段通过输出创建引起误差增长。解决此问题的一种方法是通过仅依靠模型分布来最大程度地减少交叉熵损失,从而消除训练中对ground-truth的依赖性。计划采样[54]是处理这种障碍的一种流行方法。在安排采样期间,我们首先查看使用交叉熵损失对模型进行预训练,然后用模型生成的样本缓慢替换ground-truth。
seq2seq模型的第二个障碍是,当使用交叉熵损失完成训练时,通常使用诸如ROUGE或METEOR之类的不可微分的度量进行评估。这将在训练目标和测试评估指标之间形成不一致。最近,已经证明可以通过利用强化学习的技术来解决这两个问题[60]。
在大多数强化学习的著名模型中,策略梯度技术[62](例如REINFORCE算法[63])和基于演员-评论家(actor-critic)的模型(例如value-based iteration [64]和Q-learning [65]),是NLP深度学习中最常用的技术之一。
Daume等人最初在训练时使用模型预测(相对于ground-truth)进行序列建模和生成。 [66]。根据他们的方法SEARN,可以将结构化预测表征为以下强化学习案例之一:该模型利用其预测来生成动作序列(单词序列)。然后,在每个时间步长,使用贪婪搜索算法来学习最佳操作,并且将训练该策略以预测该特定操作。
在Actor-Critic训练中,actor通常与用于生成输出的神经网络相同,而critic是一个回归模型,用于估计actor对输入数据的表现。actor随后收到critic的反馈并改善其行为。图7显示了此框架。值得注意的是,在大多数与NLP相关的应用程序中,操作就像选择下一个输出token,而状态是解码的每个阶段的解码器输出状态。由于这些应用中的动作空间较小,因此这些模型主要用于机器人[67]和Atari游戏[68]。但是,当我们在NLP应用程序中使用它们时,它们面临多个挑战。大多数NLP应用程序中的操作空间可以定义为词汇表中token的数量(通常在50K到150K token之间)。将其与简单的Atari游戏中的动作空间进行比较,该游戏平均少于20个动作[68],这说明了为什么将这些Actor-Critic模型应用于NLP应用程序时会遇到困难。一个主要的挑战是NLP应用程序中庞大的action space,这不仅会导致难以正确选择action,而且还会使训练过程非常缓慢。这使得找到最佳Actor-Critic模型的过程变得非常复杂,并且模型收敛通常需要对模型进行大量调整。
IV.数据集
许多从事不同任务的研究人员都使用基准数据集,例如下面讨论的那些。机器学习中的基准测试是指对方法和算法的评估,将它们在学习特定模式方面的能力进行比较。基准测试有助于相对于其他现有方法的新方法或实践的验证。
基准数据集通常采用以下三种形式之一。
1)第一个是从各种现实世界实验获得的real-world data。
2)第二种是人工模拟现实世界模式的synthetic data。生成合成数据以代替实际数据供使用。此类数据集在需要的数据量远远大于可用数据量的应用程序中,或者在诸如医疗保健领域这样的隐私考虑因素至关重要且严格的应用程序中尤为重要。
3)第三类是toy datasets,目的是用于演示和可视化。通常,它们是人工生成的;一般不需要表示real-world data模式。
深度学习利用的基础是数据的可用性,以教会系统有关模式识别的知识。模型的有效性取决于数据的质量。尽管成功实现了诸如BERT [69]之类的通用语言建模技术,但此类模型只能用于预训练模型。之后,需要在与所需任务相关的数据上训练模型。今后,基于不同机器领域(如NLP)的日常需求,创建新数据集至关重要。
另一方面,创建新数据集通常不是一件容易的事。非正式地讲,新创建的数据集应该是:可以训练的正确数据,足以进行评估并且可以准确地进行工作。回答“正确和准确的数据是什么意思”的问题是高度基于应用程序的。基本上,数据应具有足够的信息,这取决于数据的质量和数量。
要创建数据集,第一步总是询问“我们要做什么以及需要解决什么问题?”和“我们需要什么样的数据以及需要多少数据?”,下一步是创建训练和测试部分。训练数据集用于训练模型,以了解如何找到输入与关联的输出之间的连接。测试数据集用于评估机器的智能,即训练后的模型可以在看不见的测试样本上运行的程度。接下来,我们必须进行数据准备,以确保数据及其格式对于人类专家而言简单易懂。之后,可能会出现数据可访问性和所有权问题。数据的分发可能需要获得特定的授权,尤其是在我们处理敏感或私有数据时。
根据上述路线图,创建适当的数据集非常复杂且非常重要。这就是为什么研究人员和开发人员经常选择很少的数据集进行基准测试的原因。表I提供了广泛使用的基准数据集的摘要。
V.深度学习中的NLP任务
本节介绍使用深度学习的NLP应用程序。图8显示了代表性的NLP任务(及其所属的类别)。一个基本的问题是:“我们如何评估NLP算法、模型或系统?”在[70]中,已经描述了一些最常见的评估指标。本参考资料说明了评估NLP系统的基本原理。
A.基本任务
1)Part-Of-Speech Tagging(词性标注):词性标注是自然语言处理中的基本任务之一。这是用单词的语音类别标注单词的过程。语音的一部分被用于许多关键任务,例如命名实体识别。词性标注的一种常用数据集是WSJ语料库。该数据集包含超过一百万个token,已被广泛用作POS标签系统性能评估的基准数据集。传统方法仍然可以很好地完成此任务[12]。然而,已经提出了基于神经网络的方法来进行词性标注[71]。
例如,已开发出名为CharWNN的深度神经网络体系结构,以使用卷积神经网络对POS标签进行词级和字符级表示[10]。 [10]中的重点是字符级特征提取的重要性,因为他们的实验结果表明,在没有字符级特征的情况下必须采用手工制作的功能来实现最新技术。在[72]中,已经提出了用于序列标注任务的各种基于神经网络的模型,例如LSTM网络,双向LSTM网络,具有CRF层的LSTM网络等。序列标注本身包括词性标注、分块和命名实体识别。同样,已经提出了基于全局规范化转换的神经网络体系结构用于POS标签 [73]。表II总结了最新的结果。
2)Parsing(分析):分析是将结构分配给可识别的字符串。有不同类型的解析。成分句法分析尤其是指为句子分配句法结构。在[81]中引入了贪婪分析器,该分析器使用矢量表示对内容进行语法和语义汇总。为了增强[81]的结果,[82]中提出的方法侧重于学习形态嵌入。最近,深度神经网络模型的性能优于传统算法。表III总结了最新的结果。
另一种类型的分析称为“依赖关系分析”。依存关系结构显示了目标句子中单词之间的结构关系。在依赖关系分析中,短语元素和短语结构规则对过程没有帮助。而是,仅根据句子中的单词和单词之间的关联关系来表达句子的句法结构。
神经网络在通用性和降低特征计算成本方面显示出了优势。在[87]中,提出了一种基于神经网络的新颖方法,用于基于转换的依赖分析器。在特定于任务的转换系统上运行的基于神经网络的模型也已用于依赖关系分析[73]。已经提出了带有双仿射分类器的正则化分析器,用于预测弧和标签[88]。双向LSTM已在依赖分析器中用于特征表示[89]。一种新的控制结构已经被引入到基于栈LSTM的序列到序列神经网络中,并已用于基于转换的分析中[90]。
3)Semantic Role Labeling(语义角色标签):语义角色标注(SRL)是文本参数的识别和分类过程。它旨在表征元素,以确定“谁”对“谁”做了“什么”以及“如何”、“在哪里”和“何时”。它识别句子的谓词-论元结构。本质上,谓词指的是“什么”,而论元则由关联的参与者和文本中的属性组成。 SRL的目标是提取谓词和相关论元之间的语义关系。
先前报告的大多数研究工作都基于关于语义角色的显式表示。最近,深度学习方法已实现了SRL的最新技术,而没有考虑显式语法表示[91]。另一方面,有人认为,可以利用句法信息的使用来提高与语法无关的模型的性能[92]。已经提出了一种语言学上的自注意力(LISA)模型,以利用多任务学习和自注意力来有效利用SRL的句法信息[93]。当前最先进的方法采用谓词和论元的联合预测[94],新颖的词表征方法[95]和自注意力模型[96]。参见表IV。
B.文本分类
文本分类的主要目的是为文本部分(可以是单词、句子或整个文档)分配预定义的类别,以进行初步分类以及进一步的组织和分析。一个简单的例子是将给定文档分类为政治或非政治新闻。
使用CNNs进行句子分类,即通过微调在预训练的词向量之上训练模型,从而在学习特定于任务的向量方面带来了显着的进步[22]。后来,动态卷积神经网络(DCNN)架构(本质上是具有动态k-max池化方法的CNN)被用于捕获句子的语义建模[98]。除了CNN,RNN也已用于文本分类。 LSTM-RNN体系结构已在[99]中用于在定义的Web搜索任务中具有特别优势的句子嵌入。分层注意力网络(HAN)已被用来捕获文本的分层结构,具有单词级和句子级的注意力机制[100]。
一些模型使用RNN和CNN的组合进行文本分类,例如[101]。除了具有有效词表征方法的最大池化之外,这是一种循环体系结构,与简单的基于窗口的神经网络方法相比,它具有优越性。另一种统一的架构是[102]中提出的C-LSTM,用于分类中的句子和文档建模。表V总结了当前的最新技术。
C.信息抽取
信息抽取可从“非结构化”数据(例如社交媒体帖子和在线新闻)中识别结构化信息。深度学习已用于有关子任务(例如命名实体识别、关系抽取、共指消解和事件抽取)的信息抽取。
1)命名实体识别:命名实体识别(NER)旨在将上下文中的命名实体定位和分类为预定义的类别,例如人物和地点的名称。深度神经网络在NER中的应用已通过使用CNN [107]和RNN体系结构[108]以及双向LSTM和CNN混合体系结构进行了研究[14]。 NeuroNER [109],一种命名实体识别工具,基于人工神经网络运行。表VI报告了最新模型。
2)关系抽取:关系抽取旨在查找实体对之间的语义关系。递归神经网络(RNN)模型已经被提出通过学习组成向量表示来进行语义关系分类[113]。对于关系分类,也通过提取词汇和句子级别的特征来使用CNN体系结构[28]。
3)共指消解:共指消解包括标识引用同一实体的上下文中的提及。例如,提到的“car”,“Camry”和“it”都可以指同一实体。在[114]中,第一次将强化学习(RL)应用于共指消解。当前最先进的方法利用注意力机制[115]。
4)事件抽取:从文本中抽取信息的一种特定类型是事件。这样的抽取可以涉及识别与事件有关的触发词,并且将标签分配给代表事件触发的实体提及。卷积神经网络已被用于事件检测。他们使用基于特征的方法处理问题,包括详尽的特征工程和用于特征生成的错误传播现象[116]。在2018年,Nguyen和Grishman应用了graph-CNN(GCCN),其中将卷积运算应用于句法相关的单词以及连续的单词[117];它们的添加的实体信息反映了使用CNN模型的最新技术。
D.情感分析
情感分析的主要目标是通过上下文挖掘从文本中提取主观信息。情感分析被认为是基于源数据的高级推理。情感分析有时被称为观点挖掘,因为它的主要目标是分析有关产品、问题和各种主题的人类观点、情感甚至是对产品的情绪。关于情感分析或观点挖掘的重要著作包括[118],[119]。自2000年以来,由于情感分析与各种应用程序之间的关系,与新研究挑战的关联以及丰富数据的可用性,引起了人们对情感分析的广泛关注。
情感分析研究的一个关键方面是内容粒度。考虑到此标准,情感分析通常分为三个类别/级别:文档级、句子级和方面级。
1)文档级的情感分析:在文档级,任务是确定整个文档是否反映出对一个实体的正面或负面情绪。这与针对多个条目的观点挖掘不同。门控递归神经网络架构已被成功地用于有效编码文档语义结构中句子之间的关系[120]。还研究了域自适应性,将训练后的模型部署在看不见的新资源上[121]。
2)句子级的情感分析:在句子级别,情感分析确定句子中表达的观点的正面、负面或中立。句子级情感分类的一般假设是,表达的句子中仅存在一个持有者的观点。通过学习短语的向量空间表示,将递归自动编码器用于句子级别的情感标签预测[122]。长短期记忆(LSTM)递归模型也已用于推特情感预测[123]。情感树库和递归神经张量网络[124]已显示出预测细粒度情感标签的希望。
3)方面级的情感分析:文档级和句子级的情感分析通常集中于情感本身,而不是情感目标,例如产品。在假设存在情感及其目标的情况下,方面级的情感分析直接针对一种观点。文档或句子通常可能没有正面或负面的情绪,但可能有多个不同目标的子任务,每个目标都有正面或负面的情绪。这可能使方面级的分析比其他类型的情感分类更具挑战性。
方面级的情感分析通常涉及方面情感分类和方面提取。前者确定对不同方面(正面、中性或负面)的意见,而后者则确定要进行上下文评估的目标方面。例如,考虑以下句子:“This car is old. It must be repaired and sold!”。 “This car”必须接受评估,并且必须首先提取。在此,对此方面的看法是负面的。
对于方面级的情感分类,提出了基于自注意力的LSTM,以将方面和句子内容联系起来进行情感分类[125]。对于方面提取,深度学习已成功地在观点挖掘中提出[126]。最先进的方法依赖于将基于方面的情感分析转换为句子对分类任务[69],基于受欢迎语言模型BERT的后训练方法[127] [112]以及采用预训练的嵌入[128]。
E.机器翻译
机器翻译(MT)是NLP的领域之一,它受到深度学习的进步的深刻影响。下面的第一小节介绍了深度学习前阶段使用的方法,如参考的NLP教科书中所述,例如“Speech and Language Processing” [129]。本节的其余部分专门研究[130]开始的基于神经网络的MT最新创新。
1)传统机器翻译:1954年[131]发生了最早的机器翻译演示,作者试图将俄语翻译成英语。该翻译系统基于六个简单规则,但是词汇量非常有限。直到1990s年代,随着越来越多的双语语料库的出现,机器翻译的成功统计实现出现了[129]。在[58]中,BLEU评分被引入作为一种新的评估指标,与唯一的涉及使用人工进行评估的方法相比,可以更快速的改善。
2)神经机器翻译:在图像分类任务中神经网络取得成功之后,研究人员开始在机器翻译(NMT)中使用神经网络。== 2013年前后,研究小组开始在NMT方面取得突破性成果。与传统的统计机器翻译不同,NMT基于端到端神经网络[132]。这意味着不需要大量的预处理和单词对齐。相反,重点转移到了网络结构上。
图11显示了用于机器翻译的端到端循环神经网络的示例。一系列输入tokens被馈送到网络中。一旦到达句子结尾(EOS)token,它将开始生成输出序列。以与输入序列相同的循环方式生成输出序列,直到到达句子结束token。这种方法的一个主要优点是不需要指定序列的长度。网络会自动将其考虑在内。换句话说,句子结束token确定序列的长度。网络隐式地了解到较长的输入句子通常会导致较长的输入输出长度可变的句子,并且顺序可以更改。例如,图9中的第二个示例显示形容词通常在英语中的名词之前出现,而在西班牙语中的名词之后出现。由于网络可以捕获此类属性,因此无需明确指定。而且,NMT使用的内存量只是传统统计机器翻译中使用的内存的一小部分[133]。
[130]是结合递归神经网络进行机器翻译的早期工作之一。他们能够实现的困惑度==(较低的值表示更好的模型的度量)比基于最新比对的翻译模型低43%。他们的recurrent continuous translation model(RCTM)能够明确捕获单词顺序、语法和源句子的含义。它将源句子映射为目标语言中句子的概率分布。 RCTM估计将句子e = e1 + … +ek将源语言转换为目标语言句子f = f1 + … + fm的概率P(f | e)。 RCTM通过考虑源句子e和目标语言中的前一个单词f1:i-1来估计P(f | e):
RCTM生成的表示作用在较低层的n-gram上,并且随着一个句子移到较高层,对整个句子的作用更大。通过应用不同的卷积层来执行此层次表示。首先,每个单词的连续表示;即,如果句子为e = e1 … ek,则单词ei的表示形式为v(ei)∈Rq×1。这将导致句子矩阵Ee∈Rq×k,其中Ee:,i = v(ei)。句子的这种矩阵表示形式将被馈送到一系列卷积层中,以生成递归神经网络的最终表示形式e。该方法在图10中进行了说明。
为了考虑句子长度,作者引入了RCTM II,它估计目标句子的长度。与其他现有的机器翻译系统相比,RCTM II在WMT数据集上具有更好的困惑度(请参见表I的顶部)。
在另一项工作中,[134]提出了一种端到端的序列学习方法,而没有对序列的结构进行严格的假设。他们的方法包括两个LSTM,一个用于将输入映射到固定维数的向量,另一个LSTM用于对向量的输出序列解码。他们的模型能够处理长句子以及对词序敏感的句子表示形式。如图11所示,模型读取“ ABC”作为输入序列,并产生“ WXYZ”作为输出序列。 token指示预测的结束。给定输入序列(ζ),通过最大化翻译的对数概率(η)来训练网络。换句话说,目标函数是:
D是训练集,| D |是它的大小。他们方法的新颖性之一是颠倒了源句子的词序。这有助于LSTM学习长期依赖关系。在解码器阶段具有固定长度的向量是编码-解码器方法的瓶颈之一。 [132]认为,网络将很难将来自输入句子的所有信息压缩为固定大小的向量。他们通过允许网络搜索来解决此问题源句子中可用于预测翻译的片段。代替将输入语句表示为固定大小的向量,在[132]中,将输入语句编码为向量序列,并使用称为注意机制的方法选择它们的子集,如图12所示。
在他们的方法中**,P(yi | y1,…,yi-1,X)= g(yi-1,si,ci),其中si = f(si-1,yi-1,ci)。尽管先前的c对于所有时间步都是相同的,但在这里c在每个时间步取不同的值ci**。这说明了该特定时间步长周围的注意力机制(上下文向量)。 ci根据以下公式计算:
这里的a是由前馈神经网络表示的对齐模型。另外,hj = [→hT j,←hT j],这是一种在hj中同时包含有关前单词和后单词的信息的方式。无论输入句子的长度如何,该模型都能胜过简单的编码-解码器方法。
改进的机器翻译模型不断涌现,部分是由于人们的兴趣增长以及需要了解其他语言来推动的。大多数模型是端对端解码-编码器方法的变体。例如,[135]试图处理稀疏词的问题。他们的LSTM网络由使用残差的编码器和解码器层以及注意机制组成。他们的系统能够减少训练时间,加快推理速度并处理稀疏单词的翻译。表VII总结了一些最新的神经机器翻译模型之间的比较。
F.问题回答
问答(QA)是信息检索(IR)的细粒度版本。在IR中,必须从一组文档中检索所需的一组信息。所需的信息可以是特定的文档、文本、图像等。另一方面,在质量检查中要寻求特定的答案,通常是那些可以从可用文档中推断出来。 NLP的其他领域(例如阅读理解和对话系统)与问题回答相交。
自1960年代以来,一直在进行计算机问答系统的研究。在本节中,我们将概述问答系统的历史,并重点介绍该领域的突破。像NLP中的所有其他领域一样,问答也受到深度学习的发展的影响[141],因此我们提供了深度学习环境中QA的概述。我们还简要介绍了视觉问答。
1)基于规则的问答:Baseball [142]是QA的早期著作(1961年)之一,该研究致力于通过使用游戏数据库来回答与棒球比赛有关的问题。棒球系统包括:(1)读入问题,(2)对问题中的单词进行字典查找,(3)对所讨论单词的句法(POS)分析,(4)提取输入问题的内容分析,以及(5)估计与回答输入问题的相关性。
IBM’s的[143]统计问答系统由四个主要组件组成:
1)问题/答案类型分类
2)查询扩展/信息检索
3)名称实体制作
4)答案选择
当语义上等效的关系用不同的措词表达时,某些QA系统将失败。 [144]通过提出基于互信息和期望最大化的模糊关系匹配来解决这个问题。
2)深度学习时期的问答:智能手机(Siri, Ok Google, Alexa, etc.)和虚拟个人助理是QA系统的常见示例,许多人每天与之互动。尽管早期的此类系统采用基于规则的方法,但如今,其核心算法是基于深度学习的。表VIII列出了Siri在iPhone上提供的一些问题和答案。
[146]是第一批基于机器学习的论文之一,该论文报告了针对阅读理解测试的质量检查结果。系统尝试在数据库中选择一个具有问题答案的句子,并且特征向量代表每个问题句子对。 [146]的主要贡献是提出了一个特征向量表示框架,旨在为学习模型提供信息。一共有五个分类器(location, date, etc.),每种类型一个。他们能够实现与以前方法相比具有竞争力的准确性。
如图13所示,[145]使用卷积神经网络来以固定长度矢量的形式编码问题-答案句子对,而与输入句子的长度无关。它们没有使用诸如余弦相关性的距离度量,而是合并了非线性张量层以匹配问题和答案之间的相关性。等式9计算问题q及其对应答案a之间的匹配度。
f是标准的逐元非线性函数,M [1:r]∈Rns×ns ×ris张量,V∈Rr×2ns,b∈Rr,u∈Rr。
该模型试图捕获问题和答案之间的相互作用。受神经科学发现的启发,[71]在其动态记忆网络(DMN)中加入了情节记忆。通过处理输入序列和问题,DMN形成情景记忆来回答相关问题。如图14所示,他们的系统是根据原始的Input-Question-Answer三元组进行训练的。
DMN由四个相互通信的模块组成,如图15所示。输入模块将原始输入文本编码为分布式矢量表示形式。同样,问题模块将问题编码为其分布式矢量表示形式。情节式存储器模块使用注意力机制,以便将精力集中在输入模块的特定部分上。通过迭代过程,此模块将生成考虑问题以及先前内存的内存矢量表示。答案模块使用最终存储向量生成答案。该模型改进了如图14所示任务的最新结果。DMN是可以潜在地用于各种NLP应用程序(例如分类、问答和序列建模)的体系结构之一。
[147]引入了动态协同网络(DCN),以解决与错误答案相对应的局部最大值;它被认为是回答问题的最佳方法之一。
3)视觉问答:给定输入图像,视觉问答(VQA)试图回答有关图像的自然语言问题[148]。== VQN==解决了多个问题,例如对象检测、图像分割、情感分析等。[148]通过提供包含超过250K图像,760K问题和大约10M答案的数据集,引入了VQA的任务。 [149]提出了一种基于神经的方法来回答有关输入的问题图片。如图16所示,Neural-Image-QA是由CNN和LSTM组成的深度网络。由于问题可以有多个答案,因此该问题被分解为根据有限的词汇集ν预测一组答案词aq,x = {a1,a2,…,aN(q,x)},其中N(q, x)表示有关给定问题的答案词数。
Do humans and computers look at the same regions to answer questions about an image? [151]试图通过对VQA中的human attention进行大规模研究来回答这个问题。他们的发现表明,VQA似乎与人类不在同一地区。最后,[150] 包含用于VQA的空间存储网络。图17显示了他们模型的推断过程。如图所示,其系统中的特定注意机制可以突出显示输入图像中的关注区域。
G.文件摘要
文档摘要是指一组问题,这些问题涉及在给定一个或多个文档作为输入的情况下生成摘要语句。
通常,文本摘要分为两类:
1)抽取式摘要,其目的是识别文档中最突出的句子并将其作为摘要返回。
2)生成式摘要,目标是从头开始生成摘要句子;它们可能包含原始文档中未出现的新颖词。
这些方法中的每一种都有其自身的优点和缺点。抽取式摘要易于产生冗长的,有时是重叠的摘要句子;但是,结果反映了作者的表达方式。生成式方法产生的摘要较短,但是很难训练。
关于使用抽取式和生成式方法的文本摘要的主题,有大量研究。作为使用神经网络进行抽取摘要的最早工作之一,[152]提出了一种使用排序技术来抽取输入中最显着句子的框架。 [153]改进了该模型,该模型使用文档级编码器表示句子,并使用分类器对这些句子进行排序。另一方面,在生成摘要中,[154]首次将注意力放在序列到序列(seq2seq)模型上来解决标题生成问题。但是,由于简单的注意力模型比抽取的模型表现差,因此针对此任务提出了更有效的注意力模型,例如graph-based attention [155]和transformers [137]。为了进一步改进生成式文本摘要模型,[156]提出了第一个指针生成模型,并将其应用于DeepMind QA数据集[157]。这项工作的结果是,出现了the CNN/Daily Mail dataset,该数据集现已成为摘要任务中广泛使用的数据集之一。 [158]也为类似的任务采用了复制机制。但是他们的分析揭示了基于注意力的编码-解码器模型的关键问题:它们通常会生成由重复短语组成的异常摘要。最近,[52]使用类似的框架获得了生成式文本摘要的最新结果。他们通过避免生成未知标记并用输入文章中的标记替换这些单词来减轻不自然的摘要。后来,研究人员将重点转移到使用句子嵌入的方法,该方法首先选择文档中最突出的句子,然后对其进行更改以使其更易于生成[159],[160]。在这些模型中,首先抽取突出的句子,然后使用解释模型将其生成。抽取过程中使用句子分类或排序,而生成则尝试删除句子中的额外信息并将其作为简短摘要显示。 Fast-RL [159]是该系列作品中的第一个框架。在Fast-RL中,抽取经过预训练以选择突出的句子,而生成则使用指针生成模型进行预训练以生成解释。最后,为了合并这两个不可微的组成部分,他们建议使用Actor-Critic Q-learning方法,其中actor接收单个文档并生成输出,而critic则根据与基本事实摘要的比较来评价输出。
尽管评估汇总模型性能的标准方法是使用ROUGE [57]和BLEU [58],但此类措施仍存在主要问题。例如,ROUGE度量集中于两个句子之间共享的n-grams的数量。这样的方法错误地给使用不同单词的生成式摘要分配了低分,但却提供了一个很好的解释,人们会对其进行高度评价。显然,在这种情况下,需要更好的自动化评估方法。
当前的汇总模型还有其他问题。Shi et al [161]提供了有关文本摘要的全面调查。
H.对话系统
对话系统正迅速成为人机交互的主要工具,部分原因是其具有广阔的发展潜力和商业价值。一种应用是自动化客户服务,既支持在线业务又支持实体业务。客户期望与公司及其服务打交道时,其速度、准确性和尊重度会不断提高。由于知识渊博的人力资源的高昂成本,公司经常转向智能对话机器。请注意,会话机器和对话机器通常可以互换使用。
对话系统通常是基于任务或非任务的(图18)。尽管对话系统中可能有自动语音识别(ASR)和语言到语音(L2S)组件,但本节的讨论仅涉及对话系统的语言组件。与语音技术相关的概念将被忽略。
尽管在对话系统的后端(尤其是在语言理解模块中)使用了有用的统计模型,但大多数已部署的对话系统仍依赖昂贵的手工和手动功能进行操作。此外,这些人工设计的系统对其他领域和功能的通用性是有问题的。因此,最近的注意力集中在深度学习上,以增强性能、通用性和鲁棒性。深度学习促进了端到端面向任务的对话系统的创建,该系统丰富了框架,使已注释的特定任务的对话资源之外的对话得以泛化。
1)基于任务的系统:基于任务的对话系统的结构通常包含以下元素:
•自然语言理解(NLU):该组件通过为语音内容分配构成结构来处理理解和解释用户的语音环境(例如,一个句子)并捕获其句法表示和语义解释,以允许后端操作/任务。无论对话上下文如何,通常都会利用NLU。
•对话管理(DM):由NLU生成的表示形式将由对话管理处理,对话管理将调查上下文并返回合理的语义相关响应。
•自然语言生成(NLG):自然语言生成(NLG)组件根据DM组件提供的响应产生话语。
总体流程如下:NLU模块(即语义解码器)将语音识别模块的输出转换为某些对话元素。然后,DM处理这些对话元素,并提供适当的响应,该响应被馈送到NLG以生成响应。 NLU中的主要管道是对用户查询域和用户意图进行分类,并填充一组槽以创建语义框架。通常习惯同时执行意图预测和时隙填充[162]。大多数面向任务的对话系统都采用时隙填充方法来对会话特定域中的用户意图进行分类。为此目的,需要有预定义的任务。这取决于具有不同关联插槽的手动制作状态。今后,设计的对话系统将在其他任务中用途有限或无用。
最近基于深度强化学习设计了面向任务的对话系统,该系统在性能[163],领域适应[164]和对话生成[165]方面提供了有希望的结果。这是由于转向端到端可训练框架来设计和部署面向任务的对话系统。端到端框架合并并使用处理外部数据库的单个模块,而不是传统上使用的管道。尽管端到端对话系统具有易处理性(即易于培训和易于工程设计),但由于需要通过查询与外部数据库进行互操作,因此它们并不适合于面向任务的设置。解决该挑战的一些方法包括将用户输入转换为内部表示[166],结合监督学习和强化学习[167],以及将用于提问的内存网络方法[168]扩展到对话系统[169]。
2)基于非任务的系统:与基于任务的对话系统相反,设计和部署基于非任务的对话系统的目标是使机器具有与人类进行自然对话的能力[170]。通常,聊天机器人属于以下类型之一:基于检索的方法和生成方法。基于检索的模型可以访问信息资源,并且可以提供更简洁、流畅和准确的响应。但是,由于它们对后端数据资源的依赖性,它们在提供的响应种类方面受到限制。另一方面,生成模型的优点是,当这些响应不在语料库中时,能够产生适当的响应。但是,与基于检索的模型相反,它们更倾向于因其生成模型而产生语法和概念上的错误。
基于检索的方法从候选响应中选择适当的响应。因此,关键要素是查询响应操作。通常,此问题已被表述为搜索问题,并使用IR技术完成任务[171]。基于检索的方法通常采用单转响应匹配或多转响应匹配。在第一种类型中,当前查询(消息)仅用于选择合适的响应[172]。后一种类型将当前消息和先前的话语作为系统输入,并基于即时和时间信息检索响应。该模型尝试选择一个考虑整个上下文的响应,以确保对话的一致性。已经提出了基于LSTM的模型[173],用于创建上下文和响应向量。在[174]中,各种特征和多个数据输入已被合并,以使用深度学习框架进行摄取。当前关于基于检索的聊天机器人的基本模型依赖于注意力机制和序列匹配增强的多回合响应选择[175]。
生成模型不假定预定义的响应可用。从头开始产生新的响应,并基于经过训练的模型。生成模型通常基于序列模型,并将输入查询映射到目标元素作为响应。通常,设计和实现能够在人类层面进行对话的对话代理程序非常具有挑战性。典型的方法通常包括学习和模仿人类对话。为了实现这一目标,通常会在大量会话中对机器进行训练。但是,这不能直接解决遇到语外对话的问题。问题是:How can an agent be taught to generate proper responses to conversations that it never has seen? 由于查询和相应响应之间缺少内容匹配,这是由于人类可以提供的范围广泛的合理查询所致,因此它必须处理在机器经过训练的数据语料库中不完全可用的内容。
为了解决上述一般性问题,必须回答一些基本问题:(1)自然对话的核心特征是什么? (2)如何测量这些特性? (3)我们如何将这些知识整合到机器(即对话系统)中?这三个要素的有效整合决定了机器的智能。定性标准是观察所产生的话语是否可以与自然的人类对话区分开。对于定量评估,对抗评估最初用于句子生成的质量评估[176],并用于对话系统的质量评估[177]。序列建模的最新进展鼓励了许多有关自然语言生成的研究[178]。此外,深度强化学习在自然语言生成中产生了有希望的表现[165]。
3)关于对话系统的最后说明:尽管AI取得了显着进步,并且对对话系统的关注度很高,但实际上,成功的商业工具(如Apple’s Siri 和 Amazon’s Alexa)仍然严重依赖手工功能。考虑到自然语言的复杂性、框架设计的困难以及可用数据源的复杂性,设计和训练数据驱动的对话机仍然非常具有挑战性。
VI.结论
在本文中,我们对使用深度学习的自然语言处理中最杰出的工作进行了全面调查。我们为介绍不同的NLP核心概念、方面和应用程序提供了分类的上下文,并强调了每个相关类别中进行的最重要的研究工作。深度学习和NLP是当今发展最快的两个研究主题。由于这一迅速的进展,希望很快就能有新的有效模型取代当前的最新方法。这可能会导致调查中提供的某些参考文献过时,但那些描述改进方法的新出版物可能会引用这些参考文献。
但是,该调查的基本特征之一是它的教育意义,它可以使人们对该领域的关键要素有一个准确的了解,并解释最著名的研究工作。希望这项调查将指导学生和研究人员拥有必不可少的资源,既学习必需的知识,又进一步促进NLP与深度学习的集成。
更多推荐
所有评论(0)