如何让机器客服更像人类客服?

简介: 小叽导读:机器客服如果仅仅只是根据历史记录来回复用户,就会生成相对安全、通用的回复,无法让用户感受到人类客服的语言“温度”,自然也无法让用户真切地感受到服务的力量。为了解决这个问题,阿里工程师提出了异构记忆网络来同步处理用户语句、对话历史以及背景知识库,从而提升机器的对话质量。本文已被自然语言处理领域顶会EMNLP2019收录,2019年EMNLP阿里巴巴共16篇论文被主会收录。

作者 | EMNLP 2019

1.jpg

概要

人类通过语言将大脑里的知识表达出来,通过对话相互传递知识。机器通过学习大量的语料可以一定程度学会流畅的语句表达,但如果没有知识,则生成的只会是漂亮而无内涵的回复。传统的模块化的对话模型可以通过数据库查询等方式将关键信息填入回答的模版中,但是端到端的对话生成模型则要更复杂一些。

为了解决这个问题,记忆网络(Memory Networks)通常是一个不错的技术方法。但是现有的记忆网络结合对话系统只是提供了如何引入知识的一个方法,并不能很好的处理多种来源和结构的知识。

因此在这篇文章中,我们提出了一个异构记忆网络(Heterogeneous Memory Networks, HMNs)来同步处理用户语句,对话历史以及背景知识库。HMNs由上下文无关(context-free memory)记忆网络和我们提出的上下文敏感(context-aware memory)记忆网络组成,分别用于编码、储存结构化的知识元组(knolwdge tuples)和序列化的用户语句、历史对话,并生成两个小词表分布(知识词表和历史对话词表)以及一个大词表(所有训练的词汇分布)供回复语句生成的选词。在三个数据集上的实验结果表明,HMNs超过了现有的SOTA模型,能够较显著的提高端到端任务型对话模型的表现。

问题背景

人类客服在回答客户问题时首先理解用户的语言,然后到相关数据库、知识库中查询所需要的知识,最终整理并回答问题。在这个过程中如果缺乏相对应的知识数据,即使是人类也几乎不可能准确回答用户所需要的问题,因为客户可能需要的关键点就是那条数据库中的知识,而再漂亮的回复偏离了重点也是不合格的。机器也是如此。生成模型如果仅通过历史对话语料学习,最终学习到的可能只是最安全、最通用的回复,但在实际对话中缺乏关键知识,也将导致无法解决具体事务。因此在对话模型中恰当的引入知识显得至关重要。

2.jpg

如图所示一个典型的任务型对话,用户问题What is the address for keen需要根据上文的hotel_keen以及KnowledgeBase中检索到的2_miles、578_arbol_dr等作为关键信息来生成系统回复的语句。在这种情况下,传统的pipeline类型的对话系统通常采用填槽(slot filling)以及检索的方式来查找所需的关键信息,这种方式需要大量的人工标注。深度学习的发展促使我们更进一步探索:许多[7, 8]工作证明了完全数据驱动的任务型对话也是可行具有一定前景的。现有的完全数据驱动(fully data-driven)的任务型对话模型通常基于Sequence to Sequence模型,同时采用注意力(attention)机制来引入外部知识。Madotto在这些基础上进一步提出了Mem2Seq(Memory to Sequence)模型[1],将multihop attention和pointer network的思想引入了对话生成模型。

现有的模型将不同来源、不同结构的信息杂糅、拼接到一起,用同一个网络(RNN或Memory Network)表达。但是人类思考的时候并不是将所有的信息杂糅在一起的,而是有一个思路:例如该对话任务,真人客服首先考虑的是问题,然后结合上下文,依靠这些信息查阅数据库,最后生成最后的回复。在这样的思想指导下,我们考虑不同的知识在对话这个任务中起到的作用是不同的,例如历史对话实际上指导的是上下文信息和回答的模式,而知识/数据库信息则更像插入到回复中的“值”。同样的,历史对话是一种序列化的信息,而知识库往往是一种结构化的数据,所以我们还需要对不同信息采用更适合它们结构的表达模型。因此我们提出了异构记忆网络模型(Heterogeneous Memory Networks, HMNs)结合Encoder-Decoder框架来更好的完成对话任务。本文的主要贡献在于:

  • 我们提出了HMNs模型结合Encoder-Decoder模型第一次探索将对话历史、知识库等用不同的Memory来表示。
  • 我们提出了一种用门机制(gating mechanism)加强的上下文敏感记忆网络(context-aware memory networks)来更好的学习、表达对话历史等上下文依赖信息。
  • 我们在三个流行的公开数据集上进行了测试,实验结果表明对话模型总体水平显著超过现有的SOTA模型,且不同部分的改进都是有效的。

