Chatbots 中对话式交互系统的分析与应用

洪强宁 / 爱因互动 CTO 

前豆瓣首席架构师,TGO 北京分会成员。编程 30 余年,11 年互联网从业经验。

Chatbots 中对话式交互系统的分析与应用_第1张图片

16年的时候,我离开宜信出来创业,与原来豆瓣的首席科学家王守崑一起创立了爱因互动这家公司。爱因互动是做对话服务的,是一家 To B 的公司。我们服务的内容是用对话的形态来交付企业的价值。为了提高对话的效率、质量,我们采用了人工智能技术。在这个过程当中,我们会涉及到更加偏售前的方式,会做更多的个性化推荐,促进交易转化,所以是一个多轮对话的过程。这种对话机器人的主题会与微软小冰那样的闲聊机器人的主题有很大区别,这两个在对话机器人行业里属于两种技术路线。


人工智能时代正在来临


Chatbots 中对话式交互系统的分析与应用_第2张图片

人工智能时代正在来临,现在每天都可以听到AI这个词。我在创业决定走入这个行业之前,和守崑一起回顾了从互联网出现到现在差不多30年的时间中,都有哪些标志性的事件使得我们的技术得到突飞猛进的发展。最早的时候是在互联网商用的时候,即互联网诞生,这件事情我觉得意义非常重大,不亚于早期的工业革命,其实它也被称为“第三次工业革命”。互联网出现这件事情,使得整个人类的信息开始流通,互联互通,从这个时候开始人类的知识联系在一起了。从这个时代开始科学技术得到了非常快速的发展,这是因为联通在一起之后,整个人类成为一个共同体,它的进化、发展速度都比之前快很多。

第二个标志性的事件是Mosaic Web浏览器发布,开始进入Web时代,只要打开浏览器全世界的事情随时可以收集到。这个事情是第二次提速,使得我们的发展速度变得更快。

第三个是在06、07年左右的时候,连着发生三件大事:第一件事情是谷歌发表了被称为“三驾马车”的分布式系统论文,这个使得我们处理大数据的能力具备了。原来的时候一个数据太大,超过了单机处理能力的时候,就会非常地难处理,需要切片,考虑各种各样的故障,怎么恢复等。但谷歌的这三篇论文其实在很大程度解决了这个问题,通过这三篇论文,产生了整个Hadoop的生态,基本上各家公司都会采用这个方式解决大数据的问题。

第二件事是亚马逊发布了AWS,这是“云”的开端,我们获取计算资源直接从云上摘就可以了,随时随地可以有非常大量的计算资源可以使用,而且很廉价。

第三件事是苹果发布了iPhone,这件事开启了移动互联网时代。所以我把那段时间称为移动互联网时代和云计算时代,这个时代一共有10年时间,现在大家已经非常习以为常了,每天都揣着手机使用互联网。做云计算的也是,大家都已经非常习惯了,做一个项目在云上直接开机器,大数据处理也不是问题。在这里还产生了大量的数据,我们每时每刻,24小时都是连上网的,这些数据可以被存储在云端,然后可以使用大数据的计算框架进行处理,这使我们进入了一个新的时代。

另外一个是AlphaGo战胜李世乭这件事。我觉得这是一个标志性的事件,标志着人工智能的通用技术开始体现出它的价值,具备了之前的人工智能不能具备的能力。我觉得这一波人工智能的兴起是真的来了,进入到了一个人工智能的时代。

人工智能时代为什么到现在才可以成为现实的事情呢?这跟前面那十年的发展是分不开的,我们有产生和处理大数据的能力,有云计算的能力,在这两个基础之上才存在现在的人工智能算法的可能性。因为现在的人工智能算法是以深度学习算法为代表的,而这个算法是非常消耗计算能力的。也正是出于这个角度考虑,我认为人工智能是下一个10年甚至更长时间内的一个大事情。


UI的进化


Chatbots 中对话式交互系统的分析与应用_第3张图片

另外一个角度来说,我们和计算机系统,或者说和互联网系统,是通过一个UI界面来交互的,人工智能的发展使得UI交互也发生了非常深刻的变化。可以回顾下非常早期的时候,那个时候用的是DOS,还没有Windows,包括现在程序员在服务器上也是要使用命令行。命令行就是一个非常典型的人机交互界面,这个界面是命令式的,人去命令机器做一个事情,而且是要人去适配机器。因为机器只懂特定的命令,所以需要去学习机器能理解的命令,这是最早期的时候人机交互的方式。

