MindMeld 公司发布会话式应用程序开发指南

  • Abel Avram
  • Alina

2017 年 2 月 12 日

话题:微软GoogleApple大数据架构AI

会话式人工智能公司MindMeld发布了《会话式人工智能手册》,该手册概述了开发会话式应用程序所面临的挑战和步骤。

最近,一些核心企业开发了用于编写会话式应用程序的初始解决方案。研究人员、科幻小说和电影很久以前就预言,人们有一天终将能够像与另一个人类交谈一样地与机器交谈。Amazon Alexa、Apple Siri、Google Assistant、Microsoft Cortana 以及其他解决方案都在努力实现这个目标,设计构建出应用程序和框架,使开发人员能够编写出能理解人类言语并回答基本问题的应用程序。

MindMeld 公司提供了一个平台,开发人员可以在该平台上创建基于深度领域会话式人工智能的应用。他们写了一本手册,按步骤指导那些有兴趣开发这类应用程序的人。这本指南涵盖了他们在这一领域多年来制定的一些原则和最佳实践经验。

MindMeld 公司概述了一些开发会话式应用程序的可行方法:

规则引擎。使用这种方法,开发人员需要创建大量的规则,以便为每个问题选择适当的答案。它是速度最快但又最有局限性的解决方案:

由于基于规则的框架并不提供人工智能功能来解析或分类输入信息,开发人员必须手动编写所有必要的信息处理和交互逻辑。通常情况下即使是简单的应用程序也需要数百条规则来处理典型会话界面中的不同对话状态。

该指南列出了BotKitMicrosoft Bot Framework等会话式应用程序的规则引擎。

NLP 服务。另一种方法是使用基于云计算的自然语言处理(NLP)服务。 提供自然语言解释服务是开发会话式应用程序必不可少的一个步骤,同时,MindMeld 公司也认为这项服务还有一个额外目的:

这些服务通常由大型消费者互联网公司提供,以吸引开发者上传他们的训练数据,从而帮助服务提供者改进自己的会话式人工智能。

这方面的产品有Amazon LexFacebook wit.aiGoogle api.aiIBM Watson ConversationMicrosoft LUIS以及Samsung Viv

机器学习。依赖于机器学习的工具包代表了更复杂的解决方案。它们提供了用于解释数据的高级深度学习算法。这本指南列出了一些开发会话式应用程序的可行方案,比如Apple GraphLab CreateGoogle TensorFlowMicrosoft Cognitive Toolkit

会话式人工智能平台。这是基于机器学习的平台,但是针对会话式应用程序进行了优化。里面包括了一些用于“意图分类、实体识别、实体解析、问答和对话管理”的工具。

与基于云计算的 NLP 服务不同,会话式人工智能平台不要求将培训数据上传到共享的云基础设施上。相反,它们提供了一个灵活和通用的平台,确保可以在本地管理数据集和训练模型,并始终保持应用程序开发人员的知识产权。

对于这种方法,MindMeld 公司只以他们自己的解决方案为例。当被问及 MindMeld 公司的平台与其它解决方案的不同之处时,他们回答说:

wit.aiapi.ai和 LUIS 这样的工具可以帮助没有数据科学背景的工程师构建简单的 NLP 模型。但是 MindMeld 是更先进的机器学习平台,能够帮助数据科学家创建更高级的会话接口。例如,MindMeld 使我们的客户能够创建自定义知识图谱,从而深入了解他们的产品内容或目录。MindMeld 还可用于构建先进的、经过数千或数百万次训练的 NLP 模型。MindMeld 还提供了一个最先进的问答系统,适用于任何知识领域。目前没有一个基于网络的 NLP 服务(比如 wit.ai、api.ai 或 LUIS)能够提供这样的功能。

这本手册还有一个使用 MindMeld 的平台编写会话式应用程序的 10 步实施指南。其中一些步骤也适用于其他解决方案。下面简要总结一下这 10 个步骤:

  1. 选择正确的用例。并非所有的用例都适合于会话式应用程序。选择用例时要考虑到它是否类似于真实世界的人类交互,是否节省用户的时间并且是否方便用户使用。

  2. 编写理想的对话互动。考虑用户如何使用该应用程序,可能的对话是什么,这些对话需要包含哪些边界情况,例如提问超出了应用程序范围。

  3. 定义域、意图、实体和角色层次结构。确定需要解释的自然语言的基本要素。

  4. 定义对话状态处理程序。确定所要进行的对话步骤,从交互开始到交互结束,并提供必要的细节。

  5. 创建问题解答器知识库。这是理解和解答问题所需的信息库。

  6. 生成代表性训练数据。创建机器学习算法所需的数据集,以更好地了解该领域和可能进行的对话。

  7. 训练自然语言处理分类器。这涉及训练 NLP 引擎以识别域、意图、用户提及的实体以及这些实体所起的作用。

  8. 使用语言解析器。此步骤涉及配置语言解析器以正确地标识实体之间的关系从而创建解析树。

  9. 优化问题解答性能。调试问题解答器以寻求最佳解答。

  10. 将训练模型应用到生产环境。先测试应用程序,然后将其应用到实际生产。

如果您需要有关开发会话式应用程序的 10 个步骤的更多详细信息,我们建议您阅读这本指南

参考英文原文MindMeld’s Guide to Building Conversational Apps


感谢薛命灯对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

微软GoogleApple大数据架构AI