模型

我们的模型主体结构上采用端到端生成模型常用的Encoder-Decoder框架。本章将详细介绍模型结构。

1. 编码器(Encoder)

3.jpg

Encoder的作用是将对话历史编码和用户Query表达成一个内容向量(contextvector)。Encoder部分采用了一个上下文敏感记忆网络(如下图decoder的左半部分)将历史对话和用户的Query作为输入。每一个输入的词汇由(1)token本身(2)该句话的轮次以及(3)对话的身份。例如:用户在第一轮说“hello”然后系统回复“may i help you”则输入为:[(hello, t1, user),(may, t1, sys),(I, t1, sys),(help,t1, sys), (you,t1, sys)],t1即表明为对话的第一轮,user和sys则代表是用户和系统所说的话。将hello,t1,user三个转换为vector相加则是这个词的embedding。最后将embedding的序列输入到上下闻敏感记忆网络中最终得到context vector。

4.jpg

2. 上下文敏感记忆网络

由于传统的记忆在储存对话历史的时候会丢弃上下文序列信息,因此我们在端到端记忆网络(end to end memory networks)[5]基础上进行修改。记忆网络由多个hop组成,hop 由每个hop自身随机初始化的嵌入矩阵的每个word embedding相加拼接而成。在此我们采用相邻权重共享方案,这意味着不仅是第k个hop中的输入嵌入矩阵,而且是第(k-1)个hop中的输出嵌入矩阵。为了让记忆网络更好地学习和表达上下文信息,我们在存储单元之间添加了一个门控机制,采用的门参考了双向GRU[6]的方法。在加载序列话信息时候,便会通过门机制得到上下文相关的词汇表达以存储至记忆网络。

将查询向量输入,计算注意力权重并得到输出向量。将查询和输出向量相加,我们就得到了第k个hop的输出。在这里也是(k+1)个hop的查询向量。

3. 异构记忆网络

HMNs如前图展示的那样,包含了一个上下文敏感记忆网络和一个上下文无关记忆网络。上下文敏感记忆网络前文已经详述,而上下文无关记忆网络则与端到端记忆网络完全相同。上下文敏感记忆网络用于储存和表达历史对话信息,而上下文无关记忆网络则用来表达知识库信息。两者连接的方式则是通过上下文敏感记忆网络输出一个查询向量作为上下文无关记忆网络的输入。这样即为RNN控制器输入到历史对话中,来结合上下文信息以及一定程度上获得回答的模式,再通过这些信息来查询关键数据,和人类的思考过程相似:根据问题首先确定回答的方式,再通过回答的方式来查找缺失的数据信息。

4. Decoder(解码器)

解码器部分包含了HMNs和一个RNN的控制器如图所示。

5.jpg

RNN控制器将在每个step将查询向量输入到HMNs中。在每一步中,输入的查询向量通过上下文敏感记忆网络生成对话历史词表(最后一层hop的输出)和大词表(第一层的hop输出作为预测)。而后上下文敏感网络的输出向量将作为查询向量输入上下文无关记忆网络以查询知识库信息并生成一个知识库词表。最后通过选词策略从三个词表中选择一个词作为该轮生成的单词。

5. 拷贝机制和选词策略

我们采用拷贝机制来复制来自记忆网络中的单词。记忆网络中目标词的概率就是两个记忆网络中的注意力权重_x001D_。如果没有出现目标词,则会选中预处理阶段添加的标记存储器跳转位置标记。在选词过程中,如果两个记忆网络的输出都不是跳转标记,我们就比较两个网络中选中的词概率更大的那个。如果只有一个跳转标记,则选择另一个网络中概率最大的词汇。如果两者都为跳转标记,则选择大词表中概率最大的词。

实验和结果

为了验证我们模型,我们设计了相关实验以证实我们模型的设计是否能够达到更好的效果以及模型的新设计(堆叠多个记忆网络以及上下文敏感记忆网络)是否都是有效的。

1. 数据集

6.jpg

如表格示,我们的采用了流行的三个数据集:Key-Value Retrieval Datasets[2]、DSTC2[3]以及(6) dialogbAbI tasks[4]。三个数据集均只采用对话以及知识库(元组形式,由于DSTC 2并没有知识库,所以使用的是本体ontology文件生成),去除了slot fillings等等所有标签。三个数据集的数据质量较高且同时包括多领域、单领域等多种形式。

2. 实验指标

