资源技术动态自然语言处理编年史

自然语言处理编年史

2020-01-19 | |  99 |   0

原标题:自然语言处理编年史   

来源:AI 研习社     链接:https://www.yanxishe.com/TextTranslation/2353


全部内容计划由两篇文章介绍,这是第一篇。本文内容基于Herman Kamper和我在Deep Learning Indaba 2018的自然语言处理前沿会谈整理而成,完整幻灯片可在此下载。本文讨论了基于神经网络方法的NLP最新重大进展。第二篇文章会讨论NLP中的开放问题。你可以在此处查看会谈的完整记录。

免责声明    本文试图将从最近15年的研究中选择八个里程碑式的工作进行介绍,这些工作深刻的影响着当前的研究工作,为此不可避免的忽略了许多相关和重要的发展。特别是本文介绍了众多神经方法,这可能会给人一种错误的印象,即在此期间其他方法没有什么进展,你要知道事实不是这样的,甚至本文中介绍的许多神经网络模型都是建立在同一时代的其他方法上。在本文的最后部分,我们会重点介绍以下这些意义非凡的工作,这对将来的研究具有指导意义。

本文目录:

2001 - 神经语言模型


语言模型是指根据给定的前一个单词来预测文本中的下一个单词。这可能是最简单的语言处理任务,在现实中也有具体的应用场景,例如智能键盘,电子邮件回复建议(Kannan等,2016),拼写自动更正等。正是由于其广泛的应用需求,语言模型具有很长的历史。经典方法基于n-grams,并应用各种平滑方法处理未见过的n-gram(Kneser&Ney,1995)。


2001年,Bengio等人提出了第一个神经语言模型,该模型基于前馈神经网络,如图1所示。

1579438405561525.png

该模型首先在表C中查找前n个单词的矢量表示,将其输入到神经网络,这些向量如今被称为词嵌入。然后,拼接这些词嵌入并传入一个隐藏层,将该层输出提供给softmax层。想要了解更多关于该模型的信息可以查看此文章。


