分享

人工智能理解自然语言的原理是什么?

 昵称20874412 2017-06-08
当我们与Siri对话的时候,它是如何听懂我们的问题的?科幻电影《她/Her》中能与主人默契交流的机器人,将如何走进现实?与云知声自然语言处理大神一起,用3分钟弄懂人工智能理解自然语言的基本原理与主要难点。
人工智能理解自然语言的原理是什么?
人工智能理解自然语言的原理是什么?要有针对性地回答该问题,需先将它的议题边界进行明确定义。如果将该问题理解为如何利用计算机工具处理和分析自然语言,以实现人与计算机通过自然语言进行的有效沟通,那么可以得到一个相对狭义的回答;如果要梳理“人工智能”、“理解”、“自然语言”等问题中的概念,那么也可以获得一个相对广义的探讨。
狭义地讲,利用计算机进行语言分析的研究是一门语言学与计算机科学的交叉学科,学术界称之为“计算语言学”(Computational Linguistics),或者是“自然语言处理”(Natural Language Processing, 缩写:NLP)。如果将程序理解为“数据结构+算法”,那么NLP可以类比的理解为“语言学范畴+计算模型”。其中,语言学范畴是指由语言学家定义的语言学概念和标准(如词、词性、语法、语义角色、篇章结构等),NLP处理的任务大多来源于此;具体实现的计算模型或算法通常由计算机学家研制。
一般来说,通用的基础NLP总是与语言学领域的范畴直接相关联的,研究包括:词干提取(Stemming)、词形还原(Lemmatization)、分词(Word Segmentation)、词性标注(Part-of-speech, POS)、命名实体识别(Named Entity Recognition, NER)、词义消歧(Word Sense Disambiguation, WSD)、组块识别(Chunk Recognition)、句法分析(e.g. Dependency Parsing)、语义角色标注(Semantic Role Labelling, SRL)、共指消解(Coreference Resolution)、篇章分析(Discourse Analysis)等。还有一些NLP研究不与语言学范畴直接关联,而是面向文本处理应用的,比如:机器翻译、文本摘要、信息抽取、情感分类、信息检索、问答系统等,这些面向应用的NLP技术多多少少会依赖于前面所介绍的几类NLP基础研究。例如,文本摘要可能用到的NLP基础技术一般就涉及分词、命名实体识别等。
在计算模型研究方面,有理性主义和经验主义两条研究路线可以走,即所谓的“规则方法”和“统计方法”。由于自然语言在本质上属于人类社会因交流需要而产生的符号系统,其规则和推理特征鲜明,因此早期NLP的研究首要采用规则方法。然而,一方面,人类语言毕竟不是形式语言,规则模式往往隐式存在语言当中(比如汉语的语法规则是相当的含糊不精确),规则的制定并不容易;另一方面,自然语言的复杂性使得规则很难既无冲突又能涵盖全部的语言现象,于是这种基于理性主义的规则方法使得NLP研究长时间停留在一种小范围可用的Toy阶段。直到大规模语料库的建设和统计机器学习方法流行开来后,NLP研究才逐渐走向了面向实用化的道路。统计方法省去了很多人工编制规则的负担,在模型生成方面自动评估特征的权重,具有较好的鲁棒性。然而,当我们想要得到一个好的自然语言处理结果时,在设计反映语言现象洞见(Insight)的模型结构以及合适的特征设计方面,仍离不开NLP研究人员对语言的深入理解及其智力的支持。
可以看到,NLP的处理方式是将理解自然语言的过程看作是一种对语言现象的数学建模。一方面要求研究者有扎实的语言学知识背景,另一方面也要具备深厚的数理功底和机器学习经验。这样在面对一个具体的自然语言处理问题时,才能将其分解为具备可操作性的建模任务。从这个角度讲,NLP并非是真正理解自然语言,只是将语言处理当作一种计算任务。
如果不把理解自然语言简单地看作是数学建模,那么从广义层面,人工智能理解自然语言指的是什么呢?首先,需要明确一下所谓的“自然语言”、“人工智能”、“理解”等概念。
“自然语言”的含义相对明确,一般是指人类社会中逐渐发明和演变的用于沟通交流的语言,比如语音、手势语、书面语言等。这里为论述方便,将讨论范围约束在文本形式为载体的语言中,主要是书面自然语言,也包括口语表达的语言。
“人工智能”不是个能够清晰定义的概念。泛泛地说,人工智能是指机器智能体(Agent)模拟人类所表现出的智能活动,包括人类感知外界的能力、决策推理的能力、甚至拥有情感、意志的能力等。从外延构成上,人工智能包括两个方面:研究内容和方法论。研究内容即大家熟知的在科研机构开展的各类研究课题,包括:知识表达与推理、语音识别、计算机视觉、自然语言处理、自动规划与调度、机器人学等。而方法论是指实现人工智能模拟人类智能的视角和指导原则。实现人工智能主要有三种主流的观点和视角:符号主义、联结主义、行为主义。符号主义(Symbolism)认为,应该从数理逻辑演绎的角度来模拟人的思维智能活动。知识工程、专家系统等一系列理论与技术的发展无不受到符号主义思潮的影响。联结主义(Connectionism)源于对人脑模型的仿生学研究。McCulloch和Pitts提出的神经元脑模型M-P模型、Hebb提出的神经元学习规则、Rosenblatt的感知器概念等研究尽可能地从仿生学角度模拟了人脑结构。而后来的BP反向传播算法、将受限Boltzmann机引入深度学习等研究则更多的是从可计算性的角度大大扩展了神经网络模型的大规模应用性。行为主义(Behaviorism)将重点关注在可观测的人类行为上,认为人类通过行为与外界环境的交互而得到自适应性,从而获得智能。行为主义研究中常见的实现技术有进化计算(遗传算法)、强化学习等。现有主流的以规则和统计相结合的自然语言处理技术,其规则的一面与符号主义演绎推理的视角是相一致的;其统计的一面侧重于从数据中挖掘出语言学的一般性规律,属于归纳性思维。近些年来,词向量(如word2vec)等语言知识的分布式表示开始流行,这种分布式表示能够很自然的接入到神经网络模型,进行数据归纳学习,在一定程度上促进了联结主义自然语言处理的发展。
说到“理解”,大多数人的共识是机器无法真正理解自然语言,但是人类可以理解。一个典型的证据来源于美国哲学家John Searle通过“中文房间”思想实验对图灵测试的反驳。图灵测试用于判断机器是否具备人类智能。该测试的实验思路是:让一个不知情的质问者询问一台计算机和一个志愿者,通过多轮检验后如果质问者仍然无法判别计算机和志愿者分别是谁,那么说明计算机通过了图灵测试,意味着计算机具备了人类智能,拥有理解能力。Searle利用“中文房间”思想实验对图灵测试进行了批驳。该思想实验的大意是,一个说英语的人在房间内通过查找中文对照表与屋外人用中文交流。在屋外人看来,房间内的人会说流利的中文,而实际上他却完全不懂中文。在本文作者看来,暂且不必太纠结机器能否真的理解自然语言。事实上,人在语言交流时很多情况下也未必做得很好。例如,在谈及“元宵”时,全国各个地方对“元宵”的具体理解是有差异的;在谈及“豪宅”时,香港和内陆人在房屋尺寸上的理解也是不同的;一些温度感受的概念如“冷/热”,生活在不同纬度地区的人们对标的温度也是有别的。在认知语言学看来,概念的语义并非是从字典中罗列的静态含义。事实上,每个人对概念的理解与他个人特异化的体验环境有关。即便是同一概念,不同人也有不同的解读。例如,在多数情况下,拥有相似生活体验的人们,谈论某一共同话题时才更有可能产生所谓的“感同身受”。语义理解的困难尚且如此,人们在日常会话交际时还会产生语用理解的困难。请看这样一对会话,甲:“晚上去KTV吗”?乙:“我爸从天津回来了”。如果仅仅从字面语义来看待甲乙两人的会话是无法理解乙的回答的。实际上,乙通过告诉对方“我爸从天津回来了”来暗示自己没有办法接受甲的邀请,这是一种涉及语用的间接拒绝,反映了言语交际的真正意图。充分理解会话双方的语用意图需要借助会话的语境推理,影响推理的因素不仅包括会话上下文、会话时间地点等物理环境,也包括会话双方的共识知识、性格特点、文化背景等。人与人在语言交流中的相互理解仍是不易的,更何况是机器的真正理解。那么我们在利用机器处理自然语言时,可以不必过多在意它是否真的能理解这个问题本身,而是将精力关注在如何让智能体尽可能多地模拟人的智能,让机器具备人一样的功能。
自然语言理解方面,虽然以联结主义为代表的神经网络模型在物理表征层面尽可能地尝试模仿人脑结构,然而在一些处理机制方面仍与人脑存在巨大的差异。这里讨论三个问题。
一. 人脑如何从底层的联结计算向上自动形成出可推理的符号计算?人脑的基础构成是数亿万神经元及其形成的联结结构,信息输入是连续数值形式的,然而通过人脑的层层高级加工最终却可以将信息概念化,进而形成高效的符号计算与推理。新的知识可以通过概念组合或者推理获得,而无需再通过大规模的数据驱动得到。例如,如果人脑从大量文本素材中学习得到句子的“主(noun)+谓(verb)+宾(noun)”模式,那么当看到一句话“a1a2b1b2c1”,已知“b1b2”是动词,“c1”是名词,很有可能推理出“a1a2”是名词也是句子的主语。进一步的,如果已知“b1b2”是个体才能实施的动作,那么可以推断出“a1a2”很有可能是命名实体,即使我们不预先知道“a1a2”的内部用词构成。在图像处理领域,目前的深度学习技术可以将图像信息逐层抽象,自发地学习出高层特征,形成高级语义模式。这对自动化的模拟自然语言理解具有借鉴意义,然而实际上处理自然语言则困难得多。目前,如何利用底层的文本输入,让机器像人脑一样通过逐层信息加工自动生成高级的语言学离散符号及其模式规则,其形成机制并不清晰。
二. 如何让机器像人脑一样实现反馈式的自然语言理解?NLP研究的主流做法是将单个自然语言任务封装成一个模块,模块之间按照自然语言任务的高低级之分0次序串联起来。例如,对于句子的句法分析,通常的做法是先分词、词性标注、命名实体识别、组块识别等,这些信息可以作为高层句法分析的特征。然而,低级语言分析的错误也会传导到高级语言分析任务上来。如果分词有错误,也会影响到最终句法分析的性能。与之相反的是,人脑在进行自然语言理解时,并非总是按照各个语言分析模块以串行相接的方式进行。例如前面给出的句子“a1a2b1b2c1”,当我们暂时无法辨别“a1a2”是否是命名实体时,暂且将这个任务放一放,转而考虑句子后面的信息。当我们逐渐分析出来整个句子可能是“主(noun)+谓(verb)+宾(noun)”的句法模式时,这种更高层的信息作为正面反馈有利于反过来推测“a1a2”是命名实体。这个例子中,命名实体的识别反而采用了更高层的句法信息作为线索。现有的人工智能的自然语言处理流程是固定的,而人脑对自然语言处理的流程则可以根据实际情况做出改变。
三. 语义流变的自动学习。大量的词汇在社会的不同历史时期会有不同的语义,形成语义流变。例如,“小姐”一词的内涵从古至今就一直发生着变化。“小姐”在中国封建社会通常是指大户人家有着良好教养的未婚年轻女子;新中国建立后,随着传统封建社会中“小姐”对应的人物角色在社会中逐渐消失,“小姐”一词的使用也越来越少;然而,当人们对从事色情行业的女子冠以“小姐”的称呼时,“小姐”一词又产生了相应的新词义。因此,出于词汇语义流变的客观存在性,不可能一次性设计出一个完整而全面的机读词义辞典来支持自然语言的语义理解。当社会上出现词汇的新解时,一般就需要手动维护和更新语义辞典。如果对机器概念和知识的更新只停留在人工输入阶段,那么机器就永远无法实现像人一样的自动学习与进化。
一方面,人们对人脑的语言与思维的研究尚且并不充分。另一方面,现有的人工智能在理解自然语言的处理机制方面与人脑存在巨大的差异,那么是否意味着人工智能在自然语言理解的发展存在着难以克服的瓶颈呢?答案未必这样悲观。如果我们审视人类自身,会发现语言与思维的产生不仅与人脑基础的神经连接结构有关,也受到外界语言环境激励的影响。如果将联结主义和行为主义的思想结合起来,以仿生模拟的方式来“调教”机器智能体,就像教育儿童习得语言那样以交互激励的方式学习语言,那么经过很多代的更新和迭代后,机器智能体可能会进化出自己的语言习得装置,产生特异化的语言模式,而这些语言模式在表征上以分布式的形式存储于神经权值网络之中,使得人类理解起来异常困难。就像AlphaGo战胜了世界围棋高手,但是它的出棋策略已经很难被制造者所理解。采用仿生学模拟的方式让机器进化,意味着创造者对机器放弃了一定的控制权。正如凯文·凯利在《失控》中所说,一旦让机器进化出了智能,那么其代价是人类终将失去对机器的控制。人类可能最终不仅不理解人脑中语言与思维的产生机制,也难以理解机器智能体中的语言和思维是如何形成的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多