综述:自然语言处理中深度学习应用综述

原文链接:https://arxiv.org/abs/1807.10854

在过去几年中,自然语言处理领域由于深度学习模型的使用取得重大突破。 本综述简要介绍了这个领域,并简要概述了深度学习架构和方法。 然后筛选当前大量最近的研究,总结大量相关的贡献。分析了计算语言学的应用及几个自然语言处理核心问题在内的研究领域。 对现有技术进行了讨论并为未来研究提出了建议。

ACM Reference Format:

Daniel W. Otter, Julian R. Medina, and Jugal K. Kalita. 2018. A Survey of the Usages of Deep Learning in

Natural Language Processing. 1, 1 (July 2018), 35 pages.

目录

1 简介

2 自然语言处理和深度学习概览

2.1 自然语言处理

2.2 神经网络和深度学习

2.2.1 卷积神经网络。

2.2.2 递归神经网络。

2.2.3 循环神经网络

2.2.4 长短期记忆网络(LSTM)。

2.2.5 注意力机制(Attention Mechanisms)、残差连接(Residual Connection)、Dropout

3 自然语言处理核心领域的深度学习。

3.1 语言模型

3.1.1 早期语言模型

3.1.2 自然语言模型

3.1.3 语言模型的验证

3.1.4 语言模型中的记忆网络和注意力机制。

3.1.5 语言模型中的卷积神经网络

3.1.6 字母自然语言模型

3.2 词形

3.3 句法分析

3.3.1 早期自然句法。

3.3.2 Transition-Based Dependency Parsing

3.3.3 Generative Dependency and Constituent Parsing 生成依赖和组成分析

3.4 语义分析

3.4.1 语义对比。

3.4.2 句子模型

3.5 核心问题总结

4 深度学习自然语言处理应用

4.1 信息提取

4.1.1 命名实体识别

4.1.2 事件提取

4.1.3 关系提取

4.2 文本分类

4.3 摘要

4.4 问答系统

4.5 机器翻译

4.6 图像和视频字幕

4.7 深度学习NLP应用总结

5 结论


1 简介

致力于使用计算机处理理解人类语言的自然语言处理涉领域广泛。

1930s,该领域专注于手工规则、ad-hoc检索、数理逻辑。 [Hutchins 2001]

1980s,开始依赖于数据驱动计算,涉及统计、概率、机器学习。 [Jones 1994; Liddy 2001]

1940s,收个人工神经网络(ANNs)诞生。 [McCulloch and Pitts 1943]

当代快速增长的计算力、并行化,促进了有事包含百万训练参数的神经网络的应用,深度学习。 [Goodfellow et al. 2016]

同时,在复杂数据收集程序的帮助下获取的大数据集,使通过相关算法训练如此深度的框架成为现实。

[Ciresan et al. 2011; LeCun et al. 2015; Schmidhuber 2015].

近年来,自然语言处理研究人员、从业者利用现代人工神经网络取得很多成果开始于 Collobert等的开创工作。近十年,ANN和深度学习在该领域广泛应用 [Goldberg 2017; Liu and Zhang 2018]。这引领了NLP核心领域与应用领域的实践。本综述简单介绍了自然语言处理和深度神经网络,并讨论了深度学习如何解决NLP中的问题。这对于想快速熟悉该领域的读者非常有用。

自然语言处理和人工神经网络的主题包括:

第2部分,深度学习

第3部分,如何将深度学习应用并解决NLP领域。

3.1 自然语言模型

3.2 词法

3.3 语法

3.4 语义

第4部分,在实用领域自然语言处理的应用。

4.1 信息抽取

4.2 文本分类

4.3 文本摘要

4.4 问答系统

4.5 机器翻译

4.6 图像、视频字幕

第5部分,结论,简单总结了,当前最先进的预测、民意调查,及这个动态发展领域的未来思路。

2 自然语言处理和深度学习概览

当前先进的人工神经技术,尤其是深度学习,深深的影响着机器学习领域,形成了很多不同领域一系列复杂问题最先进的解决方案。自然语言处理也不例外,在NLP的很多领域,深度学习的效果轻易超过了其它的机器学习及使用多年的统计方法。本节,介绍了NLP领域研究人员及从业者最关心的主题,并简单介绍了用于NLP的不同的人工神经网络架构。

2.1 自然语言处理

自然语言处理,即计算机语言学,被语言学,心理学,哲学,认知学,概率与统计,机器学习。它主要研究使用计算模型和程序解决理解人类语言的实际问题的机制。这些解决方案被用于不同领域的可用软件。NLP的工作可用粗分为两大类:核心领域和应用。核心领域主要要就基础模型,如对自然词汇之间关系进行量化的语言模型;处理有意义的单词组成部分及识别所用单词词性的词法(morphological processing),句法处理或分析(建立为语义处理作准备的句子图),提取文本片段中单词、短语、高级组件的语义处理。应用领域包括信息提取(如命名实体和关系),翻译文本,摘要,问答系统,文档分类聚类,图像视频字幕。一般需要成功运用一个或多个核心技术来解决实际问题。

早起NLP研究主要是基于运用知识从不同领域提取规则。有时规则是用于解决特定问题的ad-hoc。为了简化句法分析和语义处理,一系列表达被设计出来用于描述自然语言的语法。语法规则通常与逻辑语义规则对应来获取用于解决实际问题的句子的语义表征。当时广泛使用的教科书深入描绘了NLP的早期方法。 [Allen 1995; Winograd 1983].

基于规则处理很脆弱,因为人们写或说时不会遵守语法的细节。此外,由于社交媒体扩散、手机短信、网上的自由写作,必须要理解和处理拼写、语法都正确的刻意嘲笑。为了处理预定义的规则不能处理的内容,自1980s起,NLP开始慢慢向主要使用统计、概率计算和机器学习算法的数据驱动领域转变。比如句法分析由基于规则变为结合包括大量解析树的语料库的统计计算和机器学习,如Penn Treebank [Marcus et al. 1993]. 此外,不同种类认真收集的文本语料库成为现实,从包括多语言认真编写的正式、法律文件的语料库,到维基百科页面集合,还有所有非正式文本如推特及其它社交媒体。正如基于规则的方法,NLP领域所有数据驱动的方法在基本著名的教科书中被详细讨论。[Charniak 1996; Jurafsky and Martin 2000; Manning et al. 1999].

随着时间推移,一系列机器学习方法如贝叶斯、k-最近邻、隐马尔科夫模型、随机条件场、决策树、随机森林、支持向量机被广泛用于NLP。然而过去几年,NLP领域发生巨变,大部分方法被神经模型完全取代或者大大提升。

2.2 神经网络和深度学习

人工神经网络是设计用来模仿人类大脑结构的数学模型 [Fausett 1994; vanGerven and Bohte 2017]. 尽管很多现代ANNs具有很多不像人脑结构的特征,但是它们有相同的基本规则。神经网络由一系列连接多输入单输出的节点、神经组成。最简单的神经网络由两层组成:输入层和神经元组成的输出层(有时输入层不算,认为是单层网络)。输出层的每个节点将其从输入节点接受的数据进行加权相加并使用非线性函数对加权和进行处理产生输出。权重作为节点之间相连的边,将由网络得到大量输入输出对时学习得到。权重的修正由网络输出的每个实例的误差或损失决定。过去常用的学习算法有感知模型( perceptron model [Rosenblatt 1958])和 Hebb Rule [Hebb 1949],现代网络使用考虑到节点派生误差的随机梯度下降。

大部分网络输入输出层之间包含额外的节点层,称为隐藏层。如果一个层中的每个节点都连接前一层所有节点,称之密集或全连接。不同种类的网络的主要区别是节点如何连接,以及层的数目。由有序的层构成,每个节点只接收更早层的输出被称为前馈神经网络( feedforward neural networks ,FFNNs)。相反,包含从它自己或直接、间接接收过它的输出的节点接收输出的节点的网络,被称为反馈神经网络(feedback neural networks,FBNNs)。由于深度神经网络(DNN)的定义没有明确共识,一般包含多个隐藏层认为是深度,包含很多层认为是极深 [Schmidhuber 2015]。相对,只有一个(或没有)隐藏层的称为浅网络。尽管有些定义更加严谨,包含至少一个隐藏层的前馈网络被称为多层感知机(multilayer perceptrons,MLPs)。图一展示了一些普通ANN架构。

图1 简单神经网络。到现在包含很少层的网络。尽管没有早期网络是全连接的。

2.2.1 卷积神经网络。

有些网络包含只接收上层网络部分节点输出的节点,因此不是全连接的。这种网络称为卷积神经网络(CNN) [LeCun et al. 1989, 1998],基于 Fukashima’s [1980; 1982]新认知机。名字来源与数学与信号处理,卷积神经网络使用称为滤波器的一系列不同完全枚举函数用不同的方式来增强数据,从而同步分析数据的不同特征 [Krizhevsky 2014; LeCun et al. 1995]。这个结构的灵感来源于视觉皮质层的生物神经网络(BNNs) [Hubel and Wiesel 1962]。单个神经元从从称之为神经元 感知域的一个局域内共位的视杆细胞和视锥细胞(眼睛中的视觉感知器)接收信号。本质上,这个神经元对输入信号执行了一个函数来判断当前它的感知域有没有特定的低层特征。同理,一些其他的包含不同或相似感知场的神经元对激励进行操作来识别其它特征。下层神经元从这些及其它感知场的神经元接收信号,并识别更高层次的特征。随后,CNNs被广泛用于图像、视频处理。简单的CNN架构如图2a所示。由于其具有的优点,在语音与自然语言处理等其它领域也得到应用。 [Dos Santos and Gatti 2014; Kalchbrenner et al. 2014; Kim 2014; Zeng et al. 2014].

