林钦佑:人工智能的下一个风口——知识计算

2017-04-25 | 作者:微软亚洲研究院

林钦佑 微软亚洲研究院首席研究员

就在上周,微软AI讲堂来到了哈尔滨工业大学。微软亚洲研究院首席研究员林钦佑博士在此次分享中深入浅出地带来知识计算方向的满满干货。今天就让我们回顾一下林钦佑博士的演讲——人工智能的下一个风口:知识计算,来了解什么是知识计算,以及知识计算将如何帮助实现智能未来。

​—————————————————————————————————-

演讲全文如下(文字内容略有精简)

很高兴回到哈工大,今天跟各位分享一下微软研究院在人工智能所做的方向,以及未来大家可以准备朝哪个方向发展。

人工智能不是过去两三年才发生的事情,事实上,在1960年就有很多人工智能的发展。首先我想用很短的一个时间轴跟大家一起来看看最近这几年的发展。

2010年,微软XBox推出了Kinect,那个时候大家觉得计算机真的很了不起,能看到人的动作,并把动作融入到游戏里面。这是第一次工业界的产品能够实时追踪每个人的关节、动作,是一个很大的突破,就好像机器有眼睛,可以看到人是怎么做动作的一样。

2011年,IBM Watson在美国的Jeoparody!秀里做猜谜游戏时击败了Ken Jennings和Brad Rutter。2012年,微软研究院的创始人Rick Rashid在天津举办的“二十一世纪的计算”学术大会上展示了实时语音翻译技术,造成了很大的震撼。

到了2014年,微软把这个实时语音翻译技术运用到了Skype Translator里。不管是iOS系统、安卓系统还是Window系统,你都可以下载安装Skype,并使用Skype Translator实时语音翻译技术。

接下来2016年不用多讲了,AlphaGo在围棋比赛中战胜了李世石。今年5月AlphaGo还会再战一场。而在2017年1月,CMU的一个团队写了一个AI程序,赢了德州扑克。所以可以想象接下来几年,我们可能要经常遭受类似的打击——机器赢过人的某项技能。因此,我想利用这个机会跟各位解释一下,今天AI到底做到了什么程度,还有哪些方面可以做研究的。

人工智能在1960年左右就已经开始了,那为什么在过去这几年人工智能这个洪流又开始爆发了呢?主要有几项:

第一,有很大的数据。大家现在用手机传短信、在微信上和朋友聊天、搜索内容等等,这里面所有的数据都会被记录下来,从而使得我们有很大的数据。当有了很多你跟同学、朋友交互的过程,或者即使不看你和朋友间的聊天记录,也可以在网上、微博上看到你发表的内容。而这些数据就可以让机器看到人在对话的时候,可以讲什么,会讲什么。

所以,因为有大数据的关系,现在的机器可以把有些很难的事情变得简单。因为机器知道你以前在什么场合下讲过什么话。

第二,云计算现在大家都希望手机有超大的内存,比如64G、128G的。以前我在学校刚刚念书的时候,一个机器只要有2MB,我就已经很高兴了,但是现在手机和它的计算能力实际上比20年前电脑的计算能力还要强。所以,有了大数据之后,又有了很多的计算能力,很大的储存能力。

二三十年前,架一个网站,我们还需要去想要买什么样的PC机,要装什么操作系统,可能还要租一条线,再设计个网页,然后上线。而现在不用了,你可以用微软的Azure云或者用亚马逊的云系统,只要一上线你就可以有自己的网站。因为是云计算,所以每个人都可以通过各种不同的终端设备看到自己的数据。

第三,算法有了这些数据和存储能力的时候,我们就要有一些算法。过去几年,在计算机领域,大家会经常听到深度学习。深度学习的前身其实在1960年就已经有了,但是当时它叫做神经网络。现在因为神经网络做深了,计算能力提高了,数据增多了,才让深度学习有了它可以发展、发挥、发力的机会。

所以,这几个关键技术结合在一起,促使了现在AI的爆发。