后来Windows出现,开始进入到图形化界面(GUI)的方式。与命令行(CLI)交互方式的主要区别在于增加了一个能力——“发现”。使用者不再需要事先去学习机器能懂什么了,现在东西都展现在屏幕上面,能够直观地去看它能做些什么,所以是一个发现式的界面。

现在我们可以看到各种各样的技术在往上发展,比如AR技术,VR技术,语音技术等,其实都是在导向自然UI的方式。就是说我们在和机器交互的时候,和我们与真实的物理世界去交互是一样的。我们人和人之间说话是用自然语言去沟通,当我们看见一个东西的时候是可以去拨弄它的。典型的场景比如说触摸屏,以前的时候都是拿鼠标点,现在我们可以真的去摸那个东西了。GUI的一部分也属于自然UI的组成部分。

这边的CUI指的是Conversation UI,它属于NUI中的一类。指的是使用者可以用对话的方式与机器进行交互,不需要事先学习机器能听懂什么话,只需要使用原来与人沟通的方式就能与机器交互,这是一种机器适配人的形态。这是UI下一步的发展方向。


两种形态的差别

Chatbots 中对话式交互系统的分析与应用_第4张图片

大家对GUI已经非常熟悉了,GUI大概统治了我们有20年了,大家都很习惯使用GUI了。CUI并不是GUI的替代品,但是它能够在一定程度上补充GUI的不足。GUI更加重视信息展示的广度,能够在一个屏幕上面,把你可能感兴趣的东西全部展现出来,人要做的事情是从中发现自己真正感兴趣的那部分。而CUI是一维的,它更加重视的是深度,就这一个主题,用户接下来感兴趣的内容是什么,针对这个主题反复地进行挖掘。

第二个是指给人的直接观感。GUI更加重视空间感,布局中什么东西放上面,什么东西放下面,哪个地方需要加粗,哪个地方是醒目的颜色等,这些东西是一个空间的感觉。而对话UI更加强调的是时间感,我刚刚说了什么,我很久以前说了什么,这个对人的感觉是不一样的,大家的注意力都会放在最近发生的事情上。这个对话是线性流动的,是一个时间的感觉。

第三个,在GUI的情况下更强调共性。我们在使用各种APP的时候,其实每个人心里会有个预期,我看到的和其他人看到的差不多,我今天看到的和之前看到的也差不多。但在CUI的情况下是不一样的,没有人想每天在一个对话的交互界面里反复地重复相同的对话。它一定是非常个性化的,针对我此时此刻的需要来发生变化的。

另外就是GUI是很稳定的,基本上我们期望的是熟悉了一个界面之后,这个界面最好不要再发生大的变化,这样使用的时候效率最高。而在CUI的情况下面,我们是希望它能不断进化的。我之前跟你说过的话,以后就不要再提了,因为我已经告诉过你了。这是GUI和CUI在交互上典型的不同。所以CUI其实是非常重视沟通的,希望你能够不断地跟我说话,就某个话题去深入,然后你能够知道我关心的是什么,曾经是个什么样的需求,现在能不能解决我的需求,会更加关心这个。

Chatbots 中对话式交互系统的分析与应用_第5张图片

CUI它本身不是独立的技术,并不独立产生价值,它只是一个界面而已。它真正产生价值是使用对话这种方式,把真正有价值的东西表达出来,传达给用户。包括像个性化推荐,刚才提到了在对话的情况下,它是适合个性的,适合进化的场景,所以个性化推荐是非常适合使用对话技术来完成的。此外还有定向广告,数据挖掘等,我能够了解你的细节,去展现跟你相关的东西。以及在我业务场景下的一些细节的知识,可以通过对话的方式展示给用户。


对话机器人的应用场景


Chatbots 中对话式交互系统的分析与应用_第6张图片

