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

━━━━

近年来,随着人工智能的快速发展,人机交互能力不断增强,其中问答技术能够在保证一定准确度的情况下极大地简化用户的搜索操作,在节约时间的同时,还能够加深用户对搜索事物的了解程度,百度公司的小度、苹果公司的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月刊。

专家简介

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

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

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

猜你喜欢

转载自blog.csdn.net/sinat_37574187/article/details/131306257