一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种嵌套安全实体识别模型的训练方法及识别方法与流程

2022-04-09 04:09:52 来源:中国专利 TAG:


1.本发明涉及网络安全技术领域,尤其涉及一种嵌套安全实体识别模型的训练方法及识别方法。


背景技术:

2.命名实体识别(ner)在网络安全领域非常重要。它帮助研究人员从非结构化文本源中提取网络威胁信息,提取的网络实体或关键表达可用于对开源文本中描述的网络攻击进行建模。使用序列标注的模型由于其自身的限制无法解决嵌套实体识别问题,而为了解决嵌套实体识别,使用基于片段序列分类的模型有着高昂的时间复杂度,在实际使用中会限制最大片段序列长度,在一定程度上减小时间复杂度。但限制最大片段序列长度后会无法识别出超过该长度的实体。在安全领域中存在大量的长实体,而且长实体中也会包含一些嵌套实体。
3.把命名实体识别问题看作为序列标注问题,一般使用word2vec词向量或者预训练语言模型如:bert作为词嵌入层,顶层为crf层进行实体分类。最经典的有:word2vec bilstm crf模型。
4.对于序列标注问题,由于其模型自身的限制无法解决嵌套实体识别的问题。而对于网络安全领域来说其文本中会包含大量的嵌套实体,比如对于一个攻击手段描述实体其中会包含一些apt组织、恶意软件、漏洞等等。而使用基于序列标注的模型每个单词只能属于一种类别,将无法解决嵌套实体。
5.因此,在安全领域亟需一种能解决如何高效地识别嵌套长安全实体的模型。


技术实现要素:

