有多少人工就有多少智能

整个小爱同窗的研发,应该是在 2016 年的年末开展的,在 2017 年的 3 月份,咱们首次把小爱同窗放在了电视中了,而后在 2017 年的 7 月份,(咱们把)小爱同窗放在了音箱上,而后在今年的 3 月份的 小米 MIX 2S 的发布会上,咱们把小爱放到了手机里。前端

到目前为止,小爱同窗已经在 10 多款生态链的设备里面存在了。算法

大概 2 年时间的研发,我以为本身仍是蛮幸运的,由于首先咱们开始进入到电视这个领域,电视的场景比较单一,用户的主要需求就是搜片。除了搜片之外,其实它的一些场景,好比一些电视控制类的,都相对比较简单。api

而音箱里面自己没有屏幕,因此用户主要需求是听音乐、内容类的,而后还有其它的一些娱乐类、控制类的转换,因此自己会使得这个音箱在这个(语音)领域比电视更近一步,它自己的复杂度也没有那么高。最后放在手机上就比较复杂了,这里面像音乐、视频、电台、人物等功能其实很是厉害。架构

所以,在各类多轮对话的场景下,怎样去把体验去作好,会面临到很是大的问题。app

如今小爱同窗所输出的多种设备当中,基本上能够分红三种标准形式:无屏、有屏以及触摸屏,不一样的设备对小爱同窗的要求不同。学习

从自己的功能上来讲,分出了 9 大类别,固然这不是很是严格的定义,它会不断去延伸,而后成交互形式,对应到不一样任务场景下。优化

这里写图片描述


▌语音交互和搜索的区别

在作语音交互这么长时间以后,你们也能理解到为何语音交互实际上是跟搜索有很是大的区别。ui

这里写图片描述

第一,语音交互实际上是完成更普遍的任务。在手机上我要给家人打一个电话,或者上一个闹钟,它自己要去完成的除了信息查询之外,还有设备控制,有内容消费、生活服务。它自己被认为是帮助用户去完成特定任务,而且不出错。而在这种状况下,搜索仍是相对比较单一的。spa

这里写图片描述

第二,语音交互基本只有一次跟用户交流的机会。不像搜索有更丰富的展现,能够在多条结构里面进行选择。例如,语音交互对用户的话理解错了以后,用户基本上会感到很失望,就像你们常常说的是“你不懂我”,就以为它比较傻。操作系统

这里写图片描述

第三,语音交互实际上是很复杂的一个状况。首先它要考虑上下文,与用户上一轮说话方式是很相关的。好比说我想给一个同事发消息,而后它就问你要发什么消息,这时我说,“提醒我下午三点钟去开会”;或者我直接跟小爱同窗说,“提醒我下午三点钟去开会”,这两件事都是提醒我开会,但一个是发消息的内容,一个是上闹钟,它跟上下文是相关的。

刚才说的是一个短时间的上下文对话,它还能够再去延展,跟一个用户长期对话的上下文是相关的,智能助理在跟你不断的对话过程中,它能够了解了好比说你家里有没有车牌,或者说你想问它限行的时候,它能够告诉你今天或者明天你会不会被限行,它可能去了解你家里有几口人,家里有没有宝宝,这样的话,能够愈来愈聪明地帮你完成一件事。

这里写图片描述

*第四,就是用户行为反馈*。语音交互比搜索难,搜索里面最重要的信号就是给用户的点击模型,当搜索第一天发明出来的时候,全部的搜索结果是工程师去进行的校调和排序,但只要有用户不断去用这个结果,第 1 条结果他不点开,他点了第 2 条,他必定是认为第 2 条结果确定比第一条好,他点了第 2 条以后又点了第 3 条,那可能他对第 2 条的结果不是很满意,他以为第 3 条可能更好。因此搜索里面经过大量的用户点击返回数据去调整搜索排序。

目前你们看到的是比较成熟的技术,用户点击反馈已经在搜索质量排序当中超过 60% 的重要性,但在语音交互这边,用户的反馈它是一种很隐式的,可能用户以为你没听懂他,可能就会去换一种说法再问一下。

怎么样让用户反馈进入到这个模型中,帮助小爱同窗去变得更聪明?实际上,目前世界上尚未看到工业界和学术界与之相关的研究成果出来。

小爱同窗能够认为它是一个语音助理,一个技术集成者,不存在一种通用技术,能够去解决全部问题。因此说针对每个领域,它所解决问题的方法,所面对的困难都是不同的。

我主要讲三大方面,就是小爱同窗总体构建时所采用的技术:第一,语音技术;第二,天然语言理解;第三,用户行为反馈。