对话机器人目前能够落地的场景,大概有这么三类。一类是个人信息助理,类似Siri这种。一类就是客服和导购的机器人,在商业上面可以通过机器人的方式服务一个用户,向他介绍产品,销售,然后做售后服务。还有一类是泛娱乐的,就是做陪聊性质的,满足的是情感需求。三类场景都有人在做,我们做的是第二类的客服导购机器人。


对话的不同形态


Chatbots 中对话式交互系统的分析与应用_第7张图片

在导购这个情况下,它是一个非常复杂的形态,并不是说你问我一句话机器人回答一句话就完了。仔细地分一下,可以把对话的形态分为三类。一类是人主导的对话,人发出需求,我想要一个什么,问一个什么,然后机器人来回答,回答完了以后再问新的,然后机器人再回答,这是一个响应式的。第二类是机器人主导的对话,机器人问你要什么,你说我要这个,然后机器人再问,你再回答。还有一类是交叉的,人去问一个,机器人反问,人回答了,机器人再回答前一个问题的答案。大致上可以分成这三类。


  • 人主导的对话 - 单轮问答

Chatbots 中对话式交互系统的分析与应用_第8张图片

主导的对话中最简单的形态,也是现在最成熟的形态,是单轮问答。所谓的单轮就是说,用户说一句话,机器人回一句,这事就结束了,下一句话和这句话没什么关系。比如说问机器人什么是外汇储备,然后机器人会告诉你外汇储备是什么意思,这个问题就答完了。一问一答,这是最简单的形态。

Chatbots 中对话式交互系统的分析与应用_第9张图片

要做这件事情,基本上整体架构是和搜索引擎差不多的。搜索引擎其实就是个一问一答的结构,你搜一个问题,然后它告诉你答案,下一个搜索跟上一个搜索没什么关系。中间是一个检索模块,从一个知识库里面去检索。检索的时候因为是对话形态,相较于搜索引擎它会多做些事情,它会更加关注你想要问的东西是什么,或者你问的这个问题在文档里面有没有出现。所以会做一些同义词的替换,可以使用复述句的方式扩展你可能的问题,更好地去命中知识库。可以使用深度学习的方式来产生词向量或者句向量,使得更好地完成同位词的替换,这样可以减少知识库构建的压力。检索到之后会去做匹配,过滤掉一些不合适的,然后排序。这基本上和传统的搜索引擎是一致的,只不过在深度学习出现之后,可以有一些更好的算法,在大量语料的情况下获得更好的结果。


  • 人主导的对话 - 多轮问答

Chatbots 中对话式交互系统的分析与应用_第10张图片

但之前提到过,CUI的特点是有时间维度的。人和人之间对话的时候,不会是每一句话都和上一句没关系的,这和搜索不一样。这里有一个典型的场景,比如问什么是基金,然后机器人告诉我什么是基金。接下来我问有风险吗,这句话其实是有隐含条件的,因为我刚刚问你的是什么是基金,所以这里不是问股票有没有风险,是问基金有没有风险。所以这个时候要匹配到的是一段话来解释基金有没有风险。这是人主导的对话中多轮问答的典型场景。

Chatbots 中对话式交互系统的分析与应用_第11张图片

这种场景现在主要的解决方法是通过NLP的技术,对句子进行句法分析,这个其实是已经发展了很多年的技术,就是通过指代消解的方式。第一个问题来的时候,我们做句法分析,分析出主谓宾的句子成分,把句子成分存储到一个上下文空间里。下一个问题来的时候,“那有风险吗”,这句话是没有主语的,所以就到上一个句子的Context里去查,把基金拿出来做为一个主语,变成“那基金有风险吗”,然后拿这句话去知识库里查。这就是一个非常经典的指代消解的方法。同样地,有时候我们有主语,但是主语是代词,“它”、“这个”、“那个”,也可以用相同的方法去做替换。


  • 人主导的对话 - 闲聊

Chatbots 中对话式交互系统的分析与应用_第12张图片

人主导的对话还有一种形态,闲聊。闲聊在最近深度学习起来之后其实是研究非常多的地方,当然在商业场景下闲聊的作用不是特别大,因为在商业场景下我们往往是希望尽可能快地把事情做完,追求的是短的对话轮次来完成任务。而在闲聊的场景下,比如陪伴机器人或娱乐机器人,追求的是能够和人多聊,能聊很多轮次,这个指标是完全不一样的。我们的场景中也会涉及到一些闲聊的情况,会拿闲聊去做兜底,当机器人完不成任务不知道你在说啥时,就会用闲聊的技术来完成。