卷积网络两个最大的优点是:共享权重和解释处理不当的数据的能力 [LeCun et al. 1995]。由于CNN中的很多节点,寻找的特征与同层的节点相同只是感知区域不同,因此它们使用相同的处理函数(相同的权重)是合理的。因此,相比在一万个区域中训练100万神经元来识别100个特征,我们可以只训练使用1万次的100个神经元。这极大的简化了问题的规模及训练时间。

CNNs另外一个很重要的特征是可以处理格式不一致、不系统的数据。由于CNNs有能力学到输入数据不同区域的特征,而不依赖特定区域的特定特征,减少了对预处理的需求。这使CNNs可以识别图片中任何位置的目标不论这个目标在整个框架中占多大的比例。同理,它使任何区域出现的相同文本的语言特征得到识别。这允许不同词形、句法及其它特征不同形式的预处理不需要遵循相同的结构 [Kalchbrenner et al. 2014]。经常的,特定特征在哪出现的精确位置并不重要,重要的是它在某些位置有没有出现。因此,图2b所示的池化操作,可以用于减小特征映射的规模(卷积滤波器的输出)。最常用的卷积操作是k-max卷积,它只保留池中最大的k个值而忽略其它所有值。为了避免损失过多的细节,卷积池的规模一般比较小。由于卷积可以明显降低后面的层需要处理的位置数,它的使用极大的降低了网络的参数数量,并大大降低了训练时间。卷积神经网络一般包含多个卷积、池化及它们之后的一些全连接层。

2.2.2 递归神经网络。

另外一种在自然语言处理中引入注目的人工神经网络是递归神经网络(RvNN) [Goller and Kuchler 1996;Kawato et al. 1987]。类似于卷积网络,递归网络也是有了权重共享形式来简化训练。然而,CNNs是水平的(一层中)共享权重,而递归网络纵向共享权重(层之间)。由于其使如解析树等结构的建模变得简单,它在NLP中的效果尤为显著。在递归网络中,一个权重张量(更普遍的矩阵)可以先用于树的低层,然后递归的的用于后续的更高层 [Socher et al. 2011]。由于RvNNs中的节点依赖它们之前的结果,反馈到它们自身,因此RvNNs不是前馈的。

2.2.3 循环神经网络

一种NLP中大量使用的简单递归神经网络是循环神经网络(RNN) [Elman 1990; Fausett 1994]。RNN最简单的形式如图3a所示,隐藏层一个节点有一个反馈回自己的边。为了简单说明使网络可以记住有序输入序列之前的输入的链式结构,RNN可以展开并可视化 [Medsker and Jain 2001],如图3c所示。由于NLP依赖单词或其他元素如音位、句子的顺序,因此处理新元素时有前一元素的记忆很有用 [Mikolov et al. 2011a, 2010, 2011b]。

有时,存在后向依赖,比如某些单词需要依赖后面的单词才能正确处理。这些依赖在反向分析句子时才会更好获取。因此使用两个RNN单元并将它们的输出合并以从前向和后向两个方向分析句子会更有效。这种结构的RNNs称为双向RNN(bidirectional RNN),如图3e所示。由于RNN的早期记忆随着链表衰减,严重依赖早期信息的输出有可能出现错误。由于RNNs分别关注早期和晚期数据,从两个方向处理链表会解决这个问题。注意,为了反向处理,在计算之前所有的信息都要被获取,这限制了双向RNNs在一些实时应用如语音处理程序中的应用。

也要注意,有时用一系列相连的RNN单元取代一个RNN单元会取得更好的表现。由于产生长期影响,这可以使网络处理比单RNN更长的输入。连续RNN单元的设置成为RNN堆叠(RNN stack) [El Hihi and Bengio 1996; Schmidhuber 1992]。当然这可以堆积很多RNN单元,如图3b、3d所示。

2.2.4 长短期记忆网络(LSTM)。

RvNNs(包括RNNs)的内部工作节点可以变化。可以使用单个神经元或者复杂的网络。一个很好的设计师LSTM网络 [Greff et al. 2017; Hochreiter and Schmidhuber 1997]。LSTMs中,反馈节点由一些独立神经元(或一些小ANNs变体)以一定方式连接来保留特定信息。由于单神经元反馈给它自身的普通RNNs技术上有一些长期传递结果的记忆,这些结果经过连续迭代被稀释了。更进一步,这些结果的所有元素被平等记忆。常见的,记忆过去长时间的全面信息很重要,而有时近期的短时记忆并不重要。通过在RNNs中使用LSTM模块构造LSTM网络,这些重要信息可以被无限保留而无关信息会被遗忘。然而,信息一旦被遗忘,即使后面需要,它也不可能被恢复。当前的研究正在解决这个问题,可能通过保留大量数据并简单选择特定例子关注哪一部分 [Xu et al. 2015; Yang et al. 2016].。另一项工作中,LSTM的轻微变种,称为Gated Recurrent Unit(GRU),在很多NLP领域表现出与标准LSTMs相同或者更好的效果 [Cho et al. 2014; Chung et al. 2014]。

2.2.5 注意力机制(Attention Mechanisms)、残差连接(Residual Connection)、Dropout

有很多其他形式的人工神经网络 [Schmidhuber 2015],但是上面列出的是现代自然语言处理研究最常见的。进一步的,很多神经网络,包括后面提到的,包含多种网络的特征。为了理解这些网络,必须理解神经网络中使用的额外的组件或方法。其中之一是注意力机制。

对于机器翻译、文本摘要、图像或视频字幕等任务输出是文本格式(这与输入文本输出是分类的任务不同)。这一般通过编码器-解码器对实现。编码ANN用于产生一个定长的向量,而解码ANN用于根据这个向量生成文本。由于解码器需要定长向量作为输入,所以编码器需要输出这个长度的向量。然而RNNs在每个时间间隔产生一个输出,而时间步数是变化的。理想而言,最终输出应该考虑所有输入。这个输出有固定长度,因此可以传递到解码器。这种结构的问题,如图5a所示,RNN强制将整个句子编码成定长的向量,并不考虑某些输入是不是比其它的更重要。

一个鲁棒的解决方案是注意力。注意力机制的首次著名应用是Bahdanau et al【2014】。使用一个全连接层来标注RNN的隐藏状态的重要性的方法,使网络通过考虑当前隐藏状态和标注学会需要注意的部分,原理如图5b所示。这个机制有很多变种比较出名的有convolutional [Rush et al. 2015],intra-temporal [Paulus et al. 2017], gated [Wang et al. 2017], and self-attention [Vaswani et al.2017].

深度神经网络通常通过反向传播训练 [Rumelhart et al. 1985]。这个方法通过计算输出节点的误差并更新从底层节点连接到它们的所有权重。误差的后向传播及权重边的修正以相同的方式在层与层之间传播,直到到达输入层。

随着网络深度增加,到达早期层时用于修正错误的梯度经常会消失或者激增 [Bengio et al. 1994]。这多少可以通过选择如 Rectified Linear Unit (ReLU) [Nair and Hinton 2010]等没有特别陡的区域或梯度比较小的激活函数。为了解决这个问题残差( residual connections)连接也经常被使用。这种连接简单的越过层(通常是一层)。如果用于每个交互层,它可以将梯度反向传播必须经过的层数减小一半。这种网络称为残差网络(ResNet,residual network)。它有很多变形如 Highway Networks [Srivastava et al. 2015] and DenseNets [Huang et al. 2017]。

另外一种用于训练ANNs的方法是dropout。dropout中,每个训练批次(小组实例)一些节点被随机不激活,每个批次不激活的节点不同。这会强制网络将它的记忆通过多个路径分布,有助于模型泛化和降低其过拟合的可能性。为了训练简单,通过dropout层实现,这是一个包括所有dropped节点的前馈层(通常是全连接)。Dropout比率介于0到1,来指定每个训练批次不被激活的节点比例。

3 自然语言处理核心领域的深度学习。

NLP核心问题是那些内在的存在于所有计算语言系统的问题。为了进行翻译、文本摘要、图像字幕或其他语言学任务必须对潜在语言有所理解。这些潜在理解可以分为四个主要方面:语言模型、词形、语法、语义。

语言模型可以从两方面来看。第一,它是决定哪个单词跟着某个单词的任务。展开讲,这可以看做决定单词含义,因为单个单词含义很弱甚至没有毫无意义,与其它单词交互才衍生出全部意义。词形研究单词的形式。它关系词根及使用前缀后缀、复合、内部机制变化来表示时态、词性、复数及一系列其它语言结构。语法研究单词之间的相互作用。确切的,它研究什么单词互相影响、如何影响、组成成分(各种短语),从而形成句子结构。将这些打包的是语义领域,研究单词作为一个集合的含义。必须考虑每个单词的含义、它们如何相互关联相互影响、这些单词所在的上下文、甚至是世界知识,如“常识”。

很明显这些领域有很多的重叠部分。因此,很多研究模型可以被分类到多个部分。同样,模型基于最相关的领域及与它们有影响领域的逻辑关系被讨论。

3.1 语言模型

