中国人工智能学会

Chinese Association for Artificial Intelligence

CCAI 2016 演讲实录丨林德康:从搜索引擎到问答引擎再到动作引擎

发布时间:2016-08-30

8月26日至27日,在中国科学技术协会、中国科学院的指导下,由中国人工智能学会发起主办、中科院自动化研究所与CSDN共同承办的2016中国人工智能大会(CCAI 2016)在北京辽宁大厦盛大召开,这也是本年度国内人工智能领域规模最大、规格最高的学术和技术盛会,对于我国人工智能领域的研究及应用发展有着极大的推进作用。大会由CSDN网站进行专题直播,并由百度开放云提供独家视频直播技术支持。 

Singularity.io公司联合创始人、ACL Fellow林德康的演讲题目是《从搜索引擎到问答引擎再到动作引擎》。他认为,搜索引擎和回答引擎最大的区别,是搜索引擎只要根据关键词,帮助用户筛选出可靠的答案可能在的网页,回答引擎可以返回比较明确的答案。但从搜索引擎和回答引擎还都是给用户有用的信息,用户还是要拿了信息以后要做事情还是要自己去做。动作引擎则更进一步,通过执行一系列操作帮助用户完成需要做的事情。动作引擎的实现就是人工智能助理,其中语义关系非常重要。他介绍了基于NLP、机器学习技术实现动作引擎的实践进展。 

18-1.jpg 

林德康

Singularity.io公司联合创始人

ACL Fellow 

以下是林德康的演讲实录:

搜索引擎大家都很熟悉,比如说一个朋友跑北京马拉松,你就想到网站去看,你就能得到马拉松的官网,看到相应的信息,但是有些时候我们会有些具体的问题,比如说深圳的年降雨量,搜索引擎回来的结果很有可能第一个结果不会有,但是你点进去才能找到你的答案,如果你在手机上问这个问题的话,很有可能字很小,是一件很困难的事情,我们在做自动问答的产品,这个产品就是有一个问题,我们希望在搜索结果里头把这个答案给你找出来,然后你就可以直接看到,用不着点击到网页里头去寻找你的答案。 

这是另一个例子,我们这个产品可以看成是回答引擎,就一般的搜索结果关健词是黑体,如果是答案那就是我们这个问答产品做的,什么化学物可以杀臭虫,我们就会把这个答案显示出来,另外我们也把上下文给你列出来,因为这个时候很多时候会有帮助。 

如果我们内部的信心比较足的时候,还会把答案用很大的字体放到最前头,比如最快的鸟是什么,这个答案就出来了,这是一种猎鹰,可以看到确实飞的很快,就跟个小飞机一样,在做问答系统的同时还可以学到很多没有用的知识。 

但是有些时候你想做事情,比如北京到上海的机票,那时候我们就没有一个很简单的答案去给你,但是反正你会看到很多广告,帮着东家挣钱。我是今年4月份从谷歌出来,然后在一个小创业公司做一款手机助手的产品,你如果有一个请求,这个助手就希望把这个事情帮用户给做了,比如北京到上海的机票没有了,说完以后助手会自动打开携程,然后填上出发地目的地,最后把携程里的结果给你查出来。 

下面具体地讲一些回答助手的细节。搜索引擎和回答引擎最大的区别,我觉得就是做搜索的时候你要找什么东西,用户已经告诉你,那就是关健词,所以你要知道到哪儿去找,就是有些网页是可信赖,有些网页不靠谱,你要给用户可靠的结果,你要去什么地方找;但是问答引擎的答案在用户那里头并没有,你要知道找什么东西,就比如说刚才的这个例子,下面这个结果就是说如果回答引擎没有触发的话,返回会是谷歌的头一个搜索结果,这里可以看到深圳降雨量,这个实际上是一个同义词,这是谷歌的模式之一,就把看着像同义词的东西找出来,能够当做同义词用,但是在同一个结果里头,你要找的这些词都有,但并不一定包含这个答案,那么如果我们找到这个答案以后,就可以把有答案的结果放在最前头。 

这是另一个例子,就比如说我在准备怎样加这个箭头搜索到回答,怎样插入特殊字符,这个也是我们团队做出来的结果,可以看到,就说哪怕你没有具体内容,可以看到这是在描述一个过程,这是找答案的时候一个很重要的信息,你要知道找什么东西。其实也找了一个也像是描述这个过程,但这个讲的是office。 

下面用一个具体的例子来解释一下回答的过程,就什么酶可以分解淀粉,然后这是我们找到的答案,首先我们要做分析,然后确定他是不是问问题,而且是问的问题里头要找的是什么东西,这个结果呢是说这个确实是问题,他找的是这个酶,知道这个以后,把找出来的红的叫Focus Words,一个问题里头他的焦点是什么,然后我们如果找到了这个焦点,我们就可以启动下面这个问答的过程,找焦点如果是一个显性的疑问,谁、什么、几个之类的,其实很容易就找到这个问题的焦点,但有些时候一个query并不像一个问题,比如“fastest bird”,虽然没有疑问词,但也是一个问题。实际上有其他的显性的问题,就比如有别人会问“what is the fastest bird”,这样的话你就可以知道,如果只是缺少疑问词,那也可以把它当一个问题去答。 

