作者:DANIEL W. OTTER等
编辑:九三山人
前言
这篇文章调查了大量(两百篇以上)的相关文献资料,对NLP领域中深度学习的技术和应用层面进行了综述与讨论,非常适合于想要快速了解该领域整体概貌的研究者。
摘要
在过去的几年中,由于深度学习模型的爆发式应用,自然语言处理领域得到了长足的发展。本调查提供了该领域的简要介绍,以及深度学习框架和模型的快速概述。本文筛选了大量最新研究,并总结了大量的相关贡献。涉及领域除了包括计算语言学的应用,还包括几个核心的语言处理问题。最后对该技术目前的最高水平进行讨论,并对该领域的未来研究提出建议。
文章结构
精华内容
1.NLP的两方面工作:核心领域、应用
技术领域致力于基础性问题,包括:
- 语言建模,强调词语间的量化关联;
- 词形处理,即对有意义的词的组成部分进行分割,并根据所使用的词的词性进行识别;
- 词法处理或解析,将句子的图作为语义处理的前提,试图提炼出文本中的单词、短语和高级组成部分的意义。
应用领域包括:
- 有用信息提取;
- 多种语言之间的本文翻译;
- 书面文本的概述;
- 自动问答;
- 文档语料库的分类和聚类;
- 图像和视频字幕。
解决实际问题是,通常需要同时成功的处理一个或多个核心问题。
2.从基于规则的方法—>机器学习(统计方法)—>神经网络
- 最早的NLP是基于规则的方法,对于非规范化的日常语言处理很困难。
- 机器学习(统计学习)方法使得NLP的最高水平有所突破,使用方法主要有朴素贝叶斯、k-最近邻、隐马尔科夫模型、条件随机场、决策树、随机森林、支持向量机。
- 随着神经网络、深度学习的发展,机器学习方法被全面替代或增强。
3.语言背后的深层语义:四个核心技术领域
- 语言建模:语言建模是NLP的基础问题,指的是建立一个模型来对单词或语言组件进行预测。
- 词法分析:词法主要实现对于单词的分割,包括词根、词干、前缀、后缀等。词法分析器在NLP任务中非常重要。
- 语法分析:语法主要是检查句子中不同单词和短语之间的关联性。主要有两种语法:成分语法和依存语法。成分语法从语句中分层抽取短语成分,并不断累积抽取更大的祖坟。依存语法则重点关注单词之间的关系。深度学习在依存分析领域使用的最多。
- 语义分析:语义处理涉及在某种程度上理解单词、短语、句子或文档的意义。“意义”这个词是不容易解释的,语言学家和哲学家们对此争论了几个世纪。
- 小结:深度学习方法在创建有用的自然语言应用程序能够并且正在构建的基础方面通常表现得非常好。本节仅介绍了使用深度学习来解决这些问题的一些选定的努力。由于篇幅所限,本文未讨论的主题包括词性标注、拼写纠正、词义消歧、共参照解析、语篇和会话问题等。
4. 语言建模主要方法
- 神经语言建模:神经语言模型可以很好的解决统计方法很难处理的近义词、超词库(OOV, out of vocabulary)单词。自从Bengio等人2003年引入人工神经网络(ANN)之后,ANN被大量使用。通常使用“词向量”形式表征单词,这种技术建模技术成为嵌入,典型的嵌入通常在50~300,通常与人类直觉一致。
- 语言模型的评估:在语音识别、机器翻译中可以使用词语错误率(WER,word error rate)作为衡量指标。目前还没有独立评估语言模型本身的完美指标,通常使用困惑度(perplexity,低困惑度的概率分布模型或概率模型能更好地预测样本)指标。目前有两个用来做语言模型对比的基准数据集,一个是PTB(the Penn Treebank),另一个适合于大型模型对比的是“the Billion Word Benchmark”。
- 语言建模中的注意力机制:Daniluk等人使用多种注意力机制的变种网络进行了测试,发现注意力机制,尤其是使用多种不同参数的情况下,对于语言建模的效果提升很有帮助。而且验证了简单的网络加上注意力机制,同样能够达到很多大型RNNs和LSTMs模型的效果。
- 卷积神经网络用于语言建模:Pham等人的研究表明,CNN网络的堆叠并不利于语言模型的表现。CNN网络对于句子中长期的依赖关系具有较好的抓取能力。
- 字符感知神经语言模型:字符级别的神经网络不同于将单词作为输入的方式,使用字符级别的输入来替代单词。结果表明有诸多好处,字符感知神经网络可以使用只有190万个训练参数的网络在PTB数据集上实现最好水平的效果。可以更好的处理语料库中罕见的单词。增加highway层之后,可以更好的处理语义相似的问题。对于拼写错误的识别处理效果也不错。同样可以识别字首、词根和字尾。可以说,这是一个很鲁棒的模型。而且,在大型数据集上突破了以前的记录,用更小型的网络实现了最高水平的表现。
5. 词法分析主要方法
- 词法感知语言模型:对于上下文语境敏感的模型更为有效,显著优于以前的嵌入式模型。
- 注意力机制、字符感知模型:注意力机制会降低编码器性能,但是增加解码器性能。字符感知模型在词法学习方面明显优于其他模型。输出语言会影响编码器性能,尤其是词法越丰富的语言,编码器创建的特征效果越差。字符感知模型在机器翻译、语义、语法方面的应用最为流行。
- 一种用于非分割语言的RNN词法语言模型:这种模型用RNN模型,加上一个定向搜索编码器,通过语料库训练后,在词法分析、词性标注、词形还原等任务中均超过了所有基线性能。
6. 语法分析主要方法
- 基于图的句法分析:这是最近经常用于依存分析的一种方法,多部分是基于自然语言的形式语法的生成模型。其中的基于转移(transition-based)的方法是近年使用最多的,通常建立一个语法树,并进行大量的修改。标准方法是建立一个缓冲器和一个堆栈,缓冲器存储语句中的所有单词,堆栈只包括词根标签。建模过程是将单词推进堆栈,然后单词被推送到堆栈中,在堆栈中,最上面的两个条目之间建立连接,称为弧线。这些弧线可以是右弧线,也可以是左弧线,这取决于上面的单词(在句子中更右边)是否依赖于下面的单词(在更左边),或者底部的单词是否依赖于上面。一旦确定了依赖关系,单词就会从堆栈中弹出。该过程将继续,直到缓冲区为空,并且只有根标签保留在堆栈上。主要有三种弧线的确定方法:arc-standard,arc-eager,swap-lazy方法。
- 截至文章撰写时的最佳方法:是一种基于转移的依存语法分析方法,使用了可选择算法来生成有向无环图,而不是一个简单的树。主要用到了两种新的LSTM方法:Bi-LSTM subtraction和incremental tree-LSTM。
- 依存和成分语法的生成模型:近期的研究开始将深度学习用于成分语法和生成模型。
7. 语义分析主要方法
- 语义分析的两个方向:神经语义处理研究分为两个不同的领域:侧重于比较两部分文本的语义相似度的工作,侧重于捕获和传递语言高级成分的意义,尤其是句子。作为一个推论,当用神经网络处理与短语、句子或文本的其他组成部分相对应的向量时,可以粗略地认为具有语义代表性的表示就会在合成上计算出来。这样的构图对于总结、回答问题和视频字幕等任务来说是非常必要的。
- 语义对比:测试计算语义方法有效性的一种方法是,通过程序来判断两个由人类判断具有相似含义的相似短语、句子或文档。从1998年至今,每年都会举办一系列名为SemEval的研讨会,以鼓励对语义计算方法的研究。比较两个句子的语义相似度一直是SemEval contest和其他场所发表的论文的主要内容。 研究发现,POS(词性)标注、多池化操作、多相似度指标,以及若干其他特征,都对模 型性能有贡献。2016年,He等人发表了一个新的模型,在SICK数据集、MSRVID数据集、SemEval2014 Task 10数据集、WikiQA数据集以及TreeQA数据集中均达到了state-of-art(最高优表现)。这个模型构造一个两个语句的矩阵,然后应用“相似度聚焦层”,再将信息传递给一个19层的CNN网络,之后是密集层和softmax输出层。
- 语句建模:就像语言建模是对单词意义的抓取一样,这里的语句建模主要是为了抓取语句、短语级别的含义。毫无疑问,最依赖于良好语义理解的NLP领域是机器翻译领域。神经机器翻译(NMT)系统是研究内部语义表示的极好的试验台,它既满足了这种理解的要求,又易于检查,因为它们使用的是典型的编码器译码器结构。研究发现,语义分析模型同时跨多个领域训练比只在一个域训练更为有效。,
8.信息提取:利用算法从文本中提取显性或隐性信息的过程。
使用这些算法的系统的输出在不同的实现中是不同的,但是通常提取的数据和其中的关系都保存在关系数据库中[Cowie和Lehnert 1996]。早期的方法包括使用简单的信息分类、模式匹配和语法方法来创建基于规则的方法[Andersen等人1992;哈曼顿,2003)。目前的信息检索系统使用各种监督和非监督的机器学习算法。通常提取的信息包括命名实体和关系、事件及其参与者、时间信息和事实元组。
- 命名实体识别(named entity recognition,NER):目前,SVM和条件随机场是两种最常用的方法。多任务识别使用了额一个简单的前向网络。最近的探索主要有双向LSTM网络和条件随机场的结合方法,利用字符级别的输入进行提取。
- 事件提取:事件提取涉及到识别指事件发生的单词或短语,以及参与者(如代理、对象和接收者)以及事件发生的时间。事件提取通常处理四个子任务:识别事件提及或描述事件的短语;识别事件触发器(通常是动词或动名词);确定事件的论点;以及确定事件中的参与角色。几乎所有的事件提取工作都使用有监督的机器学习,并且依赖于特征工程,从词法、句法或基于知识的分析中获得的线索被用作特征。这些特性与分类算法一起使用,以识别特定的单词作为事件触发器,识别触发器表示的事件的类等等。近期的研究主要有基于RNN的编码-解码器、动态多池化卷积神经网络(DMCNN)等。
- 关系提取:从文本中提取的另一种重要信息是关系信息。这可能是所有关系,反义或同义关系,或更自然的关系,如家庭或地理关系。注意,这个任务在很大程度上是一个语义任务,特别是在考虑神经模型时。近期研究的主要方法有双向LSTM与CNN联合方法、基于注意力及复制机制的GRU模型等。
9.文本分类
自然语言处理的另一个经典应用程序是文本分类,将文本分配给预定义的类别。文档分类有很多应用。许多技术已经在这项任务中产生了有价值的结果:用于信息检索的Rocchio算法[Rocchio 1971]、支持向量机[Joachims 1998]、决策树[Mehta et al. 1996],以及深度神经网络等。近期研究的主要方法有CNN网络分类、深度信念网络和softmax回归混合结构方法等。
10.文本概述
概述是从文档中提取感兴趣的元素或特征,从而对最重要的信息进行封装的任务。概括技术有两种主要类型:提取技术和抽象技术。
提取技术侧重于句子提取、简化、重排序和连接,以获取文档中的重要信息。近年来提出了大量的提取算法。这些方法包括基于频率的方法[Edmundson 1969;Luhn 1958);基于机器学习(naive Bayes)的算法[kuoproet al. 1995];使用PageRank算法计算句子的相对重要性[Erkan和Radev 2004]。
抽象技术依赖于通过生成风格的抽象表达文档内容,可能使用文档中从未见过的词[Jurafsky和Martin 2000]。历史上,抽象摘要算法包括基于图形的算法[Ganesan et al. 2010],以及解析树和图形到图形的转换[Liu et al. 2015]。最近,随着越来越多的成功,深度学习方法已被用于抽象摘要。深度学习方法通常使用循环编码-解码器架构。
11.问答(QA)
问题回答(QA)收集特定的数据点、短语或段落。不同之处在于他要对这些信息进行反馈。这个问题被划分为以下几个子任务:问题分类、段落检索和答案提取[Ezzeldin和Shaheen 2012]。问题分类确定所请求的信息类型和应该返回的响应格式。在段落检索中,提取摘要常常被用来以一种智能的顺序检索、简化和组合信息,以创建响应。最近一种新颖的方法是使用关系网络(RNs)。RN考虑了所有的排列,以确定给定文档中的句子之间是否存在任何关系,或者这些句子与所提问题之间是否存在任何关系。
12.机器翻译
机器翻译是自然语言处理的典型应用。它涉及使用数学和算法技术将一种语言的文档翻译成另一种语言。即使对人类来说,进行有效的翻译本质上也是一项艰巨的任务,需要在形态学、句法和语义等领域的专业知识和技能,以及对两种语言(以及相关社会)的文化敏感性的熟练理解和识别[Jurafsky和Martin 2000]。最近的进展包括有效初始化解码器隐藏状态、使用条件选通注意单元、去除嵌入层中的偏置、使用替代解码阶段、嵌入的分解、重复层的大规模堆叠以及波束搜索算法的测试时间使用[Klein等人2017;Sennrich et al . 2017]。
13.图像和视频字幕
图像字幕是独特的,因为它结合了自然语言处理和计算机视觉的领域,从图像编码信息和解码成文本。近年来,神经网络在这一领域的应用取得了显著的进展。作为神经字幕模型的缩影,谷歌的神经图像字幕(NIC)算法[Vinyals等人2015b],使用深度CNN,训练用于图像分类目的,作为编码器和LSTM网络进行解码。据作者所知,目前在视觉语言问题上表现最好的作者使用了区域注意力和特定场景的上下文。未来的工作肯定会集成声学处理,以更好的字幕和更广泛的任务,如总结电影。
14.未来展望
通过对所有被调研的模型进行综合分析,可以推测出一些总体趋势。
- 首先,具有注意机制的周期性网络(特别是那些具有显式记忆的网络,如LSTMs和GRUs)是最强的解码器。
- 其次,最好的译码器往往是那些实现了以RNNs为上限的CNNs的译码器,而卷积方面似乎更重要一些。
- 第三,虽然工程技术通常会优化结果,但没有什么可以替代大量高质量数据的作用。
- 最后,应当将更多的研究聚焦于训练技术,而不是开发昂贵的、高度专门化的组件来从复杂的模型中挤出最后一滴性能。
论文信息
作者:DANIEL W. OTTER,JULIAN R. MEDINA,JUGAL K. KALITA
论文下载:公众号回复关键字:20180818
作者简介:DANIEL W. OTTER
个人状态:美国科罗拉多斯普林斯大学航天工程专业学生、深度学习研究者
研究方向:空间科学、人工智能
个人网站:http://www.cs.cmu.edu/~noamb/index.html