6.本发明实施例提供一种嵌套安全实体识别模型的训练方法及识别方法,通过两阶段的识别方法,识别模型训练完成之后,用于嵌套安全实体的识别,尤其适用于对存在嵌套的实体的识别分类。
7.本发明实施例提供一种嵌套安全实体识别模型的训练方法,包括:获取包括多条句子样本的样本文本数据,并为各句子样本添加第一标签;基于添加标签后的各句子样本,执行如下步骤进行训练:基于各句子样本利用第一子模型输出该句子样本中包含的第一实体的最大边界和相应的第一边界标识,以及在该第一实体具有第二实体的情况下,利用所述第一子模型输出第二实体的分割边界和相应的第二边界标识;根据所述第一子模型输出的各第一实体和相应的第一边界标识,以及在该第一实体具有第二实体的情况下,根据所述第一子模型输出的第二实体和相应的第二边界标识,确定该句子样本的候选片段序列集合;基于所述候选片段序列集合中的各候选片段序列,利用第二子模型对该候选片段序列包含的各实体进行分类;联合调整所述第一子模型和所述第二子模型的参数,以完成训练。
8.在一些实施例中,在获取的数据包含图像数据的情况下,基于所述图像数据提取其中的文本,以得到相应的句子样本。
9.在一些实施例中,所述第一子模型,还被配置为确定该句子样本中非边界的单词的第一标识。
10.在一些实施例中,确定该句子样本的候选片段序列集合包括:
11.对各第一实体:
12.将自身以及对应的第一边界标识加入候选片段序列集合;
13.在该第一实体具有第二实体的情况下,将该第二实体、以及基于相应的第二实体边界标识将位于该第二实体边界标识左右两侧的片段序列均加入候选片段序列集合;
14.在该第一实体具有至少两个第二实体的情况下,则将各第二实体以及各第二实体的组合加入候选片段序列集合。
15.在一些实施例中,利用第二子模型以对该句子样本的各实体进行分类之前,所述训练方法还包括:
16.将所述候选片段序列集合中的候选片段序列与预设实体集合进行匹配,以为各候选片段序列添加第二标签。
17.在一些实施例中,联合调整所述第一子模型和所述第二子模型的参数包括:
18.将第一子模型的损失和第二子模型的损失的和作为目标损失,并在训练过程中调整参数至最优。
19.在一些实施例中,基于各句子样本利用第一子模型输出该句子样本中包含的第一实体的最大边界和相应的第一边界标识包括:
20.利用预设的语言模型,对该句子样本进行编码,以获得用于输入所述第一子模型的编码向量;以及
21.在该句子样本的第一个位置添加指示标识,以关联该句子样本的上下文信息。
22.本发明实施例还提供一种嵌套安全实体识别方法,利用本公开各实施例所述的训练方法训练获得的第一子模型和第二子模型实现识别,包括,:
23.获取包含多条待检测句子的文本数据;
24.基于各待检测句子利用训练好的第一子模型输出该待检测句子中包含的第一实体的最大边界和相应的第一边界标识,以及在该第一实体具有第二实体的情况下,利用所述第一子模型输出第二实体的分割边界和相应的第二边界标识;
25.根据所述第一子模型输出的各第一实体和相应的第一边界标识,以及在该第一实体具有第二实体的情况下,根据所述第一子模型输出的第二实体和相应的第二边界标识,确定该待检测句子的候选片段序列集合;
26.基于所述候选片段序列集合中的各候选片段序列,利用训练好的第二子模型对该候选片段序列包含的各实体进行分类。
27.本发明实施例还提供一种嵌套安全实体识别装置,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序在被所述处理器调用执行时实现前述的嵌套安全实体识别方法的步骤。
28.本发明实施例的识别模型具有第一子模型和第二子模型,在训练完成之后,可以利用第一子模型识别出语句中的实体边界,并基于第一子模型识别的实体边界,通过第二子模型完成对各实体的分类,由此能够有效识别出存在嵌套的实体,并且降低计算的复杂度。
29.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
30.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
31.图1为本公开的嵌套安全实体识别模型的训练方法的基本流程图。
具体实施方式
32.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
33.本公开的方案用于对实体以及很可能存在于实体内的嵌套的实体实现识别和分类,一个攻击手段描述实体其中会包含一些apt组织、恶意软件、漏洞等,而这些实体中还可能包含嵌套的实体。为了为了说明本技术中的实体和嵌套实体的关系,参见如下语句“the russian invasion of georgia was preceded by an intensive build up of cyberattacks attempting to disrupt.deface and bring down critical georgian governmental and civilian online infrastructure.”这其中实体(第一实体)“deface and bring down critical georgian governmental and civilian online infrastructure”包含了嵌入实体(第二实体)“georgian governmental”,在识别这样的文本的情况下,用户希望对嵌入实体也有良好的识别效果。
34.基于此,本发明第一实施例提供一种嵌套安全实体识别模型的训练方法,如图1所示,包括如下步骤:
35.在步骤s101中、获取包括多条句子样本的样本文本数据,并为各句子样本添加第一标签。本实例中可以从网络上各种来源爬取与安全相关的文章,如安全技术博客;各大网络安全公司发布的安全事件文章;apt事件报告;安全事件相关的微信公众号推文等。所收集的这些文章、推文等理可能直接是文本数据,也可能包含pdf文档,在包含pdf文档的情况下,需要把pdf数据转换为文本数据,以此获得包括多条句子样本的样本文本数据。
36.基于添加标签后的各句子样本,执行如下步骤进行训练:
37.在步骤s102中、基于各句子样本利用第一子模型输出该句子样本中包含的第一实体的最大边界和相应的第一边界标识,以及在该第一实体具有第二实体的情况下,利用所述第一子模型输出第二实体的分割边界和相应的第二边界标识。
38.本实例中识别模型分为两阶段的识别,分别为第一子模型的边界识别和第二子模型的实体分类识别。本实例中基于获得的样本文本数据中的句子样本,对第一实体的最大边界进行定位。也即训练第一子模型可以利用添加第一标签的各句子样本来执行训练,其中第一标签可以预先标注句子样本中的各实体(第一实体和第二实体)以及相应的边界,并
作为训练数据对第一子模型进行训练,从而训练好的第一子模型能够用于识别任意输入的句子中包含的实体的最大边界。
39.具体的,可以由第一子模型定位到该句子样本中的某第一实体的最大边界以及该实体包含嵌套实体的分割边界。在训练的过程中,可以将输入句子表示为s={s1,s2,s3,

,sn},将第一子模型输出的带注释的实体集合表示为e={e1,e2,e3,

,em}其中n表示句子长度,m表示实体数量。由此通过第一子模型定位该句子样本的各实体的最大边界,一些示例中,对于该实体其左边界可以用[start]标识右边界可以用[end]标识,此时[start]和[end]可以作为第一边界标识。若实体内部存在嵌套实体则嵌套分割边界可以用[in]来标识,此时[in]可以作为嵌入实体的第二边界标识,当然具体的标识可以根据实际需要设定,在此不做一一限定。还可以定义实体最大边界个数为x,嵌套实体分割边界个数集合为{q1,q2,

,qi},i∈[1,x]。其中qi表示为在第i个实体最大边界下的嵌套实体分割边界的个数,通过定义x可以降低整体的玉运算量。对于该第一子模型的训练,期望可以将输入的句子样本的各实体的最大边界以及嵌入实体的最大边界均识别准确,因此可以基于此设置训练损失并调节参数。
[0040]
在步骤s103中、根据所述第一子模型输出的各第一实体和相应的第一边界标识,以及在该第一实体具有第二实体的情况下,根据所述第一子模型输出的第二实体和相应的第二边界标识,确定该句子样本的候选片段序列集合。本示例中可以根据第一子模型输出的边界识别结果,定义一个候选片段序列集合r={r1,r2,r3,

,rz},z为该集合的大小,该候选片段序列集合r是基于第一子模型输出的最大边界标识来选取和确定的,从而后续可以进一步利用该集合r来训练第二子模型。
[0041]
在步骤s104中、基于所述候选片段序列集合中的各候选片段序列,利用第二子模型对该候选片段序列包含的各实体进行分类。本示例中第二子模型被配置为根据第一子模型识别出的实体和嵌套实体进行分类,可以为候选片段序列集合r中的各个候选片段序列(输入序列)添加相应的类别标签,并完成训练。
[0042]
在步骤s105中、联合调整所述第一子模型和所述第二子模型的参数,以完成训练。本实例中将第一子模型和第二子模型进行联合训练,例如可以根据需要设置训练轮数(epoch)、批次大小(batch size)、学习率(lr)等参数。基于训练结果调整超参数至最优状态。
[0043]
本发明实施例的识别模型具有第一子模型和第二子模型,在训练完成之后,可以利用第一子模型识别出语句中的实体边界,并基于第一子模型识别的实体边界,通过第二子模型完成对各实体的分类,由此能够有效识别出存在嵌套的实体,并且降低计算的复杂度。
[0044]
在一些实施例中,在获取的数据包含图像数据的情况下,基于所述图像数据提取其中的文本,以得到相应的句子样本。本实例中,例如在获取的网络数据包括pdf的情况下,需要把pdf数据转换为文本数据,可以采用如下方式,首先提取pdf文件中包含的图片,然后使用ocr技术识别出图片中出现的文字内容。然后使用pdf2text工具把pdf文件转换为文本数据,最后汇总ocr识别的结果以及pdf2text转换后的结果,来确定pdf对应的文本。由于ner识别是以句子为单位,所以把文本数据以句子为单位进行切分,也即样本文本数据包括多条句子样本。
[0045]
在一些实施例中,基于各句子样本利用第一子模型输出该句子样本中包含的第一实体的最大边界和相应的第一边界标识包括:
[0046]
利用预设的语言模型,对该句子样本进行编码,以获得用于输入所述第一子模型的编码向量;以及
[0047]
在该句子样本的第一个位置添加指示标识,以关联该句子样本的上下文信息。
[0048]
本实例中,在获得多条句子样本的样本文本数据之后,进行该句子样本的单词嵌入表示。利用预设的语言模型,例如bert模型作为其单词嵌入器。利用bert模型对于输入序列(句子样本)在第一个位置插入特殊字符[cls]作为指示标识,用于表示关联整个句子上下文信息。例如句子表示为s={s1,s2,s3,

,sn},插入指示标识之后,该句子为s={c,s1,s2,s3,

,sn}。[cls]作为关联句子的上下文信息可以用于前后句子实体的关联,以此来消除歧义,不参与实体的分类和识别。利用bert模型可以将多条句子样本的样本文本数据编码为编码向量,可以将编码向量来作为第一子模型的输入。
[0049]
在一些实施例中,所述第一子模型,还被配置为确定该句子样本中非边界的单词的第一标识。例如可以将该句子样本中非实体且非边界的单词添加[none]作为第一标识。
[0050]
在一些实施例中,确定该句子样本的候选片段序列集合包括:
[0051]
对各第一实体:
[0052]
将自身以及对应的第一边界标识加入候选片段序列集合;
[0053]
在该第一实体具有第二实体的情况下,将该第二实体、以及基于相应的第二实体边界标识将位于该第二实体边界标识左右两侧的片段序列均加入候选片段序列集合;
[0054]
在该第一实体具有至少两个第二实体的情况下,则将各第二实体以及各第二实体的组合加入候选片段序列集合。
[0055]
本实例中,基于第一子模型输出的各个实体最大边界,首先选取一个第一实体,将该第一实体自身以及对应的第一边界标识[start]和[end]加入候选片段序列集合。
[0056]
若该第一实体最大边界中包含[in]则依次选择每个[in]左边的片段序列、第一实体自身和每个[in]右的边片段序列加入到候选片段序列集合中。
[0057]
若该第一实体最大边界中包含[in]超过一个,则将嵌入实体(第二实体)两两组合把所包含的片段序列加入候选片段序列集合中。
[0058]
重复前述步骤,遍历所有的第一实体最大边界,从而获得候选片段序列集合。
[0059]
在一些实施例中,利用第二子模型以对该句子样本的各实体进行分类之前,所述训练方法还包括:
[0060]
将所述候选片段序列集合中的候选片段序列与预设实体集合进行匹配,以为各候选片段序列添加第二标签。
[0061]
第二子模型是期望将候选片段序列集合中的片段序列进行实体分类。对于训练过程,本示例中,可以将候选片段序列集合r与预先设置的实体集合e进行匹配,实体集合e是具有准确标识的,通过匹配的方式,可以实现为候选片段序列集合r中的各个序列添加相应的训练标签(第二标签)。
[0062]
具体的训练过程,对于每一个添加第二标签之后的候选片段序列,进行最大池化,提取该候选片段序列的特征,然后拼接[cls]向量,最后使用全连接层对该候选片段序列所包含的实体进行分类。
[0063]
在一些实施例中,联合调整所述第一子模型和所述第二子模型的参数包括:将第一子模型的损失和第二子模型的损失的和作为目标损失,并在训练过程中调整参数至最优。本实例中,在边界识别时损失记为l1,在实体识别时损失记为l2,最终的损失为loss=l1 l2。都采用交叉熵损失函数作为损失函数。设置训练轮数(epoch)、批次大小(batch size)、学习率(lr)等参数,基于训练结果调整超参数至最优状态,以此完成训练过程。
[0064]
理论上长度为n的句子所有的片段序列为将片段序列分配给相应的类别导致了o(cn2)的时间复杂度,其中c为实体的类别。基于我们的方法假设生成了k个候选实体,其实体分类所需的时间复杂度为o(ck)。在边界识别中时间复杂度为o(4n),所以本公开的识别模型的总时间复杂度为o(4n ck),显然的k《《n2。通过边界识别能解除最大实体长度限制,同时基于边界识别的结果在实体识别阶段能识别出长实体以及识别出嵌套实体类别。
[0065]
本发明实施例还提供一种嵌套安全实体识别方法,利用本公开各实施例所述的训练方法训练获得的第一子模型和第二子模型实现识别,包括,:
[0066]
获取包含多条待检测句子的文本数据;
[0067]
基于各待检测句子利用训练好的第一子模型输出该待检测句子中包含的第一实体的最大边界和相应的第一边界标识,以及在该第一实体具有第二实体的情况下,利用所述第一子模型输出第二实体的分割边界和相应的第二边界标识;
[0068]
根据所述第一子模型输出的各第一实体和相应的第一边界标识,以及在该第一实体具有第二实体的情况下,根据所述第一子模型输出的第二实体和相应的第二边界标识,确定该待检测句子的候选片段序列集合;
[0069]
基于所述候选片段序列集合中的各候选片段序列,利用训练好的第二子模型对该候选片段序列包含的各实体进行分类。
[0070]
本公开的方法利用第一子模型识别出语句中的实体边界,并基于第一子模型识别的实体边界,能够突破最大片段序列的限制,再通过第二子模型完成对各实体的分类,由此能够有效识别出存在嵌套的实体。本公开的方法的识别模型的总时间复杂度为o(4n ck),而已有模型的时间复杂度为o(cn2),其中k《《n2,因此本公开的方法显著的降低了时间复杂度。
[0071]
本发明实施例还提供一种嵌套安全实体识别装置,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序在被所述处理器调用执行时实现前述的嵌套安全实体识别方法的步骤。
[0072]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0073]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0074]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下
前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0075]
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献