APP下载

融合BERT的网络空间安全实体识别方法

2021-06-04廉龙颖郭京伟

黑龙江科技大学学报 2021年3期
关键词:语料语料库网络空间

廉龙颖,孔 萨,郭京伟

(黑龙江科技大学 计算机与信息工程学院, 哈尔滨 150022)

0 引 言

随着互联网技术的快速发展,网络空间安全形势日益严峻,网络攻防信息越来越丰富,呈现海量、异构、领域交叉等特点。从海量数据中挖掘网络空间安全知识,采用知识图谱模型进行存储,可实现知识管理、情报分析、攻击预测与溯源等智能应用。如何快速准确地从非结构化的文本中抽取出有效实体是构建网络空间安全知识图谱的核心任务。

在实体识别研究的早期阶段主要基于规则的方法,第六届消息理解系列会议所有研究都基于词性规则[1]和短语规则[2]的方法。在基于规则的方法中,最具代表性的是基于词典的方法[3],主要采用字符串匹配的方式,从文本中找出与词典中最相似的字符串进行实体识别,其主要优势在于简单,但识别效果一般。因此,研究者们开始分析上下文语义信息,研究基于规则匹配实体识别方法。Fukuda等[4]基于生物领域词典利用字符串规则来抽取实体。郑家恒等[5]根据中文构词法建立规则库,通过构词和过滤规则识别网络新词语实体。基于规则的实体识别方法优点是比较接近人类的思维方式,表述直观,易于推理,准确率较高;缺点是规则的制定依赖于领域专家,仅适用于某个特定领域小规模语料,通用性和可移植性较差,并且规则之间可能会发生冲突,此时,机器学习在自然语言处理领域开始兴起。基于机器学习的方法分为基于特征和神经网络的方法,包括语言模型[6]、隐马尔可夫模型[7]、二阶隐马尔可夫模型[8]、决策数[9]、最大熵模型[10]、支持向量机[11]、条件随机场[12]、长短时记忆网络[13]等。与规则方法相比,基于机器学习的实体识别方法优点是不需要太多的领域知识和人工干预,比较客观,灵活且健壮;缺点是需要人工标注数据,容易出现数据稀疏问题。由此,近年来,研究者们开始关注机器学习与规则相结合的实体识别方法,Lample等[14]提出LSTM+CRF的方法,通过获取上下文的序列信息完成命名实体识别任务。Huang等[15]首次利用Bi-LSTM模型结合CRF模型进行命名实体识别。这些方法在垂直领域的实体识别中均得到广泛应用,但由于中文分词模型对专有名词的准确率不高的问题,这些模型在执行中文实体识别的准确性还有一定的提升空间。BERT[16]是由Google提出的一种语言表示模型,它使用双向Transformer编码器可得到依赖上下文的字向量,因此,在传统模型中融入BERT模型进行实体识别成为研究热点。谢腾等[17]通过BERT模型生成词向量,在人民日报等语料库完成中文实体识别。陈剑等[18]基于BERT模型对司法文书进行实体识别。

尽管实体识别研究已取得了丰富的成果,但在网络空间安全领域中,实体类型多种多样,尤其与网络攻防相关的实体名称专业性较强,如“ARP欺骗”,一些实体结构复杂,边界划分困难,如“限制SYN流量”;还有一些实体与上下文关联性强,在不同场景中表达的语义也不同,如“扫描”,因此,针对通用或其它领域语料库的实体识别模型无法在网络空间安全领域得到有效应用,需要专门研究针对领域内特定应用场景的实体识别方法。魏笑等[19]提出了基于部件CNN的网络安全实体识别方法。李涛等[20]设计了融合动态注意力机制的Bi-LSTM模型对网络安全实体和关系进行了联合抽取。秦雅等[21]提出了基于特征模板的网络安全实体识别方法。经调研发现,针对网络空间安全领域实体识别的研究较少,且多使用传统的Word2vec模型作为嵌入方式,实体识别性能也有待提高。

