智能客服机器人:基于知识图谱的多轮对话系统

article/2025/11/11 8:21:30

━━━━

近年来,随着人工智能的快速发展,人机交互能力不断增强,其中问答技术能够在保证一定准确度的情况下极大地简化用户的搜索操作,在节约时间的同时,还能够加深用户对搜索事物的了解程度,百度公司的小度、苹果公司的Siri等正是基于问答技术形成的产品。

作为问答技术的关键构造,对话系统根据对话目的或应用场景的不同,可以分为任务型对话以及非任务型对话。前者一般面向特定任务,目的是尽可能准确且使用较少对话轮次完成用户提问、查询等语义任务;后者则以聊天机器人为代表,对话领域开放,目的是尽可能用多样化、丰富的表述来模拟人类对话。在人机对话过程中,提问与回复往往需要多方面的知识作为支撑,因此将知识图谱应用于多轮对话,可以帮助对话系统在面对特定领域提问时,完成更为准确且更有意义的回复。在国家重点研发计划项目的支持下,哈尔滨工业大学研究团队结合知识图谱与冬奥会主题的内容,构建出冬奥会智能客服机器人,其能够满足体育赛事票务查询预订以及交通路线规划的用户需求,实现基于冬奥会知识图谱的多轮对话,回答用户的相关提问。

━━━━

面向冬奥会的任务型对话系统

冬奥会对话系统属于任务型对话,具有领域范围小、主题明确等特点。研究团队基于管道方法(Pipeline Method)搭建了面向冬奥会的任务型对话系统,其主要由自然语言理解(NLU)、对话管理(DM)自然语言生成(NLG)以及用户交互四大模块组成(见图1);研究团队还建立了基于反射机制高扩展性框架

自然语言理解模块可以将用户输入的语言文本换为结构化语义框架表示(包括领域、意图、槽位-槽位值对集合)并输出,主要包含意图识别与槽识别两个任务。意图识别任务负责将用户语句文本归类到其对应的意图类别之中。槽识别任务负责将用户语句文本中全部的槽位-槽位值对识别出来,一般被视为序列标注问题

该模块的语言理解任务涵盖票务与交通两大领域,属于多领域语言理解任务,包含8种意图识别类型(如询问比赛时间、询问比赛地点、规划交通路线)以及14种槽位(如比赛名称、地点、目的地),槽位采用BIO标注模式,前缀“B-”表示槽位开始词,前缀“I-”表示槽位中间词,“O”表示非槽位词,系统在进行填充时会去掉前缀。对话开启后,该模块会先加载预训练好的模型,由对话管理模块判断用户输入语句是否为本轮对话的首句。若是,则调用适用于文本分类的卷积神经网络(TextCNN)模型对其进行意图识别(见图2),并返回意图识别的结果;然后调用具备考虑上下文信息能力的双向长短时记忆网络(BiLSTM)模型对该句进行槽识别(见图3),得到每个词对应的槽类型,再将词的值填入对应槽,并返回至对话管理模块。

对话管理模块是整个系统的调度模块,可以利用对话历史与用户语义框架表示来追踪对话状态并生成对话行为,主要包括对话状态追踪任务与对话策略任务。对话状态追踪任务是指根据对话历史与当前用户对话文本来推断更新当前对话状态的过程。对话状态包括槽位及槽位值,能够表示对话过程的进度。对话策略任务是指根据当前对话状态生成的对话行为。对话行为由动作谓词与槽位构成,动作谓词表示基本的意图(如Inform表示通知、Request表示请求、Thanks表示感谢、Closing表示结束),即用户或对话代理想要执行什么操作,槽位表示语义内容,即用户或对话代理执行操作所需的信息。

