智能客服机器人背后是思考与实践

2024-08-22 01:08

本文主要是介绍智能客服机器人背后是思考与实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        随着人工智能的发展,人机交互技术愈发成熟,应用场景也越来越多。智能客服是人机交互在客服领域的一个应用,服务于客人以及相关的客服人员。本文将介绍智能客服在旅游场景下的主要技术和应用。

        当前度假的智能客服主要用于C端(客户端)面向客人,以及客服端辅助客服的两个角色。面向客服端的是智能客服助手,用于对话窗口的侧边栏,提示客服人员当前客人问题的答案,客服人员可视情况来采纳;而面向C端的智能客服则是直接服务于客人,回答客人问题。

        智能客服又分为单轮问答的QA Bot和多轮对话的Task Bot,在携程的旅游场景下,以多轮对话的Task Bot居多。一般多轮对话的智能客服系统会切分为以下几个模块:客人的问题(Query)进来后首先经过NLU模块抽象化为客人的意图(intent)以及关键信息槽位(slot),意图及槽位传给DM模块后,经过DST、DPL、NLG模块返回答案。

        •  NLU(Nature Language Understand 自然语言理解),通过模型或规则的方式获取客人的意图和槽位;

        •  DST(Dialog State Tracking 对话状态追踪)存储对话状态,包括每一轮对话的意图以及已经抽取到的槽位信息、历史机器人的行为;

        •  DPL(Dialogue Policy Learning对话策略选取),DPL根据DST传输的内容决策机器人在该轮的行为;

 

 

一、NLU

        NLU模块基础功能是获取客人的问题的意图及槽位信息,在业务比较复杂的场景,相对应客人可能问的问题维度也会很复杂。如果答案涉及的条件很多的情况,往往单轮的QA无法很好的解决客人问题。因此在度假业务的场景下,多轮次的Task Bot会占大多数。

1.1 错别字纠正

        原始语句中难免会出现错字,错字可能会改变最终输出的答案。在识别意图之前首先通过纠错模块对错别字进行纠正。

 

        兼容速度和准确率考虑,纠正分为规则部分和模型部分,度假业务中涉及到的地点比较多,在规则部分就能够覆盖大部分错别字的情况。模型部分首先会经过一个CRF模型输出字级别存在错误的可能性,生成候选集后,通过语言模型计算候选集句子的置信度,重排序得到最终纠正的结果。

 

        •  检查错误模型,主要使用了五种特征向量连接后进入Bi-LSTM-ATT-CRF模型,得到对每个字是否错误的判断。

        •  语言模型计算候选集替换为该字的情况在语言模型内的得分,文本转为特征向量后经两层向前和后向前的Transformer,最后全连接计算softmax。

1.2 意图识别

        意图实质上是对客人问题的抽象化,比如常见的客人问及“这个产品多少钱?”,可转换为“询问价格”意图。而在直接服务客人的C端上,对回答答案准确率有较高的要求,高质量的服务背后首先是高准确率,而且通常在设计意图前期会存在意图训练语料不足的问题,因此一个高准确率并且弱监督的意图识别模型非常重要。

意图识别模型

        意图识别模型整体采用上图的类似matching network框架,每个意图会有一个类别表示,新的query经计算获得其句向量,通过计算和每个类别的相似度得到该客人问题的意图。

        当前的意图识别模型,相比于传统的文本分类模型,准确率更高,标注量更少,同时更方便迁移到多意图的情景。在训练阶段,共有已知C个类别,每个类别N个样本,语句经特征向量经过Bi-LSTM层后再通过Transformer-Attention把一句话映射为一条向量,最后经胶囊网络获得每个类别的类别向量。每个训练语句得到句向量后,再通过Bilinear-Function-Sigmoid计算的相似度得分,最后采用二分类的对数似然损失函数计算损失。

模糊意图的处理

        我们研究表明,客人在和机器人对话及与人对话的时候一些行为习惯是不同的。在面对机器人的时候,客人倾向于把机器人作为一个“搜索引擎”,常常输入关键词来获得回答,但关键词的信息不完整,通过模型或模板都无法返回切合的意图。针对于此,我们采用了“联想问”和“猜你想问”的功能来引导客人的提问方式。

•  联想问

        客人在聊天输入栏输入问题的同时,显示相关的一些问题以供客人点选,由于是实时显示,对速度的要求较高,这里我们使用的是检索算法计算文本相似度。

        我们会为每一个意图人工设置一些用户常问问题,当用户输入的时候,我们会用文本相似度的算法,算出和用户输入最接近的三个常问问题,提示给用户供其选择。

        •  猜你想问  

