运维服务事件中关键信息实体抽取技术

【www.zhangdahai.com--其他范文】

[周琴芳 吴丹 宋志博]

智能运维(Artificial Intelligence for IT Operations,AIOps)是将人工智能与运维相结合,通过机器学习的方法来提升运维效率。目前的智能运维通过算法能够实现识别故障类型、根因分析以及业务流量预测等功能[1]。事件管理作为AIOps工作流程的重要部分,目的是通过尽快减轻任何问题来减少对系统造成的影响。以前关于事件管理的工作主要集中在两个挑战上:事件筛选[2]和诊断[3]。在这里,筛选是指识别事件并将其发送给能解决这个问题的团队。Chen等人[4]做了一项实证研究,他们发现高达60%的事件是被错误地筛选。他们提出了一种深度学习方法:DeepCT,它主要是利用事件数据(标题、摘要、评论)和环境因素对事件进行分类。

事件管理中的一个关键挑战在于缺乏这些事件的结构化表示[5]。这些事件来源比较广泛,可能是客户、工程师,甚至自动化监控系统产生。它们大多是非结构化的,包含多种类型的信息,如事件元数据、描述、堆栈跟踪、shell脚本输出、图像等。因此,运维工程师需要花费大量的精力手动解析详细的事件描述来理解问题,定位关键信息以

缓解问题,并最终让适当的团队来解决问题。

因此,在这项工作中,我们解决了从服务事件中提取关键信息实体的问题。这种关键信息实体将为自动化流程(如日志提取和健康检查)开辟道路,从而减少运维工程师所花费的精力。提取出的实体还可以帮助建立更好的模型来执行下游任务如分类和根本原因分析。

理想情况下,实体抽取框架应该具备以下特点。

(1)它应该是无监督的,因为注释大量的训练数据是费力和昂贵的。而且服务的独特词汇表是未知的。

(2)它应该是与领域无关的,以便能够扩展到高容量和大量的信息实体类型。与网络领域不同的是,在网络领域中只有一小部分关键实体,如人、地点和组织,对于一些事件。我们无法先验地知道这些事件中的实体。

(3)它应该是可扩展的,这样就可以将这些技术应用于其他服务的事件,甚至其他数据集,如漏洞报告。这是至关重要的,因为每个服务(例如计算、网络、存储)都有其独特的词汇和术语。

为此本文提出一个新颖的通用关键信息实体提取(UNER)模型,这是一个以无监督方式从服务事件中提取实体的框架,它有3个特性:无监督、与领域无关和可扩展。本文其余部分组织如下:第2节介绍了事件生命周期,第3节概述通用关键信息实体提取(UNER)框架,第4节详细介绍通用关键信息实体提取(UNER)框架的各个模块,第5节为UNER模型训练和评估,第6节总结了全文的研究工作。

事件被定义为产品或服务的意外中断或退化,从而对客户造成影响。例如,连接缓慢、超时、崩溃等都可能构成事故。事件管理流程定义了事件从创建到关闭所经历的各个步骤。故障和事件是非常不同的,事件可能会也可能不会导致故障。此外,事件经常需要应对事件的开发人员参与。大多数在线服务都有自己特定的事件管理协议。这个生命周期流程图是一个通用的过程。事件生命周期如图1所示。

图1 事件生命周期示意图

事件管理过程大致分为4个阶段。第一阶段是告警阶段,通常,当服务监视到的指标性能方面(例如,响应慢、传输速度慢、系统挂起或崩溃等)低于预定义的可接受级别时,就会触发警报。这就引出了第二阶段——介入阶段。在此阶段,首先创建事件工单,然后分配给对应的团队。这个将事件关联到对应团队的过程是自动的,基于经验判断或者系统设置。该团队与相关的工程师合作调查事件,或者将其重新分配给一个更合适的团队。这个过程被称为事件分类,这里主要是确定合适的团队来介入这个事件。分类后就进入调查阶段,被分配的团队要缓解事件带来的影响和根本原因分析。然后,把识别出的错误(如果有的话)提交给工程师团队进行修复。在最后阶段——修复阶段,事件被解决和系统中对应的故障被修复。本文主要的工作是利用无监督的方式从服务事件描述中提取实体信息,应用于介入和分析阶段。

