现实与幻想:用于Bot的深度学习技术及其面临的难题

引言:本文作者是「谷歌大脑」计划研究者 Denny Britz,这是他「用于聊天机器人的深度学习」系列文章中的第一篇。本文概括介绍了一些用于聊天机器人的建模方法和聊天机器人开发所面临的一些问题和局限,作者在文章最后推荐相关阅读论文,供有兴趣的朋友参考。


聊天机器人(chatbot),也被称为会话代理或对话系统,现已成为了一个热门话题。微软在聊天机器人上押上了重注,Facebook(M)、苹果(Siri)、谷歌、微信和 Slack 等公司也是如此。通过开发 Operator 或 x.ai 这样的消费者应用、 Chatfuel 这样的 bot 平台和 Howdy's Botkit 这样的 bot 库,新一波创业者们正在尝试改变消费者与服务的交互方式。微软最近发布了他们自己的 bot 开发者框架。


许多公司希望开发出能进行无法与人类相区分的自然会话的 bot,并且许多公司声称要使用自然语言处理(NLP)和深度学习技术来使其成为可能。但是,在众多关于人工智能的大肆宣传中,有时很难将现实和幻想区分开。


在这个系列文章中,我想回顾一些被用来设计对话代理的深度学习技术,我会从解释我们现在所处的发展现状、什么是可能的和什么在短时间内几乎是不可能的开始。这篇文章作为导言,我们会在接下来的文章中谈论实现细节。


模型分类


基于检索式模型 vs 生成式模型


基于检索式模型(更简单)使用了预定义回复库和某种启发式方法来根据输入和语境做出合适的回复。这种启发式方法可以像基于规则的表达式匹配一样简单,也可以像机器学习分类器集一样复杂。这些系统不会产生任何新文本,他们只是从固定的集合中挑选一种回复而已。


生成式模型(更困难)不依赖于预定义回复库。他们从零开始生成新回复。生成式模型通常基于机器翻译技术,但区别于语言翻译,我们把一个输入「翻译」成一个输出「回复」。


image.png

两种方式都有明显的优势和劣势。由于采用人工制作的回复库,基于检索式方法不会犯语法错误。然而它们可能无法处理没见过的情况,因为它们没有合适的预定义回复。同样,这些模型不能重新提到上下文中的实体信息,如先前对话中提到过的名字。生成式模型更「聪明」。它们可以重新提及输入中的实体并带给你一种正和人类对话的感觉。然而,这些模型很难训练,很可能会犯语法错误(特别是长句),而且通常要求大量的训练数据。


基于检索式模型或生成式模型都可以应用深度学习技术,但是相关研究似乎正转向生成式方向。像序列到序列(Sequence to Sequence)这样的深度学习架构是唯一可以适用于产生文本的,并且研究者希望在这个领域取得快速进步。然而,我们仍处于构建工作良好的生成式模型的早期阶段。现在的生产系统更可能是基于检索式的。


长对话 vs 短对话


对话越长,就越难使它自动化。一方面,短文本对话(更简单)的目标是单独回复一个简单的输入。例如,你可能收到一个用户的特定问题并回复合适的答案。而长对话(更困难)要求你经历多个转折并需要记录说过什么话。客户支持类对话通常是包含多个问题的长对话流。


开域(open domain) vs 闭域(closeddomain)


在开域(更困难)环境中,用户可以进行任何对话。不需要明确定义的目标或意图。像Twitter 和 Reddit 这种社交媒体网站上的对话通常是开域的——它们可以是任何主题。话题的无限数量和用于产生合理回复的一定量的知识使开域成为了一个艰难的问题。


在闭域(更简单)设定中,因为系统试图达成一个非常明确的目标,可能输入和输出的空间会有所限制。例如客户技术支持或购物助手就属于闭域的范畴。这些系统不需要能谈论政治,它们只需要尽可能高效地完成它们特定的任务。当然,用户仍然可以进行任何他们想要的对话,但是这样的系统不需要能处理所有情况,并且用户也不期望它能处理。


普遍难题


在构建大部分属于活跃研究领域的会话代理方面存在着许多明显和不明显的难题。


1. 整合语境


为了生成明智的回复,系统可能需要整合语言语境(linguistic context)和物理语境(physical context)。在长对话中,人们记录已经被说过的话和已经交换过的信息。这是结合语言语境的例子。最普遍的方法是将对话嵌入一个向量中,但在长对话上进行这样的操作是很有挑战性的。「使用生成式分层神经网络模型构建端到端对话系统」和「神经网络对话模型的注意与意图」两个实验中都选择了这个研究方向。此外还可能需要整合其它类型的语境数据,例如日期/时间、位置或用户信息。


2. 一致人格


