网络安全知识图谱的嵌入表示方法及装置与流程

文档序号:26938177发布日期:2021-10-12 13:24阅读:63来源:国知局
网络安全知识图谱的嵌入表示方法及装置与流程

1.本发明属于知识图谱与知识嵌入领域,具体涉及一种集成多种嵌入算法针对网络安全实体与关系进行嵌入表示的方法及装置。


背景技术:

2.知识图谱的概念是以语义网络为原型,近几年因为google知识图谱的推出而被大众熟知。知识图谱可以看作是以网络或者图的形式构成的知识库,主要以“实体-关系-实体”的三元组形式组成。知识图谱本身可以作为一个百科类的知识库或者专业领域的信息库,在知识图谱的基础上可以结合自然语言处理等技术完成搜索和智能问答等应用。
3.当在知识图谱的基础上,需要进一步完成与语义计算或者推理等相关的功能时,网络形式的表示方式只能提供实体间的有无关系,无法体现实体间的语义相似性以及同一关系下的语义区别,例如有三元组(a,r,b)和(a,r,c),表示实体a与实体b、c均有关系,但是无法体现实体a与哪一个实体关系更加紧密。同时,大规模的知识图谱往往存在数据稀疏的问题,只依据有无关系来查找或者计算容易忽略较难到达的边缘信息。
4.因此应用嵌入表示(也称为知识表示学习)将实体与关系的语义信息表示为稠密低维向量,可以解决知识图谱原本实体与关系的“独热表示”带来的问题,例如信息独立、信息丢失等。嵌入表示的低维向量能够提高计算效率,有利于语义相似性计算,同时能够利用知识图谱中所有实体和关系信息,减少数据稀疏带来的影响。目前知识嵌入表示的模型有早期的se模型,还有transe、transh、transd为代表的翻译模型以及ntn等结合神经网络的模型。
5.为了网络安全知识图谱的基础上进一步利用网络安全数据特征以及知识图谱结构特征完成推理和搜索等扩展功能,需要结合知识嵌入算法来完成网络安全知识图谱的嵌入表示。
6.目前存在多种不同设计以及针对不同应用场景的嵌入算法,需要用户针对网络安全数据选取最合适的嵌入算法。然而,这些算法原本的实验结果只能作为参考,一是因为原算法使用的评价标准有所区别,无法横向比较不同类型的嵌入算法;二是因为网络安全数据属于专业领域数据集,经典的嵌入算法的实验均基于公共数据集。因此,用户需要通过大量的训练实验来进行对比分析,最终根据每一次的实验结果确认适合网络安全数据特征的最优嵌入算法,这些训练实验过程中用户每一次都需要分别对不同嵌入算法的训练进行设定以及配置,需要手动配置每一次训练,然后等待训练完成进行下一次配置,无疑会极大地耗费用户的时间以及精力,而且很容易出现错误。


技术实现要素:

