发明内容
有鉴于此,本申请实施例提供一种网络安全实体重叠关系的识别方法、装置及设备,能够实现准确地识别文本中的网络安全实体以及实体之间的实体关系,从而及时地发现网络安全威胁进而进行安全管理。
为解决上述问题,本申请实施例提供的技术方案如下:
第一方面,本申请提供一种网络安全实体重叠关系的识别方法,所述方法包括:
获取待识别文本数据;
将所述待识别文本数据输入至目标联合提取模型中,得到所述目标联合提取模型输出的所述待识别文本数据中的网络安全实体词汇以及网络安全实体词汇之间的实体关系;其中,所述目标联合提取模型用于利用对所述待识别文本数据进行编码处理得到的待识别词汇对应的隐向量,和对所述待识别文本数据进行实体识别得到的所述待识别词汇对应的网络安全实体标签向量,确定所述待识别词汇对应的网络安全实体,以及所述待识别词汇对应的网络安全实体之间的实体关系;
根据所述网络安全实体词汇确定所述待识别文本数据中包括的目标网络安全实体;根据所述网络安全实体词汇之间的实体关系,确定所述目标网络安全实体之间的实体关系。
在一种可能的实现方式中,所述目标联合提取模型具体用于:
获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量;
对所述待识别词汇的词汇向量进行编码处理,得到所述待识别文本数据中各个待识别词汇对应的隐向量;根据所述待识别词汇对应的隐向量,确定所述待识别词汇对应的网络安全实体标签向量;
根据所述待识别词汇对应的网络安全实体标签向量,选取待识别词汇作为目标实体词汇;
将所述目标实体词汇对应的隐向量和所述目标实体词汇对应的网络安全实体标签向量作为所述目标实体词汇对应的输入向量;利用所述目标实体词汇对应的输入向量,计算所述目标实体词汇之间具有目标关系的得分;所述目标关系为预设实体关系中的每一个;
根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的实体关系。
在一种可能的实现方式中,所述获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量,包括:
获取待识别文本数据,对所述待识别文本数据进行分词,得到所述待识别文本数据中的待识别词汇;所述待识别词汇为所述待识别文本数据中的每一个词汇;
将所述待识别词汇输入至bert模型中,得到所述待识别词汇对应的词嵌入向量;
将所述待识别词汇中的待识别字符输入至双向长短期记忆模型中,得到所述双向长短期记忆模型输出的所述待识别字符对应的字符嵌入向量;所述待识别字符为所述待识别词汇中的每一个字符;
将所述待识别词汇对应的词嵌入向量和所述待识别词汇中各个待识别字符对应的字符嵌入向量进行拼接,得到所述待识别词汇对应的词汇向量;
其中,所述bert模型和所述双向长短期记忆模型是预先建立的。
在一种可能的实现方式中,所述bert模型为bert-Base模型或者为bert-Large模型。
在一种可能的实现方式中,所述根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的实体关系,包括:
将所述目标实体词汇之间具有目标关系的得分作为第一激活函数的变量,得到所述第一激活函数输出的所述目标词汇之间具有目标关系的概率值;
根据所述目标实体词汇对应的网络安全实体标签向量,以及最大的概率值所对应的目标关系,确定所述目标实体词汇对应的目标网络安全实体;将所述最大的概率值所对应的目标关系作为所述目标实体词汇对应的目标网络安全实体之间的实体关系。
在一种可能的实现方式中,所述利用所述目标实体词汇对应的输入向量,计算所述目标实体词汇之间具有目标关系的得分,包括:
计算第一词汇的输入向量与第一参数的乘积,得到第一向量;所述第一词汇为所述目标实体词汇中的一个待识别词汇;
计算第二词汇的输入向量与第二参数的乘积,得到第二向量;所述第二词汇为所述目标实体词汇中除所述第一词汇外的待识别词汇;
计算所述第一向量、所述第二向量和第三参数的和,得到第三向量;
将所述第三向量作为第二激活函数的变量,得到所述第二激活函数输出的初始分数;
将所述初始分数与第四参数相乘,得到所述目标实体词汇之间具有目标关系的得分;
所述第一参数、所述第二参数、所述第三参数和所述第四参数是预先确定的。
在一种可能的实现方式中,所述根据所述待识别词汇对应的网络安全实体标签向量,选取待识别词汇作为目标实体词汇,包括:
从所述待识别词汇中,选取两个分别对应于不同的网络安全实体标签向量的待识别词汇作为目标实体词汇。
在一种可能的实现方式中,所述目标联合提取模型采用如下方式训练得到:
获取训练数据,所述训练数据是由训练文本数据和对应的训练标签组成;所述标签包括网络安全实体标签和网络安全实体关系标签;
利用所述训练数据训练生成目标联合提取模型。
第二方面,本申请提供一种网络安全实体重叠关系的识别装置,所述装置包括:
获取单元,用于获取待识别文本数据;
提取单元,用于将所述待识别文本数据输入至目标联合提取模型中,得到所述目标联合提取模型输出的所述待识别文本数据中的网络安全实体词汇以及网络安全实体词汇之间的实体关系;其中,所述目标联合提取模型用于利用对所述待识别文本数据进行编码处理得到的待识别词汇对应的隐向量,和对所述待识别文本数据进行实体识别得到的所述待识别词汇对应的网络安全实体标签向量,确定所述待识别词汇对应的网络安全实体,以及所述待识别词汇对应的网络安全实体之间的实体关系;
确定单元,用于根据所述网络安全实体词汇确定所述待识别文本数据中包括的目标网络安全实体;根据所述网络安全实体词汇之间的实体关系,确定所述目标网络安全实体之间的实体关系。
在一种可能的实现方式中,所述目标联合提取模型具体用于:
获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量;
对所述待识别词汇的词汇向量进行编码处理,得到所述待识别文本数据中各个待识别词汇对应的隐向量;根据所述待识别词汇对应的隐向量,确定所述待识别词汇对应的网络安全实体标签向量;
根据所述待识别词汇对应的网络安全实体标签向量,选取待识别词汇作为目标实体词汇;
将所述目标实体词汇对应的隐向量和所述目标实体词汇对应的网络安全实体标签向量作为所述目标实体词汇对应的输入向量;利用所述目标实体词汇对应的输入向量,计算所述目标实体词汇之间具有目标关系的得分;所述目标关系为预设实体关系中的每一个;
根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的实体关系。
在一种可能的实现方式中,所述获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量,包括:
获取待识别文本数据,对所述待识别文本数据进行分词,得到所述待识别文本数据中的待识别词汇;所述待识别词汇为所述待识别文本数据中的每一个词汇;
将所述待识别词汇输入至bert模型中,得到所述待识别词汇对应的词嵌入向量;
将所述待识别词汇中的待识别字符输入至双向长短期记忆模型中,得到所述双向长短期记忆模型输出的所述待识别字符对应的字符嵌入向量;所述待识别字符为所述待识别词汇中的每一个字符;
将所述待识别词汇对应的词嵌入向量和所述待识别词汇中各个待识别字符对应的字符嵌入向量进行拼接,得到所述待识别词汇对应的词汇向量;
其中,所述bert模型和所述双向长短期记忆模型是预先建立的。
在一种可能的实现方式中,所述bert模型为bert-Base模型或者为bert-Large模型。
在一种可能的实现方式中,所述根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的实体关系,包括:
将所述目标实体词汇之间具有目标关系的得分作为第一激活函数的变量,得到所述第一激活函数输出的所述目标词汇之间具有目标关系的概率值;
根据所述目标实体词汇对应的网络安全实体标签向量,以及最大的概率值所对应的目标关系,确定所述目标实体词汇对应的目标网络安全实体;将所述最大的概率值所对应的目标关系作为所述目标实体词汇对应的目标网络安全实体之间的实体关系。
在一种可能的实现方式中,所述利用所述目标实体词汇对应的输入向量,计算所述目标实体词汇之间具有目标关系的得分,包括:
计算第一词汇的输入向量与第一参数的乘积,得到第一向量;所述第一词汇为所述目标实体词汇中的一个待识别词汇;
计算第二词汇的输入向量与第二参数的乘积,得到第二向量;所述第二词汇为所述目标实体词汇中除所述第一词汇外的待识别词汇;
计算所述第一向量、所述第二向量和第三参数的和,得到第三向量;
将所述第三向量作为第二激活函数的变量,得到所述第二激活函数输出的初始分数;
将所述初始分数与第四参数相乘,得到所述目标实体词汇之间具有目标关系的得分;
所述第一参数、所述第二参数、所述第三参数和所述第四参数是预先确定的。
在一种可能的实现方式中,所述根据所述待识别词汇对应的网络安全实体标签向量,选取待识别词汇作为目标实体词汇,包括:
从所述待识别词汇中,选取两个分别对应于不同的网络安全实体标签向量的待识别词汇作为目标实体词汇。
在一种可能的实现方式中,所述目标联合提取模型采用如下方式训练得到:
获取训练数据,所述训练数据是由训练文本数据和对应的训练标签组成;所述标签包括网络安全实体标签和网络安全实体关系标签;
利用所述训练数据训练生成目标联合提取模型。
第三方面,本申请提供一种网络安全实体重叠关系的识别设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述任一实施方式的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述任一实施方式的方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例提供的一种网络安全实体重叠关系的识别方法、装置及设备,通过获取待识别文本数据,并将待识别文本数据输入至目标联合提取模型中,可以得到目标联合提取模型输出的待识别文本数据中的网络安全实体词汇以及网络安全实体词汇之间的实体关系,根据网络安全实体词汇可以确定待识别文本数据中包括的目标网络安全实体,根据网络安全实体词汇之间的实体关系,可以确定目标网络安全实体之间的实体关系。其中,目标联合提取模型利用对待识别文本数据进行编码处理得到的待识别词汇对应的隐向量,和待识别文本数据中待识别词汇对应的网络安全实体标签向量,确定待识别词汇对应的网络安全实体以及所述待识别词汇对应的网络安全实体之间的实体关系。通过目标联合提取模型,可以同时得到待识别文本数据中包括的目标网络安全实体,以及网络安全实体之间的实体关系,实现目标网络安全实体重叠关系的联合提取。目标联合提取模型可以实现网络安全实体识别和关系抽取过程中的参数和结构共享,增强了网络安全实体识别和实体关系抽取之间的相关性。一方面,减少了实体识别的误差的传递,提高对网络安全实体识别和实体关系抽取的准确程度。另一方面,通过对各个网络安全实体之间实体关系的确定,实现网络安全实体之间的多种关系,以及一个网络安全实体与其他网络安全实体之间的多种关系的抽取,得到网络安全实体的重叠关系,使得得到的网络安全实体之间的实体关系更为完整、准确。
具体实施方式
为了便于理解和解释本申请实施例提供的技术方案,下面将先对本申请的背景技术进行说明。
发明人在对传统的实体识别和实体关系抽取方法进行研究后发现,现有的实体识别和实体关系抽取大多是依靠串联抽取模型和联合抽取模型实现的。串联抽取模型是将命名实体识别和关系抽取视为两个独立的子任务,即先进行实体识别,再利用确定的实体进行实体之间的关系抽取。串联抽取模型的关系抽取结果依赖实体识别结果,容易导致实体识别结果的误差影响关系抽取结果。此外,串联抽取模型难以处理关系重叠问题。而联合抽取模型可以通过一个模型实现实体以及实体关系的联合抽取。但是,联合抽取模型存在着实体识别与关系抽取并非同步的问题,也无法处理实体关系重叠的问题。现有的模型存在着实体识别和关系抽取的结果不准确以及不完整的问题。
基于此,本申请实施例提供了一种网络安全实体重叠关系的识别方法、装置及设备,通过获取待识别文本数据,并将待识别文本数据输入至目标联合提取模型中,可以得到目标联合提取模型输出的待识别文本数据中的网络安全实体词汇以及网络安全实体词汇之间的实体关系,根据网络安全实体词汇可以确定待识别文本数据中包括的目标网络安全实体,根据网络安全实体词汇之间的实体关系,可以确定目标网络安全实体之间的实体关系。其中,目标联合提取模型利用对待识别文本数据进行编码处理得到的待识别词汇对应的隐向量,和对待识别文本数据进行实体识别得到的待识别词汇对应的网络安全实体标签向量,确定待识别词汇对应的网络安全实体,以及所述待识别词汇对应的网络安全实体之间的实体关系。通过目标联合提取模型,可以同时得到待识别文本数据中包括的目标网络安全实体以及网络安全实体之间的实体关系,实现目标网络安全实体重叠关系的联合提取。目标联合提取模型可以实现网络安全实体识别和关系抽取过程中的参数和结构共享,增强了网络安全实体识别和实体关系抽取之间的相关性。一方面,减少了实体识别的误差的传递,提高对网络安全实体识别和实体关系抽取的准确程度。另一方面,通过对各个网络安全实体之间实体关系的确定,实现网络安全实体之间的多种关系,以及一个网络安全实体与其他网络安全实体之间的多种关系的抽取,得到网络安全实体的重叠关系,使得得到的网络安全实体之间的实体关系更为完整、准确。
为了便于理解本申请实施例提供的网络安全实体重叠关系的识别方法,下面先结合图1对本申请实施例提供的网络安全实体重叠关系的识别方法的应用场景进行说明。
将“Fireeye , as well as SecureWorks , have also said the APT28 issponsored by Russia.”作为待识别文本数据输入至目标联合提取模型中,可以得到目标联合提取模型输出的< Fireeye, investigate, APT28>、< SecureWorks, investigate,APT28>和< APT28, attribution, Russia >三个网络安全实体关系三元组。每个网络安全实体关系三元组中包括分别属于两个网络安全实体的单词,以及两个网络安全实体之间的实体关系。以< APT28, attribution, Russia >为例,其中, “Fireeye”属于预先定义的网络安全实体中的安全组织实体,“APT28”属于预先定义的网络安全实体中的黑客组织实体,“investigate”表示“Fireeye”与“APT28”之间的实体关系为预先定义的实体之间的调查关系。如此可以通过目标联合提取模型,同时提取待识别文本数据中有关“APT28”与其他多个实体之间的网络安全实体重叠关系。
为了便于理解本申请实施例提供的技术方案,下面结合附图对本申请实施例提供的一种网络安全实体重叠关系的识别方法进行说明。
参见图2,该图为本申请实施例提供的一种网络安全实体重叠关系的识别方法的流程示意图,如图2所示,该方法包括S201- S203:
S201:获取待识别文本数据。
待识别文本数据是由多个词汇组成的非结构化的,可能包含网络安全的文本数据,待识别文本数据具体可以是,网络信息中可能包含网络安全的文章或者是句子的文本数据。待识别文本数据需要进行网络安全实体的识别以及实体关系的抽取,通过对待识别文本数据进行网络安全实体重叠关系的识别,可以确定待识别文本数据中是否包含网络安全实体,并且根据识别得到的网络安全实体和网络安全实体之间的实体关系进行后续的安全分析。
需要说明的是,在网络中常见的包含网络安全的文本数据的格式与目标联合提取模型所需的数据格式可能并不相同,而获取到的待识别文本数据可能是来源于原始的网络信息的,可以将文本数据的格式转换为目标联合提取模型所需的格式。
S202:将所述待识别文本数据输入至目标联合提取模型中,得到所述目标联合提取模型输出的所述待识别文本数据中的网络安全实体词汇以及网络安全实体词汇之间的实体关系;其中,所述目标联合提取模型用于利用对所述待识别文本数据进行编码处理得到的待识别词汇对应的隐向量,和对所述待识别文本数据进行实体识别得到的所述待识别词汇对应的网络安全实体标签向量,确定所述待识别词汇对应的网络安全实体,以及所述待识别词汇对应的网络安全实体之间的实体关系。
目标联合提取模型是用于从待识别文本数据中提取网络安全实体和网络安全实体之间的实体关系的模型。目标联合提取模型对待识别文本数据进行编码处理,得到待识别文本数据中的待识别词汇对应的隐向量。目标联合提取模型对待识别文本数据进行实体识别,可以得到待识别文本数据中待识别词汇对应的网络安全实体标签向量。再根据待识别词汇对应的隐向量和网络安全实体标签向量,可以确定待识别词汇对应的网络安全实体,以及待识别词汇对应的网络安全实体之间的实体关系。如此通过待识别词汇可以实现对各个待识别词汇对应的网络安全实体与其他实体之间的实体关系的确定,可以抽取重叠实体关系。
参见图3所示,该图为本申请实施例提供的一种抽取重叠的实体关系的示意图。通过将待识别文本数据输入至目标联合提取模型中,根据待识别词汇确定实体重叠关系,可以将待识别词汇对应的网络安全实体以及全部与该网络安全实体具有关系的其他网络安全实体进行提取,得到重叠的实体关系。
在一种可能的实现方式中,目标联合提取模型具体可以由BERT层、Bi-LSTM(Bi-directional Long Short-Term Memory,双向长短时记忆网络)编码层、CRF(conditionalrandom field,条件随机场)层和多头关系层组成。其中,BERT层用于提取待识别文本数据中各个待识别词汇的词嵌入向量Bi-LSTM编码层用于提取对待识别词汇的词嵌入向量进行编码处理,得到各个待识别词汇的隐向量。CRF层用于根据待识别词汇的隐向量,对待识别文本数据中的网络安全实体进行实体边界识别和实体类型判断,得到各个待识别词汇的网络安全实体标签向量。多头关系层用于根据Bi-LSTM编码层输出的待识别词汇的隐向量,以及CRF层输出的待识别词汇的网络安全实体标签向量,确定各个待识别词汇所属的网络安全实体,以及各个网络安全实体之间的实体关系。
将获取的待识别文本数据输入至目标联合提取模型中,可以得到目标联合提取模型输出的待识别文本数据中的网络安全实体词汇以及网络安全实体词汇之间的实体关系。具体的,目标联合提取模型的输出结果可以为三元组,即<头实体,两个实体之间的关系,尾实体>。其中,头实体和尾实体可以是对应的网络安全实体对应的网络安全实体词汇。当该网络安全实体对应的是多个网络安全实体词汇时,可以选取该网络安全实体中最后一个词汇作为表示网络安全实体的网络安全实体词汇。
S203:根据所述网络安全实体词汇确定所述待识别文本数据中包括的目标网络安全实体;根据所述网络安全实体词汇之间的实体关系,确定所述目标网络安全实体之间的实体关系。
根据目标联合提取模型输出的待识别文本数据中的网络安全实体词汇以及网络安全实体词汇之间的实体关系,可以对应的确定待识别文本数据中包括的目标网络安全实体,以及目标网络安全实体之间的实体关系。以上述目标联合提取模型输出的三元组的结构为例,根据三元组中的头实体和尾实体,可以确定待识别文本数据中包括的网络安全实体。根据三元组中的两个实体之间的关系,可以确定头实体和尾实体之间的实体关系。
基于上述S201-S203的相关内容可知,通过目标联合提取模型,可以同时得到待识别文本数据中包括的目标网络安全实体以及网络安全实体之间的实体关系,实现目标网络安全实体重叠关系的联合提取。目标联合提取模型可以实现网络安全实体识别和关系抽取过程中的参数和结构共享,增强了网络安全实体识别和实体关系抽取之间的相关性。一方面,减少了实体识别的误差的传递,提高对网络安全实体识别和实体关系抽取的准确程度。另一方面,通过多头选择机制,实现对各个网络安全实体之间实体关系的确定,实现网络安全实体之间的多种关系,以及一个网络安全实体与其他网络安全实体之间的多种关系的抽取,得到网络安全实体的重叠关系,使得得到的网络安全实体之间的实体关系更为完整、准确。
基于上述网络安全实体重叠关系的识别方法中的目标联合提取模型,本申请实施例提供一种目标联合提取模型的具体实现方式。参见图4所示,该图为本申请实施例提供的一种目标联合提取模型提取网络安全实体重叠关系的流程示意图。
目标联合提取模型具体用于:
S401:获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量。
待识别文本数据是由多个待识别词汇组成的文本数据,对待识别文本数据进行特征提取,以词汇为单位,得到待识别文本数据中各个待识别词汇的词汇向量。词汇向量中包含着待识别词汇相关的语义信息,利用待识别词汇的词汇向量,可以对待识别词汇进行分析,确定各个待识别词汇对应的网络安全实体以及实体关系。
本申请实施例不限定对待识别文本数据进行特征提取的具体实现方式,可以先对待识别文本数据进行分句、分词处理,得到各个待识别文本数据中包括的待识别词汇。再对待识别词汇进行特征提取,得到待识别词汇的词汇向量。在另一种可能的实现方式中,待识别文本数据可能是通过预处理的文本数据,可以直接对待识别文本数据进行特征提取,得到待识别文本数据中各个待识别词汇的词汇向量。参见图5所示,该图为本申请实施例提供的一种目标联合提取模型结构示意图。通过BERT层可以实现对待识别文本数据的特征提取,得到待识别文本数据中各个待识别词汇对应的词汇向量。
另外,需要说明的是,图5仅为本申请实施例提供的一种具体实现方式。本申请实施例不限定目标联合提取模型中实现特征提取所采取的网络结构,也可以为Word2vec、Glove等网络结构。
具体的,例如待识别文本数据为句子,表示为
。其中,
表示句子N中的第i个待识别词汇,m表示句子N中一共具有m个待识别词汇。各个待识别词汇具有对应的词汇向量,
对应的词汇向量为
。
在一种可能的实现方式中,本申请实施例提供一种获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量的具体实现方式,请参见下文。
S402:对所述待识别词汇的词汇向量进行编码处理,得到所述待识别文本数据中各个待识别词汇对应的隐向量;根据所述待识别词汇对应的隐向量,确定所述待识别词汇对应的网络安全实体标签向量。
对得到的待识别词汇的词汇向量进行编码处理,得到待识别文本数据中各个待识别词汇对应的隐向量。
具体的,例如,图5所示,可以通过Bi-LSTM编码层实现对待识别词汇的词汇向量的编码处理,处理过程如下:
A1:计算当前时间
t的输入
与上一时刻
t-1的隐藏状态
。输入门、遗忘门和输出门通过Sigmoid激活函数的全连接层计算得到结果。LSTM模型的隐藏单元数量为
h,当前时刻𝑡的输入为
(
n为样本数,
d为输入个数)以及上一时刻
t-1的隐藏状态
。于是输入门
、遗忘门
和输出门
的计算公式如下:
其中的
是偏差参数,
和
,
,
是权重参数。偏差参数和权重参数可以根据模型的训练结果预先确定。
其中,
是偏差参数,
和
为权重参数。偏差参数和权重参数可以根据模型的训练结果预先确定。
A2:利用遗忘门和输入门来控制当前时间t记忆细胞状态
,计算公式如下:
A3:利用输出门和当前记忆细胞状态输出当前时刻t的隐藏状态,计算公式如下:
A4:Bi-LSTM对每个待识别词汇的词汇向量
分别进行编码处理,得到对应的前向隐向量
和后向隐向量
,并将两个隐向量进行连接得到新的编码序列
。
能有效地描述待识别词汇的上下文表示。
A5:所有的隐向量
组成 Bi-LSTM 层的输出为
。
利用得到的待识别词汇的隐向量,可以确定待识别词汇对应的网络安全实体标签向量。其中,网络安全实体标签向量是用于表示待识别词汇所属的网络安全实体。
在一种可能的实现方式中,可以通过CRF层确定待识别词汇的网络安全实体标签向量,其中,网络安全实体标签的编码方式可以采用BIO(Beginning,Inside,Outside)编码方式,处理过程如下:
B1:CRF 层预测每个待识别词汇
对应每个标签种类的预测分数
的计算公式如下所示。
其中
,𝑓是激活函数,
,
,𝑝是BIO编码方式中标签的数量,l是层的宽度,d是LSTM隐藏层的大小。
B2:整个待识别文本数据N可能的标签序列
的分数𝑆进行计算,公式如下。
其中
,
是待识别词汇
得到的预测分数。 𝑇是条件随机场的转移矩阵,其中每个条目代表从一个标签到另一个标签的转移分数,并且因为添加了开始和结束标签,所以
。
B3:计算输入待识别文本数据𝑁的所有可能标签序列的概率𝑃,公式如下:
B4:使用 Viterbi算法获得得分最高的标签序列
。
B5:根据B4获得的得分最高的标签序列,得到每个待识别词汇
的网络安全实体标签向量
。
S403:根据所述待识别词汇对应的网络安全实体标签向量,选取待识别词汇作为目标实体词汇。
待识别文本数据中的各个待识别词汇所对应的网络安全实体,可能与其他待识别词汇所对应的网络安全实体之间存在实体关系。为了更为全面地确定待识别文本数据包括的网络安全实体之间的实体关系,可以根据待识别词汇对应的网络安全实体标签向量,从待识别文本数据中选取待识别词汇作为目标实体词汇。
在一种可能的实现方式中,可以从待识别词汇中选取不对应于同一个网络安全实体标签向量的待识别词汇作为目标实体词汇,实现对于不同的网络安全实体之间的实体关系的确定。
在另一种可能的实现方式中,若同一种网络安全实体之间不具有预先设定的实体关系,则不用选取属于同一种类实体的待识别词汇进行对应的网络安全实体之间的实体关系的分析。对应的,本申请实施例提供一种根据所述待识别词汇对应的网络安全实体标签向量,选取待识别词汇作为目标实体词汇的具体实施方式,具体包括:
从所述待识别词汇中,选取两个分别对应于不同的网络安全实体标签向量的待识别词汇作为目标实体词汇。
从待识别文本数据的待识别词汇中,选取对应于不同的网络安全实体标签向量的待识别词汇作为目标实体词汇。如此,选取的目标实体词汇是属于不同种类的网络安全实体,可以对属于不同种类的网络安全实体之间的实体关系进行确定。
S404:将所述目标实体词汇对应的隐向量和所述目标实体词汇对应的网络安全实体标签向量作为所述目标实体词汇对应的输入向量;利用所述目标实体词汇对应的输入向量,计算所述目标实体词汇之间具有目标关系的得分;所述目标关系为预设实体关系中的每一个。
在确定目标实体词汇后,将目标实体词汇对应的隐向量和目标实体词汇对应的网络安全实体标签向量作为目标实体词汇对应的输入向量。在一种可能的实现方式中,可以将目标实体词汇对应的隐向量和网络安全实体标签向量进行拼接,得到目标实体词汇对应的输入向量。例如,若待识别词汇中的第
i个待识别词汇为目标实体词汇,该目标实体词汇的隐向量是
,网络安全实体标签向量为
,对应的输入向量
可以表示为
。
利用输入向量计算目标实体词汇之间具有各个预设实体关系的得分。预设实体关系可以是预先定义的,网络安全实体之间的实体关系。具体的,例如,黑客组织利用工具、黑客组织的目标组织、黑客组织攻击目标国家或地区、黑客组织使用的攻击方法和安全组织调查黑客组织五种关系。
在一种可能的实现方式中,本申请实施例提供一种利用目标实体词汇的输入向量计算目标实体词汇之间具有目标关系得分的具体实现方式,请参见下文。
S405:根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的重叠关系。
目标实体词汇之间具有目标关系的得分可以表示目标实体词汇之间具有该目标关系的概率。根据目标实体词汇之间具有目标关系的得分,可以确定目标实体词汇之间具有的实体关系,从而实现目标实体词汇对应的网络安全实体的识别,以及目标实体词汇对应的网络安全实体之间的实体关系的确定。
在确定当前目标实体词汇对应的网络安全实体以及目标实体词汇对应的网络安全实体之间的实体关系后,对应的生成并输出三元组。需要说明的是,目标实体词汇分别为三元组中的头实体和尾实体对应的实体词汇。在当一个目标实体词汇对应的网络安全实体不具有与之有实体关系的其他网络安全实体,对应的输出结果为<头实体,空关系,尾实体>,头实体可以用该目标实体词汇表示。
在一种可能的实现方式中,本申请实施例提供一种根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的实体关系的具体实施方式,请参见下文。
此外,需要说明的是,目标联合提取模型中的参数可以通过模型训练确定,具体可以通过最小化损失函数实现。目标联合提取模型的损失函数可以采用交叉熵函数,具体可以通过将S403对应的实体识别的损失函数与S404对应的关系抽取的损失函数累加得到。
基于上述内容可知,通过确定目标实体词汇,并利用目标实体词汇的输入向量确定目标实体词汇对应的网络安全实体以及实体关系,可以实现网络安全实体的实体识别与实体关系抽取过程中的参数共享,减少了误差积累,实现较为准确地实体识别和关系抽取。并且,通过选取目标实体词汇进行目标实体词汇对应的实体之间的实体关系的确定,可以对各个实体之间是否具有实体关系以及实体关系的具体种类进行确定,实现网络安全实体之间的重叠关系的抽取。
可以理解的是,用于进行相关模型训练的网络安全标注语料较少,利用较少的网络安全标注语料训练得到的模型的准确度,不能满足实体识别和关系抽取的需要。
基于此,本申请实施例提供一种获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量的具体实施方式,包括以下四个步骤:
C1:获取待识别文本数据,对所述待识别文本数据进行分词,得到所述待识别文本数据中的待识别词汇;所述待识别词汇为所述待识别文本数据中的每一个词汇。
对获取到的待识别文本数据进行分词处理,得到待识别文本数据中包括的每一个词汇,也就是待识别词汇。
具体的,例如,以待识别文本数据为“APT28 is attributed to Russia by theFireEye.”为例,得到的待识别词汇分别为“APT28”、“ is”、“ attributed”、“ to ”、“Russia”、“ by ”、“the”、“ FireEye” 、“.”。
C2:将所述待识别词汇输入至bert模型中,得到所述待识别词汇对应的词嵌入向量。
预先建立bert模型,bert模型用于提取输入的待识别词汇的词嵌入向量。通过bert模型可以获取到包含待识别词汇的词法特征的词嵌入向量𝑊𝐵𝐸𝑅𝑇。具体的,该bert模型为bert-Base模型或者为bert-Large模型。bert-base 的网络层数𝐿 = 12,隐藏层维度𝐻 = 768, Attention多头个数𝐴 = 12,总参数量为110M。Bert-Large的网络层数𝐿 =24,隐藏层维度𝐻 = 1024,Attention 多头个数 𝐴 = 16,总参数量为340M。
以上述待识别词汇为例,参见图6所示,该图为本申请实施例提供的通过bert模型获取待识别词汇的词嵌入向量的示意图。
C3:将所述待识别词汇中的待识别字符输入至双向长短期记忆模型中,得到所述双向长短期记忆模型输出的所述待识别字符对应的字符嵌入向量;所述待识别字符为所述待识别词汇中的每一个字符。
将待识别词汇中的各个待识别字符输入至双向长短期记忆模型中。得到双向长短期记忆模型输出的各个待识别字符的字符嵌入向量
。
本申请实施例中的双向长短期记忆模型是预先建立的。通过双向长短期记忆模型得到待识别字符的字符嵌入向量,从而获取待识别词汇较多的特征,丰富提取到的待识别词汇的语义信息。
以待识别词汇“APT28”为例,参见图7所示,该图为本申请实施例提供的通过bert模型获取待识别词汇的字符嵌入向量的示意图。
需要说明的是,本申请实施例不限定C2和C3的执行顺序。可以先获取待识别词汇的词嵌入向量,也可以先获取待识别词汇的字符嵌入向量,还可以同时获取待识别词汇的词嵌入向量和字符嵌入向量。
C4:将所述待识别词汇对应的词嵌入向量和所述待识别词汇中各个待识别字符对应的字符嵌入向量进行拼接,得到所述待识别词汇对应的词汇向量。
将待识别词汇中包含的待识别字符对应的字符嵌入向量,与待识别词汇对应的词嵌入向量进行拼接,得到待识别词汇对应的词汇向量。
第i个待识别词汇的词汇向量Wwordi可以表示为:
其中,
表示第i个待识别词汇对应的词嵌入向量,
表示第i个待识别词汇的第j个待识别字符对应的字符嵌入向量,1≤j≤m,m为第i个待识别词汇中具有的待识别字符的个数。
在本申请实施例中,目标联合提取模型通过提取由字符嵌入向量和词嵌入向量拼接而成的待识别词汇的词汇向量,可以得到更为待识别词汇更为丰富的语义信息,从而缓解由于标注语料匮乏所导致的模型训练效率低下的问题,提高目标联合提取模型的准确程度。
在一种可能的实现方式中,本申请实施例提供一种利用所述目标实体词汇对应的输入向量,计算所述目标实体词汇之间具有目标关系的得分的具体实施方式,具体包括以下五个步骤:
D1:计算第一词汇的输入向量与第一参数的乘积,得到第一向量;所述第一词汇为所述目标实体词汇中的一个待识别词汇。
第一参数是预先确定的用于计算目标实体词汇之间具有目标关系的得分的参数,第一参数具体可以为一个向量。
将目标实体词汇中的一个待识别词汇作为第一词汇,计算第一词汇的输入向量与第一参数的乘积,得到第一向量。
D2:计算第二词汇的输入向量与第二参数的乘积,得到第二向量;所述第二词汇为所述目标实体词汇中除所述第一词汇外的待识别词汇。
将目标实体词汇中除第一词汇外的待识别词汇作为第二词汇。若目标实体词汇中包括两个待识别词汇,则第二词汇为另一个待识别词汇。
计算第二词汇的输入向量与第二参数的乘积,得到第二向量。其中,第二参数是预先确定的用于计算目标实体词汇之间具有目标关系的得分的参数,第二参数具体可以为一个向量。
D3:计算所述第一向量、所述第二向量和第三参数的和,得到第三向量。
第三参数为预先确定的用于计算目标实体词汇之间具有目标关系的得分的参数,第三参数为一个向量。
D4:将所述第三向量作为第二激活函数的变量,得到所述第二激活函数输出的初始分数。
将计算得到的第三向量作为第二激活函数的变量。第二激活函数具体可以为tanh激活函数、relu激活函数等。将得到的第二激活函数输出的数据作为目标实体词汇之间具有目标关系的初始分数。
D5:将所述初始分数与第四参数相乘,得到所述目标实体词汇之间具有目标关系的得分。
第四参数是预先确定的计算参数,将得到的初始分数与第四参数相乘,得到目标实体词汇之间具有目标关系的得分。
具体的,目标实体词汇
与
之间具有目标关系
的分数M的计算公式如下:
其中,
为目标实体词汇
的输入向量,具体可以表示为
,
为目标实体词汇
的输入向量,具体可以表示为
。 U为第四参数,𝑈
。b为第三参数
。 V和W根据第一词汇和第二词汇,为对应的第一参数和第二参数,
,
。其中,l是层的宽度,d是LSTM隐藏层的大小,𝑞是网络安全实体标签向量𝑔
𝑖的长度。𝑓(x)是第二激活函数。
在一种可能的实现方式中,本申请实施例还提供一种根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的实体关系的具体实施方式,包括以下两个步骤:
E1:将所述目标实体词汇之间具有目标关系的得分作为第一激活函数的变量,得到所述第一激活函数输出的所述目标词汇之间具有目标关系的概率值。
为了确定目标实体词汇之间的实体关系,需要将目标实体词汇之间目标关系的得分进一步转换为目标实体词汇之间具有目标关系的概率值。
具体的,可以通过第一激活函数,将目标实体词汇之间具有目标关系的得分,转换为目标实体词汇之间具有目标关系的概率值。第一激活函数具体可以为Sigmoid激活函数。计算公式如下式所示:
其中,
为目标实体词汇
的输入向量,
为目标实体词汇
的输入向量,
表示目标关系,
表示
和
之间具有
的概率值。𝑀(a,b,c)表示第一激活函数。在一种可能的实现方式中,还可以将第一激活函数输出的概率值与调整参数相乘,实现对概率值的调整。对应的计算公式为:
E2:根据所述目标实体词汇对应的网络安全实体标签向量,以及最大的概率值所对应的目标关系,确定所述目标实体词汇对应的目标网络安全实体;将所述最大的概率值所对应的目标关系作为所述目标实体词汇对应的目标网络安全实体之间的实体关系。
最大概率值对应的目标关系就为目标实体词汇对应的网络安全实体之间的实体关系。根据确定的实体关系以及目标实体词汇对应的网络安全实体标签向量,可以确定目标实体词汇对应的网络安全实体。如此可以实现待识别文本数据中网络安全实体重叠关系的共同提取,并且可以实现重叠实体关系的抽取。
在一种可能的实现方式中,本申请实施例提供一种目标联合提取模型的训练方法,所述目标联合提取模型采用如下方式训练得到:
获取训练数据,所述训练数据是由训练文本数据和对应的训练标签组成;所述训练标签包括网络安全实体标签和网络安全实体关系标签;
利用所述训练数据训练生成目标联合提取模型。训练数据是用于训练目标联合提取模型的数据。训练数据包括训练文本数据和对应的训练标签,训练文本数据可以是由多个词汇组成的非结构化的,包含网络安全的文本数据。训练标签是指训练文本数据中的网络安全实体词汇对应的网络安全实体标签和网络安全实体关系标签。利用训练数据,可以训练得到用于联合提取网络安全实体以及网络安全实体之间的实体关系的目标联合提取模型。
基于上述方法实施例提供的网络安全实体重叠关系的识别方法,本申请实施例还提供了一种网络安全实体重叠关系的识别装置,下面将结合附图对该网络安全实体重叠关系的识别装置进行说明。
参见图8,该图为本申请实施例提供的一种网络安全实体重叠关系的识别装置的结构示意图。如图8所示,该网络安全实体重叠关系的识别装置包括:
获取单元801,用于获取待识别文本数据;
提取单元802,用于将所述待识别文本数据输入至目标联合提取模型中,得到所述目标联合提取模型输出的所述待识别文本数据中的网络安全实体词汇以及网络安全实体词汇之间的实体关系;其中,所述目标联合提取模型用于利用对所述待识别文本数据进行编码处理得到的待识别词汇对应的隐向量,和对所述待识别文本数据进行实体识别得到的所述待识别词汇对应的网络安全实体标签向量,确定所述待识别词汇对应的网络安全实体,以及所述待识别词汇对应的网络安全实体之间的实体关系;
确定单元803,用于根据所述网络安全实体词汇确定所述待识别文本数据中包括的目标网络安全实体;根据所述网络安全实体词汇之间的实体关系,确定所述目标网络安全实体之间的实体关系。
在一种可能的实现方式中,所述目标联合提取模型具体用于:
获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量;
对所述待识别词汇的词汇向量进行编码处理,得到所述待识别文本数据中各个待识别词汇对应的隐向量;根据所述待识别词汇对应的隐向量,确定所述待识别词汇对应的网络安全实体标签向量;
根据所述待识别词汇对应的网络安全实体标签向量,选取待识别词汇作为目标实体词汇;
将所述目标实体词汇对应的隐向量和所述目标实体词汇对应的网络安全实体标签向量作为所述目标实体词汇对应的输入向量;利用所述目标实体词汇对应的输入向量,计算所述目标实体词汇之间具有目标关系的得分;所述目标关系为预设实体关系中的每一个;
根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的实体关系。
在一种可能的实现方式中,所述获取待识别文本数据,对所述待识别文本数据进行特征提取,得到所述待识别文本数据中的待识别词汇的词汇向量,包括:
获取待识别文本数据,对所述待识别文本数据进行分词,得到所述待识别文本数据中的待识别词汇;所述待识别词汇为所述待识别文本数据中的每一个词汇;
将所述待识别词汇输入至bert模型中,得到所述待识别词汇对应的词嵌入向量;
将所述待识别词汇中的待识别字符输入至双向长短期记忆模型中,得到所述双向长短期记忆模型输出的所述待识别字符对应的字符嵌入向量;所述待识别字符为所述待识别词汇中的每一个字符;
将所述待识别词汇对应的词嵌入向量和所述待识别词汇中各个待识别字符对应的字符嵌入向量进行拼接,得到所述待识别词汇对应的词汇向量;
其中,所述bert模型和所述双向长短期记忆模型是预先建立的。
在一种可能的实现方式中,所述bert模型为bert-Base模型或者为bert-Large模型。
在一种可能的实现方式中,所述根据所述目标实体词汇之间具有目标关系的得分,确定所述目标实体词汇所对应的网络安全实体,以及所述目标实体词汇对应的网络安全实体之间的实体关系,包括:
将所述目标实体词汇之间具有目标关系的得分作为第一激活函数的变量,得到所述第一激活函数输出的所述目标词汇之间具有目标关系的概率值;
根据所述目标实体词汇对应的网络安全实体标签向量,以及最大的概率值所对应的目标关系,确定所述目标实体词汇对应的目标网络安全实体;将所述最大的概率值所对应的目标关系作为所述目标实体词汇对应的目标网络安全实体之间的实体关系。
在一种可能的实现方式中,所述利用所述目标实体词汇对应的输入向量,计算所述目标实体词汇之间具有目标关系的得分,包括:
计算第一词汇的输入向量与第一参数的乘积,得到第一向量;所述第一词汇为所述目标实体词汇中的一个待识别词汇;
计算第二词汇的输入向量与第二参数的乘积,得到第二向量;所述第二词汇为所述目标实体词汇中除所述第一词汇外的待识别词汇;
计算所述第一向量、所述第二向量和第三参数的和,得到第三向量;
将所述第三向量作为第二激活函数的变量,得到所述第二激活函数输出的初始分数;
将所述初始分数与第四参数相乘,得到所述目标实体词汇之间具有目标关系的得分;
所述第一参数、所述第二参数、所述第三参数和所述第四参数是预先确定的。
在一种可能的实现方式中,所述根据所述待识别词汇对应的网络安全实体标签向量,选取待识别词汇作为目标实体词汇,包括:
从所述待识别词汇中,选取两个分别对应于不同的网络安全实体标签向量的待识别词汇作为目标实体词汇。
在一种可能的实现方式中,本申请实施例提供一种目标联合提取模型的训练方法,所述目标联合提取模型采用如下方式训练得到:
获取训练数据,所述训练数据是由训练文本数据和对应的训练标签组成;所述训练标签包括网络安全实体标签和网络安全实体关系标签;
利用所述训练数据训练生成目标联合提取模型。
基于上述方法实施例提供的网络安全实体重叠关系的识别方法,本申请提供一种网络安全实体重叠关系的识别设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述任一实施方式的方法。
基于上述方法实施例提供的网络安全实体重叠关系的识别方法,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述任一实施方式的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。