对于“猜你想问”功能,主要是处理问句过短的语义不明的情况。举个例子,在签证领域,客人会输入“照片”,而和照片相关的意图有“是否需要照片”、“照片要求”、“照片尺寸大小”等等能够涉及到的十几个意图。在触发“猜你想问”后,会返回4个最关联的问题供客人点选。

        在使用“猜你想问”和“联想问”的机制后,可以引导部分客人的用户输入习惯,提升单轮次下信息输入的完整性及纯净度。

1.3 发现新意图

        一个新业务线设计意图的时候,不可能把所有会出现的意图都理清楚,而是循序渐进,逐步增加。业务人员本身对业务的熟悉程度可提供新业务线的意图大框架,在小细节上难免存在漏缺,或是因为实时政策的变化产生的新问题。

        比如说,在今年六月份大陆禁止发放台湾自由行签证,这段时间就新产生了很多类似于“已办的台湾签证是否还可使用”、“是否还能办台湾G签证”等这些新的客户问题。

 

层次聚类  

 

 

        我们采用的是对原始问题聚类的方法,把相似句聚集在一起。经过数据预处理后,生成句向量,第一层使用高斯混合得到一个初步的聚类结果,再通过规则判断是否需要再进行一次聚类,随后在第二层使用OPTICS聚类。

        在用算法发现意图后,并不会即刻投入使用,而是业务做重审确定,整体上新意图的定位在于辅助业务对意图体系的完善。

1.4 槽位抽取

        在Task Bot中,槽位信息抽取主要是服务于检索答案。比如签证一个常见问题“办签条件”,需要确定客人的办签国家、户口所在地、居住地等信息后才能给出最终回答。

        有时客人的问题中直接会涉及相关槽位,目前槽位抽取采用的是规则+模型的方式。在实际应用中,规则能够覆盖70%的情况,剩下的则由模型来负责。

        在度假业务里需抽取的槽位词有一个明显的层次关系,比如地点-送签地、地点-办签国家、职业-在职、职业-自由职业等,在模型的设计上会先抽第一层,第二层才是对最终结果的二级识别,通过多任务的学习,实际上每一层的任务是在对特征进行自动抽取。

 

 

        大型的语言模型,比如说今年大热的BERT,在很多NLP任务中大放光彩。在这个词槽抽取任务中,语句中会先经过BERT得到字向量后,第一层经Bi-LSTM-CRF模型得到第一类的结果以及Bi-LSTM的编码结果会映射为对应的类向量,经连接后进入第二层Bi-LSTM-CRF后得到最终的词槽。在加入语言模型后,对于语料比较少以及地点比较多的情况提升会比较大,尤其是一些语料中没出现过的地点,加入语言模型后也能识别出来。

 

二、对话管理系统

        对话管理系统模块主要负责对话状态追踪DST(每轮意图、槽位的存储)、对话策略选取DPL(反问或给出答案)、答案生成NLG。在这部分接收NLU识别的意图和槽位结果,DST把对话状态信息发送给DPL,DPL根据知识库中的规则返回机器人在下一轮的决策(回答问题、反问或其它操作)。

 

三、智能客服平台

        在整体上,智能客服业务和技术的部分是解耦的。业务相关信息的设定和操作都是通过智能客服平台,包括不同业务线的意图和词槽的设定、答案配置、数据审核、测试、标注等。新建一条业务线的智能客服应用,只需要在平台上新建项目,输入设定的意图、对应的语料、必要的槽位和对应的答案。

 

 

        此外,平台上的答案配置也很灵活,可以是固定回答,可以是知识图谱的schema,可以是外部的接口,或是随不同词槽设定的回复等等。

四、结语

        以上是度假人机交互的主要技术和成果,目前我们已经完成了一个智能客服项目落地的闭环,其中还有很多内容可以持续完善,比如多轮的意图识别、更多主动对话的探索等等。

        未来的智能客服机器人将往多模态和多语言方向发展,支持语音和图像等模态的解析,支持英法日韩等多国的语言。智能客服还将提供主动服务模式、人机协同模式、群聊功能等多种模式。此外,采用大规模挖掘和生产的方式降低人工标注成本也是未来的主要方向之一。

这篇关于智能客服机器人背后是思考与实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094806

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

Prometheus与Grafana在DevOps中的应用与最佳实践

Prometheus 与 Grafana 在 DevOps 中的应用与最佳实践 随着 DevOps 文化和实践的普及,监控和可视化工具已成为 DevOps 工具链中不可或缺的部分。Prometheus 和 Grafana 是其中最受欢迎的开源监控解决方案之一,它们的结合能够为系统和应用程序提供全面的监控、告警和可视化展示。本篇文章将详细探讨 Prometheus 和 Grafana 在 DevO