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

简介: 小叽导读:机器客服如果仅仅只是根据历史记录来回复用户,就会生成相对安全、通用的回复,无法让用户感受到人类客服的语言“温度”,自然也无法让用户真切地感受到服务的力量。为了解决这个问题,阿里工程师提出了异构记忆网络来同步处理用户语句、对话历史以及背景知识库,从而提升机器的对话质量。本文已被自然语言处理领域顶会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篇论文被主会收录。
1100 0
如何让机器客服更像人类客服?
|
3月前
|
网络协议 NoSQL API
转转客服IM系统的WebSocket集群架构设计和部署方案
客服IM系统是转转自研的在线客服系统,是用户和转转客服沟通的重要工具,主要包括机器人客服、人工客服、会话分配、技能组管理等功能。在这套系统中,我们使用了很多开源框架和中间件,今天讲一下客服IM系统中WebSocket集群的的实践和应用。
224 0
|
5月前
|
前端开发 JavaScript Java
智能客服系统的技术栈解析-唯一客服系统技术架构优势
“唯一客服系统”采用 Vue.js 2.x + ElementUI 构建前端,实现响应式界面,支持多端适配;后端基于 Golang + Gin + GORM,具备高性能与高并发处理能力。系统支持私有化部署,提供灵活定制、AI 扩展能力,技术栈简洁易维护,兼顾开发者友好与企业级应用需求。
271 1
|
5月前
|
测试技术 Go
客服系统程序入口文件解析-唯一客服系统源码开发
该代码为 Go 语言编写的客服系统命令行程序入口,结构清晰,使用 cmd 包启动业务逻辑,可能基于 cobra 框架实现,具备良好可扩展性与可维护性,适用于服务启动与管理。
237 69
|
4月前
|
数据安全/隐私保护 容器 Go
开源IM即时通讯系统调研
Lumen IM 是一款企业级开源即时通讯工具,前端采用 Vue3 + Naive UI,后端基于 Go 语言,使用 WebSocket 协议。支持 Docker + Nginx 快速部署,适合私有化环境。功能包括文本、图片、文件消息,内置笔记、群聊及消息历史记录。界面美观、功能完善,适用于企业沟通、团队协作及开发者学习。提供前后端源码,便于快速搭建 IM 系统。
开源IM即时通讯系统调研
|
4月前
|
移动开发 网络协议 小程序
鸿蒙NEXT即时通讯/IM系统RinbowTalk v2.4版发布,基于MobileIMSDK框架、ArkTS编写
RainbowTalk是一套基于开源即时通讯讯IM框架 MobileIMSDK 的产品级鸿蒙NEXT端IM系统。纯ArkTS编写、全新开发,没有套壳、也没走捷径,每一行代码都够“纯血”。与姊妹产品RainbowChat和RainbowChat-Web 技术同源,历经考验。
220 1
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
从0搭建AI智能客服教程(AI智能客服系统选型和实战指南)
针对智能客服技术与业务脱节的痛点,合力亿捷通过 NLP、知识图谱及人机协同策略,助企业实现首次解决率超 70%、人力成本降 43%、年省成本超千万。其方案提升制造业问题解决率 40%,投诉转接成功率达 99%,以分场景选型助力超万家企业平衡业务与成本,成行业首选。
|
6月前
|
缓存 自然语言处理 监控
基于通义大模型的智能客服系统构建实战:从模型微调到API部署
本文详细解析了基于通义大模型的智能客服系统构建全流程,涵盖数据准备、模型微调、性能优化及API部署等关键环节。通过实战案例与代码演示,展示了如何针对客服场景优化训练数据、高效微调大模型、解决部署中的延迟与并发问题,以及构建完整的API服务与监控体系。文章还探讨了性能优化进阶技术,如模型量化压缩和缓存策略,并提供了安全与合规实践建议。最终总结显示,微调后模型意图识别准确率提升14.3%,QPS从12.3提升至86.7,延迟降低74%。
1888 15
|
5月前
|
缓存 移动开发 网络协议
纯血鸿蒙NEXT即时通讯/IM系统:RinbowTalk正式发布,全源码、纯ArkTS编写
RainbowTalk是一套基于MobileIMSDK的产品级鸿蒙NEXT端IM系统,目前已正式发布。纯ArkTS、从零编写,无套壳、没走捷径,每一行代码都够“纯”(详见:《RainbowTalk详细介绍》)。 MobileIMSDK是一整套开源IM即时通讯框架,历经10年,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp、鸿蒙NEXT,服务端基于Netty编写。
335 1
|
5月前
|
人工智能 自然语言处理 语音技术
深度解析:AI语音客服系统如何重塑客户服务体验与主流解决方案探析
在数字化浪潮下,AI语音客服凭借高效、便捷、24小时在线的优势,成为企业提升服务效率、优化体验的重要工具。本文详解其核心技术、应用价值、选型要点及市场主流方案,如阿里云通义晓蜜、合力亿捷等,助力企业智能化升级。
434 1

热门文章

最新文章