为解决网络空间安全领域实体识别问题,笔者提出在前期研究的Bi-LSTM+CRF基础模型上,融入BERT模型,针对网络攻防相关的12类实体,以自建语料库作为实验数据集进行预训练,充分挖掘上下文语义信息,提升网络空间安全实体识别性能。

1 任务定义

网络空间安全实体识别可以看视为序列标注问题,即从给定非结构化文本中找出每个字符对应的实体标签。句子是语料库的基本单元,每个句子定义为一个序列X={X1,X2,…,Xn},在标注模型的指导下,识别句子X中的实体,即给出标注序列Y={Y1,Y2,…,Yn}。例如,句子X为“攻击者使用伪造ARP请求和应答数据包更新计算机的缓存实现ARP欺骗”,其对应的标注序列Y是“B-per I-per I-per O O B-att I-att B-prot I-prot I-prot B-net I-net O B-net I-net B-net I-net I-net O O B-hard I-hard I-hard O B-net I-net O O B-att I-att I-att I-att I-att”。

2 融合BERT的实体识别模型

实体识别模型结构如图1所示。首先,将预处理后的标注语料通过BERT层预训练模型进行双向编码得到字向量,然后,将字向量输入Bi-LSTM层进一步学习上下文特征,最后,利用CRF层获得实体标注结果,实现网络空间安全实体识别。

图1 模型结构Fig. 1 Structure of model

2.1 BERT层

BERT层主要任务是将输入文本转换为向量,通过遮蔽语言模型和下一句预测两个无监督训练过程,获取词级和句子级特征。BERT不像Word2vec等传统语言模型仅简单地将句子编码按顺序拼接起来,是一个多层双向模型,底层主要获取词级别的特征信息,中层主要学习句级别特征信息,而顶层则是捕获全句的语义信息。

在网络空间安全实体识别任务中,以字为单位作为模型输入。对于文本语句,首先,将字序列的部分字进行全词遮蔽,然后,在句子开头添加一个CLS标记,句子间使用SEP标记进行分隔,再将字向量、位置向量和句子分割向量三部分直接叠加,输入到深层双向Transformer编码器进行特征提取,最终,生成包含语义特征的字向量。BERT模型核心部分是Transformer编码器,其结构如图2所示。

图2 Transformer编码器结构Fig. 2 Structure of Transformer encoder

在每个单元中都由自注意力机制和前馈神经网络组成,其中自注意力机制是编码器的关键部分,用于计算每个字与其它字之间的相互关系,目的是实现句子中每个字无论距离远近都可以与其它字进行编码。

2.2 Bi-LSTM层

LSTM是一种特殊的RNN模型,它在传统RNN基础上引入输入门、输出门和遗忘门等门限控制和记忆单元,记忆单元结构如图3所示。

图3 LSTM记忆单元结构Fig. 3 Structure of LSTM memory unit

输入门决定哪些新信息可以更新,输出门决定输出哪些信息,遗忘门决定遗忘哪些信息,使LSTM能够利用远距离信息的能力大幅度提升。LSTM能够获得前文信息,但不能获得后文信息,而在网络空间安全实体识别中,前文与后文信息都非常重要,因此采用Bi-LSTM模型,将前后两个方向的LSTM结构连接到同一个输出,以此来充分捕获前文和后文的上下文特征,从而获取更加全面的语义理解。Bi-LSTM层将预训练后的网络空间安全文本向量输入到前向LSTM和后向LSTM中进行计算,将前向输出隐状态序列与后向输出的隐状态序列进行拼接,得到最终完整的表示结果并输出。

2.3 CRF层

CRF是一个典型的条件概率分布模型,链式结构是最常用的CRF结构,如图4所示。

图4 链式CRFFig. 4 Linear CRF

