最近坚持学英语,感觉还是挺不错的,推荐大家一个新的比较好玩的应用:喜马拉雅,上面有很多免费的资源,可以用来学习消遣都行,和得到差不多,但是比起得到,免费的内容更多,而且确实也挺方便的。我现在最爱的就是用它来订阅一些日常英语的节目,每天学习半个小时英语,可以在路上听、睡觉前听,挺享受的,也把碎片时间利用了一下,当然要提醒大家的是,也不能指望这个APP能帮你得道升天,毕竟一些专业的知识、硬技能,我们还是要静下心,做好规划,然后花一整块的时间进行学习在,这种碎片化的时间,就本着一个心态,能学多少就学多少,开开眼界就好!
所以,我发现自己总是会被各种各样的事打断,但是一看到,事情已经做了一半,所以无论如何也没有中途放弃的道理,如此还是要接着整理接下来的课程,现在轮到的是第八课 ,由李航老师带来的自然语言处理的趋势分享。如果一直处于人工智能浪潮里,你会发现,自然语言处理占有很重要的地位,无论是图像还是视频的处理,最终还是需要回归到底层的自然语言,因为说到底,所有信息的沟通和交流还是以自然语言为主导。
一、课堂回顾
学者风范——李航老师
李航老师,毕业于日本京都大学电气工程系,日本东京大学计算机科学博士学位,北京大学、南京大学的兼职教授,曾任日本NEC公司中央研究所研究员、微软亚洲研究院高级研究员与主任研究员、华为技术有限公司诺亚方舟实验室主任,现任职于今日头条人工智能实验室,主要从事自然语言处理的研究。其实每一个同学进入人工智能的大门,应该都会看过《统计学习方法》。这也是李航老师的经典著作,拜读过的同学应该心里都是十分敬佩的,快来听听大神要给我们分享一些什么吧!
分享内容
一点点前话:自然语言是一个很宽泛的概念,所以在有限的分享时间里,李航老师选择了以自然对话系统构建的现状、发展及挑战为主展开分享。其框架如下:
1、合理行动的智能机器
在这里李航老师首先推荐了一本书,人工智能的经典教材《Artificial Intelligence》,这本书提出了四个概念,指出一个智能机器,应当遵从以下标准:
(1)thinking humanly (2)acting humanly (3)thinking rationally (4)acting rationally
但显然,今天很多的机器无法达到合理思考的能力,更不要说像人一样地思考了,一定程度上也是因为自然语言的处理能力没有跟上,所以当下的机器更多地是符合了合理行动,它们有以下五个共同的特点:
(1)智能系统 (2)明确目标 (3)评价标准 (4)环境互动 (5)功能
但是这些机器的行为其实都是比较机械和单一的,通用性不强,也没有很好的适用性,可能只是单一的某一个方面后者某一个点超越了人类。换言之,机器的智能其实很大程度上取决于决策大脑的智能程度,今天我们处于弱人工智能的发展阶段,自然机器的智能也只能是递进式发展,慢慢达到理想的智能状态。
2、自然语言的理解
自然语言的理解可以有两种不同的方式:
第一种:基于表示,我们在接收别人的自然语言之后,如果可以在自己的脑海中生成一些对应的概念,说明我们理解了,同样地,如果机器对于人类的指令,生成了对应的内部表示,我们就说机器理解了自然语言;
第二种:基于行为,人类接收到外部的自然语言,判定理解与否的直观表现就是看对方是否发起正确的行为,同样地,如果机器可以按照人类的指令,顺利达成相应的任务,比如人类发出拿茶的命令,机器顺利完成,我们也认为机器理解了自然语言。
3、自然语言理解的过程及涉及的基本技术原理
自然语言处理的过程中,主要的步骤包括:词汇处理、句法处理、语义处理、语用处理,这些环节综合起来就形成了系统化的自然语言处理,达到自然语言理解的目的,并帮助机器合理地行动。
(1)词汇处理:词汇的处理基于字典,需要了解词意和用法。这也是自然语言处理的基础,通常要达成对一种语言的理解,我们需要积累大量的词汇,并且能在不同的语言环境下正确判断该词的用法和意思,才能保障接下类的后续理解和操作的正确性。现在自然语言处理中文的语料构建、分词处理效果已经相对还可以。
(2)句法处理:句法的处理就要依据既定的句法规则进行处理,但句法本身是个相对复杂的东西,因为句法既有规律也有例外,没有通用的、固定的标准,而且通常是处于动态发展中的,也没有办法由某一个人决定,需要很多人共同参与制定;
(3)语义处理:语义处理是把语言符号映射到内部的表示上,需要对应到一些已知的概念,并且结合已有的对于世界的先验认知,达成句子的最后理解,语义理解需要考虑的因素比较多,容易出现歧义,而且往往表述在不同的环境下表达的意思也有所出入,所以具有一定的难度。
(4)语用处理:不同的句子有不同的语用,而同样的句子也有可能有不同的语用,比如我饿了,很有可能只是单纯地陈述,但也有可能言外之意是希望听话者给说话者买东西吃,所以语用一定是基于一定的对胡情景和上下文做出的最合理的判断,这个也是很灵活的。
所以可见,当前我们在处理自然语言的时候,除去既定的词表、语法规则之外,更多的是一些语义、语用的处理,是相当灵活的额,而这恰恰是当前智能机器或系统的弱势。
除了这些基本的处理过程,李航老师还结合人类真是的大脑结构及管理,对自然语言的处理作出了新的分析。
语言处理是整个大脑共同参与的复杂活动:Broca区负责句法,而wernicke负责词汇。语言理解是对大脑表层联想的模拟和描述,它会和每个人的经历有关,因为人处于不同的成长环境,对于语言的理解其实是有很大出入的,但是也会存在很多的共性,因为人和人之间是不断地沟通的,所以需要基于一定的共性。
最核心的挑战在于语言的多样性和多义性:因为自然环境的复杂性,语言的表达可以千变万化,人类总是可以灵活地应对,但是机器要想有效地克服这种灵活性,其实需要面临的挑战还很多,为如何更好地处理语言的多样性和歧义就是首要。
对话:对话是当前语言类应用的重要构成,分为单轮对话和多轮对话。首先,对话都是有目的的,存在一定的动机或者是情感交流的需求,而且目标可能是会动态变化的。其次,在单轮对话中,一种是基于语义表示,把对话的内容生成内部的语句,一种是基于检索,比如聊天机器人、问答系统等,还有一种是基于生成式,比如分析器及答案生成器。目前单轮对话的应用已经相对普遍,效果也还可以接受。但是多轮对话可能就会比较困难,主要应用状态机和马尔科夫链等技术,但是并没有获得很好的发展和进步。
4、NLP的进步
(1)机器翻译:深度学习、深度强化学习等方法逐渐用于多轮对话处理中,可以提高多轮对话的准确性和对语义环境的判断,已经逐步地成为自然语言处理的主流技术。
(2)具体的几个例子:
第一,google提出的 Neural Symbolic Machines以及华为诺亚方舟提出的Neural Responding Machine,基于分析的原理,结合符号处理和神经处理,对自然语言进行更精准的处理;
第二,微软提出的Hierarchical Deep Reinforcement Learning,利用层次化的深度强化学习原理,将对话目标进行分层次处理,比如可以把对话的目标进行分层,之后展开,最后进行复述,将有限的状态机层次化,这样学习的目标就可以被拆解,然后利用层次化的神经结构来进行强化的迭代学习,或许是解决多轮对话困境的一个有效方法。
5、趋势及结论
(1)自然语言处理的趋势
在李航老师看来,自然语言处理接下来的主要技术研究方向在于:
semantic grounding 自然语义映射到语言的内部进行表示,不涉及外部的一些表示,主要用于解决语言的多样性及歧义问题,
neural symbolic processing :结合符号学和神经学的优势,协同完成自然语言的处理和理解;
deep reinforcement learning :深度学习+强化学习,结合更大语料库,提高自然语言理解的准确率;
modular and hierarchical processing :模块化、分层次地进行学习,将语言目标分解,层次化地完成学习和训练;
meta learning :基元学习,无论是对于图像还是自然语言,最本质的学习往往也可能是最高效的,所以也是无数学者愿意一直坚持下去的。
(2)结论:
立足于制作合理思考和行动的智能机器,当前已经有了一些可用的产品,尤其是一些基于单轮对话的。但是要处理的主要的挑战在于,自然语言的多样性和多义性,人类语言的灵活度也未被机器真正习得。但是深度学习已经强度学习、层次学习等一些新的概念的到来,为人类自然语言的处理带来了新的可能,所以或许,这些问题会有新的解决思路。
后话:
李航老师的分享是比较学术和技术的,可能一些内容在理解上有困难,但是不管是做技术还是做产品,我们都应当明确,要想真正地懂得一些知识的内核,并且能够基于这个知识圈有一些自己的思考和设计,必要的、深入地学习、理解技术还是很有必要的,也会帮助我们在设计的过程中降低犯错的风险,加油!