本发明涉及配电网数据资产,尤其涉及一种基于图神经网络的配电网数据资产api识别方法。
背景技术:
1、在api识别领域,特征提取是一种关键的方法,传统的特征提取方法通过分析设备通信特征,如协议头、数据包结构、数据包长度、方向和时间间隔等来识别api,这些特征可以通过统计学、信息论和机器学习等技术进行分析和建模,以获得api之间的差异和特征,然而,由于配电网数据资产及其api数据资源的独特性,传统特征提取方法的适用性有限,如现有的方法考虑设备之间的拓扑结构和数据属性之间的相互关系不够,无法充分利用数据资产中潜在信息等,虽然机器学习和深度学习方法在api识别中取得了一定的进展,但在面对配电网数据资产及其api数据资源的复杂性和多样性时,标注大量的api数据会面临严重困难,深度学习方法通常需要大量数据和计算资源进行训练和推断,在实际应用中,仍然存在训练数据需求大、泛化能力有限、不易解释和对计算资源要求较高等方面的不足。
2、图神经网络(gnn)作为近年来出现的一种新型基于图结构的半监督学习模型,用于处理具有复杂相互关系的数据,特别适用于处理图结构数据,它通过学习图中节点和边的表示,能够捕捉图结构、节点及节点间的关联信息等,图神经网络在图分类、节点分类、链接预测等任务上表现出色,在配电网中,设备之间存在复杂的拓扑结构和设备属性信息,以及设备间的交互数据和对外服务的api具有各自不同名称、参数、数据格式和访问规则等内部信息,并且这些api之间存在调用、嵌套、回调和递归等关系,这些信息正好与图神经网络可以处理的任务不谋而合,但是传统的api识别方法难以准确提取这些关系和内部特征,导致识别结果的准确率不高。
技术实现思路
1、基于上述目的,本发明提供了一种基于图神经网络的配电网数据资产api识别方法。
2、一种基于图神经网络的配电网数据资产api识别方法,包括以下步骤:
3、s1,对配电网数据资产api数据进行分析和抽象:对收集到的配电网数据资产api进行分析和抽象,以获取配电网数据资产api之间的关联关系,关联关系包括调用、递归、嵌套和回调,构建配电网数据资产api数据网络图;
4、s2,api数据网络图的嵌入向量表示:基于配电网数据资产的api数据网络图,将api数据网络图从高维空间映射到低维空间,以低维向量的形式表示api数据网络图节点及api数据网络图的网络结构信息;
5、s3,对配电网数据资产api进行识别:基于多头注意力的图神经网络模型(mha-gnn模型),构建配电网数据资产api向量库,完成配电网数据资产api识别;
6、s4,对配电网数据资产api识别进行性能分析:通过多种评价指标对配电网数据资产api识别方法进行评估,以验证配电网数据资产api的识别性能。
7、进一步的,所述s1中的配电网数据资产api数据分析和抽象包括准备数据、微调gpt模型、抽取api知识以及构建api数据网络图,其中;
8、s11,准备数据:
9、梳理配电网数据资产api相关数据源以及用于gpt微调的训练数据格式化与标注,所述相关数据源包括配电网api动态数据、程序源代码、文档、拓扑结构和数据资产信息;
10、根据配电网数据资产api相关数据的训练集,标注训练集中api实体、属性和关系;
11、s12,微调gpt模型:
12、把已标注的训练集上传到gpt微调平台;
13、创建微调任务,根据上传的训练集和微调任务进行训练;
14、使用微调后的gpt模型进行api知识抽取;
15、s13,抽取api知识:
16、实体和属性抽取:利用微调后的gpt模型在api程序源代码和文档中,识别并提取出函数、类、参数、返回值的实体和属性信息;
17、关系抽取:通过分析源代码中的函数调用、参数传递对api之间的关联关系进行识别抽取;
18、知识融合:就是对从不同数据源中提取的api实体、属性和关系进行消除冲突、填补信息空缺,以形成知识表示;
19、s14,构建api数据网络图:根据抽取的api知识,构建配电网数据资产api数据网络图,使用图数据结构和图算法来表示存储实体、属性和实体间关系。
20、进一步的,所述api数据网络图采用三元组idn表示,表示为:
21、idn=(vi,εi,γi),其中,vi表示数据网络图的api节点及对应属性,若两个api节点之间存在调用、递归、嵌套、回调的关系,则两个api节点之间存在一条边εij(εij≤vi,vj>∈ε),γij表示边εij上的权重,权重值为api节点间存在关系的数目。
22、进一步的,所述s2中的api数据网络图的嵌入向量表示包括:
23、s21,利用node2vec的策略对api节点进行采样,设当前的api节点为vcur,上一个api节点为vpre,为获得下一个要采样的api节点vnext的概率,通过定义p和q两个参数来控制要采样的api节点,获得下一个要采样api节点的转移概率;
24、s22,定义下一个要采样的api节点vnext对于当前api节点vcur的条件概率;
25、s23,遍历api数据网络图,生成api节点列表,并利用skip-gram模型完成api节点的嵌入向量表示,通过参考skip-gram模型留存api节点列表中节点及邻域内节点的距离相对较近的邻域关系,获得的嵌入向量维度小于网络的节点数目,对api数据网络图进行降维,设临近api节点出现的概率仅与源点有关而与邻域内的其它api节点无关,并且一个api节点作为源点和作为临近节点时共享同一个嵌入向量,通过消息传递神经网络实现在源节点vi和临近节点vj之间的共享;
26、s24,获得node2vec优化目标,对于给定的每个节点u,采样列表中临近节点出现的概率最大。
27、进一步的,所述转移概率的计算公式为:
28、
29、其中,表示节点vpre和节点vnext的最短路径,1/p表示回退到vpre的概率,1/q表示采样时使用广度优先bfs或深度优先dfs的概率。
30、进一步的,所述条件概率计算公式为:
31、
32、其中,是api节点vcur与vnext之间的非归一化转移概率,z为归一化常数。
33、进一步的,所述消息传递神经网络的核心函数为:
34、
35、
36、其中,mt(·,·,·)为消息函数,定义第t个时间步节点vi和节点vj之间的消息,取决于两个节点的表征及其边信息ut(·,·)为更新函数,定义第t个时间步节点vi的更新方法,结合临近节点vj和节点vi本身表征的聚合消息,为节点vi的临近节点的集合,和为节点的表征向量。
37、进一步的,所述node2vec优化目标表示为:
38、
39、其中,f(u)是将节点u映射为嵌入向量的函数,ns(u)为通过采样策略bfs或dfs采样出节点u近邻节点的集合。
40、进一步的,所述s3中的电网数据资产api识别包括:
41、s31,利用图神经网络获得配电网数据资产各个api节点的权重,根据不同权重的邻居节点迭代出待处理api节点的特征向量,设vi表示第i个待处理的api节点,用表示vi的特征向量,表示vi的邻居节点vj的特征向量,nsi表示vi邻居节点的集合,邻居节点vj相对于vi的关系强度eij的计算公式为:
42、
43、其中,w∈rf‘*f为线性变换矩阵,f为输入特征的维度,f‘为输出特征的维度,为向量与的拼接运算,拼接后得到2f‘维度的向量,为相关联的两个api节点间的注意力权重向量,ncepuhzurelu为改进relu的激活函数,api节点vj相对于vi的注意力系数αij表示为:
44、
45、其中,softmax完成vi对所有邻居节点归一化处理;
46、s32,利用注意力系数矩阵[αij]完成对vi节点的更新,计算公式为:
47、
48、其中,ρ为非线性激活函数,为了确保api识别方法的稳定性,图神经网络的卷积层引入了多头机制,通过计算相互独立的k头注意力后求平均值或进行拼接来更新api节点特征,求平均值和拼接方式的多头注意力机制的计算公式分别为:
49、
50、
51、s33,在多头注意力层利用求平均值或拼接的方式把多头转变为单头,在注意力层输出api节点vi的特征向量再把映射成一个标量,使用标量作为api相似性排序的依据,完成配电网数据资产api识别工作。
52、进一步的,所述多种评价指标包括精准率precision、准确率accuracy、召回率recall以及f1值f1-measure,其中;
53、所述精准率precision的计算公式为:
54、所述准确率accuracy的计算公式为:
55、所述召回率recall的计算公式为:
56、所述f1值f1-measure的计算公式为:
57、其中,t代表识别结果符合实际情况,f代表识别结果不符合实际情况,p代表正样本(api向量库中实际存在的),n代表负样本(api向量库中不存在的),tp代表实际样本为正样本并被识别正确的个数,tn代表实际样本为负样本并被识别为负样本的个数,fp代表实际为正样本而被识别为负样本的个数,fn实际上是负样本而被识别为正样本的个数。
58、本发明的有益效果:
59、本发明,通过灵活应对不同规模和变动的配电网环境,传统的api识别方法往往需要大量标注数据和计算资源,而图神经网络可以在无标注或少量标注的较小规模数据集上训练模型,减少了标注数据需求和计算资源消耗。
60、本发明,通过图神经网络能够学习节点之间的关系和拓扑结构,具有较强的泛化能力,与深度学习方法相比,图神经网络能够解释模型对于每个节点的决策和影响,以及节点之间的关系,增强了方法的可解释性。
61、本发明,通过使用浅层图神经网络模型,较少了计算资源,相比于深度学习方法,图神经网络经过三五层就能达到较好的性能,减少了计算资源的消耗。