事件管理是高效运行大规模服务的关键之一。现有的事故管理工作主要集中在事故分类方面。最先进的事件分类方法采用新颖的深度学习方法,这种方法以原始的非结构化的事件描述作为输入[4]。本文的工作主要集中在从这些非结构化事件中提取关键信息实体。基于这些信息实体,可以通过自动化手动流程(如在本节结尾的示例中所描述的,对标识的资源运行自动健康检查),来减少工程师的排查时间。与此同时还可以为事件分类等任务构建更简单更好的机器学习模型。

为了解决事件管理的挑战,我们设计了UNER框架。这是从服务事件中提取关键信息实体的自动化方法。这个框架是基于命名实体识别(NER)任务的,命名实体识别(NER)任务在信息检索(IR)领域已经得到了很好的研究。命名实体识别被定义为解析非结构化文本的任务,不仅检测实体,而且将它们分类到特定的类别。实体可以是给定类型或类别的任何文本块。例如,下面是新闻标题的命名实体识别(NER)任务的输入和输出:

输入:2021年北京环球影城累计接待游客210万人次

输出:[2021年 时间][北京 地名][环球影城 组织机构]累计接待游客[210万 数目]人次。

本文提出的UNER框架不仅能够从事件中提取关键信息,而且能够将它们归类为特定的实体。例如,能识别出文本中的一个GUID标识,并且基于上下文的信息将这个GUID分类为具体某个实体比如资源代号,这有利于引导工程师去分析可能是某个资源出现问题了。基于提取出来的实体对执行诸如分类等任务的其他模型也有用。因此,与文本摘要提取等其他解决方案相比,实体抽取方案更适合于事件管理场景。

任何监督机器学习的一个关键限制是需要大量的标记数据,这种标记的产生需要大量的人力成本。在服务事件中,由于缺乏现有的训练数据使我们无法使用任何监督或半监督技术。UNER使用句法模式匹配提取器,它利用事件描述中的键值对和表格结构这两种模式来引导训练数据。然后,采用标注扩充的方式来标注到这些模式之外的训练数据。UNER框架是一个多任务深度学习模型,该模型能够从非结构化事件描述中提取命名实体,并且获得了很高的准确性。该模型不仅利用了语义特征,而且还利用私有标记的数据类型(如GUID、URI、布尔值、数值、IP地址等)。UNER模型中的实体类型如表1所示。

表1 UNER模型中的实体类型

这一节将详细描述实现UNER的命名实体识别流程的方法。UNER命名实体识别流程如图2所示。

图2 UNER命名实体识别流程图

从数据清洗过程开始,接着是无监督数据标注。然后描述了标注扩充过程和深度学习模型的结构。

4.1 数据清洗

服务事件的报告来自各种各样的源头,如外部客户、功能工程师甚至自动化监控系统。信息可以有各种形式,如文本语句、会话、堆栈跟踪、shell脚本、图像等,所有这些都使得事件信息是非结构化的并且可读性差。所以要求对原始数据进行清洗,首先裁剪事件描述中超过两列的表并使用正则表达式和解析器去掉超文本标记语言(HTML)标记。在这个过程中,使用换行符将信息分割成句子。接下来,通过清理多余的空格来处理单个句子并进行分词。

4.2 无监督数据标注

本文中一个主要的挑战是缺少可用于监督训练命名实体识别(NER)任务的标签数据集。手动标注数据的开销是非常大,因为实体类型是未知的,而且在不同的服务中也有所不同。因此,UNER使用无监督框架来创建标注语料库。以下是为命名实体抽取自动生成标注语料库的步骤:

(1)实体类型标注:如上所述,既没有预先存在的标注数据集,也没有预定义的实体类型集。因此,在这个阶段,首先确定一个候选实体集。然后,清理该实体集合并消除噪声实体。最后得到一个用于标记事件数据的实体集合。

步骤1A(候选实体的确定):由于没有先验的实体类型列表,首先使用一组无需人工识别的候选实体名称和值对来做引导。为此,使用事件描述中常见的一些结构模式构建了模式提取器:

