编者按:邓力博士原为加拿大滑铁卢大学教授,1999 年加入微软,2016 年起担任微软首席人工智能科学家,负责微软深度学习技术中心应用趋向的深度学习研究。
在上周的 AI Frontiers 会议上,邓力博士为参会嘉宾做了口语对话系统的专题演讲。雷锋网(公众号:雷锋网)与会记者将现场演讲记录下来,结合 PPT 为大家整理出这份演讲实录。此次邓老师介绍了口语对话系统的分类,三代演变史,以及三大研究前沿领域,可谓干货满满。NLP 领域的童鞋们不可错过。
邓力:
今天,我想讲一讲口语对话系统(Spoken Dialogue System)。 “Spoken Dialogue System” 成为一个术语已经有 30 年了,现在我们也称其为对话式交互界面(conversational UI),或者称为“bots”。所以它有好几个术语,但基本指的是同一件事。开发这类系统,需要能够与人对话,要么通过语音,要么通过文字。这次我专门讲语音,以及这两类 bots 之间的根本性区别。
语音识别 vs 基于文字
语音识别技术在最近五年中飞速进步,这两类对话系统之间的差距在缩小,这是一个很重要的信号。但在另一方面,许多情况下我们仍然有许多语音识别错误。在某种程度上,我们可以把对话系统看作:
对话系统=语音识别+基于文字(text-based,或翻译为“语义理解”)的系统
语音识别向基于文字的对话系统,提供了一些低延迟的文字输入。因此你可以把它们放在一起(认为它们对等),这是较传统的观点。
如今,你可以超出传统观点,来思考怎么做出整合的系统设计。相比把这两类系统一起放进管道(pipeline),你可以事实上做得更好。这就是整合学习(integrated learning)的概念。我会聚焦在这个方向。
语音提供了语言之外的信息(Para-linguistic cues),比如语气、情绪。这在基于文字的对话系统里是没有的——后者没有提供这些信息,或者说线索。从这个方面来说,两个系统不是对等的。取决不同的用户,语音输入可能会比文字输入更简单——但也可能更复杂。对我个人而言,由于对语音比较了解,我倾向于使用语音来表述复杂事实,它的错误率未必会那么高。语音使得我能更快地提供更多信息。但对于大多数人而言,当使用基于文字的对话,他们倾向于使用复杂句式。原因要么是这样做更快,要么更可能的是,他们会担心对方的语音识别能力,然后不想重复、或者说太多,尤其在噪声大的环境下。取决于用户的个人特质,这两种情况都可能发生。我认为,随着时间流逝,语音识别系统越来越成熟,语音和文字对话在这方面的差距会越来越小。
另一个很重要的方面是窄领域 vs 宽领域(narrow domain vs wide domain)。基于语音的对话倾向于聚焦在窄领域。但现在正变得不一样,因为语音识别技术的进步。
几个月前,Venturebeat 发表了一篇很不错的文章“Introducing the Bots Landscape”,对口语对话系统作了概括(再次提醒,有些人称其为 Bots,有时称之为对话式交互界面),以及它们的业界现状。
Bots 领域的景观一览
上栏:有吸引力的 Bots;左栏(由上至下):连接器/分享服务,发现 Bot ,分析;右栏(由上至下):AI 工具:NLP、ML、语音识别;Bot 开发者框架和工具,短讯
对话系统可被看作是一个连接器,来把你的技术与第三方相连。然后你有一系列开发框架和工具来实现这点。微软在这方面有大动作:11 个月前,微软 Build 开发者大会上有一个重大的宣布,即 Microsoft Bot Framework(微软 Bot 框架),它让大家、第三方都能使用。
Bots 的分类
由于时间限制,今天我只会聚焦于 AI 工具,在自然语言处理(NLP)、语音识别这方面。从这个角度,我会回顾自 1990 年代初以来,相关技术经历的三代发展。
几个月前,我写了这篇文章“How deep reinforcement learning can help chatbots”,讨论 bots的价值。今天的话题以该文章为基础。文章中,我首先谈到了app 和网络模型(web models)遇到的问题;其次,对话作为一个新生的、正不断壮大的移动交互界面(mobile UI),以及在这之中,bots 扮演的人机之间智能代理的角色。我会对技术细节作更深入的讨论。
我把 bots 归纳为三个类别:
-
社交机器人(social chatbot)。这方面,微软在中国开发的“小冰”相当成功,是个很好的例子。在美国,几个月前我们发布了聊天机器人 Tay(雷锋网注,这就是学会了骂人、在推特上发布不到一天就被紧急撤下的那个,入选年度十大 AI 事件)。
-
信息机器人 (infobot)。它们其实是搜索引擎部分功能的替代——它们允许用户不再需要点击网页链接,而能够直接获得想要搜索的答案。这减少了一部分麻烦。如果问题比较复杂,你也许只需要两三轮解释来是回答更明确。
-
任务完成机器人(task completion bot),它们能为你做事情。相比只能交谈、对话的社交机器人,它们能处理实际问题,所以一般需要第三方的帮助。
口语对话系统的三代发展
现在,我开始讲过去一些年技术的进步。近几年,我们经历了不少次公众对于 AI 技术的兴奋高潮(hype)。但现实是,相关技术的基础在 1980 年代末、1990 年代初就已经开发出来了。我会对这些技术如何从第一代发展到最新一代作个概括。
第一代:基于符号规则、模板
首先,第一代技术从 1980 年代末开启,在流行度上面,几年前这一波技术就可以说是结束了,虽然你能够发现一些商用系统和 bot 初创企业还在使用它们。这代技术依赖于专家人工制定的语法规则和本体设计(ontological design)。这些规则很容易解释、理解,比较透明,这就是这代技术为什么能催生出一系列的成功商业应用的原因。修补漏洞很容易,系统更新也很容易。
它的局限性:
-
依赖于专家。如果没有懂得编写这类应用的专家,开发会极其困难。
-
跨领域的扩展性不足
-
数据用来设计规则,而不是学习
早期有相当多的高校、政府机关、商业公司研发这类系统。它们可分为语音识别和语言理解系统。它们全都由符号规则组成,需要付出极大的努力来开发。
由于这些局限,第一代技术只能应用于极狭窄的领域,而这也许是一件好事。有一个非常好的、关于这类技术的论文,它的研究对象是伯克利的餐厅。雷锋网获知,普通餐厅反而是不行的,因为需要写的规则太多。
第二代:数据驱动、浅层学习
第二代技术是数据驱动型的。
从业者不愿意把这代技术称之为浅层学习(shallow learning),但事实如此,它们是传统的浅层学习方法。对了,用于对话规则(dialogue policy)的强化学习就是这时候研究出来的(1990 年代)。今天我们看到的强化学习高潮,在那时就打下了基础。如今深度学习的进步进一步起到了帮助。
这种基于浅层学习的数据驱动方式,不容易理解和修补漏洞,但确实有学习能力。
这篇论文(“POMDP-based statistical spoken dialogue systems:a review”)对第二代技术做了整体归纳,它发表的时间是 4 年前(2013),恰恰在深度学习登场之前。这篇论文是剑桥大学的成果,他们做了很多努力来把该系统商业化。
第三代:数据驱动的深度学习
第三代技术用深度学习取代了浅层学习的部分。和第二代技术一样,数据被用来学习对话系统中的所有东西。第三代的神经模型和表示远远比前两代要强大,端到端的学习也变得可行。从两年前开始,它吸引了全世界范围内巨大的研究兴趣。但它也有许多局限性:
-
解释、修补漏洞、更新系统仍然不容易。
-
在神经网络学习和符号自然语言之间缺乏交互界面
-
跨领域的扩展,但相当多的研究在想办法利用深度迁移学习和强化学习来实现
-
尚无明确的商业成功案例。
这三代技术有各自的强项,如何把这些优点整合起来,是一项主要的挑战。很多研究聚焦于此。
强化学习
如何用强化学习来明确地表达这类系统?
如果你仔细考虑“什么是 state (状态)?什么是action(行动)?什么是reward(奖励)?”你就可以把上文提到这三种类型的 Bots (社交机器人、信息机器人、任务完成机器人)用强化学习表示出来。
研究前沿
这里我列出了三项前沿研究领域:
-
基于语音 vs 基于文字
-
针对对话的深度强化学习
-
符号-神经之间的整合
语音识别的未来
语音识别已经取得巨大进展。这里我的观点是,语音问题不仅仅是一个信号识别问题,而是信息处理问题。
本文作者:三川 | 2017-01-19 20:46 |