在微软,我们的AI技术有四个方向,我们看看,微软在这四方面都做了哪些事情。

第一,让机器能看得到视觉方面,我们在2015年做了一个152层的深层神经网络,它能够在像素级别上知道一张图上有一只蜘蛛。甚至在有些医学上的应用,比如判断切片影像中是否有癌细胞,最新的消息是机器判断的正确率已经比医生更高了。

第二,让机器能够听学术界在评价技术的进步与否时都有一个标准的测试集。看看下图的这些线,每个点都是一个语音识别测试数据的结果,线越往下就表示做得越好,错误率低。可以看到最右边的这条线,微软去年做的错误率在5.9%左右,5.9%已经达到了人类水平。

第三个是语言,机器还要能读在语言方面微软亚洲研究院也一直都有深入的研究,让机器可以更好的阅读、理解文字内容,并且我们在这方面也取得了十分优异的成绩。未来会与大家有更多的分享。

最后,机器要能够对答如流,要有知识知识方面有一个测试叫做Knowledge Base Acceleration(KBA)。为什么我们说做一个像人一样的人工智能比较难?先举个例子,今天我讲了一些有关AI的内容,有些东西你可能知道,有些东西你可能不知道,但是你今天听到的一些之前不知道的事情,明天你就应该知道了。也就是说,人是有学习能力的

机器有没有学习能力呢?机器可以识别人脸,但是人要先告诉机器说这是我,学习了之后它才能找到图片里哪个是我。现在还没有一种人脸识别的算法可以识别它没看过的人。所以在做KBA的时候就是假如给出一个百科,让机器每天读新闻,当它知道这个新闻是有关哈工大的之后,就把报道哈工大的这个新的新闻中的新知识抽取出来放在哈工大的网页上,这个测试就是类似这样的一个实验。

我们在2013年的时候就做到了最好的效果。我们的系统可以找到vital(最重要而且相关)的信息,就是说机器找到的新闻确实是非常相关的而且有必要记录的。比如,微软买了某个公司,这个跟微软是非常相关,但是,某个人买了微软的某个产品,也是跟微软相关的,但是普通人买其实没那么重要,但如果是哈工大买微软的某个产品那就很重要了,这也是vital和useful的差别。

所以,大家可以看到微软在刚才讲的,会看、会听、会读、有知识这四个前沿领域都做了很多的研究、开发。

接下来跟大家做一个数学题——“There are 20 horses and chickens at Old Macdonald’s farm. Together there are 58 legs. How many horses and how many chickens?”。这个问题很简单,大家小学的时候就会做了。但要让机器来解这个问题就没有那么简单了。为什么呢?

因为计算机不知道马有几只脚,鸡有几只脚。即使知道,它还要知道Macdonald’s farm和解决问题一点关系都没有。另外,解决这个问题还要有数学知识,考的就是加减乘除。

我们可以看出,计算机要有语言理解能力才可能和人沟通。计算机要怎么解题呢?首先必须要了解语言,不管是英文还是中文。再就是要有知识,即使能理解所有的东西,它还要知道脚和鸡的关系,鸡和马的关系,以及农场这个信息跟解题一点关系都没有等等。第三,是知道这些东西之后,还要能计算。如果所有内容都知道了,但是不知道怎么算,那也不行。对于一个物理题,要有物理的计算能力,对于统计题,要有统计的计算能力。

所以,我们现在还是有很多问题没有解决的。比如,机器怎么能够知道所有的知识呢?今天要解这个题,我们把鸡和马几只脚的知识放进去。明天改成蛇,就要把蛇没有脚加进去。如果再改成螃蟹,就要把螃蟹有八只脚加进去等等。这样的工作量就会十分巨大,每讲一个东西都要加进去新的信息,这是不可能的。所以这时候就有一个问题了,如何很快速地累积知识?

总结一下我们刚刚讲的这个问题。

首先,要有自然语言的能力,要有知识,机器要学习。要考虑如何让机器可以很快地有一个学习的算法来了解语言中的信息。