键值对:该模式通常在事件描述中用于指定各种实体,其中实体类型(键)和值通过分隔符(如‘:’)连接。例如,“状态码:401”或“问题类型:虚拟机(VM)未找到”。用分隔符分割句子,并提取前半部分作为实体类型,后半部分作为实体值。

表格:表格也经常出现在事件描述中,这些表格经常是由机器人或监控服务创建的。在一个包含两列的html表格中,通常提取第一列的值作为实体类型,第二列的值作为实体值。

上述常见的模式用于在解析数据集之后提取实体-值对的候选集。值得注意的是,上面列出的模式并不构成一个详尽的实体集。使用弱监督等方法,可以使更多的模式用来生成标记数据。

步骤1B(候选实体的排除):通过步骤1A获得了初步的实体名称和值的候选集合。由于这些模式比较简单,满足这些模式而提取出的候选集是有噪声的,首先过滤掉了包含符号或数字的候选实体名称,然后从候选实体名称中提取n元字节片段(n的取值是1到3),并取出现频率最高的K个n元字节片段。这里,K是一个参数,用来检索固定数量的实体类型。在这个过程中,较少出现和有噪声的候选实体类型,如“令牌获取启动”和“数据库连接”,将要被去除。此外,使用这种n元字节片段方法能处理实体-值的变体问题,如[“我的订阅Id”,“6572”]和[“这个订阅Id”,“6572”]将被转换为[“订阅Id”,“6572”],因为“订阅Id”是候选集中常见的3元字节片段。

执行上述步骤后,确定了以n元字节片段表示的最终实体类型集合。基于这个集合,对数据集中出现的这些n元字节片段都进行一次标记。使用无监督方法提取实体的例子请参见表1。

(2)数据类型标注:对于精炼后的实体候选集,接下来我们使用内置Python内置函数(如“isnumeric”)和自定义正则表达式来推断实体值的数据类型。除了实体类型标记之外,这个步骤还在UNER的多任务学习模型中得到利用,在该模型中,我们联合训练以预测实体类型和数据类型。这些任务是互补的,有助于提高每个单独预测任务的准确性。基于与服务工程师的讨论,我们定义了如下数据类型:

① 基本类型:数字,布尔,字母,字母数字,非字母数字

② 复杂类型:GUID,URI, IP 地址

③ 其他类型

为了推断给定实体的数据类型,对数据集中出现的每一个命名实体进行计算。然后,使用最常见的类型来解决冲突。例如,如果“虚拟 IP”实体通常被指定为IP地址,由于噪声或虚拟值的原因,有时被指定为布尔值,但仍能正确地推断其数据类型为IP地址。

4.3 标注扩充

对于无监督标记,我们使用模式提取器和弱监督方式引导训练数据。即使产生了优化后的实体数据集,但是召回率将受到影响,原因是实体可能不在所选键值或表格模式的上下文中。在缺乏真实数据或标记数据的情况下,这是一个难以解决的问题。因此,为了避免深度学习模型在用于引导标记数据的特定模式上过拟合,我们希望将标签一般化或多样化。

利用标签扩充的处理来解决这一挑战。具体操作是扩充过程中提取的实体值,并将它们的类型传播到整个语料库。例如,如果IP地址“127.0.0.1”被提取为“源IP”实体,我们将把语料库中所有未标记的“127.0.0.1”标记为“源IP”实体。这会存在一些特定的边缘情况需要处理。例如,我们不能把这个技术用于布尔数据类型的实体。它也不适用于那些值是描述性的实体。最后,在扩充过程中,同一特定值在不同地方出现可能被标记为不同的实体,根据这些不同的实体在整个语料库中出现的频率,选择频率最大的那个实体来标记这个值。

4.4 网络模型算法

前几节解释了UNER流程的各个阶段,如图2所示,这些阶段完成了自动化创建标记数据的重要任务。在这里,我们提出了一种新的基于transformer的多任务深度学习模型,进一步强化了实体提取。该模型同时解决了两个实体识别任务-实体类型识别和数据类型识别。该模型使用了一种架构,该架构共享两个任务的一些通用参数和层,但也具有特定于任务的层。架构网络结构如图3所示。

图3 网络结构图

