4月18日周三晚,北京大学“人工智能前沿与产业趋势”第八讲,本期今日头条人工智能实验室主任李航的授课主题为“自然语言处理的现状和发展”,分享了自然语言的发展历史、人脑如何实现人工智能以及计算机如何实现自然语言处理等相关内容。
讲解内容深入浅出,量子位作为独家合作媒体,为大家带来详细课程笔记一份。
课程导师:雷鸣,天使投资人,百度创始七剑客之一,酷我音乐创始人,北京大学信科人工智能创新中心主任,2000年获得北京大学计算机硕士学位,2005年获得斯坦福商学院MBA学位,同时也是“千人计划”特聘专家。
主讲嘉宾:李航,今日头条人工智能实验室主任。北京大学、南京大学客座教授,IEEE 会士,同时也是ACM 杰出科学家,CCF高级会员。他的研究方向包括信息检索,自然语言处理,统计机器学习,及数据挖掘。
首先看自然语言对话的发展历史。2011年苹果Siri面世,这是第一个比较有名的对话系统,后来有微软小冰、亚马逊的Alex等,我当时在华为也有幸和同事一起研究华为mate10的语音助手,包括语音识别,对话等。
这些对话系统,越来越实用,同时也能看到这些系统的局限性。重点想和大家一起看一下,到底我们是否能建立和人一样,自如地对话的自然语言系统,以及自然语言的挑战和根源在什么地方。
讨论一个概念:合理行动的智能机器。
这本书比较有名了,人工智能的经典教科书。这本书对人工智能这个领域给了一个定义:人工智能是研究智能机器或者智能计算机的科学和工程领域。但是智能计算机有4种可能的定义:像人一样思考的机器,像人一样行动的机器,合理思考的机器,合理行动的机器。
这四个概念相关但也不完全一样,他其实代表了对人工智能不同的认识和定位。这些不同的智能机器我们要实现的话也需要一定的不同的基础和方法论。我们构建他们的动机也是去更好地理解人的思维或者行为。基于这个目的去做像人一样思考和行动的机器就比较合理。
合理思考和合理行动有什么关系呢?合理行动肯定需要合理思考,这两者密切相关,合理行动的机器更多强调行为,思考的侧重点则不一样。我们现在已有的人工智能系统,90%以上都是合理行动的智能机器。
它有五个共同特点:
1、有一个智能系统,与环境做互动;
2、有明确的目标;
3、有评价标准来评价他行为的好坏;
4、从功能的角度,就是给了一个输入,系统能给出一个输出,能够达到我们要完成任务的目的。
我们不在意他怎么实现的,只在意他能否实现。我们把它叫做智能系统,是一个合理行动的智能机器,是希望它在完成某一任务的时候要达到人的水平或者超过人的水平。绝大多数的人工智能系统,基本都是沿着这样的目的在做,希望构建更好的服务我们的工具。
在某一个领域超过了人,也未必代表就已经超过了人类,自然界的某动物,人造界的工具,在完成某些任务的方面,已经能超过人很多,但我们并不认为那些动物或者那些工具比人还强,比人更加智能,而是说在某些任务上面比人强。
我们做大部分的人工智能都是希望在某些任务上面比人强,超过人,或者和人做的差不多。为什么合理行动的智能机器在现在的人工智能领域发展得最好呢?因为我们对人的智能思维,行为,理解非常有限,要做一个像人一样思考或者行动的智能机器,非常困难。
合理思考的智能机器,在现实当中可能也比较有用,但是也是很难构建的。更多我们看到的则是在一个环境里面完成某一个任务,性能超过人,这是相对比较容易做的。现实中我们看到有机器学习的方法,通过数据的驱动,使我们智能机器在具体任务上能够做的更好。所以合理行动的智能机器,进步非常大,机器学习在这里面起了非常重要的作用。
顺便说一下图灵测试。图灵测试是在房间里放一个智能机器,人在另外一个房间里,人和机器通过文字交互,如果隔壁房间里的人判断不了房间里是人还是机器,我们就认为机器有人的智能。
图灵测试是说如何定义像人一样的行为。“像人一样”,这个标准,很难定义,但是合理行动,可以在一个具体任务中定义。
比如说诟病图灵测试的人会说,如果是算术题,机器1秒钟回答,那么马上能判断出来这是机器。图灵测试必然有这样的缺陷。这种“像人一样”的标准很难定义。
现在又有一些人去定义新的图灵测试,基本上是基于任务的。具体的任务里面,当任务确定了之后,问题转化了;在具体任务里去测试,去定义。
我再提一个概念,脑科学和计算视觉里面有一个先驱,David Marr,他说计算分三个层面,功能的层面,算法和表示的层面,还有实现和物理的层面。不同的层面,如果一个系统在做计算,在功能和物理的层面是不同的。给定一个输入,得到一个输出,这是功能,那么具体的算法可能不同的系统有不同的算法去实现同样的功能,在物理层面可能有不同的实现。
比如,两个系统,一个人脑,一个计算机,我们只要看他们两个做出来的功能是一样的。但是我们并不在意它内部的算法是什么,比如可能是并行计算也可能是串行计算,可能是进行数字计算也可能是模拟的计算。内部算法我们不管,只要他们在功能上行为一致,那就是有同样的功能。
对话系统,更多的也是从功能上看,我们认为人脑就是一种计算机,在做一些计算。一个想法是人脑的思维就是一种计算,人脑就可以当做一种特殊的计算机;那么人工智能就是在电子计算机上模拟人脑的计算,实现和人一样的功能。我们现在考虑就是功能,也就是不去在意具体的算法怎么样,不去在意具体的实现。
但是更多的从功能角度看的话,究竟现有的智能语音对话是怎么样的一个状态?我最近写了一篇文章还没有发表,就是谈论“合理行动的智能机器”这个概念,它非常重要,比较典型的工科的定义。在工科的角度,如果说有一个明确的目标,有一个评价指标,那么我们就知道怎么样去做,就是满足了工程层面的去做的先决条件。
首先看一下自然语言理解,它有两种不同的定义:一种基于表示,一种基于行为。
基于表示与基于行为
基于表示,是把人的语言对应到系统中的一个具体的表示,这就是系统理解人的语言。人有时候也是这样,听到别人说了一句话,会对应到我们自己大脑里的一些概念。
另外一种是基于行为,比如有人说,给我拿一杯茶,机器人做了这个行为,我们就认为它是基于行为地理解了人的语言。这两个定义在一定程度上有一些互补,前者更多的是语义处理,后者更多的是语用处理。
从功能的角度来看,人脑如何做语言理解。现在大部分自然语言理解的教科书,里面大概描述成这样一个过程:词汇处理,句法处理,语义处理和语用处理。词汇处理要用词典,句法处理要用句法,语义处理要用世界知识,语用处理要用上下文信息。
原则上这是一个自下而上的处理,经过一个从词汇到句法到语义到语用的一个过程。其实也有一个自上而下的一个预测,不仅仅是从左到右的处理,也有从右到左的预测。
我们在人工智能中常常用到一个概念叫“注意力”,本质也是从上到下的机制,其实处理语言的话,一般的观点都认为结合了自下而上的处理和自上而下的预测。
词汇
首先说词汇,词汇其实是一个非常复杂的现象。一个语言里面常用的词汇,成年人一般能够掌握5w到10w的词汇量。学外语的时候会有这样的体会:知道一个单词的语义,并不意味着知道了所有的使用方法。
为什么高中毕业学了不少单词但还是没有很高的英语水平,因为只是大概知道了单词的意思和使用场景,但是没有真正理解这个词的灵活的使用方法。为什么用母语的交流就觉得非常顺畅,因为掌握了5-10万的单词,而且完全掌握了它的使用方法,这些词怎么用掌握得非常清楚。
句法
句法的内容非常丰富,它的一个重要特点是一个句法既有规定的使用方法,但也有例外。这个句法,语法的发明和演进不是一个人规定的,可能是成千上万人参与制定,大家通过很长的时间或者上万年一起发明的,所以它是自下而上生成,就像维基百科生成的过程一样。
句法本身就是很难用一系列的规则去刻画。
语义
语义也是非常复杂的现象。语义分析,就是把语言的这些符号,也可以是语音,也可以是文字,去映射到我们的大脑里。
语义处理,就是映射到大脑中的表示上面去,对应到脑中的概念上,这样我们才能去理解语言的意思。语义分析只是在语言表面意思上去理解。
这里面还有一个重要的点,我们理解一个语言的意思,还需要上下文,只有在上下文里才能真正理解语义。所以语义处理,语义分析可以认为是这样的处理:听到一段话或者看到一段文字,就是语音的符号和文字的符号,我们要把它映射到大脑的一个表示上面去,这个映射是一个多对多的映射,是一个非常复杂的事情,造成了多义性和多样性。
语用
语用也是非常复杂的,同样说一句话,比如这个房间很热,语义上就是这个意思,但是也可能是我想说希望你把窗户打开,这可能是我在语用上想表达的东西,只有在上下文里面才能够体会到句子的意思。
语用里面有这个speak active,语言内部包含的意思,语言外面包含的意思,语言这个行动执行了之后包含的意思,等等。
人脑在处理和理解自然语言的时候,整个大脑都在参与。比如人在参与听speech的时候,人的整个大脑都参与其中,这比起光让人去看一个东西,或者光让人去做一个动作,就不一样,看和做动作,大脑反应的东西还是有限的。但是语言理解的过程中,整个大脑都在参与。
有几个重要的脑区是和语言密切相关的:布洛卡区域和维尼科区,发现这两个区域也有上百年了,当时都是从失语症的病人诊断的过程中发现的,大脑有一些脑区专门负责语言的一些功能。
比如维尼科区负责词汇,布洛卡区负责句法。患有失语症的病人的特点是:如果他们的布洛卡区受损,这些人说话就没有语法,会蹦词,但说的话基本都是一个一个词,不能形成句子。而如果是维尼科区受损,他们说话听起来是一个句子,但那些用词都很怪,不能形成完整的语义。
整个大脑都参与了语义和语用的处理,这里也有一定的研究成果。最近10年有一些研究成果。比如有一个假说,人语义的理解,其实是做大脑中simiuation。
举一个例子,大猩猩有没有鼻子,这个问题要怎么回答?我们需要先想象大猩猩长什么样,然后才能回答,问的时候你要先想一下。有一个假说是,我们在回答之前,大脑里先有这样的一个表象,大量的Image,再做这个Image的处理。
语言理解就是把这些表象,这些Image联系到一起,每一个具体的概念,都有能够联系到的压缩好的表象,可能你也不能完整的记得大猩猩长什么样的了,但是不管怎么样,都会联想到它的Image,所以语言的理解更多是在做表象的Simutation。
我们其实理解抽象的概念比如说“时间”,是非常难理解的,不好直接去理解时间的概念,都是把它映射到空间来帮助理解,形成一种固定的思维。比如说用时间轴来理解时间,把时间映射到一个实实在在的可以认知的概念上去。大量的心理学研究也表明,我们理解抽象的概念都是把它映射到一个客观存在的实际的概念上去。
语义理解,是做一种模拟。举个例子,Flying Pig,会飞的猪,这个现实当中没有,就会去想,这种东西长什么样,这是根据每个人的经历不同理解不同,如果你接触的视觉上的刺激更多的是像小飞象那样,大家会想到像一个猪长了两个翅膀。语义的理解本质上是personal的,每个人的理解都不一样。但是,我们语义的理解是要有共性的,因为要有交流。
总的来说,大脑的语言处理过程都是比较复杂,没有定论。非常复杂的现象,本质是从符号映射到内部的表示,这里面牵扯到词汇,句法,世界知识和上下文。这里重要的挑战就是语言的多义性和多样性。
语言的符号,映射到大脑的表示,其实是多对多的映射,比如有很多多义词,不同的表达也可能是同一个意思,有同义词,近义词。所以语言和符号是多对多的表示,导致了语言的多义性,歧义性,这是语言处理中最有挑战的问题。
人的大脑中语言的语义的理解,是一个非常复杂的事情,他有表象相关的,结合记忆中的Image,但是有一个观点是:我们在大脑里面不同的语义,一定是有这样的表象来映射的。
举个例子:I saw a girl in the telescope。这句话有两种解释:一个是用望远镜看到一个女孩;或者是看到一个带望远镜的女孩,具体是哪个解释我们也不知道,需要有上下文。最终解决歧义的问题,需要有上下文的。
一般来说大家不会意识到歧义,但是修饰的部分不一样,就产生了很多歧义,人在理解句子的意思的时候,消除歧义的能力非常强,人都是很容易都会选择同一个意思去理解,这说明我们现在人和计算机在处理上还有一定的不同。
语言理解是非常复杂的,大脑一共有1011 到1015 个神经元,这样复杂的计算系统还是并行处理,我们每个人在做这样复杂的处理。对话,是要去完成一个任务,特别是站在工程的角度来说,一定是要有一个任务的。
对话都是有目的的,比如聊天,听起来好像没有动机但是其实是希望交流,而且是动态变化的,话题会跳转。为什么计算机做这个比较难,因为计算机难以理解动态的目标变化。
所有的任务用我们现在的计算机都可以模型化这个任务,对话的目的就变成一个有限状态积的形式,状态就是表示对话到了某一个阶段,到目前为止,它的所有的事情,这是非常重要的,表示起来非常复杂。
对话至少有三大挑战:歧义,多义,多样,还有复杂性。那么计算机能做成什么样呢?深度学习能做什么样?
单轮对话
首先,单轮对话。
单轮对话有三种形式:基于分析、基于检索、基于生成。
基于分析是比如一个单轮对话针对一个分类问题,或者是一个结构预测的问题,那么检索就是一个匹配问题,生成就是一个翻译的问题。这三种不同的方法它背后的区别就是这个有没有显式的语义表达。
基于分析的方法它是有显式的内部表达,基于检索和生成,就是部分有或者没有显性的这个内部的表示,这是这三个不同的方法的特点。
基于检索的方法在聊天机器人中用的多,而问答系统中也是如此,只是将对话局限在问答中。
还有基于生成的方法。在深度学习出来之前,这是有难度的,现在有深度学习基于生成对话的技术,其原理上是把问句,转化成内部表示,再把内部表示为答句。在生成器和分析器中用了大量的训练语料,基于神经网络来训练表示实现。
多人对话
还有多人对话的技术,对现在的技术来说,刻画多人对话是一个复杂的任务,用到了手写有限状态机。用机器学习的方法来做,对应是用强化学习来学习马尔科夫的决策过程,以此实现对话系统。
因为有些任务很复杂,所以有时候单人完成任务比较难。比如要描述从北京到上海的航班要了解,起飞时间等等,一句话说不清楚,这时候就可以通过多人对话。
多人对话表示的过程需要借助有限状态机,具体的下一步动作需要动作选择模块去执行,整体合起来对话管理是用马尔科夫过程来表示,其实最后得到的也是内部的表示。比如先说要去上海,是否坐飞机,合适出发,目前所在地等等,通过多轮的对话确定对话内容的大概,再将内容表示送到知识库对比,找到相应答案。这就是目前现在对话的技术。
自然语言对话
最近,自然语言对话也有一些进步,大概2015年,深度学习开始运用到自然语言处理,对自然语言的研究产生巨大变化,比如机器翻译领域的进步很大,对话也是如此,很多基于分析,检索,生成的方法,都用到了深度学习。多人对话中也是,现在用的最多的是深度强化学习,深度学习给自然语言对话带了很大的变化,现在已经变成主流技术。
最近几个例子,谷歌提出的Neural Symbolic Machines模型,特点结合符号处理和神经处理,其框架也是基于分析的模型,还有华为方舟提出的类似模型(Neural Responding Machine)。
在多人中,微软提出层次化的深度强化学习Hierarchical Deep Reinforcement Learning。对话目标可以分层,展开和复述,将有限状态机变成层次化。学习就可以用层次化甚至强化学习来做这样的东西。
近段时间并没有看到新的巨大的突破,但是还有很多地方可以进一步研究。
接下来,我列举一些围绕着自然语言对话中比较重要的研究课题,比如语义落地,自然语言映射到内部的表示,这块需要更深入的研究,还有就是对话的多样性,不唯一。
很多知识以符号的形式存储在计算机中,那么该如何将符号处理和深度学习结合起来呢?这是一个重要的问题,其中的深度强化学习本身也有很多研究点,还有语言对话系统中包含的分层次和模块的,那么怎样用层次化和模块化的开发这种系统呢? 最后是我们学习的数据往往是不够的,这使得端对端训练一个对话系统是很困难的,那么如何去解决这个难题呢?这些都是很有趣的问题。
构建一个像人一样的计算机对话系统为何这么难?如果有场景限定以及特定的任务,我们的对话系统会越来越好。但这里的核心挑战是,语言学习非常难,它是一个映射,映射有多异性和多样性,其本质是我们不清楚人处理和理解语言的方式。
无法理解人脑的实际的机制,所以这个过程用计算机模拟是困难的。人脑和计算机都有计算功能,如果掌握了人的机制,那么在原理上是有可能在计算机上实现人一样的功能,在功能上实现人的对话功能。
从功能角度,人工智能的短期未来是聚焦在“合理行动的智能机器”,人脑也算是一种计算机,所以从功能要去逼近人脑的处理,但这里有多异性,多样性,复杂度等等一些挑战。
现在的技术,对于单人对话,还是基于检索,分析,生成这样的方法,而多人就是马尔科夫决策这样的过程。近3、4年,深度学习改变了自然语言对话,那些基本的对话都应用了深度学习,有时还会加上强化学习,但这些还远远没有达到人的水平。可是我们也应该看到在未来的生活当中,会有越来越多的智能对话系统,被使用,服务于人类。
深度学习现在再往上提升比较困难,那跟传统的方法相比,提升会非常高吗?未来深度学习会不会成为一个主要的方法?在自然语言处理上会有这种趋势吗?
深度学习强大的地方在于:1、近似大函数地学习,比传统的简单的机器学习模型更强大;2、有很多地方非常像人脑,像人脑在处理信息。
但深度学习局限的地方在于:1、使用时耗费的功耗、数据量超出人很多,跟人脑机制有很大差别。2、现在的深度神经网络,卷积神经网络,需要在各个层面:算法层面,实现层面等等层面上进行研究。
其实很期待新的模型、新的算法,在实现层面上,更好地去模拟人脑,去做处理。计算时低功耗,使用较少的数据,比现在做得更好,仍然是未来重点突破的方向,同时类脑计算是一个非常重要的方向。
基于深度学习运算的学习方式,和传统方法,比如知识图谱等等,有什么有机的结合点吗?有可能呈现出比单技术更好的研究效果吗?
神经方法处理,一定程度上在做这些事情,有一定的挑战,还没有看到一些好的结果。我觉得这是很重要的研究课题。知识图谱,是知识在脑中的表示,不够丰富,对应是非常简单的,歧义多义都会出现,知识需要更好地刻画,让计算机自己去学习,这是未来的方向。
机器学习在翻译上最近做得很好,但都是静态翻译,像科大讯飞、搜狗翻译机这种实时翻译你怎么看,在实时翻译上会有哪些挑战?
我虽然没有直接做这块工作,但我觉得是能够完成的。同声传译是有延迟的,计算机完全可以做好,人说完之后再去翻译,主要的问题还是数据。
深度学习在自然语言处理里,最大的突破就是sequence to sequence,把一个序列换成另外一个序列,不管是哪种序列和序列之间的转换,只要有足够多的数据,甚至是语言之间的转换,这些都能做得还不错。
现实当中还做得不太理想,是因为数据不够多,怎么去解决数据的问题,也是一个研究课题。
机器实时翻译的时间差能够压缩到多少?
目前来看同步做翻译,是非常难的。
现在智能音箱在国内很火,现在也是音箱大战,从自然语言处理的技术来看,商业、用户体验的角度来说怎么看?
从商业上说,智能音箱是智能家居的控制点,大家都愿意参与,所以智能手机、智能音箱,还是蛮重要的;技术也是这样,用户数据、资金、人才投入很多,就能发展得更快。
4/25下周三晚18:40,北京大学“人工智能前沿与产业趋势”第八讲,将由奇虎360公司集团副总裁、首席科学家及人工智能研究院院长为大家授课。
感兴趣的小伙伴可以添加量子位小助手6:qbitbot6,备注“北大”,通过后可进入课程活动群,获取每期课程信息,与其他小伙伴互动交流。
祝大家听课愉快~
在量子位微信公众号(QbitAI)界面回复:“北大AI公开课”,可获取前七讲的相关学习资料~
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态