Chatbots 中对话式交互系统的分析与应用_第13张图片

这样的对话最典型的做法是用sequence-to-squence这样的深度学习算法来构建一个模型,利用大量的语料去训练它,可以从海量的语料知道你问的这句话以前的人是怎么答的,然后把以前的人答的那句话抽出来。当然sequence-to-squence是把句子拆成了词,在词的层面上来做这件事,生成一句话来回答你。在这个基础之上,还可以做很多的增强,比如可以把一些个人信息注入进来,在谈论什么东西的背景信息也注入进来。这也是一种流派,通过这种方式去学习海量的数据,最后有一天就什么都能答了。但是从目前对话技术的发展来看,这条路还处于很早的阶段,真的要让它做到什么都能答,答得有意义答得对,还是有很长的路要走的。

Chatbots 中对话式交互系统的分析与应用_第14张图片

这里有个解决的问题域的因素要考虑,对话机器人要解决开放域的问题还是解决封闭域的问题。所谓开放域,就是指不管问的是什么样的问题,都应该能找到一个正确的答案。如果这个事情能做到,那它就是开放域的。封闭域是指,机器人只能解决固定的有限集合的问题,超出这个问题范围之内的,它就答不了。从一个已知的答案列表中去获取回复,来回答一个开放域的问题,这是不可能的,因为你无法穷举世界上的所有问题。用Retrieving responses这种方法只能解决封闭域的问题,而这个是非常简单的,比如说前面的问答系统就能完成这件事。如果想要去解决开放域的问题,那就必须使用生成式的回复,通过理解你的问题,动态地去生成一句话,而生成技术现在还非常地不成熟。现在能做到的就是说一些模棱两可的话,不论你说什么反正都能糊弄过去。所以现在在商用场景下面,主要还是用封闭域的技术解决问题。


  • 机器人主导的对话 - 采集信息

Chatbots 中对话式交互系统的分析与应用_第15张图片

第二种形态是机器人主导的对话,这在商用的场景下是更常见的。因为人主导的对话,你不能控制人只在一个封闭域里面去问问题,经常性地人可能跳出这个封闭域问问题。所以在更加实际的场景下,我们往往把这个话题转成由机器人主导,我问你答,这样人回答的内容一般不会太出格。比如说问人投资目标是什么,给你5个选项,养老、子女教育、购置房产、享受生活、赚更多的钱。所以我可以猜测你的回答应该就是在这五个选项里面,不太可能突然在这种情况下蹦出来一句“你昨天吃了啥”这样的回复。这样的话这个对话就比较容易进行下去,一句一句地把这个事情做下去,类似于填表。

Chatbots 中对话式交互系统的分析与应用_第16张图片

这种有固定的流程采集信息的情况,可以使用Form-Bot来完成。预先定义好一个个问题,可能的答案有哪些。用户每次回答来的时候,就通过一个中控模块,去判断用户的回答是不是在答刚才的问题。如果是在答刚才的问题,那么就把下一个问题抛给用户。然后中间有一个状态保存,知道现在问到了哪个问题,Travesal本身是无状态的形式。


  • 机器人主导的对话 - 推荐产品

Chatbots 中对话式交互系统的分析与应用_第17张图片

机器人主导的对话还有一个典型场景是推荐产品。比如这边课程推荐的例子,我已经给用户准备好了一些课程,询问用户想听关于什么的课程。用户说想听大数据的课程,那么我这边有相关的课程就会推荐给用户,看用户喜不喜欢,这时候用户就可以进一步地进行交互。这种形态其实我们在Web页面或者App页面经常能看到,有推荐位这种东西。在对话的形态里面做推荐这件事,它有额外的好处是,可以针对性地推荐,再进一步地提需求。比如用户说这个老师的课以前听过,能不能换一个老师,这时候机器人就可以换一个仍是大数据方面的,但不是当前这个老师的课程给到用户。

Chatbots 中对话式交互系统的分析与应用_第18张图片