可以这样认为,现代自然语言处理最重要的任务是语言模型。语言模型(Language modeling,LM)是从语音识别到机器翻译几乎所有NLP应用必不可少的。本质上,语言建模是创造一个给出前面单词或词组能够预测单词或简单语言组件的模型的过程,一般是相关概率 [Jurafsky and Martin 2000]。在语音识别中这有助于处理两个发音相似单词或短语的混淆。同理,它对于为用户键盘,尤其是触屏键盘,输入提供预测能力,加快打字速度的应用很有帮助。然而,它的效率和广泛应用源于它可以隐式获取线性邻接单词或词组的语法和语义关系,这使它对于必须验证输入\产生输出要复合自然语言形式的机器翻译或文本摘要等任务很有用。通过预测,这些程序能够产生更干净和类人的句子并验验反例。

3.1.1 早期语言模型

历史上,语言模型是一个统计任务 [Charniak 1996; Jurafsky and Martin 2000; Manning et al. 1999].。例如,利用来自大型语料库的数据计算了单词出现的概率。最初,使用通过单词训练预料中出现的频率(可能经过平滑计数)简单预测单词的词袋(bag-of-words)方法。之后,n-gram模型通过计算单词同时出现的频率解决这个问题。由于将简单的长度为词汇表长度v的向量替代为vxv的矩阵,这不可避免的大大增加了模型尺寸以及构造它所需的计算量。由于自然运用中很多词没有或极少出现在一块,这个矩阵是稀疏的。这个特点允许极大地减小模型大小。

n-gram方法不能简单看做单词伴随另外一个单词的概率,而是单词伴随一组n-1的优先单词的概率。因此,词袋模型可以被看做1-gram或unigram模型,只使用一个先行词的是2-gram或bigram模型,两个先行词的trigram模型。由于随着n的增长,训练预料库中一组词的相似性衰减同时出现,一系列允许有意义的长n-grams技术被研究出来 [Jurafsky and Martin 2000]。典型模型使用unigrams到5-grams。

3.1.2 自然语言模型

统计语言模型的主要问题是不能处理同义词或词典外的词( out-of-vocabulary,OOV)。它们可以预测训练语聊库中曾经出现的词组,但是很难预测新的词组。比如,来自训练语料的一个词组中的词被同义或不同意义的相似词替换掉(如汽车和卡车、红色和蓝色)。随着自然语言模型的引入这些问题得到了进一步解决 [Bengio et al. 2003]。当NLP开始大量利用ANNs的时代,LM社区很快利用它们继续研究复杂模型,其中很多被DeMulder【2015】等总结过。它们不仅仅能预测同义词,还能对单词间的关系进行建模 [Mikolov et al. 2013a,b]。

通过语言模型技术得到的包括数值组分的单词向量被称为embeddings。典型的单词embeddings维度在50到300之间。一个最常用的例子是单词king、queen、man、woman的分布式表征。如果取出这些单词的embedding向量,可以用数学得出高度直观的结果。如果表示这些单词的向量分别表示为k、q、m、w,可以得到k-q约等于m-w,这对于人类推理非常直观。

3.1.3 语言模型的验证

神经网络使LM领域得到很大突破,但如何量化这些提升比较困难。在语音识别或机器翻译领域可以使用单词错误率( word error rate,WER)度量(单词错误率是实际输出单词与需要输出单词相比不匹配的比例)。然而,在其所处的应用之外独立的验证语言模型一般是可以的。尽管提出了一些验证度量,但是完美的解决方案并没有被发现 [Chen et al. 1998; Clarkson and Robinson 2001; Iyer et al. 1997]。最常用的度量是测试组相对单词数量标准化后的逆概率,Perplexity困惑度。

困惑度对于在相同数据集上训练的LMs是合理的,但是当在不同的词典上训练时,这个度量没什么意义。幸运的是,这个领域有一系列广泛应用的基准数据集来进行合理的比较。例如Penn Treebank(PTB) [Marcus et al. 1993],以及更新的可以比较需要大量训练数据的大模型的Billion Word Benchmark [Chelba et al. 2013]。

3.1.4 语言模型中的记忆网络和注意力机制。

Daniluk et al. [2017]使用一系列不同的注意力机制测试了不同的网络。第一个网络不是全连接的,配置窗口长度为5,配置简单的注意力机制。第二、三个网络更新颖,尤其是在语言模型领域。研究者假设使用单值来预测下一个标记、为注意力单元编码信息、将阻碍网络的注意力单元的信息解码,这些是不同的任务,很难只训练一个参数同时完成这三个任务。因此,在第二中网络中,他们设计每个节点有两个输出:一个用于编码解码注意力单元的信息,一个明确用于预测下一个标记。第三种网络中,进一步分割了输出,使用分离的值解码输入注意力单元的信息并解码从中获取的信息。这两种网络分别被称为 "Key-Value Attention" 和"Key-Value-Predict Attention" networks。

在自制Wikipedia语料库上的测试表明,与基准相比注意力机制提升了困惑度,后续添加的第二和第三个参数进一步提升了困惑度。这表明注意力机制,尤其是有不同参数的,在语言模型中很有效。也需要注意前面大约5个标记包含了大部分价值(因此选择窗口大小为5)。因此,决定测试简单从前面5个单元使用残差连接的第四个网络。这个网络可以取得与很多更大的RNNs和LSTMs相比的结果,表明可以使用比推荐的更简单的网络得到理想的结果。

另外一个最近的研究是在语言模型上使用残差记忆网络(residual memery networks,RMNs) [Beneš et al. 2017]。作者没有提到是否测试过多残差连接,他们跨越两层的残差连接最有效,之后紧紧跟着之跨越一层的。利用这个发现,他们设计了残差连接一次跨越两个单元的递归网络。比起每层都有一个连接,它们在每个模块重复出现。残差网络出现在第1至4,5至8,9至13层之间。随着网络深度增加效果也会提高,但是这样使用大的训练批次时会导致内存不足。网络宽度对于效果并不是很重要,宽网络反而会使训练变得困难。网络在Penn Treebank数据集上被训练并与RNNs和LSTMs的结果进行了比较。结果表明相同规模下RMNs表现优于LSTMs。

3.1.5 语言模型中的卷积神经网络

目前语言模型中使用的卷积神经网络的池化层用全连接层进行了替换 [Pham et al. 2016]。这些层与池化层一样使特征映射降低了维度。同时,这些特征的参考位置在池化层中丢失了,但全连接层保留了这些信息。不同CNNs网络的测试都验证了这个特点。总之,实现了三种不同的结构:用小型MLPs代替线性滤波器的多层感知CNN( a multilayer perceptron CNN ,MLPConv) [Lin et al. 2013],多个卷积层堆叠在一起的多层CNN( multilayer CNN ,ML-CNN),滤波器核尺寸可变(本例中是3和5)的上述网络的组合称为COM。所有这些网络都在三个不同的数据集 the Penn Treebank, Europarl-NC [Bojar et al. [n. d.]], and ukWaC [Baroni et al. 2009]上测试。研究结果表明堆叠卷积层不利于语言模型,但是MLPconv和COM都可以有效减少所有测试集的困惑度。更进一步,将MLPConv与不同核尺寸的COM效果更好,在Penn Treebank上取得了ninety-one的困惑度。研究者研究表明,这个网络可以学习单词的特殊模式,比如“as...as”。最后,这个研究表明CNNs可以学到句子的长期依赖。较近的词组是最重要的,但是更远的单词也是很重要的。16个位置远的单词也被考虑到。

3.1.6 字母自然语言模型

NLP中最多的CNNs接收单词(或者词嵌入)作为输入,现代一些网络研究字母级的输入。 Kim et al. [2016]提出的了不同于以往只接收字母级输入 [Botha and Blunsom 2014],而是将其与词嵌入相结合的网络。使用一个CNN处理字母级输入来提供单词表征。就像词嵌入一样,这些表征输入一个由高速网络(如LSTM的门控网络) [Srivastava et al. 2015]和LSTM组成的编码解码对。他们在英语Penn Treeback及 Czech, German, Spanish, French, Russian, and Arabic的数据集上训练了这种网络。Arabic数据来自于News-Commentary预料,其它所有数据来自于机器翻译的2013ACL Workshop(所有小型和大型数据集)。对于除了Russian之外的所有非英语数据,这个网络在大小数据集上都表现比以前的公开成果 [Botha and Blunsom 2014]好。对于Russian,小数据上结果更好,大数据集不是。在Penn Treebank上,结果与现有最好的结果 [Zaremba et al. 2014]相同,达到了78.9(对比78.4)困惑度。然而,这种网络只有1900万训练参数,大大低于其他网络,而且Penn Treebank中被标为未知的单词对结果有负面影响。由于这种网络关注字母级分析产生的词形相似,它比之前的模型更善于处理语料库中很少出现的单词。研究表明不使用高速层,很多单词拥有拼写相似的最近邻,而不是需要的语义相近。用于最高性能网络的高速层的增加解决了上述问题。另外,网络可以识别拼写错的、不按标准拼写(如looooook代替look)、词典之外的单词。也表明网络可以识别前缀、词根、后缀,也可以理解连接符号单词,这使其具有很强的鲁棒性。

