为什么人机对话很难实现
扫描二维码
随时随地手机看文章
在清华x-lab主办的人工智能研习社第五讲,三角兽的创始人、COO马宇驰如此描述当前的人机交互产品。
在同日举办的百度2017世界大会上,李彦宏的观点与马不谋而合:“我们现在看到很多智能音箱,虽然不需要按住,但是需要一个唤醒词,一般是四个字,这不符合人与人交互方式。我跟你说话的时候不需要拉你的手,也不需要每句话都叫你的名字,更不需要每次都叫四个字。”
在清华的演讲中马宇驰表示,目前市面上人机交互的智能硬件,距离真正的交互还需要至少8-10年时间。各大发布会上自然交互,甚至有些可以接受访谈的机器人,一定有某些人工的介入,噱头颇多。
而作为人机交互最重要的应用场景之一,搜索引擎与人类最自然的交互方式依然有很大不同。“比如我们如果要查今天的天气,到百度可以直接搜索“北京天气”,但跟人说话肯定不能这样,跟同学说“北京天气”,别人会以为这个人有病,要说今天出去穿羽绒服冷不冷这样的话,这部分叫自然语言处理。在之前的一次大会上有一个智能领域的科学家说语义是人工智能皇冠上最后一颗“明珠”,因为人工智能学会了语义才真正接近于人的思考方式和回应的方式。”马宇驰称。
那么人机对话这件事为什么难?深度学习等AI技术又能从中做些什么?在清华x-lab的人工智能研习社课程中,三角兽创始人兼CEO 王卓然博士在马宇驰之后解释了这些疑惑。
以下为王卓然演讲,大数据文摘在不改变原意的前提下有删改:
人机对话这件事为什么难?
一些名词大家应该耳熟能详,像深度学习、增强学习、自然语言处理、信息检索、数据挖掘。最底层的技术模块,像决策过程、推荐系统、知识库、逻辑推理、分类等等,可以看到机器学习和自然语言处理几乎每一个模块都会用到,人机对话涉及到方方面面。人机对话这个大的领域其实是人工智能的下一代,叫做认知智能。认知智能就是人怎么去感知世界,怎么去理解世界,然后用机器去模拟它,去拟合它,再用一个接近人的方式来反馈给我们。所以它涉及的面太广了,只是单纯说人机对话这个子问题都可以另外定义出好多子问题。所以我们只是把这些基础的模块、基础的算法包装成我们内部通用的模块,像开放域的聊天检索式问答、深度问答、图文对话的引擎等等等等,然后我们对外输出的产品,有开放域聊天,有问答的引擎,问答引擎的意思就是客户把他的问题和答案灌进来,我自动支持基于问题库的问答,我们还有多轮对话的引擎,可以不依赖于领域。比如说找电影、找歌、找餐馆用的是同一套引擎,只是把不同的数据、本题库、知识结构导进去,让它支持一个领域的对话,我们还可以把它打包在一起,变成多域的对话系统。所以如果做人机对话,基本上自然语言处理、机器学习里所有的事都要融会贯通。
人机对话的几大核心问题1)开放域聊天
平时我们和人说话有不同的场景用不同形式对话,或者说用不同的方式去思考,比如说开放域的聊天,没有目的、不是为了找到一个信息,或者说不是为了完成一个任务来去对话,而是朋友之间的寒喧、互相的问候,这种就叫开放域聊天。
2)多轮对话
这个更接近于人机的对话,和人与人的对话也有一定相似处。比如我们要找一个餐馆,我会问找五道口的餐厅,机器会问喜欢什么口味,我说川菜的,又问对环境有没有要求,我说有没有适合朋友聚餐有没有大的包房,这是机器多轮对话完成的。
3)智能问答
智能问答这个概念比较好理解,这个技术也相对于另两个更久远一些,也更成熟一些,问答就是一问一答,我问你天空为什么是蓝的,你给我解释说什么空气的折射等等一些因素,我问兔子真的爱吃胡萝卜吗,你可以回答兔子都爱吃胡萝卜,但不是全部,这是人机对话不可或缺的一部分。
这三部分之间是互相没有联系的,在目前的技术框架下,开放域聊天有开放域聊天的做法,垂直领域有垂直领域的做法,问答是问答的做法,做产品不能只做一个用户的问答或者一个聊天,这些东西要整合在一起,于是就出现了跨域的中控概念。以度秘平台为例来讲,这个平台既可以支持闲聊,也可以支持找电影,找歌,找餐馆,查快递,支持问答,甚至更多的技能,开窗、开灯等等,这是由单独一个服务模块来完成的。但是用户说出一句话之后,这句话到底应该归哪个模块去响应,这就是中控去做的一个事,其实就是根据你的上下文,根据你的每个域回复结果质量的情况综合算出用户这句话有哪一个服务区响应最好。
相关性是开放域聊天最重要的一个指标。我说一句话之后机器回了一句与我相关的话,不相关就没有办法再聊下去了。在这个基础之上,我们要注重几个点,一个是上下文的覆盖,人与人聊天是有上下文的,不是你说一句我说一句,每一句是单独割裂的,而今上下文的覆盖已经做得很好了,达到了40%的上下文覆盖,可以体验到40%的联系。
深度学习等人工智能技术可以做什么?
上下文引入进来之后整个的数据会非常的稀疏,所以我们用了深度学习进行自然语言处理,最大的帮助就是可以把离散的词,离散的句子,离散的篇章等等表示成一个向量,这个向量在分布式的语义空间中就可以计算它的相似度、相关性等等这些指标。我们就用深度学习这个方法把上下文的整个信息都表示成了向量,再用向量检索向量的方式去找你说这句话的上下文、语义或者语境更相似的上下文,再用同样的方法检索获得侯选。
另一块是紧密情感,人和人聊天不可能是冰冷的你一句话我一句话中性的,肯定夹杂很多高兴、开心、伤感、鄙视的情绪等在网上的表情标签。把这个引入当中就会让聊天更生动有趣。这块我们做了一个尝试,我们通过这个数据兴起迭代的方法,用的还是很标准的CNN,只是我们数据加工、数据处理做了很多工作,能达到99%的准确率,用一句话去识别它对应的情绪,可能是开心、大笑等等,识别这个情绪能达到99%。
人机对话获取数据的来源都是互联网,互联网有一个问题,在互联网上人和人聊天的句子偏成人化,肯定不适合儿童。举个例子,我说床前明月光,这个机器人可能回应地下鞋两双,每个字也没有什么问题,也不涉及黄反,但整个句子的对儿童这么聊肯定不合适的。我们怎么在互联网这个语料上去过滤出一个儿童版本呢?首先用检索是不现实的,因为你不能保证每一句话、每一个字,只要有一句话或者一个字不适合这个产品就毁掉了。所以我们用了学术界比较火的端对端生成的聊天方式。它的训练语料是用成人语料,我们用能拿到的动画片的字模或者儿童书,用这个训练一个模型,用这个模型过滤成人语料,在这之后又训练端对端的模型,过滤完之后就可以认为不适合儿童的东西是小概率事件了,相当于我们写出了对儿童绝对安全的一版聊天。
我一直在研究垂直领域对话系统的泛化,什么叫泛化?在垂直领域对话很难获得,在网上抓数据的话也很难找到很贴切的人和人对话,或者人和任何东西对话,比如找电影,找餐馆这种数据很难获得。既然这么难获得,我们如果有这样的一个系统,用这个系统已经迭代学到很多东西之后,再把这个知识迁移到另一个领域。而且,问答跟人机对话完全不是一回事,问答更多是信息检索的过程,匹配用户的问题和库里的问题是不是同一个意思,然后反馈答案。
讲座后,现场听众与王卓然进行了对话。
提问:今天百度的大会发了一款RavenH,比较有趣的一点是有可以拆卸的触摸屏,发布者提到,现在市场上voice only的方式不太符合自然习惯,那未来人机交互是单纯以语音为主还是多种结合起来的形式?
王卓然:人机交互这个形式,要分场景,最合适的场景当然是一个多模态交互,因为多模态交互是人机对话的下一个进阶的阶段,人机对话只考虑语音,如果是多模态的话,要考虑到屏幕、触控、图像识别、环境传感器、位置等等。所以要分场景,不能较真,人机对话多模式场景比纯机器交互要好,很多场景下不具备多模态交互能力,比如说在车载的时候有屏幕的引入可能会造成负担,对行车安全也有危害,纯语音交互才是更好的场景,所以不同的场景不同的应用。
提问:刚才听了您的介绍非常精彩,我有一个问题,现在大家做语音处理和语义处理分得比较开,事实上在人说话的过程中语言不仅包括声音,还包括像语调、语气等等,但是好像市面上没有看见有人做语调、语气这方面的东西,语义大部分处理的是文本,您怎么看待这个问题,语音、语调和语气角度有价值吗?如果有价值为什么大家都没做,做的话难点在哪里?
王卓然:非常好的问题,从学术角度上来讲有非常大的价值,单纯看文本一句话可能有两个意思,我没吃饭,我没吃饭?一个是疑问句一个是陈述句,代表的意思就不一样了。但是为什么没做呢,道理很简单,还没成熟到那个程度,商业到产品落地还差太远,还没有达到非要为这个事做一款产品,或者没有这个事就做不了产品的程度。
提问:我想问之前谈商业模式的时候是做B2B、B2C,你们是永远做男人背后的“女人”呢?还是慢慢推出产品面对C端用户呢?
王卓然:对用户市场对我们非常有吸引力的,但是从公司发展角度来看,这个阶段尝试C端的代价太大了,而且我们团队结构也不是为2C准备的,所以在短期之内都不会做这方面的事情。
提问:刚才您讲给小孩训练一个模型,过滤到不合适的问答。想请您详细解释一下这种过滤方式。
王卓然:我们用故事书、字幕等等去训练了类似于语言模型的分类器。用这个东西去过滤网上成人聊天的每一句话,把不适合儿童的都滤掉,我们认为剩下的它的分布会跟字幕、故事书训练分布是相似的,词汇分布、表达形式等等会跟儿童的表达形式更相似一些。在这个基础之上我们再去训练这个模型。
提问:您刚才讲的人机交互的话多模态情况下最好,我不知道理解对不对。比如人在沟通的时候,除了刚才说的声音、语料,包括说话内容,实际有很多肢体语言,下一代的人机交互会不会把语音包括视觉整个结合起来,这样才叫下一代的方式?
王卓然:会的,人机对话在国外学术界火过一段时间,之后好多人机对话转向多模态研究。表情、肢体语言加上语言,包括物体识别所有都在一起做人机对话,背后的技术,现在引入多个环节,物体识别等等是多维度,这后面有决策过程。如果对这个感兴趣可以关注两个大学的研究,一个是CMU,他们有一个人机交互的实验室,人机对话做的也比较久,有很多人也做多模态的交互。另一个是爱丁堡赫瑞•瓦特,刚开始是做人机对话,后来他们转向多模态的交互了。
提问:刚才您说公司应用场景其中有一个是IoT,是智能终端。这个在终端上用的话,您认为都是联网的通过云的处理方式呢,还是说我也可以去本地去用。如果是云的话涉及到很多场景,包括并发性的问题,有没有考虑像有一些东西是现在有一个趋势,把很多的算法固化成硬件。
王卓然:语义这块负担不太重,都是B到T这个级别,不像图像传输非常重。固化到端我们有尝试,跟华为海思有合作,那是支持NLP的,端对端聊天生成,语义理解几个RN结构,因为图象涉及很多东西,比如说实时的加工,实时的渲染,实时的分析,实时性图像本身传输有问题的情况下。文本层面最大的考虑其实是隐私,不是你说的云的负担问题。