这是极客公园「极客公开课 · Live」第二期的活动,来自云知声AI Labs的研发总监刘升平和我们分享了如何打造对话式交互,以及他在AI领域相关技术产品经验
以下为本期课堂笔记精华摘要:
会话式交互
什么是会话式交互?
我们可以从最早2010年,iPhone上一个App刚刚推出,上面可以通过语音说话,说我要查明天天气、我要看今天晚上有什么好看的电影,就直接会把结果用GUI的方式反应出来,这是最早的一种形态。然后,苹果应该在2010年左右,把他收购了,后来用在iPhone4上,iPhone4S的时候把它集成在一块推出来,但它的定位还是手机上的一个APP。
为什么现在这种交互形态比较火呢?因为我们在移动互联网时代,大家都可以看到APP是最主要的形态,但在现在的物联网时代,有各种各样的设备在上网,但这些设备可能是没有屏幕的,可能不是触手可及的,也有可能它的使用场景不能用在手机和车里面中控的屏幕,也不能用眼睛去看,也不能用手去摸,这种情况语音交互是最自然的形态。
所以,这也是目前我们说会话式交互也好,叫Bot(全称应该是 Chatbot——聊天机器人。)或者VUI(语音用户界面(VUI)A voice-user interface (VUI) makes human interaction with computers possible through a voice/speech platform in order to initiate an automated service or process.);在IOT(物联网Internet of things(IoT))时代会话的应用应该会成为主要的交互形式,所以这是我们做产品肯定要跟上时代嘛,不能只停留在GUI(图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口))的时代。
口语对话系统:
从技术上来讲,我们这叫口语对话系统。而这个口语对话系统,也研究了至少有三四十年,最主要有这5个组成部分:
1、语音识别(ASR),就是你说话我需要听清楚,把它转成文字。
2、转成文字以后要理解这句话的含义,这就是口语理解(SLU)。
3、理解完以后,要考虑怎么跟你深层次应答,对话管理甚至要考虑上下文的理解,因为可能多人交互嘛,所以要对话管理(DM)。
4、说了东西以后再转化成自然语言,把我们的想法组织成一个适合说的语音(NLG)。
5、然后再用语音合成,就是TTS,把它用语音播报出来。
详细讲解请见知乎 Live
会话交互的技术趋势:
现在基本上先要语音识别,后要语义理解,然后TTS语音合成。但我们认为这三点,非常想和大家分享。
第一,我们仅仅做语义理解还不够,而要做到语用。什么是语用呢?我们在做自然语言处理的时候,一般会说它分4个层次:
1、在词法这一级,我们考虑一个词的含义。
2、考虑语法和这个词怎么成一个句子。
3、语义,这句话是什么含义。
4、语用,要考虑同一句话在不同的使用场景下,表达出来的含义是不一样的。
详细讲解请见知乎 Live
远场语音识别
这种IOT设备,离它有点距离的,所以这时候就是远场,远场语音识别比我们跟手机这种近场,我个人认为不止难一个数量级,主要在信号这一层,因为就像我在这里说话跟那边收到的,房间里有各种各样的声音折射和混响,特别是玻璃房里面,混响非常严重,大家可能在有些会议室开会有这种感觉,听见有翁翁翁的感觉,所以语音识别如果在这种情况下要识别准确非常难。
远场还有个很难的地方是,因为有个距离,远场声音的衰减是成平方的,所以我的声音到你那的时候已经变得很小了,这时候再加上各种各样的混响、环境噪音,声音质量是非常差的,这种情况下你还要听清楚这句话,非常困难。
所以,我们在做会话式交互的时候,能近讲尽量用近讲,不要用远讲,因为远讲对语音识别的干扰是非常大的。详细讲解请见知乎 Live
语用计算概述
什么叫语用?在研究这句话含义的时候,它有两个含义:字面表面含义,结合语境一句话的意思会不同,说句话到底是什么含义?而不是看那几个字是什么意思,因为它更多考虑的是说这句话时候真实的意图,而不是表面意图。
所以,在语言学里面更强调怎么通过语境来理解或者使用。除了在理解的时候要结合语境信息之外,我们在应答的时候也同样要结合这些语境信息。详细讲解请见知乎 Live
语用计算应用: 基于Seq2Seq的ChatBot
深度学习大家可能都听过一点,一句话进来另外一句话出去。这就跟我们做机器翻译一样,一句中文进来一句英文出去,中间并没有真正理解你这句话,只是有很多中英文的语料,大家去训练这个模型,你说中文然后我说句英文,对话聊天也可以按类似的思路,它的框架实际跟翻译是一个框架,用一串莫名其妙的数字来表示。然后又吐出一句话,就跟机器翻译一样。
但训练的时候,需要很多聊天训练这个模型。这是现在学术界的一个方向,可以结合上下文。这个一致性也需要跟大家讨论一下。现在碰到最多的问题就是这个问题,以同样一句话去问它,它的答案会不一样。就像问小冰多大了,它说我是90后,再问它你是90后吗?它说不是,或者问它贵庚?它可能说70,再问它年芳几许?它可能说18岁。这是什么原因呢?目前聊天机器人的语料是从很多地方汇集在一起的,有人回答说你贵庚了?老人回答说今年88。它也不知道这几个问题是同一个意思,这会导致你跟一个机器人聊天,感觉它跟人格分裂一样,虽然说每句话都会回答,但它不是一个人的知识库,这种情况下是肯定通不过图灵测试的,如果一个人回答的信息一定是一致的。
在一致性方面,是在聊天方面最困难的问题了,现在有些方法,但也解决不太好。这个例子也是类似的,问住在哪里?说住在昌平,再问它是不是住在北京?它不知道是不是了,肯定要包含一定的知识,才能得到一致性的回答。详细讲解请见知乎 Live
会话式交互的产业化实践
这里面我可以给大家分享一下,可能不仅仅是从产品角度,假设你去做个公司,或者想把会话式交互产品落地,从技术转变成产品、商业模式,大概是怎样的思路。
在技术上刚才看到了会话式交互非常复杂,从语音到语言到知识,涉及的非常全面,所以这时就要做一个技术闭环,在技术这块一定要有用户、数据,通过这些用户的数据再去优化你的引擎。如果你的系统没有用户数据的反馈,光靠自己在底下吭哧吭哧优化,这个效果肯定不会太好。做搜索引擎的可能都知道,搜索引擎为啥越来越好?最重要的是用户可以做点击,如果你发现用户一般都是点第三个结果,那就可以把第三个结果提到第一个,因为用户的反馈告诉你了第三个结果最好,第一个结果不是最好,这样就可以更好的提升你的系统,这就是我们说的一定要形成个技术闭环。