自然语言处理(Natural Language Processing,NLP)属于人工智能的一个子领域,是指用计算机对自然语言的形、音、义等信息进行处理,即对字、词、句、篇章的输入、输出、识别、分析、理解、生成等的操作和加工。它对计算机和人类的交互方式有许多重要的影响。
概括而言,人工智能包括运算智能、感知智能、认知智能和创造智能。其中,运算智能是记忆和计算的能力,这一点计算机已经远超过人类。感知智能是电脑感知环境的能力,包括听觉、视觉和触觉等。
近年来,随着深度学习的成功应用,语音识别和图像识别获得了很大的进步。在某些测试集合下,甚至达到或者超过了人类水平,并且在很多场景下已经具备实用化能力。认知智能包括语言理解、知识和推理,其中,语言理解包括词汇、句法、语义层面的理解,也包括篇章级别和上下文的理解;知识是人们对客观事物认识的体现以及运用知识解决问题的能力;推理则是根据语言理解和知识,在已知的条件下根据一定规则或者规律推演出某种可能结果的思维过程。创造智能体现了对未见过、未发生的事物,运用经验,通过想象力设计、实验、验证并予以实现的智力过程。
目前随着感知智能的大幅度进步,人们的焦点逐渐转向了认知智能。比尔 盖茨曾说过,“语言理解是人工智能皇冠上的明珠”。自然语言理解处在认知智能最核心的地位,它的进步会引导知识图谱的进步,会引导用户理解能力的增强,也会进一步推动整个推理能力。自然语言处理的技术会推动人工智能整体的进展,从而使得人工智能技术可以落地实用化。
自然语言处理通过对词、句子、篇章进行分析,对内容里面的人物、时间、地点等进行理解,并在此基础上支持一系列核心技术(如跨语言的翻译、问答系统、阅读理解、知识图谱等)。基于这些技术,又可以把它应用到其他领域,如搜索引擎、客服、金融、新闻等。总之,就是通过对语言的理解实现人与电脑的直接交流,从而实现人跟人更加有效的交流。自然语言技术不是一个独立的技术,受云计算、大数据、机器学习、知识图谱的等各个方面的支撑,如图1所示。
图1 自然语言处理框架
这里通过一个例子介绍自然语言处理中四个最基本的任务:分词、词性标注、依存句法分析和命名实体识别。在图2给定中文句子输入“我爱自然语言处理”:
①分词模块负责将输入汉字序列切分成单词序列,在该例子中对应的输出是“我/爱/自然语言处理”。该模块是自然语言处理里中最底层和最基础的任务,其输出直接影响后续的自然语言处理模块。
②词性标注模块负责为分词结果中的每个单词标注一个词性,如名词、动词和形容词等。在该例子中对应的输出是“PN/VV/NR”。这里,PN表示第一个单词“我”,对应的词性是代词;VV表示第二个单词“爱”,对应的词性是动词;NR表示第三个单词“自然语言处理”,对应的词性是专有名词。
③依存句法分析负责预测句子中单词与单词间的依存关系,并用树状结构来表示整句的句法结构。在这里,root表示单词“爱”是整个句子对应依存句法树的根节点,依存关系nsubj表示单词“我”是单词“爱”对应的主语,依存关系dobj表示单词“自然语言处理”是单词“爱”对应的宾语。
④命名实体识别负责从文本中识别出具有特定意义的实体,如人名、地名、机构名、专有名词等。在该例子中对应的输出是“O/O/B”。其中,字母O表示前两个单词“我”和“爱”并不代表任何命名实体,字母B表示第三个单词“自然语言处理”是一个命名实体。
图2 自然语言处理示例
自2008年开始,深度学习开始在语音和图像发挥威力,NLP研究者把目光转向深度学习。先是把深度学习用于特征计算或者建立一个新的特征,然后在原有的统计学习框架下体验效果。比如,搜索引擎加入了深度学习的检索词和文档的相似度计算,以提升搜索的相关度。自2014年以来,人们尝试直接通过深度学习建模,进行端对端的训练。目前已在机器翻译、问答、阅读理解等领域取得了进展,出现了深度学习的热潮。
深度学习技术根本地改变了自然语言处理技术,使之进入崭新的发展阶段,主要体现在以下几个方面:
①神经网络的端对端训练使自然语言处理技术不需要人工进行特征抽取,只要准备好足够的标注数据(如机器翻译的双语对照语料),利用神经网络就可以得到一个现阶段最好的模型;
②词嵌入(word embedding)的思想使得词汇、短语、句子乃至篇章的表达可以在大规模语料上进行训练,得到一个在多维语义空间上的表达,使得词汇之间、短语之间、句子之间乃至篇章之间的语义距离可以计算;
③基于神经网络训练的语言模型可以更加精准地预测下一个词或一个句子的出现概率;
④循环神经网络(RNN、LSTM、GRU)可以对一个不定长的句子进行编码,描述句子的信息;
⑤编码—解码(encoder-decoder)技术可以实现一个句子到另外一个句子的变换,这个技术是神经机器翻译、对话生成、问答、转述的核心技术;
⑥强化学习技术使得自然语言系统可以通过用户或者环境的反馈调整神经网络各级的参数,从而改进系统性能。
语言智能是人工智能皇冠上的明珠,如果语言智能实现突破,与其同属认知智能的知识和推理就会得到长足的发展,推动整个人工智能体系发展,使更多的场景可以落地。而自然语言的进展主要包括四个层面:神经机器翻译、智能人机交互、阅读理解及机器创作。
1. 神经机器翻译
神经机器翻译是模拟人脑的翻译过程。人在翻译的时候,首先是理解这句话,然后在脑海里形成对这句话的语义表示,最后再把这个语义表示转化为另一种语言。神经机器翻译有两个模块:一个是编码模块,把输入的源语言句子变成一个中间的语义表示,用一系列的机器内部状态来代表;另一个模块是解码模块,根据语义分析的结果逐词生成目标语言。神经机器翻译在这几年发展得非常迅速,2017年的研究热度更是居高不下,现在神经机器翻译已经取代统计机器翻译,成为机器翻译的主流技术。
统计数据表明,在一些传统的统计机器翻译难以完成的任务上,神经机器翻译的性能远远超过了统计机器翻译,而且跟人的标准答案非常接近甚至说是水平相仿。研究者围绕神经机器翻译做了很多工作,比如提升训练的效率、提升编码和解码的能力。还有一个重要的研究问题就是数据问题,神经机器翻译依赖于双语对照的大规模数据集来进行端到端的训练神经网络参数,这涉及很多语言对和很多的垂直领域。
而在某些领域并没有那么多的数据,只有少量的双语数据和大量的单语数据,所以如何进行半监督或者无监督训练来提升神经机器翻译的性能成为本领域的研究焦点。
2. 智能人机交互
智能人机交互是指利用自然语言实现人与机器的自然交流。其中的一个重要概念是“对话即平台”(conversation as a platform,CaaP)。2016年,微软首席执行官萨提亚提出了CaaP这个概念,他认为继有图形界面的下一代就是对话,对话会对整个人工智能、计算机设备带来一场新的革命。
这一概念的提出主要有以下两方面原因:一方面源于大家都已经习惯用社交手段(如微信、Facebook)与他人聊天的过程。这种通过自然语言交流的过程呈现在当今的人机交互中,而语音交流的背后就是对话平台。另一方面在于现在大家面对的设备有的屏幕很小甚至没有屏幕,所以通过语音的交互更为自然和直观。
因此,需要对话式的自然语言交流,例如借助语音助手来完成。通过语音助手调用很多Bot(对话机器人)来完成一些具体功能,比如买咖啡、买车票等。
因此设计了面向任务的对话系统,如微软的小娜,通过手机和智能设备介入,让人与电脑进行交流:人发布命令,小娜理解并完成任务。同时,小娜根据你的性格特点、喜好、习惯,提供个性化服务。此外还有聊天机器人,比如微软的小冰,主要负责闲聊。
无论是小冰这种闲聊,还是小娜这种注重任务执行的技术,其实背后单元处理引擎无外乎三层技术。第一层,通用聊天,需要掌握沟通技巧、通用聊天数据、主题聊天数据,还要知道用户画像,投其所好。第二层,信息服务和问答,需要搜索、问答的能力,还需要对常见问题表进行收集、整理和搜索,从知识图表、文档和图表中找出相应信息并回答问题,可以统称为Info Bot。第三层,面向特定任务的对话能力,如买咖啡、定花、买火车票这些任务是固定的,状态也是固定的,状态转移也是清晰的,那么就可以用Bot一个一个实现。它用到的技术是对用户意图的理解、对话的管理、领域知识、对话图谱等。
聊天机器人要理解人的意图,产生比较符合人的想法以及符合当前上下文的回复,再根据人与机器各自的回复将话题进行下去。基于当前的输入信息,再加上对话的情感以及用户的画像,经过一个类似于神经机器翻译的解码模型生成回复,可以达到上下文相关、领域相关、话题有关且是针对用户特点的个性化回复。
3. 阅读理解
自然语言理解的一个重要研究课题是阅读理解。阅读理解就是让电脑看一篇文章,并针对文章问一些问题,看电脑能不能回答出来。斯坦福大学曾做过一个比较有名的实验,就是使用维基百科的文章提出5个问题,由人把答案做出来,然后把数据分成训练集和测试集。训练集是公开的,用来训练阅读理解系统,而测试集不公开,个人把训练结果上传给斯坦福大学,斯坦福大学在其云端运行,再把结果报在网站上。这也避免了一些人对测试集做手脚。
阅读理解技术自2016年9月前后发布,就引起了很多研究单位的关注,大概有二三十家单位都在做这样的研究。一开始的水平都不是很高,以100分为例,人的水平是82.3分,机器的水平只有74分,相差甚远,后来通过类似于开源社区模式的不断改进,性能得以逐步提高。2018年在阅读理解领域出现了一个备受关注的问题,就是如何才能做到超越人的标注水平。当时微软、阿里巴巴、科大讯飞和哈尔滨工业大学的系统都超越了人工的标注水平,也体现了中国在自然语言处理领域的进步。
一个阅读理解的框架首先要得到每个词的语义表示,再得到每个句子的语义表示,这可以用循环神经网络RNN来实现,然后用特定路径来找出潜在答案,基于这个答案再筛选出最优答案,最后确定这个答案的边界。在做阅读理解时用到了外部知识,可以用大规模的语料来训练外部知识,通过将外部知识训练的RNN模型加入原来端到端的训练结果中,可以大幅度提高阅读理解的能力。
4. 机器创作
除了可以做理性的东西,机器可以做一些创造性的东西。大约在2005年,微软研究院研发成功了微软对联系统。用户出上联,电脑对出下联和横批,语句非常工整。在此基础上,进一步开发了猜字谜的智能系统。在字谜游戏里,用户给出谜面,让系统猜字;或系统给出谜面,让用户猜字。此后,关于创作绝句、律诗、唐诗宋词等的研究随之兴起。
2017年,微软研究院开发了电脑写诗、作词、谱曲系统。中央电视台《机智过人》节目就曾播出过微软的电脑作词谱曲与人类选手进行词曲创作比拼的节目。这件事说明,如果有大数据,那么机器学习或者深度学习就可以模拟人类的创造能力,智能地造出一些作品来;也可以与专家合作,帮助专家产生更好的想法。
随着大数据、深度学习、计算能力、应用场景等的推动,预计在未来5~10年,NLP会进入爆发式的发展阶段,从NLP基础技术到核心技术再到NLP+的应用都会取得巨大进步。比如:口语翻译会完全普及,拿起手机→口语识别→翻译、语音合成,实现一气呵成的体验;自然语言会话(包括聊天、问答、对话)在典型的场景下完全达到实用;自动写诗,自动撰写新闻、小说、流行歌曲开始流行。
自然语言尤其是会话的发展会大大推动语音助手、物联网、智能硬件和智能家居的实用化,这些基本能力的提升一定会带动各行各业如教育、医疗、法律等垂直领域的生产流程。人类的生活发生重大的变化,NLP也会惠及更多的人。
然而,还有很多需要解决的问题。比如个性化服务,无论是翻译、对话还是语音助手,都要避免千人一面的结果,要实现内容个性化、风格个性化、操作个性化,要记忆用户的习惯,避免重复提问。
目前基于深度学习的机制都是端对端训练,不能解释、无法分析机理,需要进一步发展深度学习的可理解和可视化,可跟踪错误分析原因。很多领域有人类知识(如翻译的语言学知识、客服的专家知识),如何把数据驱动的深度学习与知识相互结合以提高学习效率和学习质量,是一个值得重视的课题。此外,在一个领域学习的自然语言处理模型(如翻译系统)如何通过迁移学习来很好地处理另一个领域?还有如何巧妙运用无标注数据来有效缓解对标注的压力?以上这些工作都是研究者需要持续努力的方向。在后面的内容中会介绍自然语言处理中一些重要的技术,如机器翻译、自然语言的人机交互。希望通过这些典型技术的介绍,读者可以对自然语言处理的基本理论、方法和实现等有一个清晰的了解。
来源:网络收集