在这个场景下推荐机器人的大致流程是这样的:首先,根据用户的画像及当前用户的需求,可以产生一个推荐产品列表,推给用户,然后用户就可以进行答复。这个时候可以通过分析用户的意图,判断用户的答复是不是对这个产品提出了更细致的要求。如果是的话,就把这个要求返回给推荐引擎,让推荐引擎产生更新过的列表,然后再给用户。直到用户觉得满意了,或者表达出不需要推荐了,才退出这个流程。用这种方法就可以实现一个机器人主导的产品推荐。


  • 人和机器人交叉主导的对话 - 分支问答

Chatbots 中对话式交互系统的分析与应用_第19张图片

分支问答是在问答场景下由人和机器人交叉主导的对话。人先问一句话,机器人并不直接回答,而是做一句反问。在不能立刻给出答复的情况下,或者虽然能够给答复,但是我的答复有太多的可能性,所以我想要了解更多的细节然后再做答复,这时候就可以做机器人反问。比如说用户注册的时候实名认证失败了,这个时候人可能会问机器人为什么实名认证失败了。机器人从知识库库里了解到,实名认证失败有很多种可能性,如果直接给一大段的文档,那么体验是非常糟糕的。所有这个时候机器人就可以采取分支问答的方式,首先问你名字当中有繁体字吗?没有,那就再看下一个最有可能的问题,你是否改过名字?改过,那之后就可以给用户提供相应的解决方法,这样子就可以实现一个体验更加良好的交互方式。

Chatbots 中对话式交互系统的分析与应用_第20张图片

这个要实现的话用前面提到的FAQ-Bot和Form-Bot做组合就可以了。FAQ-Bot做问题的匹配,匹配到的答案交给Form-Bot,由Form-Bot去做后续的提问,等到了某个阶段确定了用户的情况,就给出反馈。


  • 人和机器人交叉主导的对话 - 多轮任务

Chatbots 中对话式交互系统的分析与应用_第21张图片

这是另外一种人和机器人交叉主导的对话形态,是完成一个多轮的任务。用户发出一个指令,想要干什么什么样的事情,想让机器人去做。但是机器人发现想要干这件事情掌握的参数不够,所以机器人要反过来主导对话,把那些不够的参数问出来。这里是一个订餐的场景,用户问“我想预定今晚7点,大董,9个人,有没有包厢?”。这时候机器人要先做意图理解,知道你要定饭店了,但是发现缺个参数,大董在北京有好多家店,到底是订哪一家。所以机器人会再反问一下,确定具体是哪家店。

Chatbots 中对话式交互系统的分析与应用_第22张图片

再细致地分析下,首先“请帮忙预定今晚7点的大董”这句话,可以通过深度学习或者机器学习的方法,得到一个意图分类器,判断出这种句式是在表达预定的意图。然后根据知识工程我们可以知道当预定餐厅这件事情发生的时候,我们有一些槽位需要填充,包括时间槽位、餐厅槽位、姓名、手机号、分店、人数、包间。知道了这么多信息,就可以去执行这个任务了。经过分析,发现分店信息不确定,这时候机器人就可以进行相应的问询,可以根据定单的历史,如果用户以前老预定某家分店,那么这次很有可能还是那家分店。至于是直接帮他就订了这家分店,还是再问一句进行二次确认,这个可以根据咱们业务的需求来做。

Chatbots 中对话式交互系统的分析与应用_第23张图片

图中是Task-Bot典型的架构流程。在前面还可以加ASR语音识别,在最后可以加TTS语音输出,这样子就可以实现纯语音的对话。首先做问题的分析,然后开始做问题的理解,理解完以后记录一个当前的状态,有哪些槽位还没有填充。针对每一种状态,去做一个对话策略的优化,可以知道这时候该生成什么样的话能最有效地获得槽位。得到了之后去执行任务,然后用自然语言生成或者模板填充的方式返回一个回复,比如“请提供下手机号及姓名”,这样一下子可以获得两个槽位。这就是Task-Bot典型的实现方式。


融合对话的不同形态


前面已经提到三个机器人的对话方式,一个是人主导的,一个是机器主导的,还有一个是交叉主导的,每个都有其特定的应用场景。但如果我们希望机器人能够在现实世界当中发挥价值,往往会发现人和机器之间的对话不是一种形态的,总是要在各种形态间跳来跳去。所以我们需要能够解决这个问题,要在不同的对话模式中切换。