该模块采用的对话状态追踪技术,会先将所有槽位分为Inform类型槽位(其槽位值来自用户,在对话过程中用于约束信息查询)以及Request类型槽位(其槽位值是用户在与对话系统交互过程中期望获取到的有关信息),在给定由自然语言理解模块从用户对话文本中解析到的语义框架表示之后,会根据当前对话状态中的限制条件(Inform类型槽位信息),检索数据库中符合条件的数据,再利用语义框架表示数据库检索结果,将对话状态更新并获取下一个对话状态,最后将对话状态转换为对话策略任务需要的形式,例如基于规则的对话策略需要对话状态的语义框架表示。

自然语言生成模块可以将结构化的对话行为表示转换为自然语言语句,使用基于规则的方案。这是因为在冬奥会赛事背景下,票务查询与预订、交通路线规划这两项需求相对比较简单,人工规则需求量不大且制定难度较低;此外,基于生成式模型的方案需要大量难以收集的领域相关对齐语料,且生成式模型生成的自然语言难以保证文本的流畅性与信息准确性。在基于规则的自然语言生成模块实现过程中,研究团队先为不同的对话行为定义不同的模板。该模板由自然语言文本与槽位标签构成,例如,在模板“您想观看什么时候的{{比赛名称}}比赛”中,“{{比赛名称}}”就是槽位标签。当使用模板生成自然语言时,需要先根据当前对话行为与对话状态中的已知槽位集合,在模板数据库中进行查询,选出满足相应条件的模板,再根据对话状态中的已知槽位信息替换模板中的槽位标签,从而得到该对话行为对应的自然语言文本。

用户交互模块是一个前端交互界面,主要完成系统与用户之间的交互,用户交互功能通过WEB网站实现。当用户输入信息时,向后端发送信息,经自然语言理解模块、对话管理模块、自然语言生成模块调用,并将处理后的结果返回至前端,回复给用户。浏览器/服务器(B/S)模式的开发优势在于WEB网站可以在最大程度上实现资源共享,即在网站部署之后所有用户都可通过浏览器进行访问,并且系统维护成本较低,更新升级只需修改服务器端的代码。此外,研究团队选择基于具有小巧、灵活、支持高并发等优势的Tornado框架来开发该对话系统,并使用Ajax技术来实现系统前后端分离,即前端界面通过Ajax请求完成与后台的信息交互。这种低耦合性的实现方式,对于系统的后期升级与改造大有裨益。

为解决任务型对话系统每次模型更迭都需要对源代码进行繁琐而低效的更改这个问题,研究团队在面向冬奥会的任务型对话系统架构设计中使用Python的接口类机制与反射机制,并通过模块抽象类定义、模块抽象类扩展、设置类文件路径、反射机制获取对象这四个步骤,建立了基于反射机制的高扩展性框架。第一步,研究团队先为自然语言理解、对话管理、自然语言生成3个模块,分别定义一个抽象类,并为各抽象类定义对应的抽象方法;第二步,可以对第一步预先定义好的抽象类进行扩展,以不同的方式实现其抽象方法;第三步,将类文件路径(从根目录开始)以及类名称(文件中扩展类的名称)的信息填写在配置文件中,为反射机制获取对象做准备;第四步,反射机制是指计算机程序在运行时可以访问、检测与修改其自身状态或行为,在Python语言中,反射机制将字符串转换为类对象,直接调用扩展类的抽象方法,而不需要对源代码进行任何修改,从而大大提高了系统框架的可扩展性。

━━━━

基于知识图谱的多轮对话小程序

对话系统所需的冬奥会知识图谱由清华大学李娟子老师团队提供,其中大约包含15836个三元组、7397个实体、14种关系。实体主要分为4大类,即冬奥会、比赛项目、场馆、参赛人员,其中冬奥会包含首届至第二十四届冬奥会的基本信息;比赛项目包含高山滑雪、冰壶、冰球等16个大类,每一大类又包含多个子类,如高山滑雪包括男子滑降、高山混合团体赛等;场馆包含历届冬奥会的部分比赛场馆;参赛人员仅包含历届冬奥会的获奖运动员;关系主要包含比赛场馆、运动员获奖名次(第一、二、三名)等。