▌语音技术

这里写图片描述

首先,就整个架构来讲,在任何一个终端上,用户跟小爱同窗说的话先是前端的一些信号数据,主要是声学技术,进去以后就是变成了一个纯用户的声音,经过语音识别转换成文字,而后经过语义理解,去了解用户真的想要什么,而后去服务的线上分发,最后进行语音合成,告诉用户但愿什么样的结果。

具体展开而言的话,语音技术的难点,其实还挺复杂的。首先是前端包括唤醒技术、回声消除和声源定位,你们用了小爱同窗,能够发现其实它在这方面其实仍是有许多问题的。

这里写图片描述

第一,小爱同窗唤醒仍是比较容易,但常常会发生误唤醒,可能尚未说“小爱同窗”,它就唤醒了,甚至你说什么小白同窗、小赖同窗,也可能会唤醒。

因此唤醒技术自己就很复杂,小爱同窗如今已经训练有接近 1 年时间了,但作得还不是很好,其实用户还想要更多的唤醒词来去叫醒它。

当一个唤醒词咱们花了 1 年的时间训练,怎么样把一个唤醒词的技术更加通用化、能让用户自定义本身的唤醒词就行了。例如个人小孩叫丹丹,咱们能够直接跟音箱说,“丹丹你好”,用户有这样的需求,但咱们的技术如今没有作到。

第二,语音识别。语音识别有噪音环境,声音混杂,不一样的人有不一样的方言,咱们集成了国内全部语音技术的提供商,但如今没有任何一家有特别好的用户体验。

第三,语音合成。两年前,语音合成在整个中国一年产出的人才不超过 20 个,因此如今作语音合成的人才,在语音交互的场景里煊赫一时。

语音合成里面有很是多的问题,一个是合成实体词。好比用户本身说,这个“618”要促销了,就是咱们本身知道“618”什么意思,但机器看不到“618”,它不知道你说的是 六、一、8 仍是 618(六百一十八),它看到的字是同样的,可是它念出来——若是说六百一十八要促销——你们就会以为很奇异,由于它背后有不少的知识。

那么,经过知识怎么样去融合进来,作语音合成,这又很复杂,包括中英文混杂,用户情感怎么样处理,这点上其实小冰作得比较好,它的合成声音带着情感,这个技术其实目前看也是最好的。

语音识别的话,其实咱们后面已经有 11 家技术供应商,来给咱们提供语音识别的效果。在不一样设备上,不一样场景下哪一家语音识别怎么样,咱们都有评测。

而后,咱们也进行了一个融合策略,一个用户的语音发给多家技术提供商,有些结果譬如说有中英混杂的,多是这家识别的好,对方言来说,多是讯飞识别的好,而对某些设备的厂商,它多是另一家提供的好。因此咱们的融合策略,在不一样的设备下,能够显著提高一个共同的好结果。

▌天然语言理解

天然语言理解这件事情其实仍是挺难的,由于第一要素就是首先要有一个清晰的产品定位。好比,用户直接跟音箱说雷军,和跟手机说雷军,可能它的意思就是不同了。

在手机上,咱们输入雷军直接就是人物介绍,但在音箱上直接说雷军,好比小爱同窗,就直接蹦“ Are you OK ”了。由于咱们认为音箱是一个无屏设备,因此它说雷军的时候,就直接放雷军的歌,可能用户感受很好。

首先要有一个清晰的产品定义。

天然语言理解的背后咱们认为这个 query 应该给什么样的用户结果,使得这个产品给用户的体验最好。

这里写图片描述

当用户将一个 query 发给小爱同窗的时候,它有 4 种应答方式:

1.咱们有一个叫内置垂域,好比查天气、定闹钟都是小爱同窗内部本身的团队来去定义的。

2.咱们会把这个能力开放给设备开发者,包括咱们本身的设备,譬如在手机上说打开手电筒,就是设备所独有的,它不是一种通用能力。譬如说一个电视,链接 HDMIE,咱们相信小爱同窗本身是作不了的,因此咱们就把这个能力开放出来,交给设备开发者,由他们本身去定义。

3.开放平台。你们对这个行业了解一下就应该知道,它自己是一个操做系统,它上面能够有无数多的 APP,不少的开发者愿意在小爱同窗上面去开发 APP,譬如像开发菜谱,开发成语接龙、开发冒险世界这种语音交互类的这种游戏,在亚马逊的内容已经有接近 3-4 万了,在小爱同窗上面如今有 100-200 种。