为了达到验证的目的,我们采用了多种指标以验证我们的设想。

  • BLEU:我们采用BLEU来验证模型能否生成流畅的回复语句。
  • F1:我们使用F1来验证模型能否准确地在知识库中抽取到回答所需的关键信息并回复。
  • Per-response accuracy and Per-dialog - accuracy:主要用在bAbI数据集中,来验证模型是否有能力生成、复现学习到的表达。

3. 对比模型

我们对比了以下几个模型:

  • SEQ2SEQ: seq2seq(LSTM)模型目前来看还是各项生成模型研究对比的可靠稳定的模型。
  • SEQ2SEQ+Attn.: 增加了attention机制的seq2seq能够更好的生成待知识、稀有词语的信息。
  • Mem2Seq:memory to sequence将multihop attention引入了任务型对话生成中。
  • HMNs-CFO:HMNs withcontext-free memory only。同样是HMNs的模型,但是该模型用上下文无关网络替换了上下文敏感网络,用来验证上下文敏感网络是否真的起到了效果。

4. 实验结果

7.jpg


8.jpg

可以看出我们的模型在绝大部分主要评价指标上都得到了最好的表现效果。

在下表随机抽取的一个生成实例中也可以看到,能够生成最流畅的语句并抽取最准确的知识。

9.jpg

5. 实验分析

  • 模型的效果

在所有的实验中,我们发现HMNs基本都取得了最好的实验效果。因此总体的模型一定程度上是可靠有效的。特别是在F1指标上,HMNs的表现更加显著,结合实际的生成语句效果(甚至能够抽取到比ground truth更多且仍然准确的实体),我们认为HMNs在某种程度上能够学会如何利用query和历史对话信息从知识库中抽取相关关键信息。

  • 上下文敏感网络是否真的有效?

在bAbI实验结果(Table 3)中我们对比HMNs-CFO和HMNs模型的实验结果:HMNs在全部指标中均显著胜过HMNs-CFO,而HMNs和HMNs-CFO都采用了两个记忆网络堆叠的方式,唯一的区别便是HMNs-CFO用了两个同样的上下文无关记忆网络分别存储历史对话以及知识库的信息。此外结合训练的loss图像(Figure 4),我们可以得出结论,上下文敏感网络能够更好更快地学习对话生成任务。

  • 用多个网络分别学习对话历史和知识库信息是否有效?

同样地在该实验中,我们对比Mem2Seq和HMNs-CFO的实验结果:HMNs-CFO在绝大部分指标上(特别是perdialogueaccuracy)都取得了更好地成绩。Mem2Seq和HMNs-CFO的两个关键区别在于HMNs-CFO相对于Mem2Seq采用专用的记忆网络存储不同信息,同时通过对话历史信息输出查询向量到知识库的方式连接两个网络。因此采用专用的记忆网络并用合适的方式连接不同的记忆模块这个想法在这里也得到了有效的证明。

未来工作

在前面的实验结果中我们可以注意到Key-Value Retrieval Datasets实验中天气预测这项指标HMNs、Mem2Seq等利用了记忆网络的模型表现不佳。对此我们展开调研发现天气预测任务中,平均的知识库元组条目数量是其他任务的三倍之多,然后我们在这个任务中通过匹配的方式缩减元组数量到和其他任务大致相同之后,F1指标上升到了48。因此我们认为目前的训练方式记忆网络在显著增加信息存储量的情况下可能存在问题。在实际使用的时候需要先利于匹配等方式减少候选数量。因此我们需要进一步研究HMNs在不同数据量尺度之下的表现以及改进方法。

参考资料:

[1] Madotto, Andrea, Chien-Sheng Wu, andPascale Fung. "Mem2seq: Effectively incorporating knowledge bases intoend-to-end task-oriented dialog systems." arXiv preprint arXiv:1804.08217(2018).
[2] Eric, Mihail, and Christopher D. Manning. "Key-value retrieval networksfor task-oriented dialogue." arXiv preprint arXiv:1705.05414 (2017).
[3] http://camdial.org/~mh521/dstc/downloads/handbook.pdf
[4] Bordes, Antoine, Y-Lan Boureau, and Jason Weston. "Learning end-to-endgoal-oriented dialog." arXiv preprint arXiv:1605.07683 (2016).
[5] Sukhbaatar, Sainbayar, Jason Weston, and Rob Fergus. "End-to-endmemory networks." Advances in neural information processing systems. 2015.
[6] Cho, Kyunghyun, et al. "On the properties of neural machinetranslation: Encoder-decoder approaches." arXiv preprint arXiv:1409.1259(2014).
[7] Vinyals, Oriol, and Quoc Le. "A neural conversational model."arXiv preprint arXiv:1506.05869 (2015).
[8] Shang, Lifeng, Zhengdong Lu, and Hang Li. "Neural responding machinefor short-text conversation." arXiv preprint arXiv:1503.02364 (2015).

