仇建飞
(中国移动通信集团天津有限公司 天津市 300000)
电信运营商通常有各种营销渠道,在面对一线客户咨询或是业务营销推荐时,时常会遇到各种各样的问题,如业务查询、系统故障、系统异常、投诉问题或是疑难问题,需要快速寻求咨询和支持,急需支撑营业一线人员重要运营场景,传统客服系统应运而生。但是传统客服系统存在些固有问题。
由于运营商的业务点细多繁杂,内部用户的输入具备口语化、多样化的特性,传统客服系统面临“智能应答不准、搜索感知差、知识散落未整合、投诉工单质量不可控”等痛点。因此急需引入先进的AI 方法,对每条投诉、事件、问题数据进行“分析、跟踪、关系梳理”,并根据逻辑关系进行聚合,打造“面向客户,敏捷智能”的知识图谱,提升面向业务一线的服务水平。
本文的课题目标定位于“智能互联网支撑一线客服”,旨在利用当前人工智能发展的重要组成部分知识图谱技术,来实现传统业务的互联网化和智能化发展,通过知识图谱等AI 方法手段,来解决过去企业的知识库不全,知识点散乱、搜索目的效果不好、智能应答不准确、提升投诉工单质量、业务流转工单质量,利用知识图谱丰富的逻辑、关系能力提升机器人智能感知,提供一线客服更加人性的应答互动体验。
知识图谱实际上是一种语义网络,是基于图构建数据结构,是语义搜索、智能问答、决策支持等智能服务的基础技术之一。知识图谱最常用的语义关系包括:“实体-关系-实体”,“实体-属性-属性值”。知识图谱采用三元组描述事实, 所使用的描述语言大多是已研发的本体语言, 如 RDFS、OWL 等。它由两层结构组成,一部分是data layer 数据层,另一部分是schema layer。模式层是一个概念逻辑模型,定义数据层规则和约束条件。在数据层,是由基本三元组构成一个图形网状关系网,其中结点代表实体(entity)或者概念(concept),边代表实体(entity)或者概念(concept)之间的各种语义关系。构建知识图谱是需要从大量开放的非结构化和半结构化数据源中,抽取实体(概念、人、事物)和关系,经过几个步骤,数据清洗、实体识别、关系识别、数据聚合处理等逐步构建而成。知识图谱当前比较常用于语义搜索、智能问答、个性化推荐等几个领域。
面向企业客服的B 域数据源来自三个方向,首先主要来源是从BOMC 投诉工单系统和在线客服日志获得的非结构化数据,称为业务数据源;第二个是业务新词和术语,需要获得B 域专业术语、词典、操作术语等等,对非结构化知识进行分析时,需要利用这些数据提高语义分析时准确度,称为基础数据源;第三个来自以原子化知识库中的固有内容,以无监督、有监督两种模式自动构建面向企业业务服务的知识图谱。数据来源如图1 所示。
本次知识图谱系统是面向运营商B 域场景的知识图谱自动构建,是基于B 域业务场景出发,由于企业业务场景知识图谱属于特定领域知识图谱,所涉及的技术要求,架构设计,问题难点都与通用领域的情况不同。知识图谱自动构建流程方案,是按照模式设计、数据清洗、实体识别、关系识别、知识融合等流程来进行。
在对数据源进行下一步处理之前,要先定义一个Schema,就是知识图谱的模型设计,相当于一个领域内的数据模型,Schema是用来规范知识图谱的领域与描述对象,起到管理知识图谱的作用,我们从B 域业务场景的服务诉求出发,基于现有事件单、BOMC投诉单、异常单数据,从一线客服实际工作出发点角度思考,客服人员关注逻辑点和常问一些问题,比如:工单异常怎么解决?发票无法打印怎么办?某个套餐怎么订购不了呢?等等作为思路,设计出一套B 域运维领域的知识图谱Schema,作为图谱自动抽取的框架进行语义分析。
现阶段,我们对于运维域里面的对象,重点关注B 域故障受理场景,相对比较关注“故障原因”、“故障内容”、“解决方案”的实体,和“导致”、“解决”的关系,知识图谱系统设计成以业务垂直领域的场景为应用拓展,基于深度学习框架为每个场景分配唯一标识机制,以ID 为标识进行数据导入、模型训练、能力获取,不同场景间进行逻辑隔离,确保逻辑模型不冲突,提升解决知识图谱解决更多一般性查询和多样化问题等能力。
来自BOMC 投诉工单、事件单等业务数据源,以及运营商领域专业词典等数据,这些数据都是非结构化的数据,存在很多无效、空值、重复数据,需要进行数据处理,在数据处理前,安排初步数据提取,为了更有效的抽取各个不同源的数据中知识图谱核心需要的部分内容,比如:针对事件单数据,我们更关注故障标题、服务请求类别、处理日志、投诉现象等部分;针对故障周/月报数据,我们只关注故障原因部分。
针对运营商领域数据集的获取与标注语料环境,运营商领域知识图谱的要求数据量相对较小,知识密度相对较大、知识质量较高。由于知识实体与关系的是相对严格限定,所以无法使用很多的开放领域实体识别和关系抽取算法和业界已有数据集。
实体识别是知识图谱语义分析的关键第一步。将套餐、区域等实体作为标注数据输入模型进行训练,算法核心逻辑是先通过采用向量空间进行词句的建模,最大程度的保留词句的上下文关系,再通过LSTM 在传统RNN 的基础上采用门结构,使得模型能够学习到更远的上下文关系,最后使用条件随机场CRF 层来更多识别实体特征,最终得到实体识别模型,根据模型对海量BOMC 投诉工单数据进行实体识别预测,将自然语言中涉及到的相关实体提取出来作为关系理解的目标,如飞享套餐、家庭宽带、全球通、魔百盒、等业务名词(实体),为下一步知识图谱构建语义网络提供实体节点。
关系识别是对非结构化文档处理的重要环节,自然语言中对事件的描述往往会以多个子句的形式存在,且多句之间具有相关性,关系识别需要对投诉工单数据的上下文,进行依存句法相关性分析,从而找出实体间存在哪种关系,以及关系周边的实体分别是什么,例如运维场景中“A 导致B”,“C 的解决方案是D”,面向运维场景的关系识别是构建RDF 三元组的基础。
知识图谱在进行知识抽取时所使用的数据源是多样化的, 存在知识重复、知识间关系不明确等问题。知识融合可消除实体、关系、属性等与事实对象间的歧义, 使不同来源的知识能够得到规范化整合。本系统对抽取出的三元组内容进行二次分析,将根据词性及依存句法抽取出的实体进行聚类,将涉及同类内容的实体进行融合,目的是达到运维知识图谱内容在B 域客服领域具备通用性。
知识图谱的质量取决于实体与关系抽取的准确性,也就是系统自动构建的RDF 三元组的质量,直接影响客户感知,决定了智能应答质量、知识库检索效率。本次课题的运维知识图谱,是由实体提取和关系识别后产生近5000 个RDF 三元组,存入图数据库后,增加的知识图谱可视化显示功能。
三元组是知识图谱感知的核心,预测是否准确,分类是否正确,均取决于构建精度。通过历史投诉数据构建完毕后,在模型构建流程中的增加测试、验证机制,确保三元组图数据库质量符合要求。模型生产发布之前,可以调用测试集数据进行测试,确保实体和关系抽取准确,对遗漏的逻辑进行补充。生产环境下,新业务规则、新数据、新模型构建均可能导致图谱识别不准,通过增加验证集,不断验证生产环境下元数据的质量,增强系统运维健壮性。
基于非结构化数据进行标注时,需要先根据图谱schema 定义标注内容。运维知识图谱中最重要的就是“故障原因”“故障现象”“解决方案”的关系信息,标注数据也是从这三个重要实体着手进行标注。“故障原因”“故障现象”“解决方案”的关系信息是运营重点标注的数据对象,力求标注精度,以实现分类准确,降低模型对数据量的依赖。
“工单号”“日志”两列都是经过数据清洗后的、原始的非结构化数据;“故障原因”“故障现象”“解决方案”三列,从源数据列中抽取到的对应故障的描述;“故障原因分类”“故障现象分类”“解决方案分类”三列是对故障对应的人工总结归类。
人工干预标注要求准确,每次标注都应该保证标注内容的准确性,如果模棱两可或者拿不准的可以不标注,随机标注时,尽量能覆盖多种分类,如果同一个类型的问题已经标过很多次了,也可以跳过不标。
知识图谱作为智慧中台中AI 中台的重要模块,通过智能机器人协同实现智能客服、多轮对话、知识库、工单处理和服务预测功能,当用户在知识库中搜索相关故障时,根据用户咨询问题检索图谱实体,将检索到的实体在图谱中进行可视化展现。
此次课题本阶段以基于一年工单及事件单等近2 万条数据数据源,系统目前已抽取出400 多个故障现象,50 多种解决方案,阶段性生成5000 多个关系三元组,存入Neo4j 图数据库,通过在知识首页可以查询构建好的知识库,具体根据搜索的内容去展现的相应实体节点和关系图谱。通过多轮次Schema 模型迭代,形成运维知识图谱的数据内核和知识心脏。高精度标注工单数据持续更新中。
当一线人员在智能机器人界面中输入问题时,知识图谱会根据用户的描述进行故障现象分类,进而通过知识图谱关系找到当前用户询问的问题的解决方案。目前已完成特定内容返回,后续待优化模型及匹配逻辑。
本课题从设计、运维到运营角度,都达到预期目标,关于本课题的不足,主要还是集中在围绕知识图谱构建技术上,例如,当前运维知识图谱实体提取的困难,数据源信息的不足,需要大量人工标注的问题,实体间关系的错综复杂,整体故障分类的长尾效应等等,遇到很多难题,都需要在接下来的工作中,逐步进行优化和提升。
接下来的工作,需要持续优化训练模型,当模型基本稳定后,数据源由当前的2019 年的业务源范围,扩展到18 年及以前的历史数据范围,也有可能会加入更多省数据,来尝试发现更多实体及关系,建立更庞大、更有效的知识图谱。
在知识图谱未来自动化模型构建的过程中,随着未来接入数据源量增加,业务负荷增加,对知识库检索效率和智能应答质量要求会不断提高,人工标准的工作量会相应增加,基于“少量人工标注+大量模型预测”的原则,打造智能标注,人工负责逻辑构建、少量数据标注,为减少人工标注工作量,在环节数据处理之后,增加预标注环节,在进行人工标注前,先使用通用领域命名实体识别标注工具进行数据预标注,针对目前比较常用的命名实体识别工具,比如:thulac 、LTP 、NLP IR 、jieba,后续将会做一些调研和比对工作。