首先使用预先的词元分析器(tokenizer)将事件描述进行词元化,并根据词表转化独热码向量形式(one-hot)。然后再通过嵌入层(Embedding)转换为词级向量。嵌入层主要是减少one-hot向量的稀疏度,并强化词之间的语义关系。词向量序列由tranformer encoder层进行特征学习。然后,我们为这两个任务设置了不同的层。最后,条件随机场(Conditional Random Fields:CRF)层生成有效的输出标签序列。在执行反向传播的时候,我们组合了训练种的损失函数(loss functions),评估精度、召回率和F1指标。在以下小节中,我们描述了模型中使用的重要层和方法。

4.4.1 Tokenizer

Tokenizer主要用于文本的预处理,能够将句子级文本转化为词级的文本,然后用于接下来的词向量转化。在中文任务中,一般是将整个文本切成字(英文任务中,一般是切成词word,为了统一描述,后续都用词表示),然后根据词表ID生成one-hot形式的向量。例如:文本“网络”,假设词表大小是4(实际词表维度比例子大的多)是:

4.4.2 Embedding 层

使用One-hot 方法编码的向量会存在两个典型的问题:高维稀疏和缺乏词级关联性。

高维稀疏:假设我们的词表包含12 000个词,当时用One-hot编码时,每一个词会被一个包含12 000个整数的向量来表示,其中11 999个数字是0,要是词典再大一点的话这种方法的计算效率比较低下。

缺乏词级关联性:在文本语义表诉中,词与词之间是具有一定关联性的,但是one-hot向量之间是完全正交的,没办法表征词间关联性。

为了解决上述问题,引入Embedding层,Embedding层可以通过One-hot向量与Embedding矩阵相乘来实现。还是以文本“网络”举例:

Embedding矩阵参数通过网络训练学习后,更能表征词级特性。

4.4.3 transformer

最近几年,transformers在NLP领域得到极大的应用。本文也采用了transformer作为主要特征提取结构。transformer可以通过堆叠多个transformer block组成,本文堆叠了12个block,每个block中有2个子模块:自注意力模块和前向模型。transformer block基本结构如图4所示。

自注意力模块可以使得模型更加关注到实体部分,注意力模块效果如图5所示。

图 4 transformer block

图5 注意力模块效果展示

自注意力模块的实现方式可以参考论文[9]。

4.4.4 CRF

简单地使用隐藏状态表示(ht)作为单词特征,在单词级别做出独立的标签决策,这种方法没有考虑到命名实体识别等任务中输出标签之间的固有依赖关系。我们的NER任务也有类似的特点,因此UNER最开始的时候就考虑到一些强文本结构特征,例如键-值对(key-value )中的":"分割符,html表格标记等。为了学习这些依赖关系,以及将它们推广到更加一般化的场景,我们采用CRF来做标签决策。

这里 A 表示转移得分矩阵,Ai,j是从 tag i到 tag j的转换分数。得分s进一步通过归一化操作,转化成正确的输出序列y在所有可能的输出序列Y的概率值。模型的目标就是最大化这个概率值。在从输入序列抽取实体的过程中,我们预测具有最高得分的输出序列作为输出结果。

4.4.5 多任务学习

Caruana等人将多任务学习(MTL)定义为一种通过使用相关任务之间共享的基础公共信息来改进模型泛化的方法。MTL的一些著名应用是多类和多标签分类。在文本分类和序列标注任务中,MTL可以通过联合学习来提高单个任务的性能。在UNER中,命名实体识别是主要任务。在这个任务中,模型主要从文本中出现实体的上下文来进行学习。但是我们也注意到,结合预测数据类型当作辅助任务,能够间接地强化模型的训练。例如,输入文本“源IP地址是127.0.0.1”,我们的模型更准确地将127.0.0.1识别为实体类型源IP地址,因为它同样被识别为IP地址的数据类型。这种设计强化了源IP地址都是IP地址数据类型这一特征模式,提高了模型的预测能力。如图3所示,我们使用了多头的网络架构,其中transform层生成的低层特征是共享的,而其他层是任务特定的。我们将实体类型预测定义为主要任务,将数据类型预测定义为辅助任务。最初分别计算和两个任务的损耗,然后将其合并为。参数loss_weights=(α,β)用于控制主任务和辅助任务之间的重要性。

