时间:2024-09-03
◆张建权
(贵州省铜仁市公安局 贵州 554300)
随着网络信息服务范围逐步扩大,涵盖金融、医疗、出行、环保等各方面,互联网络呈现出明显的智慧化与精细化特征,加上网络环境缺乏有效的监管措施,许多现实中的敏感行为会发生在网络中。敏感实体识别是命名实体识别(NER)中的一种特定领域实体识别[1]。其主要任务是识别互联网文本数据中不同类型的敏感实体,如用户、木马、黑客和漏洞等。
敏感实体识别主要是对互联网领域中的专业词汇进行识别和分类,相比一般的NER 范围更小,识别精度性需求更高,识别复杂度也更高。近年来,深度学习方法各个领域取得了良好的效果。与机器学习方法或基于规则的方法相比,深度学习方法具有更强的泛化能力和对人工特征的低依赖性。
卷积神经网络[2]与循环神经网络[3](RNN)是命名实体识别领域运用最广泛的深度学习方法。卷积神经网络(CNN)通过“端到端”学习,能够很好地实现对数据样本特征的学习与表示。而循环神经网络多用于处理序列数据,且依据实际应用需求,为了能够记忆更长的数据序列,循环神经网络经逐步演变为长短时记忆网络(LSTM)[4]、双向长短时记忆网络(BiLSTM)[5]。目前,LSTM 在NER 中已取得了巨大的成功。而双向LSTM(BiLSTM)相比单向的LSTM 模型可以有效地分析来自前后文的大量上下文信息。BiGRU[6]作为BiLSTM 的优化结构,在保持了原有的效果同时又使得结构更加简单。利用卷积神经网络(CNN)可以将每个单词的字符信息编码成其字符表示,可以有效提取数据集上的字符特征。
尽管神经网络在一般NER 领域中表现良好,但在互联网领域中,由于互联网敏感实体本身的特性,简单地使用BiGRU 进行互联网敏感实体识别仍然存在许多问题。目前,针对互联网敏感实体的识别具有许多问题:敏感实体的类型多种多样,再考虑到大量用户的创造性,几乎每天都会有新生的词、漏洞或“旧词新意”作为新的敏感实体诞生;如上所述的“旧词新意”,在不同的场景下,互联网敏感实体存在同一名称的敏感实体之间的界限不明确;网络环境的多元化,导致互联网敏感实体有很多都同时包含有中文和英文乃至各类标点符号。敏感实体之间也存在大量诸如小群体间约定俗成的代称、缩写等问题,难以识别。
为了解决上述问题,本文提出了一种带有特征模板的CNN-BiGRU-attention-CRF 模型,将深度学习算法与人工选择的特征模板相结合,在结构更简化的同时,获得比现有模型更好的性能。
本文的模型中包含了特征模板、CNN、BiGRU 和条件随机场等几个部分。由于互联网敏感实体更新速度快、命名机制变化快的特点,本文在模型中引入了人工特征模板来辅助模型正确判别是否为互联网敏感实体。又由于大量缩写、符号化的语言的存在,单纯采用token 级的字符串进行识别效果较差,因此本文采用的CNN 来提取对象字符的特征[7],以更细颗粒的特征对原有模板进行优化,再使用结构更简单的BiGRU 模型对这些上下文字符的特征进行分析。在最后,本文将人工特征模板[8-9]判断的结果与机器的结果相结合,使得本文模型对互联网敏感实体的识别性能更高。
CNN 是深度学习技术中最具代表性的神经网络结构之一,已成为许多学科的研究热点之一。互联网敏感实体是中英文混合体。对于互联网数据中的英文实体,利用CNN 提取敏感实体的字符特征。CNN 主要用于处理英文、拼音等字母组成的实体,相比于token 级,它们由更细粒度的字母组成。这些字母具有许多隐藏的特征,如声韵母、前后缀等[10]。因此,本文采用CNN来提取敏感实体的字符特征,以区分字符的大小写、字符类型、字符本身的含义等。
图1 BiGRU 结构模型图
特征模板是针对需要应用的场景而设计的,它需要综合考虑目标数据本身的特性,在本文中是互联网领域中的敏感实体。互联网敏感实体本身的组成的规律性难以寻找,如果仅仅依靠实体本身的结构和句子的构成,很难取得令人满意的结果。本文通过特征模板(FT)将单词的局部上下文信息添加到模型中。考虑到互联网数据中存在中英文混合的特点,本文提取了当前单词的上下文特征作为特征模板[14-15]。
在英文的命名实体识别中,很多情况下尽管文本的语言是英语,但它们往往都有特有的词汇、缩写和标点符号。在不同语言环境下,有着如专业词汇、文学作品或游戏内的自定义,乃至用户间约定俗成的称呼,甚至还有挑战传统的token 定义的表情符号。虽然本文主要针对的是中文环境下的互联网命名实体,但由于拼音缩写、颜文字等的存在,使用token 字符串进行分析依旧不够。如上所述,使用标准token 化假设的解决方案往往在包罗万象的网络命名实体中取得预期的目标。但是由于网络发展的日新月异,每天都有大量的新生词汇出现在网络中,其所属领域也是各异,同一个词用于不同领域也有不同的含义。构建一个适用于网络命名实体的token 化器不但需要非常多的时间和金钱,单单从其工程量而言也是浩如烟海,不切实际。因此,在互联网敏感命名实体识别中,使用字符级别的模型更加合理。通常而言,对于敏感实体并不关心整个词汇库的token 化或语义。而是关心能否在这些文本中找到需要的信息。互联网敏感实体是中英文混合体,因此对于互联网数据中的英文实体,本文利用CNN 提取敏感实体的字符特征。
虽然在处理字符特征时,每个字符本身没有特殊含义,但当几个连续字符作为一个序列,比如某些特定的前缀和后缀就会对命名实体识别产生巨大推动作用。对于由n个字符序列组成的输入序列 X =( x1, x2,… ,xn)。为了解决由于字长不同而导致的字符向量矩阵大小不一的问题,以最长的字符的长度l 为基准。每个字符序列表示为 x =(
c1, c2,… ,cl),由l 个字符组成,对长度不足l 的,在字长的左右两端填充占位符。通过查表,将每个序列x 转换成相应的字符向量,形成d×l的序列的字符向量矩阵。其中d是序列中字符的向量的长度。在提取字符特征向量的卷积运算中,在每m个字符之间加入一个卷积层,通过激活函数得到一个输出特征映射,每个输出映射可以是多个输入映射卷积值的组合。之后,在输出特征映射上进行最大池化操作,并将平均值或最大值作为与滤波器相对应的特征wi。最后,连接所有特征映射来获得字符序列w的表示:
CNN 虽然可以深层次地提取到字符集的特征,然而却缺乏对句子体系特征的表示,因此本文采用了BiGRU 对这一缺陷进行弥补。同时,BiGRU 所缺乏的提取深层次特征的能力也得到了来自CNN 的补充。
为了克服RNN 无法很好处理远距离依赖、梯度消失及梯度弥散的问题,人们提出了LSTM 模型。而GRU 则是LSTM 的一个变体,GRU 不但对于RNN 中的梯度消失有很大帮助,还将遗忘门和输入门合并成一个更新门,结构更加简单,所需参数更少,减小了模型时间代价。
通过BiGRU 网络对安全命名实体进行特征提取,再与条件随机场结合,从而得到整体网络模型,再使用BiGRU-CRF 整体网络模型对语料进行训练和测试,最终得到良好的识别结果。设x为 含 有n个 字 符 的 句 子X= (x1,x2,… ,xn), 用Y= (y1,y2, … ,yn)表示句子长度为n的标注序列,对于长度为n的句子的评分为:
式中:score1表示每个位置的评分。Pi表示通过BiGRU 网络训练得到的特征矩阵,A表示的是标签之间的转移得分,即在为一个位置进行标注时利用的是已标注的信息标签。由公式可知,整个序列每个位置的评分由两部分组成,分别是由神经网络训练得到的特征矩阵和CRF 的转移矩阵。然后利用Softmax 函数进行归一化后的概率:
在模型预测过程中,给定输入序列x,使用维特比算法来求解最优路径,即对观测序列进行标注,最高概率y如下所示,其中y′表示给定的条件特征:
本文中同时在每个单通道CNN-BiGRU 复合网络中引入了attention 机制,有效提高分类效果。首先生成敏感命名实体的注意力权重vt,通过softmax 函数生成概率向量pt,最后将生成的注意力权重分配给对应的隐层状态语义编码ht,最后生成权重分配后的新向量at:
考虑到互联网命名实体的特殊性,仅采用深度学习的方法很难在效果上取得巨大的突破,因此,本文在互联网命名实体识别中加入了人工的模板特征进行辅助,从另一个方向性显著提高模型的性能。由于人工特征模板是对深度学习的补充,而CNN 每段处理的文字是定长的,因此在此处本文也将文本分为定长的分段进行分析。本文定义了一组二进制的特征函数f k(yi,yi+1),其中yi代表当前标记,yi+1代表下一个标记,l 代表每段长度。通常,特征函数的值为1 或0,即满足特征条件时,该值为1;否则,该值为0。令:
f k(y)表示分段内所有位置的特征函数之和。再为每段文字的特征函数分配一个权重λk,并使用 λ表示这些权重向量:
再令 F(y,w)表示全局的特征向量:
如果其中一个特征函数被激活,那么它的权重 λ将被累加到score2中,即:
本文中,CNN 从字符特征中提取固定长度的特征向量,再将这些特征向量输入到BiGRU 层。在给定为中英文混合互联网语料库数据的情况下,人工制作特征模板,从输入序列中提取基于上下文的特征,然后通过查表,将输入序列转换成相应的字符向量。对于输入序列,字符特征由CNN 层计算,字符嵌入作为输入,然后将字符特征向量输入到BiGRU 层中提取信息特征。最后,将信息特征与基于上下文的特征连接起来,输入CRF 层对每个字符进行标记,以获得最佳的标签序列。当计算与t时刻的字符对应的score时,将特征模板中字符特征的score与原本score相加:
利用BiGRU 学习CNN 所提供的字符特征,加强字符特征之间上下联系,获取句子体系的特征。再辅以人工特征得到最终得分,明显的,分数越高,预测精度越高。将特征模板与模型相结合,本文最终的模型架构如图2 所示:
图2 本文模型架构
本文建立敏感实体识别模型中 CNN-BiGRU-attention-CRF部分训练过程如下:首先,将每段语料分割成长度相同的序列分别训练,不足长度的补占位符。初始化模型的参数,然后通过CNN 模型提取字符特征。在此基础上,分别对BiGRU-attention模型进行前向和后向传递提取特征,并通过运行CRF 模型计算模型的输出状态。
本文模型需要设置大量的参数,这些参数的选择非常重要,因此在设置初始的参数后选择让机器自适应。模型设置的参数如表1 所示。
表1 参数设置
到目前为止,互联网敏感实体领域还没有完整的语料库。因此,语料库为本文自行构建,包括一个自动标注的部分和一个手动标注的部分。在本研究中,本文主要识别人名、位置、组织、软件、网络相关术语和漏洞ID 等六种类型的敏感实体。
首先进行中文分词,然后通过匹配人名数据库、位置数据库、漏洞id 数据库和网络相关术语数据库,自动标注分词后的数据。然后根据标注的分词数据的字符用代码进行标记,对组织和软件进行手动注释。
本文主要选取了精确率(P)、召回率(R)、F值和准确率(A)来评估本文的敏感实体识别模型的识别效果,具体如下:
为了验证本文敏感实体识别模型的性能,论文使用同一语料,同一环境配置的条件下,主要使用LSTM-CRF、BiLSTM-CRF、CNN-BiLSTM-CRF[16]和本文的方法分别对人名、位置、组织、软件、网络相关术语和漏洞ID 等安全命名实体识别进行实验,采用准确率、召回率和F值、准确度进行评估。
对于所有语料综合分析,得到表2 中不同神经网络模型的实验数据:
表2 不同模型的实验结果比较
从表2 中实验结果可以看出,在已有的模型中,LSTM-CRF结合了CRF 和LSTM 的优点,利用LSTM 识别复杂的敏感实体,同时CRF 可以充分利用相邻标签之间的关系。BiLSTM-CRF 的表现略优于LSTM-CRF,CNN-BiLSTM-CRF 的性能优于其他模型,F值更高,验证了CNN 提取特征的有效性。本文提出的将特征模板与CNN-BiGRU-CRF 本文的模型的性能无论从准确率、精确率还是F值来看,均优于其他模型。其准确度、准确度和F值均所有模型中最高的。
而面对互联网敏感实体领域中不同的命名实体,以上的几种模型的F值性能如表3 所示:
表3 不同模型在识别人名、位置、组织、软件、网络相关术语和漏洞ID 的F 值
从表3 中可以看出,本文的模型在识别位置、软件和网络相关术语方面具有更好的性能。对于中英文混杂较多的互联网敏感实体,本文模型使用 CNN 提取英文部分的特征,使用BiLSTM-attenton-crf 提取全局特征,使用人工预训练的特征模板提取局部上下文特征,两相结合大大提高了模型的性能。
互联网敏感实体是一种与传统命名实体特征差异很大的命名实体。在网络环境下,其数量海量化、中英文混杂、符号语言、小团体适用化导致了其以一般命名实体识别的方法进行分析准确度很差。本文针对互联网敏感实体这些特性提出了一种基于深度学习和人工特征的针对互联网敏感实体的识别方法。在对字符串分析之前,先通过CNN 提取每一个字符的特征,这样有利于分析互联网敏感实体中大量存在的英文缩写、符号语言等实例。之后在传统深度学习中引入了BiGRU-attention-CRF 框架,可以分析当前字符与整体上下文关系。此外,GRU 的结构相比于传统LSTM 除了在处理能力上更好之外,简化了LSTM 的结构,使得模型的实际体量更小。字符向量经过CRF 分析后,与人工的预处理过的特征模板相结合,使得人工的模板矫正了深度学习结果的一些偏差,让本文的最终结果更接近于实际。
从结果中可以看出,对于个人、组织名称、和漏洞这些中英文混杂较少,或者几乎由纯粹的中文或英文组成的实体,本文的方法在与多种传统的方法的对比中虽然不是最优,但效果仍旧较好。但对于软件、网络相关术语、位置等缩写较多、中英文混杂的网络实体,本文提出的方法在效果上相比其他方法在识别效果上优越很多。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!