7.为解决上述问题,提供一种集成多种不同的嵌入算法从而完成网络安全数据的嵌入表示,并根据结果进行对比分析显示的嵌入表示方法,从而方便用户根据结果选取最优的嵌入表示模型和配置方式,本发明采用了如下技术方案:
8.本发明提供了一种网络安全知识图谱的嵌入表示方法,其特征在于,包括如下步骤:网络安全数据预处理步骤,基于预先构建的网络安全知识图谱本体对网络安全数据中的实体和关系进行整理,并抽取该网络安全数据中的关键实体和关系作为附加信息,从而形成结构化数据;网络安全数据集构建步骤,基于结构化数据对实体和关系进行索引标注,并计算附加信息作为训练权重,从而构建出含有训练权重的网络安全数据集;嵌入算法模型选取及配置步骤,显示预存的多个嵌入算法的名称让用户选定需要进行对比实验的嵌入算法,并让用户输入相应的配置参数从而形成一个训练任务;嵌入算法模型训练步骤,执行训练任务,生成并保存的嵌入表示结果;嵌入算法模型测试步骤,基于嵌入表示结果进行链接预测从而生成并保存测试结果;训练结果分析以及显示步骤,基于被选取的嵌入算法以及被输入的参数配置作为区分,显示给用户查看从而让该用户选择最优的表示结果应用到网络安全知识图谱本体中。
9.本发明提供的网络安全知识图谱的嵌入表示方法,还可以具有这样的技术特征,其中,训练权重的计算方式为:
[0010][0011]
式中,w
r
表示关系r的训练权重,e表示特征集合,|e|表示特征数量;e表示单个特征;w
e
表示特征e的对应值;f
n
(x)表示对所有x值进行归一化处理,该归一化处理采用min-max方式。
[0012]
本发明提供的网络安全知识图谱的嵌入表示方法,还可以具有这样的技术特征,其中,嵌入算法为trans翻译模型系列,对应该trans翻译模型系列的改进评分函数的定义如下:
[0013]
f
r
(h,t)=‖h+(1+w
r
)r-t‖
1/2
[0014]
式中,h表示头实体,r表示关系,t表示尾实体;w
r
表示关系r下的训练权重,数值范围在[0,1];“1/2”表示l1范数以及l2范数。
[0015]
本发明提供的网络安全知识图谱的嵌入表示方法,还可以具有这样的技术特征,其中,训练任务具有对应的优先级,当嵌入算法模型选取及配置步骤中形成训练任务时,该训练任务被加入一个训练队列,在执行嵌入算法模型训练步骤前对训练队列进行检索,并在根据优先级获取相应的训练任务并执行嵌入算法模型训练步骤。
[0016]
本发明还提供了一种网络安全知识图谱的嵌入表示装置,其特征在于,包括:网络安全数据预处理部,能够基于预先构建的网络安全知识图谱本体对网络安全数据中的实体和关系进行整理,并抽取该网络安全数据中的关键实体和关系作为附加信息,从而形成结构化数据;网络安全数据集构建部,能够基于结构化数据对实体和关系进行索引标注,并计算附加信息作为训练权重,从而构建出含有训练权重的网络安全数据集;嵌入算法模型选取及配置部,用于显示预存的多个嵌入算法的名称让用户选定需要进行对比实验的嵌入算法,并让用户输入相应的配置参数从而形成一个训练任务;嵌入算法模型训练部,用于执行训练任务,生成并保存的嵌入表示结果;嵌入算法模型测试部,用于基于嵌入表示结果进行链接预测从而生成并保存测试结果;以及训练结果分析以及显示部,能够基于被选取的嵌入算法以及被输入的参数配置作为区分,显示给用户查看从而让该用户选择最优的表示结
果应用到网络安全知识图谱本体中。
[0017]
发明作用与效果
[0018]
根据本发明的网络安全知识图谱的嵌入表示方法,由于针对网络安全数据进行预处理,集成多种嵌入表示算法,加入网络安全数据特征改进训练算法进行嵌入表示训练,并提供统一的评价标准方便对比各种算法的嵌入表示结果,该嵌入表示方法提供了“预处理-构建数据集-配置-训练-测试”一体化的训练方式,因此方便了用户对网络安全数据集进行处理,使得用户可以在不同嵌入算法以及不同配置下进行大量的训练实验,更直观比较分析训练结果,进一步能够基于本发明的嵌入表示方法所显示的结果选取针对网络安全数据表现最优的嵌入算法。
[0019]
本发明目的是能够利用不同的嵌入算法完成网络安全数据的嵌入表示,根据训练结果进行测试实验对比分析,选取最优的嵌入表示模型和配置方式。
[0020]
集成多种嵌入算法针对网络安全数据进行预处理,集成多种嵌入表示算法,加入网络安全数据特征改进训练算法进行嵌入表示训练,并提供统一的评价标准方便对比各种算法的嵌入表示结果
[0021]
本发明针对网络安全数据进行预处理,集成多种嵌入表示算法,加入网络安全数据特征改进训练算法进行嵌入表示训练,并提供统一的评价标准方便对比各种算法的嵌入表示结果。同时,为了选取针对网络安全数据表现最优的嵌入算法,该工具提供“预处理-构建数据集-配置-训练-测试”一体化的训练方式,更加方便处理数据集,支持在不同嵌入算法以及不同配置下进行大量的训练实验,更直观比较分析训练结果。
附图说明
[0022]
图1是本发明实施例中网络安全知识图谱的嵌入表示方法的流程图;
[0023]
图2是本发明实施例中网络安全知识图谱本体的示例图;
[0024]
图3是本发明实施例中网络安全数据集示例;
[0025]
图4是本发明实施例中创建训练任务的界面示例;
[0026]
图5是本发明实施例中训练结果的显示示例。
具体实施方式
[0027]
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下结合实施例及附图对本发明的网络安全知识图谱的嵌入表示方法及装置作具体阐述。
[0028]
<实施例>
[0029]
本实施例中,网络安全知识图谱的嵌入表示方法被编写为计算机程序并在一台由用户持有的计算机中实现,采用的开发编程语言为python3,开发环境涉及mysql数据库以及tensorflow框架。计算机的运行环境为core i7-8700 cpu 3.20mhz,16gb内存,ubuntu 16.04操作系统。
[0030]
本实施例中的数据主要来源于公开漏洞数据源nvd以及cve。cve列表是由mitre于1999年发起,nvd是由美国国家标准技术研究院于2005年发布。nvd和cve完全同步,nvd中对于cve列表中的信息提供更多扩展和补充,包括修复信息和影响等级等。
[0031]
图1是本发明实施例中网络安全知识图谱的嵌入表示方法的流程图。
[0032]
如图1所示,网络安全知识图谱的嵌入表示方法具体包括如下步骤:
[0033]
步骤s1,网络安全数据预处理:基于预先构建的网络安全知识图谱本体对网络安全数据中的实体和关系信息进行整理,并抽取该网络安全数据中的关键实体和关系信息作为附加信息,从而形成结构化数据。
[0034]
本实施例的步骤s1中,网络安全数据为预先收集的一定规模的公开数据,该公开数据包括公开漏洞库数据以及部分网络爬取的数据,以公开漏洞库数据为主,爬取的数据作为数据补充。
[0035]
本实施例中,预处理过程主要按照图2所示的网络安全知识图谱本体来完成,根据网络安全知识图谱本体来抽取网络安全数据中的实体和关系,将原始数据预处理为结构化数据,方便下一步构建数据集。其中,结构化数据包括3种文件:罗列实体名称和所属类型的实体文件、包括头尾实体类型的关系文件以及三元组文件,该三元组文件包括了三元组中的两个实体、一个关系以及一组附加信息。
[0036]
本实施例中,附加信息包括和实体以及关系相关的特征信息,例如实体“vulnerability”和实体“product”有关系“affect”,附加信息即为和该“vulnerability”有关系的“product”占所有“product”的比例,具体的意义表示为该漏洞能够影响多少产品,体现出该漏洞的影响范围。
[0037]
步骤s2,网络安全数据集构建:基于结构化数据为实体和关系进行索引标注,并计算附加信息作为训练权重。
[0038]
本实施例的步骤s2中,构建网络安全数据集是在结构化数据的基础上,进一步进行数据处理,具体地:结构化数据将三元组关系以“实体-关系-实体-训练权重”的方式组织,从中将所有实体抽取出并分配唯一id,单独保存为json文件,同样抽取所有关系保存为json文件,同时根据以上两个文件,将所有三元组的表示替换为对应索引的表示并保存在json文件中,以上三个文件内容构成用于嵌入表示的网络安全数据集。训练权重由附加信息计算得来,每种关系抽取的附加信息有所区别,可以根据实际应用进行定制。例如,根据实验经验,一般针对“v_impact_p”关系中,即“漏洞(vulnerability)”类型的实体“影响(impact)”“产品(product)”类型实体,抽取的是该漏洞实体本身的“score”信息,也就是该漏洞的评分信息,同时附加信息还包括该漏洞影响的产品数量,即该实体和多少个“product”类型有同样的“v_impact_p”关系。
[0039]
本实施例中,网络安全数据集的核心内容围绕网络安全知识图谱本体,如图2所示,本实施例的网络安全知识图谱本体涉及的内容主要以实体“vulnerability”为中心,其中重点关注的实体以及关系是“vulnerability”、“product”以及“vendor”之间,该本体中属于“vulnerability”的“impactscore”实际含义是对于漏洞的影响评分,可以作为附加信息单独抽取,抽取后统一作归一化处理,将训练权重控制在[0,1]的范围。按照本体构建的数据集形式如图3所示,图3示例中将实体均标记唯一id,三元组均以id方式组成,三元组还包括该关系下的训练权重。
[0040]
本实施例中,训练权重的计算方式定义如下:
[0041]
[0042]
式中,w
r
表示关系r的训练权重,e表示特征集合,|e|表示特征数量;e表示单个特征;w
e
表示特征e的对应值;f
n
(x)表示对所有x值进行归一化处理,该归一化处理的方法可以采用min-max方式。
[0043]
步骤s3,嵌入算法模型选取及配置:显示预存的多个嵌入算法的名称让用户选定需要进行对比实验的嵌入算法,并让用户输入相应的配置参数从而形成一个训练任务。
[0044]
本实施例中,嵌入算法主要为trans翻译模型系列,包括transe、transh、transd等嵌入算法。各个嵌入算法预先存储在计算机中,并在执行步骤s3时通过该计算机的显示模块(例如显示屏、触摸屏等)显示一个任务创建画面并显示所有预存的嵌入算法的名称,从而让用户进行选定以及输入配置参数。该算法选取画面可以如图4所示,用户可以在多个嵌入算法(即图4中算法一栏)中进行选择,并配置其他相关的参数,最终用户输入的所有数据形成一个训练任务。(同时,本实施例中导入网络安全数据的过程在步骤s1中进行,在本发明其他方案中也可以在该算法选取画面中进行,即通过图4中“数据名称”、“数据文件”两栏进行导入)
[0045]
本实施例中,可配置的参数主要涉及随机梯度下降的学习率、负样本的生成方式unif/bern以及训练的超参数迭代次数和向量维度4种参数。
[0046]
在本发明的其他方案中,还可以基于计算机的算法相关接口并根据实际需要加入更多的嵌入算法。
[0047]
另外,本实施例中,为了更好地体现网络安全数据的特征,针对trans翻译模型系列结合训练权重改进了评分函数,将关键的网络安全数据特征的语义信息也加入计算实体距离的过程中。该翻译模型系列的改进评分函数定义如下:
[0048]
f
r
(h,t)=‖h+(1+w
r
)r-t‖
1/2
[0049]
其中,h表示头实体,r表示关系,t表示尾实体;w
r
表示关系r下的训练权重,数值范围在[0,1];“1/2”表示l1范数以及l2范数。
[0050]
本实施例中,评分函数是对向量化的三元组进行评分的函数,用于评价当前的向量表示结果,即该三元组中的头尾实体具有该关系,即为有效三元组时值越小。
[0051]
步骤s4,嵌入算法模型训练:执行步骤s3生成的训练任务,生成并保存的嵌入表示结果。
[0052]
本实施例的步骤s4中,在步骤s3生成训练任务后,会通过一个训练队列对生成的每一个训练任务进行暂存,根据每个训练任务的优先级完成相应的训练,可以设置单独训练或者连续训练。
[0053]
本实施例中,生成并保存的嵌入表示结果,该嵌入表示结果为所有实体和关系在进行嵌入训练后生成的对应向量化数据。
[0054]
本实施例中,以针对单个训练任务的配置和训练的过程为例,首先在步骤s2构建完成网络安全数据集后,针对数据集整体做格式和信息校验,检查实体和关系是否有缺漏或者id误标等,确保数据集符合要求后,针对本次训练任务通过步骤s3进行嵌入算法选择和参数配置,参数配置范围一般如下表1,也可以根据实际情况输入不在范围的参数数值。
[0055]
[0056]
表1参数配置范围
[0057]
在选择完该训练任务的嵌入算法以及参数配置之后,训练将加入训练队列,当前面的任务训练完成后则开启当前训练任务,每一次训练的时间和计算机的实际运行环境有关。
[0058]
步骤s5,嵌入算法模型测试:提取步骤s4生成的嵌入表示结果,完成链接预测的测试生成并保存测试结果。本实施例中,测试结果为平均倒数排名(mean reciprocal rank,mrr)和排名在前n的比例(hit@n)。
[0059]
本实施例的步骤s5中,将步骤s4中已完成的嵌入表示结果以链接预测的方式来评价嵌入表示结果,该连接预测所采用的评价指标为平均倒数排名(mrr)和排名在前n的比例(hit@n),具体为hit@1、hit@5以及hit@10。简单来说,就是“正确”的三元组能否在预测答案中排名尽可能前面,mrr的含义可以理解为尽可能不是倒数第一,hit@n的含义可以理解为尽可能排在前n。链接预测最终会给出多个评价指标的值,具体如下表2:
[0060][0061]
表2评价指标以及值范围
[0062]
本实施例中,为了更加直观比较表示结果,本实施例中还将以上评价指标的平均值计算为一个综合评分,该值越高则嵌入表示则嵌入表示效果越好,该综合评分score的定义如下:
[0063][0064]
其中,v表示评价指标集合;r表示关系集合;s
r,v
表示当评价指标为v时所有涉及关系r的评价结果均值。
[0065]
步骤s6,训练结果分析及显示:基于步骤s3中选定的嵌入算法和参数配置以及对应的评分进行展示,最后由用户选择最优的表示结果应用到网络安全知识图谱中。
[0066]
本实施例的步骤s6中测试结果和训练时间等相关训练结果也会进行显示,如图5所示,主要显示了该训练任务的详细信息。
[0067]
在用户选择最优的嵌入表示结果后,则将该嵌入表示作为网络安全知识图谱最新的嵌入表示,替换原本的嵌入表示,给网络安全知识图谱应用提供支持,例如利用嵌入表示结果计算实体之间的欧式距离或者余弦距离来比较实体的相似性。
[0068]
另外,为了实际使用时更为方便,上述步骤s1至步骤s6的嵌入表示方法还可以编写形成相应的计算机程序,从而存储在计算机中构成一个网络安全知识图谱的嵌入表示装置,该嵌入表示装置可以执行上述步骤s1至步骤s6对网络安全知识图谱进行嵌入表示。
[0069]
进一步,上述步骤s1至步骤s6也可以作为模块集成到其余的系统中,例如,结合在
一个网络安全知识图谱信息平台中作为后台数据管理模块的一部分,当需要针对网络安全数据进行嵌入表示训练时,选择嵌入算法、配置参数以及创建训练任务都可以通过网页平台的操作完成,当创建任务时可以选择目前在平台上已上线的嵌入算法并配置相关参数,并上传构建完成的数据集。对于单个或者批量训练任务来说,整个使用过程更为方便快捷。
[0070]
实施例作用与效果
[0071]
根据本实施例提供的网络安全知识图谱的嵌入表示方法,由于针对网络安全数据进行预处理,集成多种嵌入表示算法,加入网络安全数据特征改进训练算法进行嵌入表示训练,并提供统一的评价标准方便对比各种算法的嵌入表示结果,该嵌入表示方法提供了“预处理-构建数据集-配置-训练-测试”一体化的训练方式,因此方便了用户对网络安全数据集进行处理,使得用户可以在不同嵌入算法以及不同配置下进行大量的训练实验,更直观比较分析训练结果,进一步能够基于本发明的嵌入表示方法所显示的结果选取针对网络安全数据表现最优的嵌入算法。
[0072]
实施例中,由于针对网络安全数据特征改进了嵌入算法,使得嵌入表示结果更能体现网络安全数据特征,在后期实际应用的实验中表现效果更加符合搜索或推理意图。如下表所示:
[0073][0074]
表3搜索与相似性平均评价结果对比表
[0075]
在网络安全知识图谱的搜索以及相似性的应用上,结合网络安全数据特征的测试结果均比原始的算法效果更好,结合网络安全数据特征的嵌入表示具有更丰富的语义性,在实际的应用中结合网络安全数据特征,使得应用结果能够更贴近搜索意图以及相似性语义。
[0076]
实施例中,由于通过任务队列对各个训练任务进行暂存,因此用户可以根据配置参数范围统一创建多个训练任务,使得嵌入算法模型步骤在完成一个训练后能够自动完成余下的训练任务,因此,用户可以一次性进行所有训练实验的参数配置,从而避免多次配置的操作过程所耗费的用户精力,进一步也使得用户可以在进行配置时更容易确定各个训练任务的配置参数的不同,减少配置错误的发生。
[0077]
上述实施例仅用于举例说明本发明的具体实施方式,而本发明不限于上述实施例的描述范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1