比如说之前遇到过的一个做风险测评场景,机器人主导的时候,问客户“请问你能不能够承受波动率超过15%的风险?”,期望的是客户说能或者不能。结果用户回答的是“什么是波动率?”,这个时候就要跳到问答的场景,变成人主导的方式,解决客户不懂波动率的问题。去知识库里找什么是波动率的答案,然后把答案返回给客户。波动率答完以后,还是要再回来,接着刚才的情况问客户能否接受15%的波动率。有时候用户说的话会弄错,要有容错的机制,AI行业最苦逼的就是没法做到百分之百的确定,所以一定会有错的情况。这时候可以做确认,“你指的是不是这个?”,这样也会把整个的对话模式给变了。还有就是兜底,我听不懂但是我也没办法去猜你是做什么,所以给你回些模棱两可的话,这也涉及到不同对话模式的切换。

Chatbots 中对话式交互系统的分析与应用_第24张图片

要解决这个问题,就需要在各种模式的技术之外再加一层,做一个路由的Bot。我需要去知道在当前的状态下,应该使用哪一种对话模式的哪一种对话技术去完成。如果前面的路由Bot还并不能够完整地分析出来的时候,可能事后还要做个融合,根据另外一个反馈模型去判断,这几个Bot给出的回复哪个更有可能是用户想要的回复。这就是一个可以把不同的对话模型整合在一起的方式。

Chatbots 中对话式交互系统的分析与应用_第25张图片

这是Route-Bot的一个示例,我们内部在Route-Bot和其它Bot之间定义了一个协议,叫做Botlet Protocol,他们按照这个协议互相通信。可以做Pre-route,判断他是不是在问话,如果是问话就交给FAQ-Bot。也可以做Post-route,在FAQ-Bot结束的时候追加一句回应,继续刚才填表的问题。Route-Bot自己会维护一个当前的对话列表,因为有的时候有来一句话并不能确定到底该交给谁。为了完成这一点我们需要增加短期记忆和长期记忆,短期记忆就是前面提到的对话列表,需要能够记住刚刚在聊什么。长期记忆比如说之前告诉过你我叫什么,那以后就不要再问了。


Chatbot and Cloud

  • SaaS

Chatbots 中对话式交互系统的分析与应用_第26张图片

首先对于做对话机器人来说,SaaS是非常适合的,后面是服务,前面是各种各样应用场景的接入。最后是通过一个中心化的chat service把它统一成同样的协议,在后面进行统一处理。获得的语料也可以获得统一的训练,这样可以使机器人准确率的提高速度变得非常快,不断地获取新鲜的数据反复地进行训练。


  • PaaS

Chatbots 中对话式交互系统的分析与应用_第27张图片

在前面的介绍里可以看到,有不同的对话模式,每种对话模式又有不同的具体场景需要使用不同的算法来实现。做AI最苦逼的地方也在这里,有什么样的数据就用什么样的算法,没有放之四海而皆准的算法。在整个过程当中需要不断地尝试,根据数据去调整算法,迭代的速度非常重要。所以我们希望使用一个PaaS平台来加速这个过程,也使得整个的稳定性能得到提升。

内部我们大概是分这么几层,最下面是IaaS层,我们现在是跑在AWS的云上。因为上面的支撑,其实下面跑在虚拟机或者物理机上都可以。这些是依赖于容器的,只要能够跑容器的地方就可以跑各种的机器人,Docker Swarm及Kubernetes这两个形态都是支持的。这两个形态之上封装了一层应用PaaS,使用了Lain这个组件,是个开源的容器云平台,在应用这个级别去通知它我想要的是什么结果。包括也整合了整个一套开发、部署、测试的体系在里面。在这个之上,因为它是一个通用的PaaS平台,我们主要是做机器人这个项目,所以在机器人之上封装了一个叫subot的PaaS。可以快速地用一个yaml去定义想要的机器人,期望由哪些机器人组件组成,包括一些测试用例也可以放在里面。


  • 微服务

Chatbots 中对话式交互系统的分析与应用_第28张图片