当生成回复时,对于语义相同的输入,代理应该生成相同的回答。例如,你想在「你多大了?」和「你的年龄是多少?」上得到同样的回答。这听起来很简单,但是将固定的知识或者「人格」整合进模型是非常困难的研究难题。许多系统学习如何生成语义合理的回复,但是它们没有被训练如何生成语义上一致的回复。这一般是因为它们是基于多个不同用户的数据训练的。「基于个人的神经对话模型」这样的模型是明确的对人格建模的方向上的第一步。


image-1.png

3. 模型评估


评估一个对话代理的理想方式是衡量它是否完成了它的任务,例如,在给定对话中解决客户支持问题。但是获取这样的标签成本高昂,因为它们要求人类的判断和评估。某些时候并不存在明确定义的目标,比如开域模型中的情况。通常像 BLEU 这样被用于机器翻译且是基于文本匹配的标准并不能胜任,因为智能的回复可以包括完全不同的单词或短语。实际上,在 How NOT To Evaluate Your Dialogue System: An Empirical Study of UnsupervisedEvaluation Metrics for Dialogue Response Generation 中,研究者发现没有一个通用的度量能真正与人类判断一一对应。


4. 意图和多样性


生成式系统的普遍问题是它们往往能生成像「太好了!」或「我不知道」这样的能适用于许多输入情况的普遍回复。谷歌的智能回复(Smart Reply )早期版本常常用「我爱你」回复一切。一定程度上这是系统根据数据和实际训练目标/算法训练的结果。然而,人类通常使用针对输入的回复并带有意图。因为生成系统(特别是开域系统)是不被训练成有特定意图的,所以它们缺乏这种多样性。


实际工作情况


纵观现在所有最前沿的研究,我们发展到哪里了?这些系统的实际工作情况如何?让我们再看看我们的分类法。一个基于检索式开域系统显然是不可能实现的,因为你不能人工制作出足够的回复来覆盖所有情况。生成式开域系统几乎是人工通用智能(AGI: Artificial General Intelligence),因为它需要处理所有可能的场景。我们离 AGI 还非常遥远(但是这个领域有许多研究正在进行)。


这就让我们的问题进入了生成式和基于检索式方法都适用的受限的领域。对话越长,语境就越重要,问题就变得越困难。


在最近的采访中,现任百度首席科学家吴恩达说得很好:


当今深度学习的价值在你可以获得许多数据的狭窄领域内。有一件事它做不到:进行有意义的对话。存在一些演示,并且如果你仔细挑选这些对话,看起来就像它正在进行有意义的对话,但是如果你亲自尝试,它就会快速偏离轨道。



许多公司从外包他们的对话业务给人类工作者开始,并承诺一旦他们收集到了足够的数据,他们就会使其「自动化」。只有当他们在一个相当狭窄的领域中这样操作时,这才有可能发生——比如呼叫 Uber 的聊天界面。任何稍微多点开域的事(像销售邮件)就超出了我们现在的能力范围。然而,我们也可以利用这些系统建议和改正回复来辅助人类工作者。这就更符合实际了。


生产系统的语法错误成本很高并会赶走用户。所以,大多数系统可能最好还是使用不会有语法错误和不礼貌回答的基于检索式方法。如果公司能想办法得到大量的数据,那么生成式模型就将是可行的——但是,必须需要其它技术的辅助来防止它们像微软的 Tay 一样脱轨。


总结和推荐阅读


背靠科技巨头的资源或创业公司的热情的聊天机器人们正在努力挤进我们生活的方方面面。在一般的话题上,它们还远不能实现如人类水平的沟通和语境理解能力;但在购物助手等狭窄领域的的应用中,训练有素的聊天机器人完全可以取代人类来协助和提升消费者的购物体验。如果你对相关研究感兴趣,那么,下列论文可以让你开个好头:


  • Neural Responding Machine for Short-Text Conversation (2015-03)

  • A Neural Conversational Model (2015-06)

  • A Neural Network Approach to Context-Sensitive Generation of Conversational Responses (2015-06)

  • The Ubuntu Dialogue Corpus: A Large Dataset for Research in Unstructured Multi-Turn Dialogue Systems (2015-06)

  • Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models (2015-07)

  • A Diversity-Promoting Objective Function for Neural Conversation Models (2015-10)

  • Attention with Intention for a Neural Network Conversation Model (2015-10)

  • Improved Deep Learning Baselines for Ubuntu Corpus Dialogs (2015-10)

  • A Survey of Available Corpora for Building Data-Driven Dialogue Systems (2015-12)

  • Incorporating Copying Mechanism in Sequence-to-Sequence Learning (2016-03)

  • A Persona-Based Neural Conversation Model (2016-03)

  • How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised     Evaluation Metrics for Dialogue Response Generation (2016-03)

产业Bot深度学习
返回顶部