Jozefowicz et al. [2016]测试了包括上面提到的模型和一些其它产生字母级输出 [Chelba et al. 2013; Ji et al. 2015; Shazeer et al. 2015; Williams et al. 2015]的一系列结构。此前,很多模型只是在小规模语言模型上测试过,这个研究在大型语言模型上对它们进行了测试,使用了Billion Word Benchmark。单模型表现最优在10.4亿训练参数达到30.0困惑度(相比此前最好的200亿参数,51.3困惑度)的是使用字母级CNN作为输入网络的大型LSTM模型。然而,最佳的结果是由10个LSTMs(并行网络组平均输出)组合得到的。这个组合的困惑度是23.7,大大超出了此前最优组合 [Shazeer et al. 2015]的41.0。

3.2 词形

词形研究单个单词的分段,包括词根、词干、前缀、后缀以及中缀。词缀(前缀、后缀或中缀)用于修改词干的词性、数量、人称等。进一步,从相同词根衍变的不同的词干经常表达不同但互相联系的含义。

Luong et al. [2013]构造了一个考虑词形的语言模型。使用RvNN来对英语单词的词形结构进行建模。神经语言模型成为了RvNN的主题。模型在WordSim-353 [Finkelstein et al. 2001]数据集上训练,使用Morfessor [Creutz and Lagus 2007]完成分割。由于可得的数据集都不能很好的建模一些词语,产生了一个稀有词数据集。构建了两个模型,一个使用语境,一个没有。发现不考虑上下文的模型高估了些词形结构。尤其是具有相同词干的单词被聚集到一起,尽管它们是反义词。上下文敏感模型表现更出色,即注意了词干的关系,也考虑了不同的特征如前缀“un”。这个模型在一些其它留下数据集 [Huang et al. 2012; Miller and Charles 1991; Rubenstein and Goodenough 1965]上也测试过,比以前的嵌入模型表现更好。

在大型语言系统和其它NLP任务中好的词形分析器非常重要。因此, Belinkov et al. [2017]的最近研究了一系列神经机器翻译模型对词形学习和利用的程度。研究中,一系列将英语翻译成法语、德语、 Czech, Arabic, or Hebrew的语言模型被构建。解码器和编码器是基于LSTM(有些有注意力机制)的模型或者 character aware CNNs,所有模型用WIT3语料库训练 [Cettolo 2016; Cettolo et al. 2012]。然后,解码器被part-of-speech(POS)标记和词形标记替换,固定编码器的权重以保持内部表征。训练过程中,附加了解码器结果的编码器的结果被检查。研究表明注意力机制降低了编码器的表现,但是提高了解码器的表现。进一步,字母级模型比其它模型更好的学习词形,而输出语言对编码器的表现有影响。特别的,输出语言词形越丰富,编码器的表现越差。

字母级模型进一步的在机器翻译 [Chung et al. 2016]以及一系列其它领域如语义 [Rajana et al. 2017]和句法 [Yu and Vu 2017]领域被研究。然而,它们最广泛的使用还是语言模型领域 [Botha and Blunsom 2014; Kim et al. 2016],如3.1.6所述。

Morita et al. [2015]为不可分割的语言如日语分析了新的词形语言模型。他们构造了定向搜索解码器(beam search decoder)的基于RNN的模型,并在他们提出的自动标注 [Kawahara and Kurohashi 2006]语料库和人工标注语料库对其进行了训练。模型同时执行了一系列任务,包括词法分析,POS tagging,和词形还原( lemmatization)。模型在 Kyoto Text Corpus [Kawahara et al. 2002] 和Kyoto University Web Document Leads Corpus [Hangyo et al. 2012]进行了测试,在所有任务中表现皆优于基准。

3.3 句法分析

句法分析研究一个句子中不同的单词和短语如何互相关联。至少有两种不同的分析方法:成分分析(constituency parsing)和依赖分析(dependency parsing) [Jurafsky and Martin 2000]。成分分析中,句子中的短语组分被分层次提取。可以组成更长的短语,并进一步组成句子的短语被识别出来。另一方面,依赖分析只研究独立单词对的关系。

目前自然语言处理句法分析的深度学习应用大部分属于依赖分析,其中包括几种主要的解决方案类别。图分析(Graph-based parsing)构建一系列分析树,使用时搜索正确的一个。大部分图方法都是生成模型,使用基于自然语言的正式语法构建分析树 [Jurafsky and Martin 2000]。不使用这种方法,会产生大量的分析树,其中大部分毫无逻辑。

近年来比图方法更流行的是基于翻译的方法(transition-based approaches)。这些方法一般只构建一个分析树。尽管有一系列变体,基于翻译的依赖分析的标准方法是创建包括句子中所有词的缓存区和只包括ROOT标签的堆栈。当顶层两个词组之间建立关系,即弧,将单词压入堆栈。根据上层单词(句子中更右边的)依赖低层单词(更左边),还是低层单词依赖上层单词来判断弧是右弧还是左弧。一旦建立依赖,将单词出栈,直到缓存区为空而堆栈只剩下ROOT标签。主要有三种方法来控制上述操作发生的条件。标准弧(arc-standard)方法 [Nivre 2003, 2004]中,一个单词的所有依赖都在其连接父词前被连接。弧贪婪(arc-eager)方法 [Nivre 2003, 2004]中,单词立即连接其父词,无论其子项是否被全部连接。惰性交换(Swap-Lazy)方法中,标准弧方法被修改为可以在堆栈中交换位置。这实现了非映射边的绘制。

3.3.1 早期自然句法。

与NLP很多领域相比,句法中使用深度学习的时间较短。自然语言处理中深度学习的一个早期应用,包括probabilistic context-free grammars(PCFGs) [Chi and Geman 1998; Fujisaki et al. 1991; Jelinek et al. 1992]和RNNs的使用,尽管词性标签很明显,它允许语义不同的短语被分别分割。作者所知,语法分析中第一个表现较好的神经模型是 Le and Zuidema [2014] 提出的。模型使用通过使用两个向量表征(一内一外)允许自上而下和自下至上数据流的内外递归神经网络( Inside-Out Recursive Neural Network),在Penn Treebank数据集的标签得分( both labeled attachment score ,LAS)和无标签得分( unlabeled attachment score ,UAS)都取得很好的效果。 Vinyals et al. [2015a]提出了基于注意力机制的LSTM模型的句法组成分析器( syntactic constituency parser),并在不同领域的测试数据上进行了测试( the English Web Treebank [Petrov and McDonald 2012] and the Question Treebank [Judge et al. 2006] 而不是the Wall Street Journal portion of the Penn Treebank [Marcus et al. 1993]),表明神经模型可以在不同领域泛化。用于依赖句法分析的嵌入层首先由Stenetorp[2013]提出,目前大部分自然语言句法分析的研究都围绕它展开。这种方法使用RNN创建一个有向无环图。尽管这个模型产生了最先进的结果2%(在 CoNLL 2008 Shared Task dataset [Surdeanu et al. 2008] 的 Wall Street Journal部分),但当其到达句末时似乎不能记住句子前面的句法。

3.3.2 Transition-Based Dependency Parsing

目前主流句法分析的基础是 Chen and Manning [2014]的成果,在英文和中文数据集得到了UAS和LAS最好的结果,在英文Penn Treebank上UAS得分92.2%。在基于翻译的解析器中使用了一个简单的前馈神经网络作为决策器。这样就解决了广泛应用的统计模型中一直存在的稀疏问题。尽管取得了最好的结果,他们的模型很简单,还可以在很多领域进一步提升。

第一个领域是模型使用的搜索机制。 Chen and Manning使用的是简单贪婪搜索, Zhou et al. [2015]使用定向搜索对其进行了替换。这样,获得了明显的提升,结果接近了新的最先进结果。在定向搜索的基础上, Weiss et al. [2015]通过使用残差连接并在池化层后增加感知器层的更深的神经网络进一步提升了效果。更进一步,他们利用将潜在数据样本输送给另外两个分析器,两个分析器一致的样本输送给主要分析器的tri-training [Li et al. 2014] 方法,在更多的样本上进行训练,这个方法成为Penn Treebank上最先进,UAS和LAS分数分别为94.26%和92.41%。 Alberti et al. [2015]通过在 Wall Street Journal dataset, the Web English Treebank dataset, and the Question Treebank data, 及不同语言的 CoNLL 2009 [Hajič et al. 2009]等数据集上的测试,进一步拓展了这个成果。在这三个英文数据集及CoNLL2009大部分语言上UAS和LAS都取得了最好的表现。

另外一个模型使用LSTM代替前馈网络 [Dyer et al. 2015]。不像之前的模型,这个模型得到了全部缓存区、全部堆栈的知识和翻译决策整个历史的知识。从而获得更好的预测,在 Stanford Dependency Treebank [De Marneffe and Manning 2008]上UAS和LAS分别为93.1%和90.9%,在 CTB5 Chinese dataset [Xue et al. 2005]上也取得了最好的效果。最后, Andor et al. [2016]在词性标注、句子压缩和依赖分析等一系列任务上使用全局归一化的前馈网络。在所有任务上都取得了很好的效果, Wall Street Journal数据集的UAS得分94.61%。值得注意的是,他们的模型相比取得类似结果的模型需要明显更少的计算量。

