摘要:由于计算机硬件的不断发展,以及深度学习方法的推广,人工智能相关技术和应用迅速在世界范围内发酵,成为了当下最为火热的产业。自然语言处理是一门涉及计算机科学技术和语言学的交叉学科,致力于让机器能够很好的处理自然语言,和人类更好的交互。近些年深度学习的方法也被越来越多的应用到自然语言处理的领域。文章先对人工智能、深度学习和自然语言处理等领域技术的相关背景做了介绍,然后阐述了当下自然语言处理领域大研究的难点,最后还对自然语言处理的发展现状和发展趋势做了阐述和展望。 关键词:人工智能 深度学习 自然语言处理 发展趋势 一、人工智能与深度学习 近年来,“人工智能”(Artificial Intelligence)一词在世界范围内掀起一股浪潮,许多国家将人工智能技术的发展提到了国家战略的高度,许多国内外非常有名的科技公司都开始在这方面投入大量的资源进行研发和应用,其中在国外比较具有代表性的有谷歌、微软和Facebook等,国内的百度、阿里巴巴和腾讯等“科技巨头”也纷纷对人工智能领域的技术研发和应用等进行布局。 其实“人工智能”一词并不是一个新的概念,其实早在上个世纪的五十年代,对这个领域的探索就已经开始,当时的科学家们提出了“要用人工智能来模拟人类的智慧”这一大胆的目标。在这之后,人工智能这一领域便迎来了自己的第一个“黄金时代”,而此后,在这一领域中又反反复复出现过几次发展的高潮与低谷。有人将这一段对人工智能领域探索的历史称为“喧嚣与渴望、挫折与失望交替出现的时代”。 近些年,由于神经网络深度学习在算法上的突破,使得众多基础人工智能水平得到很大的提升。人工智能这一领域借着深度学习有了更高层次的发展。深度学习方法为人工智能领域的最近这一波再次兴起可谓是立下汗马功劳。 深度学习(Deep Learning)是机器学习的一个分支领域,是一种试图使用包含复杂结构或由多重非线性结构变换构成的多个处理层对数据进行高层抽象的算法(维基百科)。“深度学习”一词最初在1986年出现,而大多数人认为近代深度学习方法是从2006年开始发展起来的。深度学习本质上是构建含有多层的机器学习构架模型,在通过大规模的数据对构建起来的模型进行训练,从数据中提取大量的更具代表性的特征信息,从而提高模型的分类和预测的准确率。深度学习的“深度”是相对传统的机器学习方法,模型结构分为多层这一特点是其与传统机器学习方法(比如“支持向量机”等)最大的区别,深度学习模型结构中包含的隐层节点数一般在5层之上,有时甚至能够达到10层。其次深度学习更加明确地强调对于特征的学习对于模型本身的重要性,深度学习方法通过对特征的逐层提取,将数据样本在原空间的特征变换到一个新的特征空间来表示,这使得我们分类和预测的任务更加容易实现。深度学习模型也有其缺点,首先就是这种模型的训练需要大量的数据,进行大量的计算,数据来源和处理是一个比较大的问题,对于硬件的要求也比较高。其次就是关于模型大小和模型训练难度的问题,比如我们经常提到的“梯度消减”和“梯度爆炸”的问题。 二、自然语言处理 自然语言处理(Natural Language Processing)是一门交叉学科,包括人工智能和语言学,自然语言处理致力于让计算机能够理解人类语言,其目的当然是更好的提高人工智能的“智能”的程度,让普通的不懂机器语言的用户能够使用自然语言就可以进行人机交互。早在上个世纪五十年代,这一领域的相关研究就已经开始了。1954年的乔治城实验,将超过60句的俄文自动翻译成英文,相关的研究人员更是声称将在三到五年的时间内解决机器翻译的问题,而事实上我们知道,实际的进展跟预期相比慢了远不止一个节拍。直到上个世纪八十年代末,基于统计的机器翻译系统的出现,才让机器翻译这一领域的发展提高到另一个档次。 自然语言处理的研究范畴非常广泛,比如文本朗读(语音合成)、语音识别、中文自动分词、词性标注、句法分析、文本分类、信息检索、文字校对、机器翻译和自动摘要等众多领域。自然语言处理领域中理解语义的分析有以下几种,首先就是分布式方法,这种方式利用机器学习和深度学习的大规模统计策略,是一种基于统计学的方法,而这也是我们现在自然语言处理领域中使用非常广泛的方法,在后面第四部分我们还会详细谈到。第二种是框架式方法,这种方法用于当我们所处理的句子的句法不同,可是语义相同时,这些句子会在数据结构中被程式化表示。第三种方法是理论式的方法,这种方式基于的思路是,句子所指代的真正的词和句子的部分内容相结合,这样就可以表达句子的完整含义了。最后一种方式是交互式的学习方式,这种方式涉及到语言直接应用的方法,在一种基于交互式的学习环境中,由用户一步步的教机器学习语言。 接下来通过一个典型的自然语言处理的应用场景,语音和文本之间的转换来说明自然语言处理的流程。在这个场景下,设计到的流程有自然语言理解和自然语言生成。自然语言理解(Natural Language Understanding)是要理解给定文本的实际含义,文本中的每个词的特性和结构需要被理解。在这一过程中,自然语言中的几个典型歧义需要被解决。首先就是词法的歧义,就是一个单词有多种含义所引起的歧义。再者就是句法歧义,就是同一个句子会有多重的解析树,而我们必须靠语义以及前后文才能选择出一棵最合适的解析树。还有语义都为歧义,跟词法歧义类似,就是同一个句子会有多重的含义。最后就是指代歧义性,就是句子中我们会有很多的代词,如何准确的判断这些代词的具体所指是一个很大的挑战。解决了这些歧义性问题之后,就通过各种规则去理解句子的意思。流程中的第二部分,自然语言生成(Natural Language Generating)是从结构化额数据中自动生成可读文本的过程,这一部分可被分为三个阶段。首先是文本规划,就是从结构化数据中规划基础的内容。然后是语句规划,从结构化的数据中组合语句,用来表达信息流。最后一步就是实现,产生通顺的语句表达文本。 三、自然语言处理中的技术难点 除了在上面提到的词法、句法、语义和指代的歧义性所带来的问题(值得一提的是,在中文中,这些歧义性的问题更加显著),自然语言处理在单词的边界界定、输入的不规范和与语言行为与计划等方面有许多的难点。 单词的边界界定指的是,在人们日常对话所使用的自然语言中(在口语中),两个词之间通常是连贯的,目前处理这个问题的办法是取用一种界定办法,这种界定办法要使取用之后意思通畅,符合前后文,而且没有任何的语法问题。特别要提及的是,在书写上,中文也没有词与词之间的边界,不像书写英文要在单词之间加上分隔符,所以这也是机器学习的应用场景“中文自动分词”的由来,而由于中文的灵活性,使得这是一个不小的挑战,而中文自动分词也是整个基于中文的自然语言处理最基础最重要的一步,分词任务完成的质量,直接影响我们后续的工作。 输入的不规范,这个比较容易理解,语音中一般指一些方言口音或者口齿不清等情况,英文文本中比较常见的有单词拼写错误或者句子出现语法错误,中文文本中对应的就是错别字。还有一种现在经常使用的技术是光学字符识别,比如扫描一些打印出来的文本,进行翻译等任务。这种识别的错误也是引起输入的不规范问题的原因之一。 最后一种是语言行为与计划,在实际生活中,一句话经常不仅仅是字面上的意思那么简单,比如“你能帮我……吗?”一个让人舒服的回应应该是直接帮忙处理这个问题,或者拒绝并给出原因也还算是一个不错的回应,而不是仅仅回应一个字“能”。 四、自然语言处理发展现状及趋势 由于传统的基于句法-语义规则的方法过于复杂,随着语料库的建设,大数据相关产业的兴起,大规模真实文本的机器学习处理成为自然语言处理的主要选择,尤其是进来随着深度学习的兴起,深度学习方法渐渐覆盖了自然语言处理的各种场景。 在过去几年中,基于密集向量表示的神经网络已经在各种自然语言处理任务中有很不错的表现,深度学习能够实现多级自动特征表征学习。而基于传统的机器学习NLP系统大都需要手工提取特征,我们都知道,手工提取特征耗时而不完整。目前已有研究表明,简单地深度学习框架在大多的自然语言处理任务中胜过大部分的最先进的方法,比如命名实体识别(NER)和语义角色标注(SRL)等。而现在,已经有许多复杂的基于深度学习的方法被提出,用来解决复杂的自然语言处理问题。比如卷积神经网络(CNN),循环神经网络(RNN)和递归神经网络等。 随着深度学习、大数据以及云计算的相关技术的发展,语言智能会跟感知智能一样,会有长足的发展,自然语言处理也会迎来60余年发展历史上最好的一个时期(引自微软亚研院,周明)。通过分布式的方式,各种深层模型已经成为解决自然语言处理领域问题的最先进的办法。而且业内普遍认为这种发展趋势将会带来更多更好的模型设计。目前业界已有人提出将强化学习和无监督学习的方法应用在自然语言处理的场景中。强化学习代表了用优化特定目标来训练NLP系统的更符合现实生活的方式,而无监督学习可以在大量未标记数据中学习丰富的语言结构。而这也更加接近我们对“智能”的要求。
|