本文转载自公众号:InfoQ。
随着业务监控建设不断完善,海量业务故障时产生成百上千条告警,如何智能定位故障根源、实时统计业务影响是现阶段运营面临的一个难题。Google 利用知识图谱优化了其搜索服务以来,知识图谱得到了迅速发展。无论是工业界还是学术界,都出现了各种各样的知识库。能否将知识图谱应用在故障定位领域?领域性知识图谱和通用性知识图谱有什么区别?构建领域性知识图谱是否有可供参考的经验分享?又有哪些前景和挑战?
为此,InfoQ 采访到了腾讯互娱技术运营部高级工程师刘伟,请他来谈谈知识图谱如何助力游戏故障定位。
InfoQ:介绍下您目前所做的研究?在故障定位方面,是什么机缘让您选择了知识图谱?刘伟:我们现在所做的研究主要侧重于游戏故障定位相关的技术,涵盖以下三个方面:KPI 曲线异常检测、实时舆情故障分析及运维领域知识图谱构建。前面两方面的研究,是我们构建这个运维领域知识图谱的基础,有了前期游戏故障相关的数据,后续我们才能将知识抽象出来。
选择知识图谱用于故障定位,源于我们在游戏故障定位时,遇到的一些问题及用户需求的推动。首先故障定位是一个复杂的问题,需要综合多方面数据进行关联分析,并且需要融入运维专家的经验,而知识图谱在处理关系复杂性,对知识的可解释性方面具有优势。比方说,在发生一个游戏故障时,由于构建了游戏业务的图谱,各个模块之间存在关系,通过节点推导,很容易就找到真正发生问题的模块。
InfoQ:故障定位的知识图谱在腾讯怎么用?有什么收益?刘伟:知识图谱是一个很火的概念,但我们构建的知识图谱并非通用性图谱,而是领域性图谱,专注于运维领域。故障定位是这个故障图谱具体的应用场景,将故障领域内的知识通过 CMDB 技术和一些机器学习的技术抽象化,构建成图谱。由于是知识的存储,因此构建完成的运维知识图谱,在数据赋能的情况下,可以解决游戏中复杂查询、风险预测、智能问答等很多场景需求。现阶段收益主要丰富用户查询结果,提高故障定位准确率。
InfoQ:谈谈您对知识图谱的理解?在应用知识图谱前,需要掌握哪些技术?刘伟:知识图谱在学术界主要被定义为大规模语义网络,但在工业界,实际上可以理解为大数据环境下的知识工程,用于描述真实世界中的各种实体和概念,提供实体间的结构化关联关系。
知识图谱主要包括知识表示,知识获取和知识应用这三个部分。在应用图谱之前,对于知识表示技术和知识获取技术的掌握至关重要。知识表示技术主要是数据处理的粒度和层次,由于不同人对不同层次概念具有不同的认知,因而如何确认合理的数据层次和颗粒度面临着挑战。完全人工构建的层次概念到一定层次就会难以深入,具备一定的自动化表示能力才能继续推进。
现有自动化技术包括结合深度学习做信息抽取等。而知识获取技术主要是利用技术完成高质量的数据获取,也就是语料和知识的获取。尤其在领域性知识图谱中,知识质量的好坏决定着整个图谱的好坏。高质量的知识获取一般需要一定的人工干预,如何利用好人力资源并合理控制数据质量是其中的关键问题,结合众包技术做知识验证是目前较为常用的手段。
当然,知识图谱的建设永远不可能是完备的,后续在应用上可以根据实际的应用场景,不断优化和推理。
InfoQ:如何构建故障领域的知识图谱?有什么难点需要解决?刘伟:我们构建的知识图谱是领域性知识图谱,领域性的知识图谱和通用性的知识图谱在构建上存在一些差别,通用性的知识图谱是高度自动化的,而领域性知识图谱更需要结合一定的专家概念。在构建领域性知识图谱时,我们结合运营环境中的一些基础建设来确定知识的层次和颗粒度,比如 CMDB、应用配置管理系统等,这些系统内具备友好的结构化数据。同时,利用机器学习的方法来自动化地改进层次关系。然后,我们结合运维专家的经验,对于运维数据不断进行筛选和知识验证,修正和优化需要存储的知识。例如,单业务掉线且目标机房有网络波动,从设备信息上有关联,但从专家知识可以得知,网络波动一般会影响多个业务,如果只有这个业务掉线,则单地区的网络问题不是该业务掉线的原因,不存在关联。结合物理设备信息和专家逻辑信息,我们最终构建了某业务为核心的故障知识图谱。部分图谱的内容如下图所示。
目前存在的难点依然是很难获取到高质量的运维数据和相关语料,并且高度依赖专家知识的领域性知识图谱虽然质量较好,但后续的大规模扩展上也较为困难。
InfoQ:构建故障领域知识图谱过程中,踩过坑吗?有哪些经验可以分享?刘伟:在构建这个领域性知识图谱中,我们实际上也遇到了不少困难。在最开始构建中,我们期望能像构建一个通用性知识图谱一样,利用各种技术基本上自动化地从大规模数据中抽取实体和关系。但很快发现我们实际上并没有这样的大规模运维语料。因此我们渐渐考虑从具体场景入手逐步扩展:我们先从之前做故障定位的效果中看看哪些场景做的不好并且可以通过知识图谱来实现。然后结合目前运维现有结构化数据,我们不断细化数据的层次关系,这里我们也遇到了一个非常实际的问题,如多少程度的细化才能使整个图谱变得完备,这里的解决方案我们依然是依据场景,得出能解决问题的最粗粒度,然后根据不同的场景再不断深入,花费了很多力气来设计整个领域图谱的模式,这对后续专家知识的融合和整个图谱构建来说,是具有好处的。
InfoQ:据了解知识图谱在搜索领域应用的很广泛,那么,知识图谱在故障领域都有哪些应用?和搜索领域有什么区别?刘伟:知识图谱在搜索领域主要为丰富查询结果,展现给用户真正想要的东西。把网页搜索升级为语义搜索。现阶段我们构建的图谱聚焦故障定位场景,主要利用知识图谱辅助决策并使故障定位结果的具备可解释性。区别主要在于搜索领域主要是通用性知识图谱,而我们故障领域主要侧重于领域性知识图谱。相较而言,范围较窄、程度较深、依赖专家知识更多。
InfoQ:知识图谱是实现 AIOps 的必经之路吗?刘伟:这个问题挺难回答,谈下个人的一点看法。对 AIOps(智能运维)我们先设想下对它的预期,理想化是它可以做运维所有的事情,例如发布变更、业务巡检、故障处理、对外沟通等。做这些事情的前提,需要 AI 具备运维的背景知识,让 AI 像人一样思考并具备推理能力。因此知识图谱的引入正是把 AIOps 变成一个具有运维知识的 AI,知识图谱结合大数据下的机器学习,不断完善知识图谱,最终成为运维大脑。套用业界的一个观点,机器学习让 AI 更聪明,而知识图谱让 AI 更有学识。无疑运维人员是聪明的,而且各方面技术均涉及,是博学多才的杂家,利用领域性知识图谱,对于专家知识进行沉淀和存储,长远来看十分具有价值,可以说知识图谱是实现 AIOps 的关键技术之一。
InfoQ:知识图谱在故障定位方面的前景和挑战?刘伟:利用大数据 + 算法可以让 AI 具备感知的能力,在处理图像、语音、文字方面有非常好的效果,但对于复杂场景下的故障定位,则需要 AI 具备先验知识,有一定认知能力,所以我认为知识图谱的空间很大。知识图谱技术方兴未艾,在运维领域尚没有很好的参考案例,也没有很好的语料知识,因此有很长的路要走,希望更多的人加入,大家结伴而行。
作者简介:刘伟,10 年运维领域工作经验。2011 年加入腾讯,高级工程师,主要负责腾讯自研游戏运维及系统平台建设,主导开发腾讯游戏故障智能定位平台、实时游戏舆情监控系统,目前专注于 AIOps、运维大数据分析等智能运维领域工作。即将在 2018 CNUTCon 全球运维技术大会上分享《智能运维助力游戏故障定位》。
OpenKG.CN
中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 博客。