写这篇综述时,最先进的是另一个基于翻译的依赖分析器 [Wang et al. 2018]。和 Stenentorp [2013]的成果很像,这个模型使用可选的算法生成有向无环图,而不是简单的树。除了基于翻译解析中用到的经典堆栈和缓存区,这个算法还使用了双队列。这可以实现英语中很少出现但很多其它自然语言很常见的多父单词的表征。更进一步,它允许ROOT标签有多个子项。除了生成上述的图,这个成果创新的使用了两种新的基于LSTM的技术:Bi-LSTM Subtraction 和 增量(Incremental)Tree-LSTM。Bi-LSTM构建以之前的成果 [Cross and Huang 2016; Wang et al. 2017] 将缓存区表示为LSTM头和尾的向量的差集,还使用额外的LSTM来表征双向列。Incremental Tree-LSTM是Tree-LSTM [Tai et al. 2015]的推广,通过增量的将子项连接到父项而不是同时将子项连接到父项,将树修改为有向无环图。两种技术都提高了效果,而且这些模型在 SemEval-2015 Task 18 (English) [Oepen et al. 2015] and SemEval-2016 Task 9 (Chinese) [Che et al. 2012]数据集上16个评价标准中有14个获得了最好的公开分数。

3.3.3 Generative Dependency and Constituent Parsing 生成依赖和组成分析

尽管基于翻译的依赖句法分析依然成果(目前是最先进的),组成分析和生成模型中深度学习的使用也取得了一些进展。 Dyer et al. [2016]提出了使用递归神经网络进行句法解析和语言建模的模型。其它大部分方法使用了自下而上的解析方法,而这个使用了自上而下的方法,除了当前解析树还讲整个句子作为输入。这可以将句子看作一个整体,而不是简单的在其内部使用局部解析器。尽管没有在所有解析中取得最好成绩,这个模型在英文生成解析和单句语言模型中取得最好的结果。它还在汉语生成解析中接近了最好的成绩。

生成语法解析使用深度学习方法第一个取得先进结果的是 Choe and Charniak [2016]的工作。语法解析被当做语言模型问题,并使用LSTM来确定解析树的概率。使用这种方法,在Penn Treebank上取得了UAS和LAS分别为95.9%和94.1%。 Fried et al. [2017]研究了这两个模型来确定这些模型的力量来自于重排序还是仅仅来自两种模型的合并。他们发现当使用一个解析器来生成待选树,另外一个对待选进行排序,能够取得比单个解析器更好的结果,两个解析器组合明显更优秀。他们使用两个解析器来选择候选项并重新排序得到了最好的结果。并进一步推广模型使用三个解析器,得到了更好的结果,在Penn Treebank的F1分数为93.4%。最后,构建了八个这种模型(使用两个解析器)的组合并取得了优于 Wang et al. [2018]的模型的最好结果(94.24% F1 on Penn Treebank)。

3.4 语义分析

语义处理研究单词、短语、句子或文章含义的理解。含义这个词很难定义,语言学家和哲学家已经争辩了几个世纪。词嵌入,例如 Word2Vec [Mikolov et al. 2013a,b] and GloVe [Pennington et al. 2014]用于获取单词含义,跟踪含义的分布式假设 [Harris 1954]。必然的,当使用神经网络处理文本中短语、句子或其他组件对应的向量时,一个可以大致看做语义表征的表示被合成计算。这种构成对于摘要、问答和视频字幕等很多任务都是必要的。本节中,神经语义处理研究被分为两个不同领域:研究文本两个部分语义相似度对比的工作和研究语言高级组分尤其是句子含义的获取与转换。

3.4.1 语义对比。

测试计算语义方法的一种方式是看看人类判定含义相似的两个短语、句子、文本是不是也被程序判定为相似。称为 SemEval的一系列研讨会从1998至今每年都被举行来鼓励语义计算方法的研究。两个句子的语义相似度比较是SemEval辩论的主要议题之一,并发表了很多论文。

Hu et al. [2014]提出使用两个CNNs来完成语义对比任务。第一个模型,ARC-I,灵感来自 Bordes et al. [2014],使用一个“Siamese”网络,其中使用分享权重的两个CNNs并行评估两个句子。第二个网络中,两个网络之间设置了连接使CNNs最终状态前进行共享。通过三个“多选项”实验,测试了英文句子补全、中文微博回答、英文含义对比。这个方法优于已有的很多模型。

基于以前的成果 [Hu et al. 2014; Kalchbrenner et al. 2014; Socher et al. 2011], Yin and Schütze [2015]提出了Bi-CNN-MI(MI代表 multigranular interaction features,多粒度交互特征),包括预训练的CNN句子模型、CNN交互模型、逻辑回归器。随后, Hu et al.了使用“Siamese”网络,它是修改自 Kalchbrenner et al.(见3.4.2)提出的Dynamic CNNs。此外,每个级别的特征映射被用于对比过程,而不仅仅是简单的顶层特征映射。他们在Microsoft Research Paraphrase Corpus(MSRP) [Das and Smith 2009; Dolan et al. 2004].上取得了最好的结果。

He et al. [2015]也使用CNN来对比句子的语义相似度。网络结构与 Yin and Schütze的类似,并行使用两个CNNs。构建特征映射后,使用“相似测量层”,跟着全连接层和log-softmax输出层进行对比。卷积层窗口大小一般是1到4。网络在 MSRP, the Sentences Involving Compositional Knowledge (SICK) dataset [Marelli et al. 2014], and the Microsoft Video Paraphrase Corpus (MSRVID) [Agirre et al. 2012]等数据集上进行了训练和测试。在第一、三个数据集取得最好结果,在第二个数据集取得接近最好的结果。 Ablation的研究表明一系列要素包括 POS标签( POS tags),多池化操作( multiple pooling operations),多相似度量( multiple similarity metrics),还有其他特征都对模型的表现有影响。

He et al提出的网络结果最好。在SICK数据集上设计了由RvNN和LSTM-like节点 [Tai et al. 2015]混合的模型,称为Tree-LSTM。两个不同的变体(一个基于组成的模型和一个基于依赖的模型)在SICK数据集和Stanford Sentiment Treebank [Socher et al. 2013b]上被研究和测试。基于组成的模型( constituency-based model)在Stanford Sentiment Treebank上取得最好的效果,而基于依赖( dependency-based)的模型在SICK上取得最好的效果。

He et al.提出了另外一个模型[2016],在SICK上比 Tai et al. 的更好。这个模型先构建了两个句子的矩阵然后再输入“关注相似度层( similarity focus layer)”进行比较,随后将这些信息输入19层的CNN及softmax输出的密集层。相似度层( similarity focus layer)比较输入句子中单词对的语义相似度并对表示每个单词对关系的矩阵元素施加权重。除了SICK数据集上的测试,还在MSRVID、SemEval 2014 Task 10 [Agirre et al. 2014], WikiQA [Yang et al. 2015], and TreeQA [Wang et al. 2007] 上进行了测试,所有测试都取得了最好的结果。

3.4.2 句子模型

虽然比较句子或短语的含义很有用,它大大依赖独立句子或短语含义的计算。这在NLP中是一个共同话题。从试图将单词含义表示为向量的自然语言模型拓展,句子模型试图将句子的含义表示为向量。取得一些进展的是如 Le and Mikolov [2014]提出的模型,它试图通过这种方法对段落或更长的文本建模。这很有趣,在短语和句子层次有很多成果,在本节接下来的部分进行描述。

Kalchbrenner et al. [2014]使用动态卷积神经网络(DCNN)生成句子表征,其中使用一系列不同的滤波器和动态k-max池化层来决定滤波器检测到的哪些特征最重要。由于动态池化句子中不同类型和长度的特征可以被识别,而不需要对输入进行填充(padding)。这时短程( short-range)依赖和长程(long-range)依赖都可以被识别。DCNN在几种完全需求语义理解的任务上进行了测试。它在 Stanford Sentiment Treebank [Socher et al. 2013a]的影评情感分析、tweets情感分析 [Go et al. 2009]中取得了比对比模型都好的成绩。它在TREC数据集 [Li and Roth 2002]的问题分类问题中也是表现最好的模型之一。

毫无疑问,NLP领域中最依赖好的语义理解的是机器翻译。因为它对语义理解的依赖和其使用的典型encoder-decoder结构产生的易评估性,神经机器翻译 ()neural machine translation,NMT)系统对于研究内在语义表征是个非常完美的平台。这方面的研究之一是 Poliak et al. [2018a]完成的,结果公开于综述写作期间。解码器在四种不同的语言对上进行了训练:英语和阿拉伯语、英语和西班牙语、英语和中文、英语和德语。基于一系列早期研究,解码分类器在四个不同的数据集上进行了训练: SNLI [Nangia et al. 2017]版本扩展的 Multi-NLI [Williams et al. 2017] 来自 JHU Decompositional Semantics Initiative [White et al. [n. d.]] 的三个重修数据集(FrameNet Plus or FN+ [Pavlick et al. 2015] , Definite Pronoun Resolution or DPR [Rahman and Ng 2012], and Semantic Proto-Roles or SPR [Reisinger et al. 2015]) 。尽管它们在SPR中表现最好,但是以上结果没有特别好的。这使研究者得出NMT模型不能很好地获取释义信息和对于指代解析(如解析词性、单复数等)有帮助的推理信息。但是,他们发现这个模型可以学到相当数量的原角色(如,谁或什么是动作的接受者)。同期的研究 [Poliak et al. 2018b]分析了用于自然语言推理的许多数据集的质量。

Herzig and Berant [2017] 发现在经常出现的单个领域训练的语义解析器不如在多个领域训练的有效。这个结论是构建和测试了三个不同的基于LSTM的模型得出的。第一个模型是一个由单个解码器和单个编码器组成的一对一模型,由网络本身决定输入的领域。第二种模型是多对多模型,每个领域有一个解码器和两个编码器:领域特定编码器和多领域编码器。第三种模型是一对多模型,使用单个编码器,但是每个领域单独使用一个解码器。所有模型在数据集“OVERNIGHT”上进行训练 [Wang et al. 2015]。所有模型都得到了不错的结果,表现最好的是一对一模型。