因为每一个技术环节都是需要去不断地迭代调整,变化非常快,所以我们采用了微服务的架构来获取最大的灵活性。控制台是获得语料的地方,用户上传的语料或者我们自己抓取的语料可以到达控制台,控制台把语料存储下来以后会通知subot平台。subot平台这时候会去通知Overlord。Overlord是我们的训练调度平台,它会启一堆的Trainer,根据不同的场景,会启动相应算法的训练器,获取语料去训练出模型然后保存下来。同时subot也会去通知机器人服务加载新的模型,Brain会让完成这个业务的各个小的Botlet去加载模型,这样模型就上线了。


对话机器人的大航海时代


最后要说一下,刚才我也提到了AI行业很苦逼,对话机器人其实也很苦逼。上次我去听李飞飞的演讲,对她的一个说法非常认可,就是说人工智能科学现在还没有达到科学状态,还算是伽利略时代。伽利略时代我们已经可以观测到一些科学现象了,但是科学体系还没有建立起来,真正的物理学科学体系到牛顿那个时代才确立。现在大家是说有些方法有效果,但是为啥,不知道。对话机器人我觉得还要更苦逼一点,我们现在连有些东西是否有效果都还不知道。我们知道有很多技术可以用,在某些场景下能得到不错的效果,但是是否在其它场景都有用,这个不知道,得试。所以更加像一个大航海时代,我们把船开出去,一边开一边看,只要有一天我们能找到个新大陆,这个东西就能解决我们绝大部分的问题。


Q&A


提问:我们正常的自然语言进来,SR的方案用哪个?技术角度哪种方案的选择?怎么达到语义的识别?

洪强宁:其实SR语音识别这个技术已经可以达到了,不知道大家有没有关注,其实还是可以的,在国内效果比较好的,比如说科大讯飞,比如说百度的云识别,在我们的使用下还是不错的,我们客户自己也开始使用了,效果也还可以。但是现在的语音技术都有一个特点,它对语音质量的要求比较高,背景音乐不能太大,麦克风不能太远,口音不能太重,会有些受限,但是如果是手机录音的方式,说的是普通话,基本上属于可用状态,如果你说的话里面有一些专业的词汇,还是需要专门的训练,日常用语可以用了,好的产品在95%以上吧。

语义的部分,和应用场景去结合,狭义的理解部分,要知道你说的是什么意思。语义量特别少的时候可以用这种。这是一个非常标准的做法,就是手写规则,只有当积累比较多的时候可以建立模型。对知识库查询的状态,比如说什么是基金,问一个基金的意图,因为人工比较大,单独划出来。


提问:对话机器人这一块真正落地的时候是以SaaS的形式还是什么?

洪强宁:我们最喜欢的是SaaS,有一些金融客户要求必须使用,对于我们来说技术层面一样的,容器云的那一套,不管底下跑的公有云还是物理机也好,还是私有云,都是一样的跑法,维护成本会升高,我们训练模型,不像在云端。


提问:假如说对一些金融行业,对数据比较敏感的,真正落地的时候,其实这个数据相当于专门基于它自己的数据,自己在项目里面把知识库的工作全部做了?

洪强宁:一定程度上是的,知识可以分三层,最底下一层是我们说中国话,说汉语都可以用得到这个知识。中间一层次是行业领域。再往上是专用知识,主要是建模在专用知识,需要和客户一起完成,投入比较大。


提问:有一个通用模型,用它的语料,然后产生一个知识库?怎么对模型进行评判

洪强宁:对。现在学界还在研究这个问题,没有明晰的判断标准,我们自己在做还是准确度的判断,机器自己可以给自己判断,准确的判断这些答的,还是得好人外部的判断,我们把这个对话挑出来,然后机器的回答是否符合预期。


提问:假设达不到客户业务的需求,我这个要通过人工标注反馈给模型再去练?

洪强宁:反馈有几种,我们现在用的都是监督性学习的方法,要输入才可以,是不是得通过标注的形态,不一定的,因为在运行的时候有人值守,进行交互的时候已经产生了反馈数据。


提问:刚才提到的Route-Bot可以理解为移动识别的功能?

洪强宁:是它的一个组成部分,还有下一个识别,分发出去,这个Route-Bot回复以后看是否用你这句话。


你可能感兴趣的:(Chatbots 中对话式交互系统的分析与应用)