2018 年 12 月

33 卷,第 12

认知服务-从会话中使用 luis 的帮助的过程挖掘获得见解

通过Zvi Topol

语言理解智能服务 (LUIS) 是 Microsoft 认知服务 API,提供了自然语言解读为面向开发人员服务。作为该服务的一部分,给定用户输入,名为查询文本时 LUIS 返回背后语音样本,也就是说,哪些用户想要询问有关检测到的目的。在前一篇文章中 (msdn.com/magazine/mt847187),我讨论了如何通过利用 word 级别深入了解如何分类意向的开放源代码工具改进 LUIS 意向检测。

在本文中,我要采用或层次结构中的两个步骤并将从单词移到整个会话。具体而言,我将重点介绍如何从依据我的意思是数据组成的序列的语音样本,共同构成一个会话的对话式数据获得见解。

为此,我将介绍过程挖掘,分析从事 insights 派生的事件序列的字段。然后,我将展示如何将会话数据,这是非常非结构化,转换为结构化数据集通过将 LUIS 应用于每个会话中的语音样本。最后,我将使用在转换后的结构化数据集上的进程挖掘若要获得关于原始会话的见解。

我们现在开始吧。

进程挖掘

进程挖掘是数据分析的主要重点是进程 (序列的事件,或者与特定结果状态) 的发现和从事件日志数据深入了解此类进程传递一个字段。事件日志数据是指定为每个事件发生时所在,以及其他可能字段或属性描述的事件的时间戳的数据集。(稍后详细。)

已向其应用过程挖掘工具的域包括金融服务、 卫生保健和制造公司。示例包括抵押应用程序的进程分析,以找出瓶颈和客户应用程序,监视通过不同部门/病房,从通过患者入院释放,患者状态中的延迟和对生产进行了部分生产过程改进机器行。

缩放 power 处理挖掘,从而使它们都能够处理的事件的大型数据集的算法已在学术界和行业中的焦点的关键区域。牵制过程挖掘的大规模的采用的另一个难题是,在许多组织而言,不是当前收集和数据格式,它可以正常使用过程挖掘软件的方式。我希望出现此更改,因为更多的组织将数字转换和数据驱动决策制定的值的注意。

进程挖掘多年来一直活动研究区域,并因此,从启用的进程发现和见解的派生的许多算法的开发中受益。在此上下文中,值得一提的是下将 van der Aalst (bit.ly/2QNBvEW),当前在亚琛大学谁被视为一个 founding 于传统的此字段。下 van der Aalst 也是"过程挖掘:在操作中的数据科学"(Springer 2016),一个重要课本中的字段和良好的开始点如果想要深入了解有关过程挖掘算法。

就成熟商业流程挖掘软件产品转,有很多有用的产品/服务,包括 Celonis 公司 (celonis.com),Fluxicon (fluxicon.com) 和 Minit (minit.io)。此外,还有几个开放源代码产品,在特定擦写存储器 (promtools.org/doku.php),它提供了数据挖掘等集成工具 RapidMiner (rapidprom.org)。

除了独立进程挖掘产品,还可以找到包和库可为常用的数据分析语言,例如 R 和 Python 提供对进程挖掘功能的编程接口。一些示例包括 edaR — 在 R 中的探索且具有说明性的基于事件的数据分析 (bit.ly/2OSGozv) 和 PMLab,这是以编程方式包含的构建基块的 Python 编写的交互式环境应用过程挖掘技术 (github.com/pmlab/pmlab-full)。

在本文中,我将使用 Disco 作为主要过程挖掘工具。您可以下载从试用版fluxicon.com/disco。Disco 具有直观的 UI、 易于使用,且是一组全面的功能。它也是过程挖掘中各种在线的介绍性课程中的常用工具。

我将演示如何从使用 Disco 的对话式数据中获得见解,我完全不会介绍所有功能。为此,你将想要看一看可以从下载的更全面手册bit.ly/2CHtfnc

现在,我已经介绍了过程挖掘,我想要深入研究一些简要前面提到,事件日志数据。但究竟什么是事件日志数据或者,更有效地在这种情况下,到哪些类型的事件日志数据集可过程挖掘应用?

进程挖掘至少需要具有事件日志数据集在数据中所显示的以下三个字段:

  1. 事例 ID,它是通过不同的事件的对象的 ID。
  2. 活动 ID 定义的对象可能发生的事件的类型。
  3. 时间戳,即的日期和时间的特定事件的给定对象发生了变化。