相关文章
|
机器学习/深度学习 存储 数据采集
如何让机器客服更像人类客服?
机器客服如果仅仅只是根据历史记录来回复用户,就会生成相对安全、通用的回复,无法让用户感受到人类客服的语言“温度”,自然也无法让用户真切地感受到服务的力量。为了解决这个问题,阿里工程师提出了异构记忆网络来同步处理用户语句、对话历史以及背景知识库,从而提升机器的对话质量。 本文已被自然语言处理领域顶会EMNLP2019收录,2019年EMNLP阿里巴巴共16篇论文被主会收录。
1032 0
如何让机器客服更像人类客服?
|
1月前
|
存储 自然语言处理 机器人
实战揭秘:当RAG遇上企业客服系统——从案例出发剖析Retrieval-Augmented Generation技术的真实表现与应用局限,带你深入了解背后的技术细节与解决方案
【10月更文挑战第3天】随着自然语言处理技术的进步,结合检索与生成能力的RAG技术被广泛应用于多个领域,通过访问外部知识源提升生成内容的准确性和上下文一致性。本文通过具体案例探讨RAG技术的优势与局限,并提供实用建议。例如,一家初创公司利用LangChain框架搭建基于RAG的聊天机器人,以自动化FAQ系统减轻客服团队工作负担。尽管该系统在处理简单问题时表现出色,但在面对复杂或多步骤问题时存在局限。此外,RAG系统的性能高度依赖于训练数据的质量和范围。因此,企业在采用RAG技术时需综合评估需求和技术局限性,合理规划技术栈,并辅以必要的人工干预和监督机制。
94 3
|
3月前
|
数据采集 监控 测试技术
大型IM稳定性监测实践:手Q客户端性能防劣化系统的建设之路
本文以iOS端为例,详细分享了手 Q 客户端性能防劣化系统从0到1的构建之路,相信对业界和IM开发者们都有较高的借鉴意义。
130 2
|
1月前
|
人工智能 自然语言处理 搜索推荐
AI技术在智能客服系统中的应用与挑战
【9月更文挑战第32天】本文将探讨AI技术在智能客服系统中的应用及其面临的挑战。我们将分析AI技术如何改变传统客服模式,提高服务质量和效率,并讨论在实际应用中可能遇到的问题和解决方案。
237 65
|
16天前
|
人工智能 自然语言处理 搜索推荐
选型攻略 | 智能客服系统该怎么选?(好用的智能客服系统推荐)
智能客服系统的选型需要综合考虑渠道功能、系统性能、客服工作管理、客户管理以及成本效益等因素。目前合力亿捷推出的智能知识库,梳理海量知识,根据不同主题对知识进行分类,使其结构更清晰。
47 0
|
17天前
|
人工智能 自然语言处理 安全
AI技术在智能客服系统中的应用与挑战
【10月更文挑战第28天】本文将深入探讨人工智能(AI)技术在智能客服系统中的应用及其面临的挑战。我们将通过实例分析,了解AI如何改善客户服务体验,提高效率和降低成本。同时,我们也将关注AI在实际应用中可能遇到的问题,如语义理解、情感识别和数据安全等,并提出相应的解决方案。
|
1月前
|
存储 安全 开发工具
百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
53 3
|
2月前
|
数据挖掘 API
如何选择适合的售后工单管理系统
选择合适的售后工单管理系统需评估需求和预算,考察功能、技术支持及服务商可靠性,并全面试用评估。ZohoDesk适合初创和中小企业,具备强大的工单管理、报告分析及可定制性,助力提升服务质量和客户体验。通过合适系统,企业不仅能优化客户服务流程,还能通过数据分析支持决策,推动长远发展。
64 16
|
2月前
|
人工智能 自然语言处理 前端开发
从客服场景谈:大模型如何接入业务系统
本文探讨了大模型在AI客服中的应用。大模型虽具有强大的知识生成能力,但在处理具体业务如订单咨询、物流跟踪等问题时,需结合数据库查询、API调用等手段。文章提出用Function Call连接大模型与业务系统,允许大模型调用函数获取私域知识。通过具体示例展示了如何设计系统提示词、实现多轮对话、定义Function Call函数,并利用RAG技术检索文档内容。最后,展示了该方案在订单查询和产品咨询中的实际效果。
|
1月前
|
前端开发 JavaScript PHP
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计

热门文章

最新文章