哈工大研究团队基于冬奥会知识图谱构建了多轮对话数据集。首先分析知识图谱的本体及其关系(图谱中每个节点即本体,各条边即本体之间的关系),得到本体关系图(见图4),并转化为有向图(需要根据实际情况人工添加或删除部分路径,见图5),然后分别以各个本体为起点遍历有向图(已遍历节点不能重复遍历),得到全部最长路径,再对全部路径进行拆分与融合,得到子路径,每一条子路径即对应一个多轮对话模板,最后将知识图谱中相应的实体与关系填充到模板中,即可得到多组基于知识图谱的多轮对话语料。

在多轮对话数据生成过程中,系统可以对用户语句进行自动标注。例如,利用模板“{冬奥会}有哪些比赛项目?”生成语料时,可以自动生成模板填充的实体及其编号等标注信息,用于命名实体识别(NER)数据生成,同时可以标注问句的意图类型,用于意图识别数据生成。生成的17010条不同的意图识别数据,主要包括13种意图,询问的具体内容分别为吉祥物、参赛国家和地区、比赛场馆、场馆举办过第几届冬奥会/举办过的比赛、比赛项目、某个大类的子项目、某个子项目的第一名/第二名/第三名、某个运动员参加过哪几届冬奥会/参加过哪些比赛/取得的成绩。此外,该程序包含冬奥会、项目大类、子项目、运动员、场馆这5种槽位,每一个意图可以对应多个槽位。

多轮对话系统的前端为微信小程序。多轮对话的主要流程为“输入当前用户语句→进行意图识别→进行命名实体识别→判断识别实体的类型→根据意图与槽位信息进行对话”,其中意图识别使用BiLSTM模型,命名实体识别程序使用BiLSTM+条件随机场(CRF)。在多轮对话中,系统会将每次识别到的实体及其类型保存至对话历史,这样一来,对于省略了部分实体的用户提问,系统仍能做出正确回答,从而保证了上下文的连贯性。

━━━━

意图分类实验与对话演示实例

缺乏自然语言理解模块的标注数据通常是在新领域构建任务型对话系统所遇到的第一个障碍。为此,研究团队总结归纳出一套自然语言理解模块标注数据半自动化构建方案,其主要流程为“人工标注意图识别种子语料→爬虫扩展语料→人工校正意图识别语料→模板扩展语料(需要扩充时)→人工标注槽位填充语料”。研究团队最终收集到6970条数据,以其中的5586条作为训练集、692条作为测试集、692条作为验证集,并在此数据集上分别采用TextCNN、FASTTEXT、ERNIE这3种模型进行意图分类实验,结果表明:三者中ERNIE与TextCNN的效果更优,准确率(Accuracy)分别为97.83%与96.24%,宏平均F1(macro avg F1)分别为93.36%与92.03%,加权平均F1(weighted avg F1)分别为97.83%与96.24%。

面向冬奥会的对话系统在体育赛事票务查询与预订方面,可以识别出询问比赛时间、询问比赛地点、询问比赛票价、预订比赛门票等用户意图;在交通路线规划方面,可以识别出询问交通工具运营时间、规划交通路线等用户意图。对话演示实例如图6与图7所示,当用户在系统输入框内输入想要咨询的问题后(如“帮我买花样滑冰的比赛门票”“请问从望京到鸟巢怎么走”),对话系统先通过自然语言理解模块对其进行理解,分析识别出用户的意图、槽位及槽位值,之后依次对用户目标中的约束信息(如比赛日期、购票数量、比赛时间、门票类型、出行策略)进行询问,最后利用询问过程中收集到的全部信息,在后台数据库进行查询,并做出正确流畅的回复。