其次,人和机器要结合在一起。微软在讲到AI时都会强调一个概念——Artificial Intelligence(人工智能)+ Human Intelligence(人类智能)= Super Intelligence(超级智能)。在此我要强调的一点就是,人在这样一个成功的环路里是不可或缺的。

第三,机器要有知识。机器解这个数学题的时候需要哪些能力呢?上图的左边是一篇文章,它讲到了个人助理。机器要了解这件事,首先要知道什么是个人助理。然后,机器需要有一个表达的方法,这就是知识了。在知识方面,比如文章里讲到微软,那么机器要知道微软是什么,微软跟它的产品的关系是什么。

所以,机器跟人之间的沟通或者是机器要去了解这个世界的时候,它有一个语义的鸿沟。我们还有个技术叫实体链接,比如文章里有“微软的Cortana”,这个短语里包括了两个实体,一个是微软,一个是Cortana。以前在做自然语言处理的时候,我们说这是一个名词词组,不需要了解里面讲的是微软还是什么,它就是个专有名词,Cortana也是一个专有名词。但人理解的时候,我们不是只知道它是什么词性的,我们知道微软是代表一个公司,Cortana是微软公司的一个产品。

所以说真正要进入到AI时代,机器必须要有语义的理解,而且要知道为什么用这个东西来代表某个事情。我们微软知识计算组的任务就是,我们怎么能够为这个世界服务,通过什么手段让机器可以自动理解知识,通过对数据的挖掘来增进我们的知识。我们希望机器以后能帮人们干更多的活。

自然语言中有一些问题对计算机来说很麻烦,比如,当我通过语音让智能手机给潘副院长打电话,但通讯录里只写了潘天佑博士,那么机器就无法执行这个操作。再比如重名问题,再比如当说到我来自中国的时候,机器要知道这个中国指的就是中华人民共和国等等类似的问题。事实上机器要理解语言,要有知识,这个方面还是非常宽阔的。

第一,理解知识我们必须要知道怎么建这个包含巨大知识的数据库,机器怎么才能知道这么多不同的东西。今天有iPhone 8,明天就有iPhone 9了,机器的知识要一直不断增加,这对人类来说没有问题。当别人说iPhone 8要出来了,你就会想什么时候出更新一代的iPhone,你会自己推理。

第二,机器必须要有一定的推理能力。这个推理的能力也包括一部分知识,不是只知道事实。比如,地上有水,那就一定下过雨吗?不一定。但是,天下雨地上一定有水。所以要考虑怎么把这类知识放到机器里面去理解这个内容。

我们从哪些地方取得这些知识呢?就是从非结构性的数据中,比如新闻、文件,还有从结构性的数据中,如个人数据库、公司、学校里的一些内容,像每天选课的课表都是结构化的数据,这些都可以综合起来使用。除此之外当然还可以让人直接给机器添加知识。

第三,算法有了知识和理解能力后,我们要做一些算法,把这些数据结合、清理、连接起来,提供服务给上层的应用。

经过来源之后,我们会做挖掘的工作,做处理。然后把获得的内容存在知识库里,然后知识库就能应用到不同的场景中了。

我们还有什么挑战呢?

第一个,机器什么时候可以真正的理解?所谓的理解不是说只把它变成一个语法树,而是真正能够知道我们讲的是什么东西。

第二个,如何解决问题?理解语言没问题,但你要怎么解决问题呢,解决问题的知识去哪里获得?我们不能靠百科网页,因为这些百科网页不能解决所有的事情。所以,我们要怎么获取这样的知识?

第三个,怎么让机器有永久学习的能力?人每天看一些书本,听一些演讲,看一些视频,可以自己教育自己,机器可不可以做到这些?

最后总结一下,我们要机器能看、能听、能说、能写、能学习、有知识,就需要自然语言的处理能力。并且,我们不只是可以做中文、英文,我们要做各种不同的语言。在这个领域,未来的工作机会有太多太多。希望大家在生活和学习中多思考,用自己的创新想法解决人工智能的核心问题。

谢谢!

作者简介