你知道开发者是怎么训练聊天机器人的吗?用20万条真实对话

你知道开发者是怎么训练聊天机器人的吗?用20万条真实对话

【新智元导读】如何利用20万条客户咨询消息,打造一款功能定制化的自动聊天应答机器人?如何将大量消息转化为常见问题,整合进机器人的设计工作流程中?本文除了回答这些问题之外,还从需求、设计思路、面向人群、 实现方式等方面作了一番梳理。

我们在六个月内收集了一家大型房地产公司从访问该网站的数据中收集的20万条消息,并进行了深入分析,设计了一个满足特定需求的聊天机器人。

首先看需要确定哪些因素,包括:

  • 最常见的问题(FAQ)/服务需求
  • 这些问题的主题,以及不同主题之间的分布情况
  • 访问者通过询问这些主题试图实现的目标是什么

我们为什么决定这样做?简而言之就是,我们希望做出数据驱动的决策。

客户来到我们这里,他们的潜在客户或现有客户在访问网站时发送了20万条消息,这些消息是发送给实时聊天服务的。包括由在线代理机器人回复的消息,以及客服离线期间错过的消息。

你知道开发者是怎么训练聊天机器人的吗?用20万条真实对话

我们运行了一种数据算法,将这些消息分类为类似信息的集群。在这一点上,我们无法自信地考虑他们的意图。我们花了很多精力将它们设计成我们设计聊天机器人的意图。

这20万条消息可以归结为90个FAQ,我们通过人工分类划分为3类,分别是:

1、可以自动回答的问题2、在回答之前需要一系列问题来获取上下文信息3、需要机器人客服将访问者转接到人工客服,以获得准确的答案

你知道开发者是怎么训练聊天机器人的吗?用20万条真实对话

算法解决什么问题?

以前,在决定将哪些会话流转接给聊天机器人时,很多靠的是猜测。因为并没有能够获得数据,让我们确定哪些对话对用户而言是最有用的,因为我们不知道用户想知道什么。

如何实现?

实际上,实现这个目标是一个“意图聚类”的过程。这有助于分析两人之间的聊天记录。我们将这些信息输入算法,确定具有相似含义的语句簇,这一过程就是所谓的“语义聚类”。语义聚类让我们可以考虑优先使用哪些短语来训练聊天机器人,来理解并进行对话(NLP训练),哪些问题应该通过在问答服务中进行训练,以命令和响应的方式提供静态的答案,在这种情况下,可以使用微软的问答机器人。

潜在用户有哪些?

UX /会话设计师。这种分析可以实现以用户为中心的设计,因为可以得知需要构建哪些用户路径。我们的目标是提供问题的在当前文本情景下的答案,这类问题是聊天机器人无法正确处理的。

机器人训练师。他们现在知道哪些意图是最重要的。训练师可以优先训练机器人,以了解它们最常被问及的主题的不同短语。

客户。我们提供关于对话的概述摘要,内容包含主要数据点、对话中提及的主题类型和频率,消息数量等。

这个过程具体分哪几步?下面用“门外汉”式的方式解释一下。

1、从客户或第三方聊天机器人供应商出获得会话脚本。

2、运行算法,通过机器学习模型进行对话,并处理每个对话中的句子,按语义对句子进行分类。

3、然后运行另一种算法,将这些按预测具有相似“意图”的句子分成组。注意,这时的同一聚类中可能包含彼此不完全相关的句子。这些句子中只是包含类似的信息。

4、接着人工浏览这些句子,并对句子集群进行分析,向聚类内容分配标签,得到一个单独的“意图”列表。

集群与意图:这里需要对这两个概念作一个区分。集群是一组具有相似语义的句子。比如可以确定10个句子,内容似乎都是关于购买房产的。但是因为这是一种无监督的机器学习算法,没有人类背景,确定某个集群是否可以转化为“意图”必须要人类进行验证。

5、设计师利用这些“意图”和常见问题设计工作流程,以便能够顺利回答人类提出的问题,或满足人们的请求。

我们对客户提出问题和要求进行了调查,内容包括:

客户询问的主要主题和每个主题中的消息数量

在每个主题中子话题的类型

前10个主题中的消息频率和分布情况

关于客服人员在线或不在线时的对话主题的比较

结果发现,在最热门10个消息主题中,有一半与房价、设施和地理位置有关。

这三个主题占到用户查询在线客服机器人消息总量的一半。

最冷门的话题是关于停车位的,只占查询信息总量的3%。

你知道开发者是怎么训练聊天机器人的吗?用20万条真实对话

算法的工作原理

算法从对话中获取句子并进行向量化。在更高一级,向量化的句子对词语之间的关系进行分配,比如算法会确定,素食者吃蔬菜。

然后再使用另一种基于向量的算法,将句子分组为具有相似语义的群集。

面临的挑战

要准确地将意图分配给对应的信息集群需要人工操作。当集群数量很多时,对团队而言就是个很繁琐的任务。而且,将90个常见问题整理成能够反映用户意图的工作流程,需要多元化背景团队的密切合作。

相关推荐