当然,可以有其他字段中的数据集,也可以指定更多有关对象的信息。接下来,我将介绍如何表示对话式数据作为事件日志数据。

获取会话数据的准备过程挖掘

作为整体方法的一部分,我来表示作为进程的会话。每个进程用例或实例,因此是特定会话,每个会话中的不同语音样本意向然后会不同的事件或状态的过程。更高版本上,我将介绍如何这可以帮助从会话派生见解。

为了使事情更具体,我将从财务技术空间使用对话式数据的示例。在本文随附下载中找到包含 10 个不同的模拟的会话的用户,并提供有关房屋贷款协助聊天机器人的 CSV 文件。请记住此对话式数据限制,并包含仅我将向其应用过程挖掘所需的字段。此外,为简单起见,我已选择要包括仅用户语音样本,不系统响应。如果您希望,您可以决定包含系统响应或您认为相关,例如属于聊天会话,用户数据等信息的任何其他数据。

包含在 CSV 数据集中的字段是:

  1. 转换 Id,以唯一方式标识会话并将此处映射到用例 id。
  2. 查询文本,这是用户的语句,实质上是 LUIS 应用于识别意向的非结构化的文本数据。
  3. 时间戳,这是一对给定的会话 ID/语音样本的时间戳。我将使用此字段稍后我时间戳作为过程挖掘。
  4. 意向,这是由 LUIS 意向。此字段将映射为进程挖掘活动 ID。

请注意,虽然可以使用 LUIS 来识别意向和实体 (对查询文本中显示的实际对象的引用),我选择,为简单起见,可以专注于仅意向。数据中包括以下目的:

  • GreetingIntent: 问候语或会话打开程序。
  • ExplorationIntent: 常规探索查询文本所做的用户。
  • OperatorRequestIntent: 请求由用户与人工操作员。
  • SpecificQuestionIntent: 有关抵押费率用户一个问题。
  • ContactInfoIntent: 联系用户提供的信息。
  • PositiveFeedbackIntent: 用户提供积极的反馈。
  • 用户提供 NegativeFeedbackIntent: 负面反馈。
  • EndConversationIntent: 结束的会话与智能机器人由用户启动。

然后,我确定每个查询文本中所示的会话中某些意向图 1 (按顺序):ExplorationIntent、 SpecificQuestionIntent、 PositiveFeedbackIntent、 ContactInfoIntent 和 EndConversationIntent。这种方式,原始的对话式数据转换为序列的意图。此转换的结果将用作 Disco 的输入。

图 1 会话 ConversationId 3

ConversionId TimeStamp 查询文本
3 2018-04-02 14:03:02 您可以请为我的抵押费率引号
3 2018-04-02 14:03:05 我想仅为 refinance 15 年一次
3 2018-04-02 14:03:08 很好,我可能会感兴趣继续
3 2018-04-02 14:04:12 我的电子邮件是 x@x.com
3 2018-04-02 14:04:15 谢谢您,我将在等待听到返回

将进程挖掘应用于使用 Disco 的对话式数据

若要应用 Disco,您将需要导入的对话式数据的 CSV 文件并将前面所述的三个所需的字段映射 — 转换 Id、 时间戳和查询文本。如下所示图 2

对话式数据导入到 Disco
图 2 对话式数据导入到 Disco

导入 CSV 后, Disco 将授予你访问我将详细介绍一次一个的三个视图:映射、 统计信息和用例。第一个视图,映射中,是过程发现的 Disco 从对话式数据的映射。映射是之间的事件,以及频率和不同的事件的重复的过程中的不同转换的图形表示形式。在这种情况下,这些都是意向之间的不同转换。图 3显示发现的 Disco 作为会话的映射。

在 Disco 地图视图
图 3 在 Disco 地图视图

图 3,可以获取会话的常规概述,并请参阅会话可以用三种不同方法之一启动 — 一条问候信息、 操作员请求或特定于抵押的问题,与抵押特定正在非常频繁的问题。大多数会话结尾 EndConversationIntent,但使用其他表示 greetings 和负面反馈的意图的几个结束。特别是对于负面反馈,这些可以指向需要额外关注的离群值对话。

此外,相应的意图各之间的转换还可以提供用于派生意向的非常有用的信息。例如,它可能以确定是否有特定的语音样本或导致表示负面反馈的意图的意向。然后,它可能需要从该路径的驱动器对话。

前面曾提到,轻松地提供了有关重复的意图和转换的信息作为映射视图的一部分。具体而言,您可以看到,在这种情况下有两个最常见的意向是 SpecificQuestionIntent 和 EndConversationIntent,和转换从前者为后者已经是家常便饭。这提供了一目了然的对话内容相关的总结。