Brunner et al. [2018] 的研究得出了相似的结论。自从 Mikolov’s的词嵌入算法 [Mikolov et al. 2013b]后,这项研究是自然语言处理整个领域最重要的启示之一。研究中,创建了一些LSTM-based 解码-编码网络,并对产生的嵌入向量进行了分析。使用了一个编码器接收英文句子的输入,使用了四个不同的解码器。第一个解码器是复述解码器,尝试还原原始英文输入。第二、三个解码器用于将文本翻译成德语和法语。最后,第四个解码器是POS标注器。不同的解码器组合都被尝试,有的只有复述解码器有的有二、三或者四个解码器。来自 EuroParl dataset [Koehn 2005]数据集的有十四种不同结构的句子用于训练该网络。随后在编码器输入用于测试的一组句子并分析了它们的输出。所有情况下,都形成了14个集群,每个对应一种句子结构。分析不同集群之间的空间和错误分类的数量显示增加更多的解码器可以获得更正确的结果和更明确的集群。尤其是使用所有四个解码器得到了0错误率。进一步的,研究者测试和确定了关于句子嵌入的假设。他们发现就像逻辑算法处理词嵌入,它们也可以处理句子嵌入。例如,用“This example works”的嵌入向量减去“This example fails”的嵌入向量,得到的嵌入向量加上“Another attempts fails”会得到与“Another attempts work”的嵌入向量相近的结果。注意尽管这个句子不正确,但它很接近正确结果。进一步的,它与期望的句子只是指代不同,这在前文中提到是语义结构处理中最难的部分。由于这被认为是控制良好的环境,它展示了NLP模型有能力获得很多含义并为新的研究方向铺平了道路,可能是这个领域另一场革命。

3.5 核心问题总结

深度学习方法是建立自然语言应用的很好的基石。本节展示了一些用深度学习处理这些问题的努力。篇幅所限没有谈到的主题包括词性标注、拼写修正、词义消歧、共指判别、演讲、会话问题及很多其它的。下节概述了深度学习做出贡献的几个应用领域。

4 深度学习自然语言处理应用

虽然自然语言处理核心领域的研究对于理解神经模型如何工作是分重要,但在不纯粹进行哲学和科学研究而注重对人类有益应用的工程学的角度看来毫无意义。这些研究的真正意义来自于可以理解现实世界问题的应用。这里总结了自然语言处理中解决一些当下有用问题的方法。注意这里的主题只包括文本处理,不包括语言处理。由于语音处理需要一些其它主题的专业知识,如音频处理,它一般被认为是与NLP有很多共同点的另一领域。语音处理的一系列研究以前被总结过 [Graves et al. 2013; Hinton et al. 2012]。

4.1 信息提取

信息提取使用算法从文本中提取显式或隐式的信息。这些系统的输出由于实现方式的不同而不同,但一般提取的数据和它们之间的关系被存储到关系数据库中 [Cowie and Lehnert 1996]。早期方法有简单信息分类、模式匹配、基于规则方法的语法方法 [Andersen et al. 1992; Salton and Harman 2003]。目前的信息提取系统使用了不同的机器学习算法——监督和非监督。通常提取的信息包括命名实体和关系、事件及其参与者、暂时信息、事实元祖。

4.1.1 命名实体识别

命名实体识别(NER)是对专有名词和日期、时间、价格、产品IDs等信息进行识别。目前,支持向量机 [Vapnik 2013]和条件随机场 [Lafferty et al. 2001]是NER最常用的方法。 Collobert et al. [2011] 的多任务方法包括这个任务,但是没有公布结果。他们的方法中,使用了简单前馈网络,每个单词的上下文环境使用固定大小的窗口。想必,这会导致很难获取长距离单词之间的关系。进一步的,使用词嵌入作为输入导致其不能利用字母级特征。

长短时记忆(LSTM)首先被 Hammerton [2003]用于命名实体识别。这个超出它时代的模型,由于缺乏当时计算力只有很小的网络。此外,单词的复杂数值向量模型还没出现。对于英语结果比基准稍好,对于德语比基准好很多。 Dos Santos et al. [2015]使用了称为CharWNN的深度神经网络架构,同时使用了单词级和字母级输入进行顺序分类。用于NER之前,这种神经网络,使用相同的超参及没有任何手工特征,在语言独立( language-independent)POS标注上取得很好的结果 [Dos Santos and Gatti 2014]。 Dos Santos et al. [2015] 用 HAREM I annotated Portuguese corpus [Santos et al. 2006], and the SPA CoNLL2002 annotated Spanish corpus [Carreras et al. 2002]进行了一系列实验。对于 Portuguese corpus,CharWNN在是个命名实体类别的F1分值比此前最好的系统高出7.9分。它也在西班牙语料上取得了最好的表现。作者指出只使用词嵌入或字母级嵌入都不如两者同时用。这再次证明了NLP社区长期已知的事实:单词级和字母级特征同时使用对于命名实体识别的优秀表现十分重要。

Chiu and Nichols [2015]也从 Collobert et alii的成果中得到灵感。他们使用带有字母级CNN的双向LSTM就像 dos Santos et al. [2015] and Labeau et al. [2015]进行德语POS标注所用。没有使用任何私有词典、相关实体的详细信息或精心制作的手工特征,它们在 CoNLL-2003 [Tjong Kim Sang and De Meulder 2003] and OntoNotes [Hovy et al. 2006; Pradhan et al. 2013]数据集上分别得到F1分值91.62和86.28,同于最先进的技术。

Lample et al. [2016]设计了基于双向LSTMs和条件随机场的架构。模型同时使用字母级输入和词嵌入。输入合并后输送给双向LSTM,然后输送给条件随机场( conditional random field ,CRF)计算层。使用dropout训练时,这个模型在德语和西班牙语上取得了最好的成绩。LSTM-CRF模型在英语和荷兰语上也很接近。这个研究主要意义在于没有使用手工特征或实体词典就取得了最好的结果。

4.1.2 事件提取

事件提取研究暗示事件发生以及参与者如媒介、目标、收件人以及事件发生时间的单词或短语的识别。事件提取一般处理四个子任务:识别事件提及(或描述事件的短语)、识别事件触发(指定事件出现的单词,通常是动词、动名词,有时是不定式)、识别事件参与者、识别事件中参与者的角色。几乎所有的事件提取工作都使用监督机器学习并依赖特征工程,其中来自词典、语法和基于知识分析的线索当做特征使用。这些特征被用于分来算法来识别特定单词是不是事件触发器,识别触发器所表示的事件类型等。早期工作有 Ahn [2006]使用基于词典、语法和知识的特征和基于记忆的最近邻分类器 [Daelemans et al. 2007]和最大熵分类器 [Daumé III 2004]。很多事件提取的pre-ANN方法的细节被 Kalita [2016]讨论。这些方法,有些表现很好,是特征驱动的,因此具有依赖合适的特征组的生成及不可泛化的缺点。此外,由于分几个阶段,当在它们之间传播时错误有被积累的倾向。

Chen et al. [2015]提出了不使用复杂NLP工具自动提取词汇级和句子级特征的结构。他们认为使用最大池化的CNNs倾向于只获取句子中最重要的信息,因此处理涉及一些事件的句子时有可能丢失有价值的因素。为了解决这个缺点,他们将特征映射分割为三部分,并保留每个部分的最大值而不是一个最大值。他们将其称为动态多池化卷积神经网络( dynamic multi-pooling convolutional neural network,DMCNN)。第一阶段,它将句子中的每个单词分为触发器和非触发器单词。如果找到触发器,第二阶段确定参与者的角色。实验结果表明这种方法明显优于当时其它先进的方法。下一年, Nguyen et al. [2016]使用基于RNN编码解码器对,来识别事件触发器和角色,超过了 Chen et alii的结果。

4.1.3 关系提取

另外一种从文本提取信息的重要类型是关系。包括占有关系、同义或反义关系、自然关系如家族或地理位置。注意这是语义任务的一大块,尤其是在神经模型的环境中。因此相关理论的论述不再重复,只是简述相关方法。 Zheng et al. [2017]使用双向LSTM和一个CNN来进行实体识别和关系分类。这项研究展示了CNNs在这个任务中的效用。 Sun et al. [2018]使用一个有复制机制的attention-based GRU模型。这个网络的创新在于使用复制机制( coverage mechanism)[Tu et al. 2016]的数据结构,这有助于确保所有重要信息都被获取且没有被获取多次。

4.2 文本分类

自然语言处理的另外一个典型应用是文本分类,或者将自由文本文档分配给预定义的类。文档分类有很多应用。很多技术在这个任务上实现了很有价值的结果——用于信息检索的 Rocchio算法 [Rocchio 1971]、支持向量机 [Joachims 1998]、决策树 [Mehta et al. 1996],本节着重介绍其中之一的深度神经网络。

Kim[2014]是第一个将预训练的单词向量用于CNN来进行句子级分类任务的。Kim分类的成果调动了大家的积极性,它显示,拥有一个卷积层以及有dropout的softmax层的简单CNNs,经过很小的超参调整就可以在多个基准上取得杰出的表现。Kim提出的CNN模型可以提高7个不同的句子分类任务中4个的最佳成绩,包括情感分析和问题分类。 Conneau et al. [2017]后来发现使用很多卷积神经网络可以很好地完成文档分类。他们的结构只使用了窗口大小为3的卷积,而不是各种尺寸的卷积。