有的时候有疑问词,但也不一定是一个问题。比如“when in rome rotten”,实际上不是一个问题。找到焦点以后呢,我们就可以从搜索结果里头看什么东西有可能是答案,就我们知道要找“enzyme”,就得看这个谷歌比如说头十个网站里头有哪些东西有可能是讲这个的。这个时候我们就需要定义一个Expected Answer Type,系统必须有一个大的方向,就是你知道用户问的问题,但是你不能随便拿来一个东西,不管它是不是enzyme。这个有多种做法,在学术界用的最多的是用比较粗颗粒的Type就把问题的分成很多种,然后就可以用普通的识别去找出这些东西,但是这个问题就是说,在用户问问题的时候,他可能用的是另一个词,需要做一个映射,比如melting point映射到TEMPERATURE,annual rainfall映射到LENGTH,assistantcoach映射到PERSON,这些也是要解决的问题。还有一个办法,就是我们干脆就能够就从用机器学习的办法,就有可能用户问的这些不同的焦点词都做一个模型,然后就可以用这个模型来决定什么东西是不是有可能的答案。 

这样的话我们就得训练几万个不同的模型,显然用监督学习(手工标注)就没有办法做了,所以我们就得用一个自动抽取训练数据的办法,怎样自动抽取呢?就手工定义几个Pattern,然后就把所有的网页都过一遍就可以从里头抽取训练数据,这个并不是说一种模型我们用一个Pattern,是所有模型我们用一个或者两个Pattern,这样就可以抽取很多训练数据,比如说从网页里头,从这些句子上你就可以知道,about 18 inches是annual rainfall的一个Example,804 mm也是annual rainfall的一个Example;安眠药是一个例子,比如说哪个安眠药比较安全,那你就得知道什么东西是安眠药,然后知道有哪些东西会有可能是安眠药,这样就可以训练出很多Answer Type Portal。 

有了这个以后呢,最后就是做一个计算评估,这时候用的特征就也有很多,就比如说前面提到的Answer Candidate Scoring,还有在文章里出现次数多不多之类的。 

下面我想讲的手机助手,从搜索引擎和回答引擎还都是给用户有用的信息,但是用户还是要拿了这个信息以后要做事情还是要自己去做,助手的目的就是说希望能够帮助用户直接就做事情,也就是说,除了回答引擎要知道找什么的部分,助手还要知道我们想做什么。所以,做助手的时候,有一个非常重要的事情,就是语义关系,在搜索的时候,其实搜索引擎基本上没有考虑语义关系,在回答引擎的时候呢,语义关系有些用,但其实也没有用很多,就比如说这个例子,就what do cows eat,答出来的是dairy,因为你看前面我们讲的牛奶就是吃的喝的其实没有分的太清楚,所以牛奶也可以当吃的。在回答的时候呢,就虽然我们把这个弄错了,但其实从用户来讲,这个一定不是一个portal,因为我们给了下面这一段话,这个里头是这样的,是有正确答案的,但是在做助手的时候就不能靠这个东西,因为你拿到这个以后,你只能给用户做一件事情,不能先做这个,不满意了再做一个,最后就把你给卸载了。 

所以说搜索的时候呢,我们是给一个list,回答的时候第一个结果很重要,但是并不是所有,但我们做助手的时候只能给一个结果。 

助手这个东西,差不多所有的大科技公司都在做,就比如Apple Siri、Google Now还有微软Cortana。我们做的有什么不同的呢,这些产品是给操作系统的界面,然后操作系统上的功能你就可以用这些用语音去操作,然后最近Siri也开始开发第三方的应用,但是开发的时候实际上Siri有一些功能,如果某一个API你有这个功能,你就可以微信送Message,你就可以接送这个,如果你这个有其他的功能,不在这里面,那就跟Siri接不上,而我们做的东西就是说是直接跟这个APP去对接。 

还有很多其他的公司,就比如Amazon Echo,还有一个VIV——Siri团队从苹果出去以后又做了一款产品,也是做手机助手,另外还有一个APP叫Hound,这个公司已经做很多年了,以前是做音乐搜索,然后转到做语音助手,这些公司他们做的产品是把就是对接后台的服务,就比如说打车,就直接跟Uber、滴滴后台的接口对接,打车从哪儿到哪儿或者订票就可以了。 

这是一个例子,你如果问“Give me a nice room in Palm Springs for Labor Day weekend”,回来的结果列了两张票,但是实际上你要是做这样,一个缺点就是做APP必须把用户体验过程重构,然后就是要展示这些酒店。就比如说下面这个是携程的一个例子,上头就是评分有价钱,然后旁边还有地图,你可以看到这个酒店相对的位置,所以这些信息可能都是很有用的,但是你要是自己做一个APP,自己就要做这些事。我们做的有什么不同呢,就是说我们还是用携程,只不过你可以用语音来操纵这个携程,你填目的地的时候不用打开列表在里头划,但是你还是可以回到携程的页面继续操作,输入要比敲键盘要快很多,我自己就有很深刻的体会,原来我就在手机上几乎不想敲东西,但是有了语音以后就这个不再是一个障碍了,另一方面,我们眼睛看到的东西,读东西要比我们听要快得多,所以我们做这个事情的时候,保持能看,携程这个表你可以在上面很快的找到你想要的信息,用语音操作就可以很快。 

这个产品叫小不点,我这里举几个例子,这里面说的是发微信我晚点到,然后就会自动打开,然后找到这个人,然后说晚点到,你点发送就行了;这是看视频的例子;这是一个听歌的例子,我要听蔡依林的歌,所以有了这个小不点助手你就不用点了。谢谢大家。 

(本报告根据速记整理)

CAAI原创 丨 作者林德康

未经授权严禁转载及翻译

如需转载合作请向学会或本人申请

转发请注明转自中国人工智能学会