它还可以显示通过考虑分解成可捕获的用户交互的更多见解深刻方面的更细粒度意向 SpecificQuestionIntent 和 EndConversationIntent 改善对话的机会。这应跟重新定型 LUIS 和重复的过程与修改的对话式数据挖掘应用程序。

现在让我们看看统计信息视图中,所示图 4。在此您可以获取有关会话的持续时间的见解。请注意这些会话现在已分为 Disco 所调用的"变量"是实质上是类似的会话流,将相同的 intents 和 intents 之间的转换。统计信息视图的概述部分,可获取摘要统计信息,例如中值和平均值,以及端到端的不同会话的持续时间有关的信息。这可确定离群值,如极短的对话,并交叉检查映射中的会话查看有关可能有问题的会话。还有可能以标识与更长持续时间的对话。我在这里使用的示例中,它们可能是成功的会话。

概述和 Disco 中的摘要统计信息
图 4 概述和 Disco 中的摘要统计信息

为了更深入的表现出感兴趣的行为,例如会话、 非常 long 或 short 会话或与某些意向结构的对话,可以使用 Disco 的强大的筛选功能。在任何给定时间,可使用 Disco 按照各个方面进行筛选的整个数据集。例如,可以确定会话 Id 进行特别感兴趣的、 应用相应的筛选器,然后查看筛选模式中的不同视图。这可以用来识别模式共有的已筛选的对话。

Disco,您还可以查看在意向级别对话 (通过使用统计信息视图中的活动部分),指定与意图相关的其他汇总统计信息。这中所示图 5。此处您的对话中获得的相应的意图各分布并可以看到,幸运的是,负面反馈意向包含在您的对话中意向只有大约 3%。

有关在 Disco 意向摘要统计信息
图 5 有关在 Disco 意向的摘要统计信息

要介绍的最后的分析视图是用例视图,它显示了基于其变体类型的不同对话。例如,在图 6可以看到特定会话,与会话 ID 9 所属的变体的两个目的:SpecificQuestionIntent 和 EndConversationIntent。此视图是用于比较具有类似结构的对话非常有用。它可以帮助你了解,例如,如果有任何可以采用的模式可帮助我们使对话更大的成功,或如果碰巧发现意外存在差异,它可以帮助你发现什么导致了这些。

Disco 中的情况下视图
图 6 在 Disco 中的情况下查看

总而言之之前, 我想要请注意,见解和功能的 Disco 我回顾到目前为止不全面,但而是演示应用于建模为进程的会话的进程挖掘技术的优势。

前面曾提到,您可以浏览活动表示形式中使用的附加字段。您可能想要包括,例如,用户语音样本; 中的特定实体有关的信息你的交谈界面; 的响应或您的用户,如位置、 与系统中,依次类推以前交互有关的数据。此类丰富的表示形式可增强从对话式数据的深度和构建更好地对话式系统。我强烈建议您浏览的详细信息。

总结

我已引入过程挖掘,显示如何利用这项技术结合 LUIS 从对话式数据中获得见解。具体而言,LUIS 应用于要转换为结构化的意向标签的非结构化查询文本文本的对话中的不同语音样本。然后,通过会话 ID、 时间戳和意图到过程挖掘字段,并通过使用 Disco 的映射,我演示了如何将进程挖掘应用于结构化的对话式数据。使用不同的视图显示了总体会话结构到分组到不同的变体,会话的进程发现通过提供的 Disco,就可以从已转换的对话式数据,如使获得见解成功的会话,以及如何利用该知识来改进都不到成功的会话。

请记住,这篇文章只是讲述了什么是可以将进程挖掘应用于会话的数据。我希望,使用的资源显示在此文章中,以及其他可能会发现此过程中,以便可以利用进程挖掘创建更好,多个极具吸引力的交谈界面。


Zvi Topol一直在各种行业垂直领域,包括市场营销分析、 媒体和娱乐和工业物联网数据科学家就。他已传递,并会导致多个机器学习和分析项目包括自然语言和语音接口、 认知搜索、 视频分析、 推荐器系统和市场营销决策支持系统。Topol 目前 MuyVentive,高级的分析 R 和 D 公司使用,并且可以到达zvi.topol@muyventive.com

衷心感谢以下 Microsoft 技术专家对本文的审阅:Sandeep Alur


在 MSDN 杂志论坛讨论这篇文章