4.小爱的训练计划。这个咱们看到你们用的最多的,第一个就是逗小孩或者逗家人,好比世界上最美的是谁啊?直接把你老婆的名字念出来,世界上谁聪明啊?把本身小孩念出来……针对自定义的去说出本身但愿说的话,也就是把高度定制化的能力交给用户。

用户能够本身训练小爱,小爱刚开始运做起来也是挺傻的,但你若是有耐心去训练它,让它可以跟你做伴,这实际上是整个小爱同窗的一个产品。

其次,就是垂域的深度优化。

垂域理解就是每个垂域用的算法、方法都是不同的,譬如说北京明每天气怎么样?北京明天晴转多云。单说这句话实际上是一个天气类的,但你直接前头加入一下“翻译”两个字,它就变成了一个翻译类的。

这里写图片描述


下一个例子就是韩磊《南山南》,自己韩磊没唱过《南山南》,因此就把它纠错成张磊。为何咱们知道韩磊没有唱过《南山南》呢?由于它自己是带有知识库的,因此要作好这个领域的话,首先不光要知道相应的词表,必须得须要相应的知识,知道用户想找音乐,而后到知识库里去判断它究竟是歌手仍是歌名,看看有没有这个歌手和歌名,而后找到相应的歌给用户。

最后一个是用户闲聊的需求,例如用户问“天猫精灵怎么样”,这种 query 是很难回答的,咱们也不知道怎么回答,咱们这一块其实就是经过有多少人工就有多少智能的方式。把这种 query 能运营好,但咱们也但愿尽量经过算法能让这我的工的方式更智能,因此后面能够稍微期待一下。

语义的垂域理解,这块仍是挺复杂的,每个垂域本身的知识库和领域都是很复杂的。要理解这种用户的复杂查询的话,必定要对后台的知识库,甚至是用户有深度的理解,因此针对视频这一块,很是简单列了一下,咱们有 25 个相应的知识字段去构建知识库,只有这样的话,才能把用户复杂的查询构建好。



这里写图片描述

总的来讲,小爱同窗它是一个很是复杂的系统,要去融合无数的技术,技术是咱们外部的合做伙伴给咱们的,有些功能是咱们本身内部研发的,但本身内部研发也不是一种通用的解决办法,而是针对不一样类的问题来找解决办法。

咱们把一些具备表明性的东西拿出来列一列,词网格实际上是咱们一个比较基础的天然语言理解模块,这个里面在咱们的分词和词道用的很是多。

平时用户说打开卧室的灯,可是因为口音问题,或者是距离的问题,就是 AI 在识别的时候,它常常会“打开卧室壁灯”,或者“大开卧室的灯”,识别出不一样可能性出来。这是语音识别的结果给 NLP 的输入,基于这个输入,咱们经过词网格的方式,去寻找一种最优路径,去构建出它最优的可能性。

这里写图片描述


另外一个例子是,我想看功夫电影和我想看周星弛的电影《功夫》,就功夫这个词在第一个 query 里面,它其实想表达一类电影,我想看周星弛的功夫电影,它就是找这种有功夫类的电影,而后我想看周星弛的电影《功夫》,那我就是想找名字叫《功夫》的电影,这个就要根据它前面串的和后面串的一个这种类似度,在历史的统计数据里面去找到最有可能匹配的路径,这个就是词网格。

这里写图片描述

上下文无关文法,这是一位斯坦福教授提出来的,这个在不少那个垂直领域实际上是颇有关系的。刚刚咱们看到的词网格的模型,它自己是基于一种有限状态思惟逻辑,可是上下文无关文法是有下推的思惟逻辑,它会无限的去扩展,构建出如今的模型出来。譬如,亲戚计算器,不知道你们知不知道小爱这个功能:爸爸的爸爸的爸爸叫什么?小爱同窗会回答:你能够喊他高祖父。咱们要解决这类问题,必定要选择相应方法。

这里写图片描述

知识库的搜索就刚才说的那个韩磊唱了《南山南》的歌。咱们首先要去判断这个领域去搜索知识库,而后找到相应特征,发现它可能在现有特征里,好比在歌名和歌手不知足的状况下,怎么去进行相应的匹配,从而找到一个最优的结果。

这里写图片描述


问答对匹配,好比说天猫精灵怎么样?就是说用户之后说天猫精灵好很差这样相似的说法,咱们都但愿能匹配到。虽然咱们是有多少人工就有多少智能,但也但愿在人工必定的投入下有最大的智能。