Jiang[2018]提出了使用将深度信念网络( deep belief network) [Hinton et al. 2006]和softmax回归 [Sutton and Barto 1998]合并的层次架构的新方法。深度信念网络是设计了隐藏层对来模仿 Smolensky [1986]出的限制玻尔兹曼机( restricted Boltzmann machines ,RBMs)的前馈网络。RBMs是非监督学习方法,用于降低数据维度。这是由多次使用前向后向传播传递数据直到达到能量损失函数的最小误差实现的。这个过程独立于任务的标签或分类部分,因此初始训练时不包括softmax回归输出层。一旦两部分的预训练完成,将它们合并并像普通的深度神经网络一样使用后向传播和准牛顿法训练 [Fletcher 2013]。

4.3 摘要

总结任务就是寻找文档中重要的元素或字母来生成最重要信息的封装。总结技术有两个主要类别:提取和摘要。第一个关注句子提取、简化、重排、连接使用文档中直接提取的文本来表达文档的重要信息。这些年很多提取总结算法被提出。包括基于频率的方法( frequency-based approaches [Edmundson 1969; Luhn 1958])、机器学习(贝叶斯)算法( machine-learning (naive Bayes) -based algorithms [Kupiec et al. 1995])、图算法( graph-based algorithms)、计算中心方法( computing centrality measure [Radev et al. 2004])和使用PageRank算法的句子的相关重要性( relative importance of sentences [Erkan and Radev 2004])。摘要总结依赖通过生成式摘要表达文档内容,可能使用文档中从未出现过的单词 [Jurafsky and Martin 2000]。历史上,摘要综合算法包括图算法( [Ganesan et al. 2010])、解析树( parse tree)、图对图变换( graph-to-graph transformations [Liu et al. 2015])。最近,也来越成功的是深度学习算法在摘要总结中的应用。深度学习方法一般使用循环编码-解码架构。

打破排名的是Rush et al.[2015]提出的前馈神经语言模型总结应用。这个语言模型使用了注意力编码器和生成定向搜索解码器( generative beam search decoder)。原始输入直接输送给语言模型和决定要总结的句子和短语附近上下文重要性的卷积注意力编码器。这个模型的表现与当时其它先进模型相似。

另一领域,注意力机制提升了解码-编码模型的表现。 Paulus et al. [2017]提出了很先进的方法,使用多期内注意力编码机制( multiple intra-temporal attention encoder mechanism),同时考虑输入文本标记和解码器通过前面生成单词输出的标记。他们依然使用 类似Ranzato et al. [2015]提出的混合交叉熵(similar hybrid crossentropy)的损失函数,它可以成数量级的减少训练和执行。最后他们推荐使用强化学习中的策略来修改梯度和减少仅监督学习训练导致的 exposure bias 。注意力的使用也提高了 Gehring et al. [2017] Gehring et al. [2017]提出的全卷积模型的精度,其中每一次都实现了注意力机制。

4.4 问答系统

与总结和信息提取很像,问答系统( question answering, QA)收集数据、短语、段落的特定目标。然而,不同的是,QA返回问题流畅的答案。这个问题历史的被分为以下几个子任务:问题分类、短文检索、答案提取 [Ezzeldin and Shaheen 2012]。问题分类决定需要什么种类的信息以及所需答案的格式。短文检索中,提取总结经常被用于智能顺序的检索、简化、合成信息来创建答案。早期答案提取使用的方法很多,比如简单解析匹配方法(simple parse-match methods),通过解析所给的问题并匹配检索文档中具有相同标记的句子或短语 [Phillips 1960]。其它研究者使用简单第一顺序逻辑语言和定理证明模型如 Green [1969]提出的。现代模型和方法类似于总结中所用。

Wang et al. [2017]使用门控注意力循环网络来匹配问题和包含答案的段落。一个自匹配注意力机制被用于映射整个段落来提炼机器表征。最后,指示网络预测答案的位置和范围。这些网络使用段落的注意力池向量表征及分析的单词建模需要理解的关键标记或必要短语进行建模。这种机制有助于将注意力从遍布段落的关键词转移到上下文窗口附近。

多行卷积神经网络( Multicolumn convolutional neural networks ,MCCNNs)被 Dong et al. [2015]用于从多角度自动分析问题。并行网络被用于从输入问题提取相关信息。分割网络用于搜索上下文信息和关系并决定返回什么形式的答案。这些网络的输出随后被组合并用于可能答案的排序。这个在问题答案对上训练的模型不需要大的调整就自动学到了逻辑形式。

目前最新的方法是关系网络(relational networks, RNs)的使用。首先由 Raposo et al. [2017]提出,RNs是在MLP架构上构建,主要关注关系推理,如定义数据中实体的关系。这种前向网络在所有目标对之间实现了相似的函数来计算它们之间的相关系数。RNs使用文档句子的LSTM表征作为输入。这些输入进一步与给出的信息需求配对 [Santoro et al. 2017]。RN计算所有排列来确定所给的文档中的句子,或这些句子与提出的问题之间是否有关系。

4.5 机器翻译

机器翻译( Machine translation ,MT)是自然语言处理中最典型的应用。它是使用数学和算法计算将一种语言的文档翻译成另外一种语言。进行有效的翻译即使对人类也是一项繁重的工作,需要对翻译的两种语义的词法、语法、语义等领域具有专业水准和实力,对其文化有深入理解和辨别力 [Jurafsky and Martin 2000]。历史的,这个工作包括基于统计方法的短语 [Koehn et al. 2003]、语法 [Yamada and Knight 2001]和基于词翻译 [Brown et al. 1993],每一种都有自己的限制。最近这方面的研究使用神经机器翻译(neural machine translation,NMT),使用了端对端深度神经网络。这个模型的首次使用 [Kalchbrenner and Blunsom 2013]源于连续神经表征在获取语法、语义和词形方面的成功 [Collobert and Weston 2008]以及循环神经网络建立鲁棒的语言模型的能力 [Mikolov et al. 2010]。这个原始的NMT模型使用了生成卷积和循环层的组合来编码和优化源语言模型并将其映射到目标语言。此后一系列新颖和有效的改进被提出 [Bahdanau et al. 2014; Sutskever et al. 2014],衍生模型不断提升,发现它们前任缺点的答案并克服对人工的需求 [Britz et al. 2017]。现在的进步包括解码器隐藏状态的有效初始化、条件门控注意力单元的使用、嵌入层偏置的移除、可选解码阶段( alternative decoding phases)的使用、嵌入层因子分解、大规模循环层堆叠、定向搜索算法测试时间利用 [Klein et al. 2017; Sennrich et al. 2017]。

解码器状态的标准初始化是由 Bahsanau et al. [2014]提出的,使用了最后的后向编码状态。然而,如 Britz et al. [2017]指出,使用嵌入层的平均或者标注层( annotation layer)可以获得最好的翻译。门控循环单元成为了序列对序列( sequence-to-sequence)任务的黄金标准,它的变种之一是Sennrich et al. [2017]提出的条件GRU(conditional GRU,cGRU),最有效的利用了注意力机制。cGRU单元有三个关键部件组成:两个GRU转换模块和它们之间的注意力机制。这三个模块联合上个隐藏状态,和注意力上下文窗口一起生成下一个隐藏状态。将解码流程 [Bahdanau et al. 2014]从Look、Generate、Update (Look at input, generate output token, update hidden representation)改为Look、Update、Generate可以简化最终解码的实现。进一步增加源属性如词形分隔符( morphological segmentation labels)、词性标注( part-of-speech tags)、句法依赖标签( syntactic dependency labels)可以提升模型,而且嵌入层的连接( concatenating)或因式分解(factorizing)可以进一步提高模型的鲁棒性 [Sennrich et al. 2017; Sennrich and Haddow 2016]。为了记忆长期依赖,垂直堆叠循环单元称为标准,其中合适的层数根据期望的输入长度及残差连接的存在和密度大致在2到16之间 [Britz et al. 2017]。测试时,可以在最后的softmax层旁边使用定向搜索算法来考虑贪婪模式下的多目标预测,这样不需要搜索整个假设空间就可以找到最佳预测 [Klein et al. 2017]。

不同于以前的工作,一些研究者提出了抛弃大量的循环和卷积层,从输入到输出专一的使用注意力机制来全局地编码语言 [Ahmed et al. 2017; Vaswani et al. 2017]。选择这种“自注意”机制是基于以下三个原则:减少每层需要的复杂计算、最小化顺序训练步骤、减少输入到输出的路径长度及其对长范围依赖学习的阻碍,长范围依赖对于很多序列任务十分必要 [Hochreiter et al. 2001]。除了增加了翻译任务的精度,自注意力模型允许整个架构更多的并行计算,降低了训练时间并减少了必要的顺序步骤( minimizing necessary sequential steps)。

4.6 图像和视频字幕

图像字幕独特的将自然语言处理与机器视觉相结合,从图像中编码信息并将其解码到文本中。尽管编码过程不在本综述的范畴,但是这里简单论述了解码过程以及整个模型。

自动图像字幕已经研究了很多年,自从 Duygulu et al. [2002]的成果之后变得流行起来。近几年,神经网络在这一领域的应用取得了很大进步。第一个神经模型是基于模板( template based [Kulkarni et al. 2013; Yang et al. 2016])和基于搜索的( search based [Devlin et al. 2015a,b])。前一个,图像的各方面被识别然后描述这些方面的不同单词根据标准的语法模板组合在一起。后一个,图像与数据库中的图像进行匹配,然后分配与其最相似图像的字幕。