现在,前馈神经网络已被递归神经网络(RNN;Mikolov等,2010以及用于语言建模的长期短期记忆网络(LSTM;Graves,2013)取代。近年来,一些基于经典LSTM改进的新语言模型被提出(相关概述可参阅此页)。尽管有这些发展,经典的LSTM仍然是一个强有力的基线(Melis等人,2018),甚至Bengio等人基于经典前馈神经网络的模型在某些情况下也和现在的复杂模型一样具有竞争力,因为这些模型通常只会学习考虑最近的单词(Daniluk等人,2017)。直到现在,了解此类语言模型究竟捕获了什么信息依然是一个广受关注的研究领域(Kuncoro等,2018; Blevins等,2018)。


2008 - 多任务学习


多任务学习是一种通用方法,是指在多个任务训练的模型之间共享参数。 在神经网络中,共享参数就是指共享不同层的权重。1993年,Rich Caruana首次提出多任务学习,并被用于道路跟踪和肺炎预测(Caruana,1998)。直觉上,多任务学习使得模型可以学习面向多种任务的表示。这对于学习通用的、底层的表示,充分利用模型的注意力或是训练数据量有限的场景下非常有用。有关多任务学习的更全面概述,可查看这篇文章。


2008年,Collobert和Weston首次将多任务学习应用于神经网络来完成NLP任务。在他们的训练过程中,查询表(或词嵌入矩阵)在两个不同任务模型中之间共享,如图2所示。

1579438444530804.png

Figure 2: 词嵌入矩阵共享 (Collobert & Weston, 2008; Collobert et al., 2011)


共享词嵌入使模型可以协作训练,同时共享词嵌入矩阵的更通用、更基本的信息。这些信息通常是模型的一些参数,且占据模型参数的绝大部分。Collobert和Weston于2008年发表的论文不仅证明了多任务学习的优势,同时还提出了一些其他想法,例如预训练词嵌入和使用卷积神经网络(CNN)处理文本,这些想法现在依然被广泛采用。该论文在ICML 2018上赢得了test-of-time award(你可以在此查看关于该奖更多相关信息)。


如今,多任务学习已成为NLP领域中的有效方法,同时还可以与其他方法或是一些“人工方法”结合,在各种NLP任务都可见其身影。更多其他其他相关任务的概述可查看此帖子。尽管参数共享是预定义的,但在优化过程中也可以学习不同的共享模式(Ruder等人,2017)。随着技术的发展,在多个任务上评估模型以验证其泛化能力受到越来越多的关注,多任务学习因此变得更加重要,并且最近,专用于多任务学习的基准测试也被提出(Wang等人,2018; McCann等人,2018) 。


2013 - 词向量


文本的稀疏向量表示——即所谓的词袋模型在NLP领域具有悠久的历史。上文我们已经见到,早在2001年就已经在使用词组或词嵌入的密集向量表示形式。2013年,Mikolov等人对词嵌入进行了改进,通过去除隐藏层以及近似计算目标,明显提高了词嵌入的效率。尽管这些更改实际上很简单,但是结合高效的word2vec使模型能够对大规模的单词嵌入训练。


如图3所示,实现Word2vec有两种不同方法:连续词袋(CBOW)和skip-gram。这两种方法的区别在于:CBOW根据周围的单词来预测中心单词,而Skip-gram恰恰相反。

1579438481868191.png


Figure 3: CBOW和skip-gram结构(Mikolov et al., 2013a; 2013b)

尽管这些嵌入在概念上与使用前馈神经网络学习的嵌入没有什么不同,但是在极大语料库上的训练使它们能够学习到近似单词之间的某些关系,例如性别,动词时态和国家-首都关系等,这可以在图4中看出。

1579438523966005.png

Figure 4: word2vec学习到的关系 (Mikolov et al., 2013a; 2013b)

这些关系及其背后的含义引发了人们对词嵌入的极大兴趣,许多工作对这些线性关系的起源进行了研究(Arora等人,2016; Mimno&Thompson,2017; Antoniak&Mimno,2018; Wendlandt等人,2018 )。然而,进一步的研究表明,(word2vec中)关系的学习并非是无偏的(Bolukbasi等人,2016)。在现在的NLP研究中,完善词嵌入依然是非常重要的,众多研究已证明,使用预训练的词嵌入进行初始化可以有效改善下游任务。


虽然word2vec能够捕获到符合直觉的、令人满意的关系,但后来的研究表明word2vec并没有什么特殊之处——矩阵分解方法同样可以学习词嵌入(Pennington等,2014; Levy&Goldberg,2014),并通过适当的改进后,SVD和LSA这样的经典矩阵分解方法可以捕获类似的(关系)结果(Levy等人,2015)。


自此以后,许多工作对词嵌入的不同方面进行研究(从原始论文的引用数量之多可见其广泛影响)。你还可以看这篇文章来了解该方向的研究趋势和未来方向。尽管新的技术不断发展,word2vec至今仍然被广泛应用。同时,Word2vec的方法已被扩展到词嵌入之外的其他应用:应用负采样方法的skip-gram能够方便的学习基于局部上下文的嵌入,已被用于学习句子的表示(Mikolov&Le,2014; Kiros等,2015),甚至还被应用到在NLP之外的其他领域,例如网络(Grover和Leskovec,2016)和生物序列(Asgari&Mofrad,2015)等。


一个引人注意的研究方向是将不同语言的单词嵌入到同一向量空间中,以实现(zero-shot)跨语言迁移。此外,以一种完全无监督方式学习好的嵌入也成为可能(至少对相似的语言是可行的)(Conneau等人,2018; Artetxe等人,2018;Søgaard等人,2018),这些方法为资源较少的语言和无监督的机器翻译提供了新的思路(Lample等人,2018; Artetxe等人,2018)。更多相关信息可以阅读(Ruder等人,2018)的综述。


2013 - NLP神经网络


2013年和2014年,神经网络模型开始被用于NLP研究。那时被广泛应用的神经网络可以分为三种类型:循环神经网络,卷积神经网络和递归神经网络。


循环神经网络    循环神经网络(RNN)非常适合处理普遍存在于NLP中的动态输入序列。Vanilla RNN(Elman,1990年)在训练过程中存在梯度消失和梯度爆炸问题,而经典的长期短期记忆网络(LSTM;Hochreiter&Schmidhuber,1997)可以有效缓解这些问题,因此 Vanilla RNNs被LSTM所取代。尽管如此,2013年之前,RNN依然难以训练;Ilya Sutskever的博士学位论文改变了这种状况。LSTM单元的可视化效果如图5所示。双向LSTM(Graves等,2013)通常用于处理左右上下文。

1579438564744920.png

图5: LSTM单元结构(Source: Chris Olah)


卷积神经网络    随着卷积神经网络(CNN)在计算机视觉中的广泛应用,它们也开始应用于NLP研究(Kalchbrenner等,2014; Kim等,2014)。用于文本的卷积神经网络仅在两个维度上运行,filters仅需沿时间维度移动。图6显示了NLP中使用的CNN。

1579438586743737.png

图6: 用于文本的CNN (Kim, 2014)


相比于RNN,CNN的一个优点是它们可并行化,因为每个时间步的状态仅取决于局部上下文(通过卷积操作),而不像RNN中依赖过去的所有状态。同时,通过扩展卷积核来获得更大的感受野,使得CNN可以捕获更大范围的上下文信息(Kalchbrenner等,2016)。此外,还可以将CNN和LSTM合并和堆叠(Wang等人,2016),或者使用卷积来加快LSTM的速度(Bradbury等人,2017)。


递归神经网络    RNNs和CNNs都将语言视为一个序列。然而从语言学的角度来看,语言本质上是层次结构的:由单词根据一组产生规则进行递归组合得到高阶短语和从句。从语言学角度出发,将句子视为树而不是序列,由此产生递归神经网络(Socher et al,2013),图7所示。

1579438624470651.png

图7: 递归神经网络(Socher et al., 2013)


不同于RNN从左到右或从右到左处理句子,递归神经网络从下至上构建了序列的表示形式。树中的每个节点,通过计算子节点的表示得到当前节点新的表示。由于对数的处理树可以视为在RNN上进行不同的处理顺序,因此LSTM自然的被扩展到对树的处理(Tai等人,2015)。


不只RNN和LSTM可以应用到树这样的层次结构的处理。在树结构中,应用词嵌入方法可以结合本地上下文和语法规则学习词嵌入(Levy&Goldberg,2014年); 语言模型可以基于句法堆栈生成单词(Dyer等,2016); 图卷积神经网络还可以处理树结构(Bastings et al。,2017)。


2014 - 序列到序列模型


2014年,Sutskever等人提出了序列到序列学习,该框架通过神经网络将任意序列映射为另一个序列。在该框架中,编码器部分逐个字符处理句子,并将其压缩为一个向量;解码器部分会根据编码器状态逐个输出预测字符,并在每个步骤中将先前预测的字符作为输入,如图8所示。

1579438665211832.png

图8: Seq2seq模型(Sutskever et al., 2014)


该框架将显著颠覆机器翻译任务。2016年,Google宣布将开始用神经MT模型(Wu等人,2016)取代原先基于词组的单MT模型。据Jeff Dean所说,这意味着用500行代码的神经网络模型就可以实现500,000行基于短语的MT代码的功能。


该框架由于其灵活性成为自然语言生成任务的首选框架,根据具体任务调整模型中的编码器和解码器实现相应的功能。更重要的是,解码器模型不仅可以处理序列数据,而且可以处理任意表示,例如,可以基于图像生成字幕(Vinyals等,2015)(如下图9所示),基于表格的生成文本(Lebret等,2016)以及基于源代码更改的描述(Loyola等,2017)以及许多其他应用。

1579438700277494.png

图9: 基于图片生成字幕 (Vinyals et al., 2015)


序列到序列学习甚至可以用于NLP中常见的结构化预测任务,这些任务的输出具有特定结构。通过图10可以更好的理解,图中所示便是依据成分句法分析产生线性输出。研究已证明,给出足够的成分句法分析数据进行训练,神经网络能够直接学习以产生这样的线性化输出(Vinyals等,2015),此外,在命名为实体识别(Gillick等,2016)或其他任务中也可以应用该框架。

1579438722853611.png

图10: 线性化成分句法依存树 (Vinyals et al., 2015)


序列的编码器和解码器通常基于RNN,但也可以使用其他模型。多数新的架构是在MT任务的研究中提出的,于是也可以说MT任务充当了改进Seq2seq模型的培养皿。这类模型的最新成果有:更深的LSTM(Wu等人,2016),卷积编码器(Kalchbrenner等人,2016; Gehring等人,2017),Transformer(Vaswani等人,2017)(将在下一节中进行讨论)以及LSTM和Transformer的组合(Chen 等人,2018)。


2015 - 注意力


注意力(Bahdanau et al,2015)是神经机器翻译(NMT)的核心创新之一,也是使得NMT模型优于传统基于短语的MT模型的关键因素。序列到序列学习的主要瓶颈在于,它需要将源序列的全部内容压缩为固定大小的向量。注意力有效缓解了这种情况,通过注意力,解码器可以查看源序列的隐藏状态,并将这些状态的加权平均提供给解码器,如下图11所示。

1579438770931467.png

图11: 注意力 (Bahdanau et al., 2015)


注意力的实现有各种不同的形式(Luong等人,2015)。这篇文章对此做了简要概述。注意力应用范围非常广泛,所有需要根据输入的某些部分做出决定的任务都可以应用注意力。比如,注意力已被应用于成分句法分析(Vinyals等,2015),阅读理解(Hermann等,2015)以及one-shot学习(Vinyals等,2016)等。甚至输入也不要求是序列格式,可以是其他形式,例如对图像的描述(Xu等,2015),图12所示。此外,注意力还有其他的作用:通过注意权重能够了解输入的哪些部分与特定输出相关,从而窥见模型内部的一些(即使只是表面上的)工作机理。

1579438796600042.png

图12: 图像描述模型中的视觉注意力,右图显示生成单词“飞盘”时模型所关注的内容。 (Xu et al., 2015)


注意力不仅可以关注输入序列;自注意力还可用于查看句子或文档中的周围单词,学习到包含更丰富上下文信息的单词表示;多层自注意力是Transformer架构的核心(Vaswani et al。,2017),这是当前NMT的最优模型。


2015 - 记忆网络


注意力可以看作是模糊记忆的一种形式,其中记忆由模型过去的隐藏状态组成,模型选择从记忆中检索内容。更多关于注意力与记忆的联系可查看此文章。现在,许多具有明确记忆的模型已经被提出。这些模型有不同的变体,例如神经图灵机(Graves等,2014),记忆网络(Weston等人,2015)和端到端记忆网络(Sukhbaatar等人,2015),动态记忆网络(Kumar等人,2015),神经可微计算机(Graves等人, 2016年)和循环实体网络(Henaff等人,2017年)等。


通常以与当前研究相似的方式(类似于注意力)来访问记忆,并且可以对其进行读写操作。不同模型在实现和利用记忆的方式上有所不同。例如,端到端记忆网络多次处理输入并更新记忆以实现多个推理;神经图灵机还具有基于位置的寻址功能,这使它们可以学习简单的计算机程序(例如排序)。基于记忆的模型通常用于这些任务——保留较长时间范围内的信息将有效改善模型效果——例如语言模型和阅读理解。记忆这个概念是非常通用的:知识库或表可以存储记忆,同时可以根据全部输入或其中特定部分内容进行记忆填充。


2018 - 预训练语言模型


预训练的词嵌入是上下文无关的,通常仅用于初始化模型的第一层。最近几个月,一系列监督任务已用于预训练神经网络(Conneau等人,2017; McCann等人,2017; Subramanian等人,2018)。作为对比,由于语言模型仅需要未标记的文本; 因此,可以用数十亿个字符、不同领域和不同语言的数据进行训练。预训练语言模型于2015年首次提出(Dai&Le,2015); 直到最近,预训练语言模型被证明可以有效改善各种不同任务。语言模型嵌入可以用作目标模型中的特征(Peters等,2018),也可以根据目标任务进行微调(Ramachandran等,2017; Howard&Ruder,2018)。如图13所示,对面向不同任务的基线模型添加语言模型嵌入后,性能有了明显提升,优于SOTA结果。

1579438853393449.png

图13:引入语言模型嵌入的性能提升(Peters et al., 2018)


借助预训练语言模型可以用更少的数据解决特定任务。由于语言模型仅需要未标记的数据,因此对于缺少标记数据的低资源语言,预训练模型有更好的解决措施。有关预训练语言模型的更多信息,请参阅此文。


其他里程碑性工作


还有其他一些工作虽然不像上面介绍的那些无处不在,但仍然具有广泛的影响。


基于字符的表示    在字符上使用CNN或LSTM来学习字符表示已经非常普遍,对于形态学丰富的语言和任务更是如此,这些任务中形态学信息非常重要或者存在许多未知单词。基于字符的表示首先用于词性标注、语言建模(Ling等人,2015)和依存分析(Ballesteros等,2015)任务,后来还成为序列标记模型(Lample等,2016; Plank等,2016)和语言模型(Kim等,2016)的核心组成。基于字符的表示减少了对固定词表的计算量,还可以用在基于字符的NMT之类的任务中(Ling等人,2016; Lee等人,2017)。


对抗学习    对抗方法已经席卷了机器学习领域,并且在NLP中也以不同形式被使用。对抗性示例越来越广泛地被应用,不仅可以用来探索模型和了解失败案例,还可以使模型更具鲁棒性(Jia&Liang,2017)。(虚拟)对抗训练,即最坏情况扰动(Miyato等,2017; Yasunaga等,2018)和领域对抗损失(Ganin等,2016; Kim等,2017)等非常有用的正则化形式同样可以使模型健壮。生成对抗网络(GAN)在自然语言生成任务表现还不是很好(Semeniuta等,2018),但在匹配分布时非常有用(Conneau等,2018)。


强化学习    已经证明,强化学习非常适合解决具有时间依赖性的任务,例如在训练期间选择数据(Fang等人,2017; Wu等人,2018)和对话建模(Liu et al,2018)。RL还可以有效处理以下任务,如直接优化ROUGE或BLEU这样不可微分的终端度量,而不是优化总结的交叉熵之类的替代损失(Paulus等人,2018; Celikyilmaz等人,2018),机器翻译(Ranzato等人,2016年)等。类似地,逆向强化学习在奖励过于复杂以致无法给定的场景下(例如视觉叙事)能发挥作用(Wang等人,2018)。


非神经网络方法里程碑


1998年及随后的几年中,FrameNet项目启动(Baker等,1998),该项目引入了语义角色标记的任务——这是一种浅层语义解析任务,至今仍被广泛研究中。21世纪初,该项目与自然语言学习大会(CoNLL)共同推动了组块分析(Tjong Kim Sang等,2000)、命名实体识别(Tjong Kim Sang等,2003年)和依存分析(Buchholz等人,2006年)等NLP核心任务。直到今天,许多CoNLL任务数据集仍然是评估模型的标准。


2001年,条件随机场(CRF; Lafferty等人,2001)被提出,该方法成为一种非常流行的序列标记方法,并在ICML 2011上获得Test-of-time award。CRF层至今依然是序列标注SOAT模型的核心部分,该层能够学习依存关系,完成命名实体识别任务(Lample等,2016)。


2002年,双语评估(BLEU; Papineni等,2002)标准被提出,这推动了MT系统的发展,并且至今依然是MT评估的度量标准。同年,结构化感知器(Collins,2002年)被提出,为之后的结构化感知工作奠定了基础。在同一个会议上,情感分析任务被提出,该任务后来成为自然语言处理领域最流行和研究最广泛的任务之一(Pang等,2002)。这三篇论文均在NAACL 2018上获得Test-of-time award 。除此之外,那年还开放了语言资源PropBank(Kingsbury和Palmer,2002年),PropBank与FrameNet相似,但更侧重动词,它也常被用于语义角色标记。


2003年,隐含狄利克雷分布 (LDA; Blei等人,2003)被提出,这是机器学习中使用最广泛的技术之一,至今仍然是主题建模的标准方法。2004年,新的最大边距模型被提出,该模型比SVM更适合捕获结构化数据中的相关性(Taskar等人,2004a; 2004b)。


2006年,Hovy等人发布OntoNotes(Hovy等人,2006年),这是一个具有丰富、高质量标注的大型多语言语料库。至今,OntoNotes已用于训练和评估各种任务,包括依存分析和共指消解。Milne和Witten在2008年提出通过Wikipedia完善机器学习的方法,到目前为止,无论是实体链接和消歧,语言建模(Wikipedia作为知识库)还是其他任务,Wikipedia都是用于训练不同机器学习算法的重要资源之一。

2009年,Mintz等人提出了远程监督方法(Mintz等,2009)。远程监督是指通过启发式或现有知识库中的信息来生成噪音模式,从而自动从大型语料库中提取实例。远程监管如今已被广泛应用,并成为关系抽取、信息抽取、情感分析以及其他任务中的常用技术。

2016年,Nivre等人依据多语种树库(Treebanks)提出初版Universal Dependencies项目(Nivre等人,2016)。该项目面向开源社区,旨在构建跨多种语言的一致依赖项注释。截至2019年1月,Universal Dependencies v2已经包含超过70种语言的100多种树库。


译版

感谢DjaméSeddah,Daniel Khashabi,Shyam Upadhyay,Chris Dyer和Michael Roth对本文的指导与意见。(the Twitter thread)。

THE END

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:NLP 2019 回顾

下一篇:谷歌新机器学习API支持识别视频中的物体

用户评价
全部评价

热门资源

  • 应用笔画宽度变换...

    应用背景:是盲人辅助系统,城市环境中的机器导航...

  • GAN之根据文本描述...

    一些比较好玩的任务也就应运而生,比如图像修复、...

  • 端到端语音识别时...

    从上世纪 50 年代诞生到 2012 年引入 DNN 后识别效...

  • 人体姿态估计的过...

    人体姿态估计是计算机视觉中一个很基础的问题。从...

  • 谷歌发布TyDi QA语...

    为了鼓励对多语言问答技术的研究,谷歌发布了 TyDi...