在正常连贯的对话中,用户的下一条提问很可能会省略之前已经提及的部分信息,因此对话系统需要结合上下文来理解用户的提问,即使当前问题省略了部分实体,系统也能做出连续而准确的回复。多轮对话小程序演示实例如图8所示,用户在第三条提问中省略了第一条提问所提及的“平昌冬奥会”与第二条提问所提及的“越野滑雪子项目”,所以第三条提问实际是在向对话系统询问“平昌冬奥会中,越野滑雪的子项目——男子竞速赛的第三名是谁?”

哈工大研究团队开发的冬奥会智能客服机器人,基于目前的冬奥会知识图谱,可以帮助人们更为精细地了解冬奥会的相关知识与发展历史;在未来,不断升级改造的冬奥会智能客服机器人,在接入冬奥会数据平台后,也能具备服务北京2022年冬奥会的能力,可以帮助想去现场感受冰雪赛事的人们解决票务查询预定与交通路线规划等具体问题。

致谢:感谢国家重点研发计划“云计算和大数据”重点专项项目“大数据驱动的自然语言理解、问答和翻译”课题“面向自然口语交互的情境化语义理解和多轮对话交互管理技术”(课题编号:2017YFB1002102)的支持。

本文刊登于IEEE Spectrum中文版《科技纵览》2021年8月刊。

专家简介

郑德权:现任哈尔滨商业大学教授,就职于哈尔滨工业大学期间参与完成该项研究工作。

衣景龙:哈尔滨工业大学硕士。

赵铁军:哈尔滨工业大学教授。


http://chatgpt.dhexx.cn/article/I4ZhLKd9.shtml

相关文章

【人机对话】对话机器人技术简介:问答系统、对话系统与聊天机器人

点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要16分钟 跟随小博主,每天进步一丢丢 来自:AI算法之心 作者:段清华个人主页:http://qhduan.comGithub链接: https://github.com/qhduan/ 原…

数据可视化工具是什么

智能手机的普及,互联网使用的增长,机器学习的快速发展,以及云计算技术和物联网的不断采用,都在推动全球数据可视化市场。此外,对智能工厂的日益倾向,以及视觉分析、信息可视化和科学可视化在小型和大型组织…

如何进行数据可视化图表设计?

如何进行数据可视化图表设计? 对数据人来说,数据可视化是分析理解数据,并最终呈现数据的必修课。本文从以下几个点来说明,如何进行数据可视化图表设计。1、数据背后的故事2、充分理解数据3、多种图表类型设计指南 1数据背后的故…

优秀的数据可视化,原来是这样做的!

大数据时代,数据驱动决策。处理不好庞大、复杂的数据,其价值将大打折扣。 可以想象一本没有图片的教科书。没有图表、图形或是带有箭头和标签的插图或流程图,那么这门学科将变得更加难以理解。人类天生就是视觉动物,而视觉效果对于…

数据可视化是什么,数据可视化怎么做最好?

数据可视化都有一个共同的目的,那就是准确而高效、精简而全面地传递信息和知识。可视化能将不可见的数据现象转化为可见的图形符号,能将错综复杂、看起来没法解释和关联的数据,建立起联系和关联,发现规律和特征,获得更…

如何完美实现数据可视化?

为什么要可视化数据? 在工作中,无论你在哪个场景,你都会接触到数据,需要表达出来。数据可视化的作用是通过结合图表和数据来更好地传达业务信息。目前,大多数公司正在逐步从传统的流程管理过渡到基于数据的管理。数据可视化可以…

程序员如何轻松实现数据可视化?