由图4可见,可以充分且有效地考虑标签前后的依赖关系,由于网络空间安全实体标签之间并不是独立存在的,而Bi-LSTM层不会考虑标签之间的依赖关系,因此,经过Bi-LSTM层进行标注返回的结果可能存在与实际不符的情况。如B-att标签后面应该是I-att,二者之间存在依赖关系,但Bi-LSTM层输出可能会在B-att标签之后出现I-per标签,此时就不能正确识别出一个攻击方法实体,因此,为能充分对标注结果进行约束,在Bi-LSTM层后使用CRF层。CRF可以根据给定预测序列,计算得出标注序列的条件概率分布,然后使用Veterbi算法求解出最大可能序列作为标注结果。在CRF层将Bi-LSTM层的输出作为输入,通过学习上下文信息预测出最大概率的标签注序列,从而实现网络空间安全实体识别。

3 实 验

3.1 数据预处理

通过分析网络空间安全领域中与网络攻防相关的数据资源,创建网络空间安全语料库,语料句长不超过512,并对部分语料进行人工标注。网络空间安全实体识别问题,不同于对人名、地名、机构名等传统的命名实体识别,根据本体构建结果提取自定义12个实体类型。网络空间安全实体类别定义如表1所示。

表1 网络空间安全实体

语料库标注质量对训练模型的性能起到决定性的作用,实验中选取500条语料由专业人员进行手工标注,使用BIO标注模式[22]将标注语料转化为实验数据集,经去重处理后得到标注实体881个。B表示实体开始,I表示实体中间,O表示非实体。对于网络空间安全的12类实体,将其第一个字符标注为B-(实体标识符号),后续字符标注为I-(实体标识符号),与本领域无关的非实体则标注为O。标注示例如表2所示。

表2 标注示例

3.2 实验设置

经过预处理后的语料按7∶3的比例划分为训练集和测试集,在Python 3.7.3和Tensorflow 1.14.0环境下进行实验。字向量选用Google已经训练好的BERT模型,初始化参数使用默认值,在训练过程中自适应调整。经过多次调试,将训练集和测试集的核心参数设置为最优组合:隐藏单元数量为512,单元数为256,学习率为0.001,梯度裁剪为5,迭代次数为100。

3.3 实验结果与分析

为了验证文中提出的融合模型对网络空间安全实体识别的有效性,在相同数据集上,分别采用Word2vec模型和BERT模型作为嵌入方式获得向量表示,在前期研究的Bi-LSTM+CRF模型[23]上进行实验,使用精确率P、召回率R和调和平均值F三个指标对网络空间安全实体识别性能进行评估,结果对比如表3所示。

表3 结果对比

从表3可知,对于相同数据集,文中提出的使用BERT预训练语言模型生成字向量,F值达到了0.884 2,比采用Word2vec模型提高了3.42%,实体识别效果更为理想。实验结果表明,采用BERT模型可以充分提取字级、词级和句子级的特征,通过预训练的字向量能够更好的表征上下文语义,增强了模型泛化能力,尤其对于数据集规模较小的垂直领域实体识别非常有效,并且对于由英文、中文和数字组合而成的病毒、漏洞等类型,也可以避免产生因分词错误影响实体识别效果的问题。在实验中也发现,融入BERT模型后训练耗费时间也有大幅度增加。

4 结 论

(1)在Bi-LSTM+CRF基础模型上,加入BERT预训练语言模型,获取表征上下文语义字向量,增强了模型泛化能力。

(2)根据网络空间安全的应用需求,定义了与网络攻防相关的12类实体类型与标注规范,收集和整理非结构化文本,建立了网络空间安全语料库作为实验数据集,经过对比实验表明,融合BERT模型F值达到了0.884 2,总体识别效果更佳。

文中的研究为网络空间安全领域实体抽取提供了方法。由于实验数据集规模较小,在后续研究中,将继续扩展网络空间安全语料库,在保证实体识别效果的基础上,对BERT模型进行优化改进,以降低训练时间。

猜你喜欢

语料语料库网络空间
海量标注语料库智能构建系统的设计与实现
基于语料库的清末民初日源外来词汉化研究
浅谈视频语料在对外汉语教学中的运用
可比语料库构建与可比度计算研究综述
《网络空间安全》订阅单
《网络空间安全》订阅单
《网络空间安全》订阅单
运用语料库辅助高中英语写作
推动形成网络空间新生态
语料库与译者培养探索