因此其实就是这种模糊匹配的技术,咱们仍是投入了蛮大经历去作,就是用户的 query 是这样的,那咱们匹配的 query 好比小豆包漂亮吗?小豆包长的漂亮吗?咱们但愿它们是一个意思。这样的话,当有多少人工有多少智能的时候,可能快速的去作泛化。

可是,能够看到这里面红的这块是错误的,我想听《好想你》,而后直接匹配成一个叫“我好想你”这个 query 了。就原本是听音乐的意图,它直接匹配成了我好想你这样的闲聊了,虽然听起来好像没有差太远。

“不说再见”,是我不想跟你再见,和“不说了,再见”,其实语意彻底不同了。

字的差异很是小,并且它可能就是一些语气助词,但它的语意会彻底转,因此咱们但愿在语意不变的状况下,去作(直接匹配),但有些状况下,是语意转的状况下,咱们要及时发现。

最后,就是全局的统一策略。

咱们就发现中控全局判别这件事越作越复杂。譬如,北京天气怎么样?翻译“北京天气怎么样”?对于天气而言的话,它就发现它前面多了两个词,它也不认识翻译,由于对于每个垂域来说,它都是局部的信息,很难去知道全局性的,它前面多了个翻译,本身的转换就无论了。

这里写图片描述

因此每一个转换都是深度去理解本身的信息,可是它发现前头多了两个字的时候,它并不可能把世界上全部的知识,放在每个垂域去作判断,因此就是尽可能先理解本身的知识,而后上传给一个中控模块,而后经过全局信息去作最后的决策。

当全局决策发生的时候,咱们发现每个领域的局部信息最后要尽量的交给中控,中控不光要维护全部的特征,并且它要维护全局的热度信息、用户行为信息等,从而更好的帮助全局判断。

譬如播放《超级飞侠》,在咱们的音箱里面有 2 种选择,一种是给小孩直接放《超级飞侠》的歌,一种是找一个《超级飞侠》的故事。小孩说播放《超级飞侠》的时候,大部分的用户确实是喜欢听故事,但有些确实是想听歌。那咱们怎么知道用户想听歌呢?当发现用户说播放《超级飞侠》,音箱紧接着给它放故事了以后,他会再去给它说播放《超级飞侠》的歌,他会就去纠正这句话。

经过这种方式就会发现以前的判断是有误的,也就是经过用户行为的完听率,去探索怎么样用用户行为来帮助 AI 更好的理解人话。

这里写图片描述

就像《超级飞侠》这个歌若是用户耐心的听完了,咱们就认为他对这个歌的投票是满意的,但若是他听这个歌没有听完,咱们就认为他对这个歌不满意,也就是咱们定义的完听率。

经过完听率去判断用户是否是对这 query 满意,因此当播放《超级飞侠》这个歧义的问题,咱们但愿经过用户后期的行为数据,来判断、纠正咱们怎么样去更好的理解这句话。

另一个就是多轮的对话管理。譬如播放一首歌,而后用户说第 2 个,他其实想说第 2 首歌;我想说导航到附近麦当劳,它说为你找到如下附近的麦当劳,你想它说直接第 2 个麦当劳。因此咱们但愿在中控里面,有一种全局的、多轮对话管理来保证用户的持续对话。

▌用户行为反馈

最后是用户行为反馈,就是怎么样根据用户的结果去指导咱们去作更好对话模型的理解。它在搜索里颇有用,但在语音交互系统里,实际上是一个很是值得去研究的问题。我特别但愿无论是学术界仍是工业界能高度关注的这个问题,由于这是一个崭新的领域。

这里写图片描述


如今用户对结果的满意和不满意,在搜索里面是很是直接的。我跳过这个结果,可能就表示对这个结果就不喜欢,但在语音对话里,就像咱们正常的对话里,我可能跟你聊了两句话不投机,但我可能仍是好比说嬉皮笑脸的就走了,你可能都不知道我到底对你的话投不投机。

或者假如我内向一点,也不是那种要攀仰别人的人,我跟你聊着就可能没有主动表达我对你的赞扬,这个时候用直接对话系统去表示对你的满意或不满意,实际上是很隐讳的,这件事情一直是困扰咱们的一个难题。

 这里写图片描述

如今,咱们在内容类的上面作了一点工做,就是经过首条完听率来判断它有没有把这首歌理解的对不对,咱们也看到了一些数据,确实发现当咱们判断出一些音乐意图,可是完听率又比较低的时候,这些 query 看起来就不像音乐了。

因此咱们就经过不断的探索研究、构建具备自主学习能力的对话系统,这是咱们的目标和理想,但如今看起来仍是很难的。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------