预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)国家知识产权局(12)发明专利申请(10)申请公布号CN115858277A(43)申请公布日2023.03.28(21)申请号202211270758.8(22)申请日2022.10.17(71)申请人复旦大学地址200433上海市杨浦区邯郸路220号(72)发明人彭鑫张可张晨曦(74)专利代理机构上海正旦专利代理有限公司31200专利代理师陆飞陆尤(51)Int.Cl.G06F11/30(2006.01)G06F11/34(2006.01)G06F40/289(2020.01)G06F16/901(2019.01)G06N3/04(2023.01)G06N3/0895(2023.01)权利要求书3页说明书4页附图1页(54)发明名称基于图神经网络与PU学习的分布式系统调用链异常检测方法(57)摘要本发明属于软件工程与云计算技术领域,具体为一种基于图神经网络与PU学习的分布式系统调用链异常检测方法。本发明基于分布式系统运行时产生的调用链数据,根据调用链上属性与父子关系构建调用链因果图,并利用图神经网络学习微服务系统产生的调用链因果图的正常、异常模式,在线使用时实时构建新产生的调用链因果关系图,并识别异常的调用链;具体包括:调用链跨度向量化、调用链因果图构建、图神经网络训练以及在线异常检测;本发明可以帮助运维人员和开发人员以很低的数据标注成本快速而准确地发现系统异常,并产生对应告警信息,加快分布式系统故障定位以及线上问题解决的速度,降低人工成本,提升系统可靠性。CN115858277ACN115858277A权利要求书1/3页1.一种基于图神经网络与PU学习的分布式系统调用链异常检测方法,其特征在于,使用分布式系统运行时的调用链数据构建调用链因果图,用于描述分布式系统中系统之间运行与相互调用的关系;通过收集历史调用链数据,并标注其中少部分异常调用链,使用PU学习训练基于图神经网络的分布式系统异常检测模型;将经过训练的异常检测模型部署至线上系统,用以实时检测调用链异常,快速发现系统问题;具体步骤为:(一)调用链跨度向量化针对调用链数据中的每个跨度,分别提取其语义信息、时间信息以及HTTP状态码信息,并分别将其向量化,并将三种信息向量拼接,作为调用链跨度的向量表示,从而使深度学习模型可以处理,并能反应调用链跨度本身的多维信息;(二)调用链因果图构建根据调用链跨度节点的父子关系,将上一步向量化后的调用链跨度连接为调用链因果图,用于描述分布式系统的调用运行状态;对于根据调用链上跨度记录的父子关系,包括traceId,spanId以及parentSpanId信息,将各个调用链跨度向量进行链接,得到调用链因果图;(三)训练基于图神经网络的异常检测模型将分布式系统运行时产生的调用链数据收集,标注其中少量的异常调用链为正样本,剩余数据不进行标注,以得到用于使用PU学习进行神经网络训练的正标签‑无标签调用链数据集;然后将该数据集输入图神经网络,以PU学习训练异常检测模型;包括:图神经网络计算每个节点相邻节点的注意力分数αij,以表示不同相邻接点的重要性的不同;通过使用多头注意力机制得到每个节点的向量表示hi;对于得到的图上的每个节点的向量,通过图平均池化得到每个调用链因果图的向量表示vg;使用多层感知机将该向量表示投影到一维,代表模型对该条调用链的异常状态判断;使用nnPU风险估计器估计异常检测模型在数据集上的风险以最小化该风险为训练目标调整神经网络的参数,通过训练得到异常检测模型;(四)在线异常检测将训练完成的模型部署在系统中,每当有新调用链产生,依次执行步骤(一)‑(二),获得对应的调用链因果图,将图输入异常检测模型中,得到该图的向量表示,并通过多层感知机投影至一维,得到最终异常检测判断结果。2.根据权利要求1所述的分布式系统调用链异常检测方法,其特征在于,步骤(一)具体包括如下子步骤:(1)调用链跨度语义信息向量化;首先将跨度上servicename以及operationname拼接作为一个句子,然后对其进行预处理,包括分割为单词、去除分隔符、单词小写化、去除非语言字符;然后使用WordPiece算法对上述处理后的句子进行分词,以缓解out‑of‑vocabulary问题;再使用BERT模型计算获得该处理后句子的嵌入,取BERT模型最后一层TransformerEncoder的输出作为句子向量Esemantic;2CN115858277A权利要求书2/3页(2)调用链跨度时间信息向量化;首先统计调用链中每个跨度的持续时间与调用链总持续时间;再根据调用链中跨度的父子关系,对于每个跨度,得到持续时间、等待时间、本地执行时间、相对开始时间共四个时间特征;对于每个一维时间特征t,使用线性层将其投影至高维,并使用softmax函数获得该事件