5.1 训练

我们使用 Python 3.7.4和PaddlePaddle 2.3.1来完成模型的搭建及训练。模型的超参设置如下:词嵌入层的维度是512,transformer采用了12个block堆叠,最长的序列长度限制在512。这些超参能够得到一个效果鲁棒并且参数量也中等的模型。我们的模型在Ubuntu 16.04 LTS 64位系统机器上训练,机器搭载了一块Nvidia Tesla v100 GPU,显存是16 GB。不同模型的验证效果如表2所示。

表2 验证结果

5.2 评估

我们在内部系统上收集了2个月的历史事件数据。我们将模型和两个基线模型,BiLSTM CRF和具有注意机制的BiLSTM CRF进行比较。这两个基线模型在NER和其他自然语言处理任务上目前是先进的。我们在固定的测试集上进行评估,这些测试集是通过无监督自动标注获取的。我们确保测试集和训练集之间没有交集。我们使用平均精度、召回率和F1指标来评估和比较NER任务上的模型。如表2所示,我们观察到,基线BiLSTM CRF(有和没有注意力机制)的F1平均得分约为0.88。而UNER的多任务模型的F1平均得分较高,约为0.96,即F1提升了8.7%。我们还观察到平均召回率高达0.95,反映了从描述中提取大量相关信息的强大能力,这将直接影响到理解问题和查找资源的准确性。通过测试集上被错误标注的样本,我们进一步分析模型的泛化能力。我们观察到,由于自动标注工具特征提取器的局限性,一些FPs实际上模型预测是正确的,但是在测试集中被错误标注了。FP样例如表3所示。

表3 FP样例

让我们以表3中的示例1为例。在这里,无监督标注工具只能将“2AA3BC0-79861abc-a98b-443fd7245e6”标注为订阅ID,而不能将“vaopnuk vnet sc”标记为vnet名称。UNER能够从从语句中抽取出2个实体,证明它泛化能力不仅仅只是文本上的固定结构。第2行显示了一个类似的假阳性示例,提取192.168.0.5作为IP地址。

事件管理是构建和运营大规模云服务的关键部分。在本文中,我们提出了UNER,能够无监督生成标注数据,算法网络结构结合了transformer和CRF,可以从事件报告中抽取实体信息。我们在内部运维系统中对UNER进行了评估。我们的评估表明,即使UNER是完全无监督的,但它从非结构化事件数据中学习实体类型的精度高达0.96。此外,我们的多任务模型架构在实体提取方面优于现有的一些基线模型。未来我们可以进一步利用抽取的实体信息,构建更精确的关键事件管理任务模型,如分类等。

猜你喜欢 数据类型实体文本 文本联读学概括 细致观察促写作云南教育·小学教师(2022年4期)2022-05-17如何理解数据结构中的抽象数据类型数码世界(2020年5期)2020-06-23初中群文阅读的文本选择及组织甘肃教育(2020年8期)2020-06-11作为“文本链”的元电影艺术评论(2020年3期)2020-02-06前海自贸区:金融服务实体中国外汇(2019年18期)2019-11-25实体书店步入复兴期?当代陕西(2019年5期)2019-03-21两会进行时:紧扣实体经济“钉钉子”领导决策信息(2017年9期)2017-05-04振兴实体经济地方如何“钉钉子”领导决策信息(2017年9期)2017-05-04基于SeisBase模型的地震勘探成果数据管理系统设计计算机时代(2017年2期)2017-03-06线上众筹产品的特征分析与研究时代金融(2016年27期)2016-11-25

推荐访问:抽取 实体 关键

本文来源:http://www.zhangdahai.com/shiyongfanwen/qitafanwen/2023/0713/624601.html

  • 相关内容
  • 热门专题
  • 网站地图- 手机版
  • Copyright @ www.zhangdahai.com 大海范文网 All Rights Reserved 黔ICP备2021006551号
  • 免责声明:大海范文网部分信息来自互联网,并不带表本站观点!若侵害了您的利益,请联系我们,我们将在48小时内删除!