典型的神经字幕模型( Google’s Neural Image Caption (NIC) algorithm [Vinyals et al. 2015b])使用为图像分类训练的深度CNN作为编码器,LSTM网络作为解码器。 Karpathy et al. [2015] 开发了一种获取图像区域与对应单词片段之间对应的算法。 Hendricks et al. [2016] 使用深度组合字幕( Deep Compositional Captioning,DCC)模型与词汇分类器和语言模型一起,实现了在字幕中包含隐藏单词的能力, Xu et al. [2015]介绍了图像注意力,将视觉上最显著属性的动态向量表征输送给解码器。 You et al. [2016]在LSTM语言模型中加入的反馈程序中将自上至下和自下至上的图像特征组合实现了语义注意力模型。 Lu et al. [2017]提出了解码器中包含带有标记门( sentinel gate)的LSTM结构来确定是考虑编码还是只使用语言模型来生成下一个词的自适应注意力模型。 Rennie et al. [2017]提出了使用强化学习为图像字幕训练深度神经网络。

具作者所知,截至综述写作时视觉到语言( vision-to-language)问题最好的方法使用了区域注意力( regional attention)和情景专用( scene-specific)上下文 [Fu et al. 2017]。该算法将查询图像分割到空间区域的多尺度水平( multi-scale level)。给出一个二分类器,当图像区域中捕获的语义概念是含义丰富( semantically meaningful,与高等级概念相关),原始的( primitive),上下文丰富( contextually rich, 依赖附近的其它区域)的,则认为它是显著的。同时,为整个图像计算了情景上下文向量。增加的情景向量(关于图像主题的)为LSTM结构提供了额外的支持,它帮助在特定图像上下文选择合适的单词或者在相同的上下文排除不合适的单词。

图像字幕的拓展就是视频字幕 [Wu et al. 2016]。最近出现的任务几乎相同,分析了一系列帧而不是单张图像 [Ballas et al. 2015]。这些帧在标准解码器和编码器之间使用一个或多个循环层进行组合 [Donahue et al. 2015; Venugopalan et al. 2014]。目前的方法使用了层次循环网络来完成这项任务 [Baraldi et al. 2017; Pan et al. 2016; Yu et al. 2016]。这些网络在一些帧上实现循环层,然后在前一层的最终输出上实现另外一层,与前一层实现的循环捕获的帧数目成反比地减少连接到片段的连接数目。这大大降低了梯度后向传递需要经过的单元数量。一种新的方法 [Guo et al. 2016]利用了注意力机制和3D卷积。进一步工作肯定会整合声音处理来更好的添加字幕并完成更多任务如电影综述。

4.7 深度学习NLP应用总结

自然语言处理存在大量其他应用包括语法修正(如文字处理所示),作者模仿(提供充分数据,生成复制特定作者风格的文本)。很多这种应用经常使用,正在研究或者还没有使用深度学习。但是,应该注意情感分析越来越流行并正在应用深度学习。情感分析的很大一部分是提取作者的情感——对于一些话题或者想法倾向于积极、消极或者中立 [Jurafsky and Martin 2017]。应用多种多样,包括产品搜索、期货预测、社交媒体分析和垃圾邮件分类 [Etter et al. 2018; Zheng et al. 2018]。目前最先进的技术是类似同时包括LSTMs和CNNs [Cliche 2017]。

本节展示了一系列筛选的深度学习在自然语言处理中运用的例子。在这个或相似领域进行了无数的研究,记录了深度学习促进自然语言处理在广泛多样的应用中成功使用的历程。只有其中一小部分在本综述中体现。很多应用的初始工作经常来自于学术界,随后很快在工业界被或大或小成立或启动的组织采用、壮大。

5 结论

自然语言处理的早起应用包括良好赞誉但简单的代数单词问题求解程序称为STUDENT [Bobrow 1964],有趣但没有严格约束的会话系统如Eliza(扮演“心理治疗师”) [Weizenbaum 1966],及其他微观世界操纵模块的相反的问题 [Winograd 1971]。现在,先进的NLP程序组成的高级应用普遍存在。包括Googles和Microsoft的机器翻译(可以或多或少胜任从一种语言到多种语言的翻译),一些列处理语音指令并执行的设备。这些复杂应用的出现,特别是以及部署设置了的,是过去六十几年这个领域取得的骄人成绩的证明。毫无疑问,这个领域出现了难以置信的进步,尤其是最近几年。

如上所述,目前的进步与人工神经网络(ANN)的显著进步有着清晰的因果关系。十年前被认为是一种“旧”技术,这些机器学习概念以前所未有的速度迎来了进步,打破了各种领域的无数任务中的性能记录。特别是,深度神经架构为模型注入了对自然语言更多的理解。卷积和循环样本都有助于该领域最先进的技术,但是由于NLP领域丰富多变的情况并不清楚哪个产生了优异的结果。合并调查的所有模型的分析,可以推测出一些总体趋势。首先,有注意力机制的循环网络(尤其是有明确记忆的,如LSTMs和GRUs)是最好的解码器。第二,最好的解码器倾向于由RNNs限制的CNNs实现的( implement CNNs capped by RNNs),似乎卷积方面更加重要一点。第三,由于高度工程化网络经常优化结果,所以没有方法替代使用大量高质量数据训练网络的方法。根据最后一点结论,可能将研究的方向放到训练方法更有用,而不是开发昂贵、高度专业化的组件来挤压复杂模型的最后一点性能。

然而每个月提出的大量的主要架构为辨别最好的架构增加了困难,使用的验证方法同样增加了问题的复杂度。很多验证新模型的数据集是为了这个模型专门生成的,之后如果被使用也就仅仅几次。由于这些数据集的特征和大小多种多样,随着时间推移,这使对比越来越难。NLP的大部分子领域,及其整体,有必要广泛的大规模的讨论这种数据集必要内容,并对这些数据集进行修改。除了检验数据的多种多样,每种任务还有用于检验性能的多种指标。由于每个模型都会报告不同指标,相似模型的比较常常非常困难。这个领域一组特定指标来确保对比清晰需要很长时间才能达成共识。

进一步,指标一般只报告最好的情况,很少提到平均情况和易变性或者最坏的情况。而了解新模型可能的表现和平均表现非常重要。如果模型产生的结果变化很大,他们可能会训练出最好的水平来报道。大部分情况这是不可取的,应该选择可以稳定的训练出相对较好表现的模型。尽管不断增加的大量随机参数降低了表现的多样性,易变性仍然存在,不能仅仅报道最好情形的指标。

最后推荐的未来工作是比现在更多种类的语言。目前NLP领域大量主要研究是在英语上进行的,另外有相当大的比例使用中国普通话。翻译任务中,英语要么是输入要么是输出,另一端是十几种欧洲或东亚主要的语言之一。这忽略了整个语言家族以及使用它们的人。很多语言的复杂变化可能并不在已经使用的语言中,因此没有被目前的NLP软件获取。进一步,全世界有数千种语言,其中至少八十种至少被1千万人使用,意味着目前的研究将很大一部分人排除在外。收集验证研究语言的数据,使用它们对NLP模型进行测试,不仅仅对于自然语言处理领域,对于整个人类社会也是巨大的贡献。

由于很多语言中数据量很小,作者不能预见较近的未来深度学习完全取代传统NLP模型的时间。深度学习模型(甚至是浅层ANNs)是极度数据饥渴的。相对的,很多传统模型只需要相对小很多的训练数据。然而,展望未来,深度学习成为计算语言学的标准可以预见。尽管 Collobert et al. [2011]研究的重要贡献之一(单一统一模型)没有被广泛实现,但是引发了NLP深度学习革命。神经网络反而被引入传统的NLP任务,现在只是重新连接。比如在句法解析领域,大部分模型继续由非神经结构实现,另外简单的使用ANNs来完成以前用规则或概率模型实现的决策。虽然更完整的NLP架构明显变得越来越现实,理解这些网络处理的抽象概念对于理解如何构建和训练更好的网络非常重要。进一步,抽象是人类智慧的特点,理解ANN中抽象如何产生可能有助于理解人类智慧以及它内部的过程。正如人类语言能力只是人类知觉的一小部分,语言处理也只是人工智能的一小部分。理解这些组件如何相互关联对于构建更加完整的AI系统非常重要,创造统一的NLP架构是实现AI系统重要的另一步。

计算设备的进一步发展也将有助于实现这一目标。虽然GPUs已经显著提高了训练深度网络的能力,但这只是迈向正确方向的一步 [Schuman et al. 2017]。下一步是为这个目标专门设计的芯片的广泛可用性,如谷歌的Tensor处理单元(Tensor Processing Unit,TPU),微软的Catapult和英特尔的 Lake Crest [Hennessy and Patterson 2017]。最终,在传统的冯·诺依曼式计算机中实现的人工神经网络可能无法充分发挥其潜力。幸运的是,近年来计算机科学和工程领域的另一项重要工作——神经形态计算再次复兴。随着在硬件层面实现神经结构的神经形态芯片在未来几年的会更为广泛[Monroe 2014],深度学习的延续及其成功的持久性值得期待,自然语言处理也得到了随之进步的机会。

猜你喜欢

转载自blog.csdn.net/wmq104/article/details/82766402