这里以Web前端为例,简单介绍一下程序员是如何实现前端数据可视化的,主要内容如下: Highcharts.js 这是一个纯粹的JavaScript可视化库,完美支持移动端,可以快速的为Web网站添加具有交互性的图表(包括曲线图…

好看的数据可视化图片是怎样做的?

好看的数据可视化图片是怎么样做的?这里我将介绍如下几个知识点,相信掌握如下数据可视化技巧和知识,一定可以让你的图表焕然一新,令人眼前一亮~ 图表制作规范:图表选取,突出显示重点数据,消除图…

同一个ip,不同端口号,session失效

背景 我有两个工程projectA、projectB,projectA放在TomcatA中,projectB放在TomcatB中,TomcatA、TomcatB在一台server上。 工程都映射的根路径,不用project名字就可以访问,如下 http://ip1:7777/ http://ip1:8080/ …

用Python做【游玩攻略】之上海四日游,假期旅游不用愁啦~

导语: 哈喽铁汁们~这不马上元旦吗小假期有准备来个短期旅行(疫情期间还是注意安全尽量不出门)却还没做游玩攻略的友友们这期可不能错过了噢~ 这期呢我们就先“去一趟”上海吧~ ​​ 人们通常戏称上海为魔都。那么上海魔在哪里呢?这里的魔主…

包学习(一款安卓端小学到高中全部课程精讲APP)

简介 【包学习】是一款拥有小学至高中九个学年的全套学习资料的APP,名校名师重点、难点精讲 软件简单介绍 软件分为首页、必刷课、动态教辅、在学、我的五大模块。 进入软件会让你选择对应的年级,小编这里就以高三年级课程给大家截图演示&#xff0…

学堂在线课程字幕下载

事情起因 学堂在线 工程伦理课程 在线学习,没有课件, 考试的时候可能会不方便,做一解决此类问题 字幕下载 合成为Txt 文件或者word 文件以供学习使用 事情经过 首先想到的是自己写一个爬虫 怕区相应的字幕, 发现是文本形式存储和, 很好做, 但是涉及到登录的cookie信息, 暂时…

课堂派资料PDF文件下载

课堂派资料PDF文件下载 前排提示,本文没有什么技术含量,大佬轻喷 因为暂时要上网课,但是年前走得着急其实是懒 ,课本没有带回来,所幸有的老师会发一些课本、习题的PDF到课堂派的“资料”里。但是有的时候会限制不让下…

Python程序开发案例教程PDF,python程序开发案例教程

大家好,本文将围绕Python程序开发案例教程黑马程序员电子版书展开说明,Python程序开发案例教程黑马课后答案是一个很多人都想弄明白的事情,想搞清楚Python程序开发案例教程pdf黑马程序员需要先了解以下几个事情。 1、python软件开发的案例有哪…

文章润色器-文章润色的软件

文章修改润色软件 在如今信息化时代,我们的工作常常涉及到处理或编辑一些文件和文章,其中一项重要的工作是对文章的润色和修改。为了高效地完成这项任务,越来越多的人开始借助文章修改润色软件进行文章修改和润色。本文将介绍一款专业的文章…

ChatGPT vs. 之前版本:性能与表现的对比

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

数据之美----雪球网股票组合分析

简介 因为工作需要,爬了几个大型的网站,练就一身爬取数据和分析数据的功夫。所以,在无聊的时候写了个爬取系统。主要功能是爬取雪球组合的数据,并进行分析,得出一些有价值有潜力的股票代码。实盘到没有测试&#xff0c…

新浪股票接口获取历史数据

这两天做了一个调用新浪股票接口获取实时以及历史股票数据的应用,因为新浪没有公开关于其接口的官方文档,所以通过各种百度差了很多关于新浪股票接口的使用,不过大家基本都是转载或者直接复制,对于实时数据的获取讲的很详细&#…

我问了 ChatGPT 一个问题:我生活在哪个世纪?

我问了 ChatGPT 一个问题:我生活在哪个世纪? ChatGPT 算得上最近科技圈最火的一个话题之一了。如是我也想赶时髦,体验一把 ChatGPT。 访问:https://chat.openai.com/,给了我一个: why? 在 net 上逛了逛…

扎克伯格是学计算机的吗,扎克伯格是犹太人吗?他毕业于哪个院校?

提起扎克伯格大家都十分熟悉,即便不熟悉也应该听说过他的名字,他是某社交网站的创始人,在国外有不少人使用,所以许多人对他都有一定的了解。他曾在三十岁的时候,就拥有了六百亿美金的资产,更是被称为“第二…