CN114881172A - 一种基于加权词向量和神经网络的软件漏洞自动分类方法 - Google Patents

一种基于加权词向量和神经网络的软件漏洞自动分类方法 Download PDF

Info

Publication number
CN114881172A
CN114881172A CN202210614135.1A CN202210614135A CN114881172A CN 114881172 A CN114881172 A CN 114881172A CN 202210614135 A CN202210614135 A CN 202210614135A CN 114881172 A CN114881172 A CN 114881172A
Authority
CN
China
Prior art keywords
word
layer
vector
vulnerability
words
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210614135.1A
Other languages
English (en)
Inventor
王倩
高玉莹
任家东
张炳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yanshan University
Original Assignee
Yanshan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yanshan University filed Critical Yanshan University
Priority to CN202210614135.1A priority Critical patent/CN114881172A/zh
Publication of CN114881172A publication Critical patent/CN114881172A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于加权词向量和神经网络的软件漏洞自动分类方法,属于计算机软件安全领域,包括以下步骤:S1,对漏洞详细描述文本的数据预处理;S2,漏洞文本经过预处理后,通过Word2Vec模型和N‑TF‑IDF算法结合构造加权词向量,完成文本向量表示;S3,基于神经网络的TCNN‑BiGRU漏洞分类模型实现漏洞自动分类,模型主要包括4个部分,分别为输入层、TextCNN结构、BiGRU结构和全连接层。本发明能够满足对软件漏洞的自动化分类需求,且不受漏洞数量和漏洞种类增多的限制,有效地处理词向量空间的高维性和稀疏性问题,在准确率、宏精确率、宏召回率和宏F1值等多维评价指标中表现出较好性能。

Description

一种基于加权词向量和神经网络的软件漏洞自动分类方法
技术领域
本发明属于计算机软件安全领域,涉及一种基于加权词向量和神经网络的软件漏洞自动分类方法。
背景技术
近年来,计算机软件漏洞的数量和种类逐渐增多,美国国家计算机通用漏洞数据库(National Vulnerability Database,NVD)2021年共报告了18378个漏洞,创下历史新高,对漏洞的有效分析和管理变得越来越重要。漏洞分类是软件开发和软件质量维护中的一项重要活动,不同类型的漏洞其危害程度不同,通过提取漏洞描述中的特征属性对漏洞进行及时分类,可以有效降低漏洞管理与系统维护的成本。漏洞自动化分类模型的研究应运而生。
早期的计算机安全漏洞分类方法有很多种,主要有RISOS分类法、PA分类法、Aslam分类法等。RISOS分类法的描述方式是安全漏洞的攻击方式,主要研究的是操作系统漏洞,难以应对现有的各种复杂漏洞;PA分类法在RISOS的基础上进一步讨论了操作系统之上应用程序的安全漏洞;Aslam分类法对应的平台是UNIX操作系统,考虑的是系统内核级别的漏洞。由于近年来计算机安全漏洞层出不穷,发现漏洞的位置也不再仅仅局限于操作系统和服务器,而多集中在Web浏览器、数据或系统备份恢复软件、防病毒软件等。因此,早期的分类方法已经不能满足对目前存在的各种漏洞进行分类的要求,传统的人工漏洞分类方法也已经不再适用,漏洞的挖掘技术更加自动化和智能化。
现有的漏洞自动分类方法多采用机器学习的经典分类算法及改进算法,在一定程度上提高了漏洞自动分类的准确率。Davari等人提出了一种基于激活漏洞条件的漏洞自动分类框架,使用常见机器学习技术构建具有最高F1-score的分类器来标记未知漏洞,该方法在Firefox项目的580个软件安全漏洞数据集上表现良好。Yang等人为提高基于支持向量机的漏洞自动分类方法的性能,采用模糊熵进行特征选择,由TF-IDF确定特征权重,利用改进的粒子群算法对支持向量机的参数进行优化。与传统支持向量机方法相比,该方法提高了分类准确率并缩短了分类时间。Jinfu Chen等人提出了一种基于频率-逆重力矩(TF-IGM)和特征选择的漏洞严重性分类框架,通过实验证明了TF-IGM模型及特征选择的优越性,在不同数据集之间存在显著差异。
然而,随着漏洞数据的数量和复杂程度日益增加,漏洞特征呈现出高维度和稀疏性的特点,传统的向量化表示和机器学习方法表现出了局限性,深度学习的神经网络逐渐被应用到漏洞自动分类任务中。Han等人提出了一种基于深度学习的方法来预测软件漏洞的严重程度,该方法利用词嵌入模型和一层浅卷积神经网络来自动捕获漏洞描述的判别词和句子特征,得到了较高的分类精度的和训练效率。Huang等人提出了结合词向量空间模型与深度神经网络模型的漏洞自动分类方法,在NVD数据集上证明了深度神经网络分类性能优于SVM、KNN等机器学习分类器,但该方法结合TF-IDF和信息增益构造的词向量空间仍具有稀疏性。Nakagawa等人使用word2vec模型进行单词嵌入,并使用字符级别的卷积神经网络(character-level CNN)来预测漏洞的严重程度,准确率达到了72.5%。Aghaei等人提出了利用文本挖掘技术和神经网络的自动化技术,使用N-gram进行特征选择和一层浅卷积神经网络实现分类,在NVD数据集上的准确率为92%,在MITRE数据集的细粒度和粗粒度分类准确率分别为75%和90%。由于只有一层浅卷积神经网络,算法的性能没有与更复杂的网络进行比较。Das等人提出了一种基于Transformer的框架(V2W-BERT),该框架结合了自然语言处理、链接预测和迁移学习的思想,在大样本和小样本中均表现良好。Vishnu等人提出了一种基于自注意力的神经网络(SA-DNN)模型,该模型结合文本挖掘方法从大量漏洞描述文本中识别漏洞类别,通过采用134091个漏洞报告对该模型进行评估,证明了该方法的有效性。上述基于神经网络的分类方法在处理词向量空间高维性和稀疏性问题上表现出更好的性能,但这些方法均采用单一神经网络模型,没有考虑词向量加权表示的有效性以及模型的泛化能力等方面的影响,漏洞自动分类的性能还有待提升。
发明内容
本发明的目的在于提供一种基于加权词向量和神经网络的软件漏洞自动分类方法,通过对TF-IDF算法进行改进以构造更为有效的加权词向量,利用词嵌入模型Word2Vec生成低维稠密的词嵌入向量,并将卷积神经网络与循环神经网络相结合构建漏洞自动分类模型TCNN-BiGRU,实现对漏洞文本的特征降维和有效分类。同时,引入了Dropout方法和Early Stopping方法来抑制过拟合问题,提高模型的泛化能力。本发明将漏洞详细描述信息作为文本数据集合,相应的漏洞类别作为文本标签,主要包括3部分内容:数据预处理、文本表示以及TCNN-BiGRU分类模型。
本发明针对软件漏洞的自动分类方法进行研究,并在国际公认的美国国家计算机通用漏洞数据库NVD上进行实验分析。本发明能够适应实时更新的软件漏洞数据并有效提高软件漏洞分类的性能,对于日益增多的软件漏洞种类和数量的有效分类管理显得尤为重要。
本申请公开了一种基于加权词向量和神经网络的软件漏洞自动分类方法,包括以下步骤:
S1,对漏洞详细描述文本的数据预处理,具体包括步骤:
S11,分词及去除标点符号,通过识别漏洞描述文本中的空格和标点符号即可实现文本分词;
S12,大写字母转换成小写及词形还原,在这一步将英文单词的不同形式转换成统一的形式,便于之后的文本处理;
S13,去除停用词及特殊符号,停用词包括介词、冠词、代词等,特殊符号主要是文本中与上下文不存在语义联系的字符;
S2,漏洞文本经过预处理后,通过Word2Vec模型和N-TF-IDF算法结合构造加权词向量,完成文本向量表示,具体包括步骤:
S21,通过Word2Vec模型训练文本集合中所有单词的词向量,它将每个词映射成低维空间上的稠密向量,表示出在语义层面上词与词之间的相关信息。本发明采用Word2Vec中的跳字模型(Skip-gram),Skip-gram模型是根据中心词去预测其上下文,输入是中心词的one-hot向量,输出为对中心词上下文的预测;
S22,对于训练集,生成训练集词汇表,其中包括所有训练集文本中不重复的单词,根据公式(1)-(3)计算词汇表中所有单词的N-TF-IDF权值,然后根据公式(4)结合Word2Vec词向量构成训练集词汇表中所有单词的加权词向量,从而将训练集所有文本表示成加权词向量构成的句子矩阵;
改进后的单词的文本内词频TF为类别内的词频与该类下所有词的词频的比值,如公式(1)所示:
Figure BDA0003672968650000041
其中,ni,j为单词ti在第j类出现的次数,∑mnm,j为第j类所有词出现的次数。
改进后的IDF计算公式中引入类别文本数,如公式(2)所示:
Figure BDA0003672968650000042
其中,N为文本集合中文本总数,Ni,j为类别j中包含词ti的文本数,∑kNi,k为所有类别中包含词ti的文本数。
综合公式(1)和公式(2),词语在不同类别的文本中的重要性如公式(3)所示:
Figure BDA0003672968650000043
S23,对于验证集和测试集,分别生成验证集词汇表和测试集词汇表,如果单词在训练集词汇表中,其N-TF-IDF权值设为训练集中该单词的N-TF-IDF权值,如果单词没有在训练集词汇表中,其N-TF-IDF权值设为0.5,再结合Word2Vec词向量构成词汇表中所有单词的加权词向量,从而将验证集和测试集所有文本分别表示成加权词向量构成的句子矩阵。构造加权的Wrod2Vec词向量,方法如下:
通过N-TF-IDF算法得到矩阵M∈R|V|×|K|,其中|V|为数据集中所有不重复单词的数量,|K|为类别数量,即矩阵M为每个单词在不同类别的权重,选取每个单词在所有类别中的权重的最大值作为该单词最终的权重,与其Word2Vec词向量相乘,得到该单词的最终加权词向量,如公式(4)所示:
Weight_Vector(ti)=Word2Vec(ti)*max(N-TF-IDFi,j) (4)
其中,Weight_Vector(ti)为单词ti的加权词向量权重,Word2Vec(ti)为单词ti的Word2Vec词嵌入向量,max()函数为求得单词ti在所有类别中的权重的最大值。
S3,基于神经网络的TCNN-BiGRU漏洞分类模型实现漏洞自动分类,模型主要包括4个部分,分别为输入层、TextCNN结构、BiGRU结构和全连接层。
S31,输入层的输入是由词嵌入向量表示的句子矩阵。由于卷积层的输入要求句子长度相同,所以要做定长处理,设定长度为n,超过的截断,不足的补0。输入层的矩阵记为Wn×d,其中n为句子中单词的个数,d为词向量的维度。
S32,TextCNN结构由卷积层和池化层组成。在卷积层中,应用不同大小的卷积核从输入矩阵中提取特征,不仅考虑了词义,而且考虑了词序及其上下文。卷积核可以定义为ω∈Rh×d,其中h为卷积核的高度,它是个超参数,通常值设为2~5,d为卷积核的宽度,与词向量的维度大小相同。卷积核对句子向量矩阵中每个可能的窗口做卷积操作生成特征图Sj∈Rn-h+1,其中n为句子中单词的个数,不同尺寸的卷积核将生成不同大小的特征图。
在卷积层应用不同尺寸的卷积核生成了不同大小的特征图,因此需要对每个特征图进行池化操作,来获得相同维度的特征。最常用的池化函数是最大池化和平均池化,本文采用最大池化对卷积层的输出进行池化操作,抽取每个特征图的最大值表示该特征,从而捕获最重要的特征。通过最大池化操作,每一个卷积核得到一个特征值,对所有卷积核进行池化操作,再拼接起来,得到池化层最终的特征向量。
S33,使用双向门控循环单元(Bidirectional Gated Recurrent Unit,BiGRU),BiGRU将GRU应用两次且方向相反,即在每个时间步t将输入的数据同时传递给前向隐藏层和后向隐藏层,最终BiGRU的输出由两个单向GRU输出的特征向量进行拼接得到。
GRU的核心结构包括两个门控结构:重置门和更新门。GRU内部结构的具体计算公式如下:
zt=σ(Wz·[ht-1,xt]) (5)
rt=σ(Wr·[ht-1,xt]) (6)
Figure BDA0003672968650000061
Figure BDA0003672968650000062
Figure BDA0003672968650000063
Figure BDA0003672968650000064
Figure BDA0003672968650000065
其中,rt表示重置门的门值,zt表示更新门的门值,ht-1为t-1时刻的隐藏层的输出,xt为t时刻的输入,ht为t时刻隐藏层的输出,
Figure BDA0003672968650000066
表示t时刻隐藏层节点的候选值,三个Wz、Wr、W表示线性变换操作,*表示矩阵元素相乘,σ表示sigmoid激活函数,yt表示输出。
Figure BDA0003672968650000071
Figure BDA0003672968650000072
分别为时间步t的前向和后向隐藏层的状态,
Figure BDA0003672968650000073
Figure BDA0003672968650000074
分别为时间步t-1的前向和后向隐藏层的状态,ht为BiGRU层的最终输出。
将BiGRU层输出的特征向量输入池化层,采用最大池化操作继续提取代表能力最强的特征向量,降低输出向量的维度。
S34,为了抑制模型的过拟合问题,本发明在TCNN-BiGRU模型的池化层和全连接层之间加入了Dropout层,并在模型的训练过程中加入了Early Stopping方法。
S35,全连接层的输入为TextCNN结构和BiGRU结构输出的特征向量进行拼接得到的最终向量。全连接层类似于传统神经网络中的隐藏层,其中的每个神经元与其前一层的所有神经元进行全连接,整合局部特征图,得到全局特征信息,并将输出值送入Softmax分类器。Softmax激活函数通过对向量进行运算,将向量中的值映射成为(0,1)之间的值,得到句子属于每个类别的概率,概率值最大的类别即为预测的分类结果。Softmax函数计算公式如下:
Figure BDA0003672968650000075
其中,p(yi|s)为句子属于第i类的概率,yi为向量的第i个值,c为类别数。
由于采用了上述技术方案,本发明取得的技术效果如下:
本发明能够满足对软件漏洞的自动化分类需求,且不受漏洞数量和漏洞种类增多的限制。
传统的TF-IDF算法为每个词语赋予一个权重,但通常词语在不同类别文本中的重要程度不同,本发明提出了一种新的词语加权方法N-TF-IDF,可基于类间分布情况为词语分配不同的权重。
本发明将N-TF-IDF算法与Wrod2Vec词向量相结合,构造低维稠密的加权词向量。
本发明将深度学习中的卷积神经网络与循环神经网络相结合,充分利用了神经网络自动提取特征的优势,并将TextCNN提取漏洞文本局部语义信息与GRU捕获漏洞文本上下文的长期依赖关系的特点相结合,提出了一种基于神经网络的TCNN-BiGRU漏洞分类模型。
本发明采用双向的GRU算法,相较单向GRU算法只能捕获当前词之前词的特征,双向GRU算法能够同时捕获前后词的特征。
本发明引入Dropout方法和Early Stopping方法抑制过拟合,提高了模型的泛化能力。
本发明能够有效地处理词向量空间的高维性和稀疏性问题,在准确率、宏精确率、宏召回率和宏F1值等多维评价指标中表现出较好性能。
附图说明
图1是TCNN-BiGRU漏洞分类模型的整体框架;
图2是Skip-gram模型结构;
图3是N-TF-IDF算法与Word2Vec模型相结合的加权词向量构造过程;
图4是TCNN-BiGRU模型结构;
图5是TextCNN结构的卷积层和池化层;
图6是GRU模型内部结构;
图7是准确率及训练时间与句子长度变化关系图;
图8是训练集和验证集中的损失值变化图。
具体实施方式
下面结合具体实施方式对本发明的技术方案进行详细说明。
1)数据预处理
本发明采用美国国家计算机通用漏洞数据库NVD中存储的数据进行漏洞自动分类实验研究。在漏洞数据中提取出每条漏洞的CVE-ID,CWE-ID和Description三部分信息,其中,CVE-ID表示每条漏洞的编号,如编号“CVE-2002-0999”中,“2002”代表漏洞提交的年份,“0999”代表在当年提交的漏洞中该漏洞依照时间排序的序号;CWE-ID表示漏洞的类别,例如“CWE-79”,即“跨站点脚本”类型;Description表示漏洞的详细描述文本信息,为英文文本。实验将漏洞数据按7:2:1的比例划分成训练集、验证集和测试集,其中文本集合为漏洞详细的描述信息,标签为漏洞类别。经过分词及去除标点符号、大写字母转换成小写及词形还原、去除停用词及特殊符号预处理后,以一条漏洞为例,如下所示:
漏洞ID:CVE-2002-0999
类别:CWE-89
描述文本:Multiple SQL injection vulnerabilities in CARE 2002 beforebeta1.0.02 allow remote attackers to perform unauthorized databaseoperations.
预处理后的描述文本:‘multiple’‘vulnerabilities’‘care’‘2002’‘beta’‘02’‘perform’‘unauthorized’‘database’‘operations’
2)参数设置
本发明使用Tensorflow深度学习框架实现TCNN-BiGRU模型,使用Gensim工具下的Word2Vec模型的Skip-gram模型训练词向量,Early Stopping方法由Keras框架下的Callbacks函数实现。Word2Vec模型及TCNN-BiGRU模型的参数设置分别如表1和表2所示。
表1 Word2Vec模型的参数设置
Figure BDA0003672968650000091
Figure BDA0003672968650000101
表2 TCNN-BiGRU模型的参数设置
Figure BDA0003672968650000102
Skip-gram模型由三层神经网络构成,包括输入层、隐藏层、输出层。输入层是中心词xk的one-hot向量,输入层和隐藏层之间的权重矩阵为WV×N,隐藏层和输出层之间的权重矩阵为W'N×V,输出层通过激活函数得到概率分布最大的前C个向量y1j,y2j,...,yCj即为预测的中心词的上下文向量,其中C为上下文窗口大小。模型基于损失函数进行梯度优化训练,训练过程中不断更新权重矩阵,训练完成后得到的权重矩阵WV×N就是所求的词嵌入矩阵,其中V为训练的词数,N为词向量的维度,中心词xk的one-hot向量乘以权重矩阵WV×N即为xk的词嵌入向量。
3)超参数优化
(1)句子长度
经过预处理的漏洞文本平均长度约为20。卷积层的输入要求句子长度相同,定长处理时的句子长度为n,在验证集上的分类准确率及训练时间随着句子长度n的变化关系如图7所示。
当n为120时,分类准确率为0.9352,训练时间大约需要8241s,当n大于120时,分类准确率已经不再明显提高,但训练时间却仍大幅增加,综合分类性能和时间复杂度考虑,本文将卷积层输入的句子长度设为120。
(2)Early Stopping的参数
模型在训练过程中训练集和验证集的损失值变化如图8所示。从图中可以看出,开始训练时,训练集和验证集上的损失值都随着迭代次数的增加而下降,但当迭代次数达到一定值时,验证集上的损失值趋于平缓甚至开始上升,此时出现了过拟合。在模型的训练过程中加入Early Stopping方法,可以提前结束训练,一定程度抑制过拟合,缩短训练时间,本实验根据模型在训练集和验证集上的损失值变化情况,将Early Stopping的参数设置如表3所示。
表3 Early Stopping的参数设置
Figure BDA0003672968650000111
使用本申请公开的一种基于加权词向量和神经网络的软件漏洞自动分类算法,以国际公认的美国国家计算机通用漏洞数据库NVD中的漏洞记录为实验数据,通过实验证明了漏洞分类效果较为理想,和设计的预期一致。本发明提出方法记为N-TF-IDF+Word2Vec+TCNN-BiGRU。通过与以下6种方法进行消融实验对比,在准确率、宏精确率、宏召回率、宏F1值等指标上具有较好的性能,分别达到了93.75%,92.16%,90.37%,91.13%,在所有评价指标上均优于全部对比方法。与6种方法的对比结果如表4所示。
表4不同漏洞分类方法的比较
Figure BDA0003672968650000121
根据上表的对比实验结果可知,本发明文提出的算法在准确率、宏精确率、宏召回率、宏F1值上均优于其他算法。方法1没有考虑词语的权重,方法2采用TF-IDF来计算词语的权重。对比方法1和方法2,同样采用TCNN-BiGRU分类器,证明了本文提出的N-TF-IDF方法的有效性。此外,注意到方法2比方法1的分类性能要差,这主要是因为传统TF-IDF算法在计算词向量权重时存在局限性,使它更适合于计算长文本的词向量权重,但漏洞数据集中的文本在经过数据预处理后通常属于短文本,本实验中的文本平均长度约为20个单词,因此通过传统的TF-IDF算法对Word2Vec词向量进行加权并不会提高Word2Vec词向量的有效性。本发明提出的N-TF-IDF算法基于类间分布情况为词语分配权重,计算词向量权重时的有效性不受文本长度的限制,因此本文提出的N-TF-IDF算法可以实现对Word2Vec词向量的有效加权。
本发明与方法3和方法4的不同仅仅在于分类器。相较于方法3,本发明提出的方法准确率和宏F1值(F1值是对精确率和召回率的综合评估)分别提高了16.15%和20.1%。方法5和方法6的性能相近且指标值都在90%左右,证明了TexCNN和BiGRU分类器均具有较好的分类性能,而在本发明提出的方法中,两个分类器的结合使所有的指标值都高于90%,证明了发明中TCNN-BiGRU分类器性能的优越性。总之,实验结果证明了本发明提出的方法要优于其他对比方法。

Claims (7)

1.一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于包括以下步骤:
S1,对漏洞详细描述文本的数据预处理;
S2,漏洞文本经过预处理后,通过Word2Vec模型和N-TF-IDF算法结合构造加权词向量,完成文本向量表示;
S3,基于神经网络的TCNN-BiGRU漏洞分类模型实现漏洞自动分类,模型主要包括4个部分,分别为输入层、TextCNN结构、BiGRU结构和全连接层。
2.根据权利要求1所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于步骤S1具体包括:
S11,分词及去除标点符号,通过识别漏洞描述文本中的空格和标点符号即可实现文本分词;
S12,大写字母转换成小写及词形还原,在这一步将英文单词的不同形式转换成统一的形式,便于之后的文本处理;
S13,去除停用词及特殊符号,停用词包括介词、冠词、代词等,特殊符号主要是文本中与上下文不存在语义联系的字符。
3.根据权利要求1所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于步骤S2具体包括:
S21,通过Word2Vec模型训练文本集合中所有单词的词向量,它将每个词映射成低维空间上的稠密向量,表示出在语义层面上词与词之间的相关信息;
S22,对于训练集,生成训练集词汇表,其中包括所有训练集文本中不重复的单词,根据公式(1)-(3)计算词汇表中所有单词的N-TF-IDF权值,然后根据公式(4)结合Word2Vec词向量构成训练集词汇表中所有单词的加权词向量,从而将训练集所有文本表示成加权词向量构成的句子矩阵;
改进后的单词的文本内词频TF为类别内的词频与该类下所有词的词频的比值,如公式(1)所示:
Figure FDA0003672968640000021
其中,ni,j为单词ti在第j类出现的次数,∑mnm,j为第j类所有词出现的次数;改进后的IDF计算公式中引入类别文本数,如公式(2)所示:
Figure FDA0003672968640000022
其中,N为文本集合中文本总数,Ni,j为类别j中包含词ti的文本数,∑kNi,k为所有类别中包含词ti的文本数;
综合公式(1)和公式(2),词语在不同类别的文本中的重要性如公式(3)所示:
Figure FDA0003672968640000023
S23,对于验证集和测试集,分别生成验证集词汇表和测试集词汇表,如果单词在训练集词汇表中,其N-TF-IDF权值设为训练集中该单词的N-TF-IDF权值,如果单词没有在训练集词汇表中,其N-TF-IDF权值设为0.5,再结合Word2Vec词向量构成词汇表中所有单词的加权词向量,从而将验证集和测试集所有文本分别表示成加权词向量构成的句子矩阵。
4.根据权利要求3所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于构造加权的Wrod2Vec词向量的方法如下:
通过N-TF-IDF算法得到矩阵M∈R|V|×|K|,其中|V|为数据集中所有不重复单词的数量,|K|为类别数量,即矩阵M为每个单词在不同类别的权重,选取每个单词在所有类别中的权重的最大值作为该单词最终的权重,与其Word2Vec词向量相乘,得到该单词的最终加权词向量,如公式(4)所示:
Weight_Vector(ti)=Word2Vec(ti)*max(N-TF-IDFi,j) (4)
其中,Weight_Vector(ti)为单词ti的加权词向量权重,Word2Vec(ti)为单词ti的Word2Vec词嵌入向量,max()函数为求得单词ti在所有类别中的权重的最大值。
5.根据权利要求3所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于:所述的Word2Vec模型为Word2Vec中的跳字模型,Skip-gram,Skip-gram模型是根据中心词去预测其上下文,输入是中心词的one-hot向量,输出为对中心词上下文的预测。
6.根据权利要求1所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于步骤S3具体包括:
S31,输入层的输入是由词嵌入向量表示的句子矩阵;由于卷积层的输入要求句子长度相同,所以要做定长处理,设定长度为n,超过的截断,不足的补0,输入层的矩阵记为Wn×d,其中n为句子中单词的个数,d为词向量的维度;
S32,TextCNN结构由卷积层和池化层组成;在卷积层中,应用不同大小的卷积核从输入矩阵中提取特征,卷积核定义为ω∈Rh×d,其中h为卷积核的高度,是超参数,通常值设为2~5,d为卷积核的宽度,与词向量的维度大小相同;卷积核对句子向量矩阵中每个可能的窗口做卷积操作生成特征图Sj∈Rn-h+1,其中n为句子中单词的个数,不同尺寸的卷积核将生成不同大小的特征图;
S33,使用双向门控循环单元,Bidirectional Gated Recurrent Unit,BiGRU,BiGRU将GRU应用两次且方向相反,即在每个时间步t将输入的数据同时传递给前向隐藏层和后向隐藏层,最终BiGRU的输出由两个单向GRU输出的特征向量进行拼接得到;
GRU的核心结构包括两个门控结构:重置门和更新门;GRU内部结构的具体计算公式如下:
zt=σ(Wz·[ht-1,xt]) (5)
rt=σ(Wr·[ht-1,xt]) (6)
Figure FDA0003672968640000041
Figure FDA0003672968640000042
Figure FDA0003672968640000043
Figure FDA0003672968640000044
Figure FDA0003672968640000045
其中,rt表示重置门的门值,zt表示更新门的门值,ht-1为t-1时刻的隐藏层的输出,xt为t时刻的输入,ht为t时刻隐藏层的输出,
Figure FDA0003672968640000046
表示t时刻隐藏层节点的候选值,三个Wz、Wr、W表示线性变换操作,*表示矩阵元素相乘,σ表示sigmoid激活函数,yt表示输出;
Figure FDA0003672968640000047
Figure FDA0003672968640000048
分别为时间步t的前向和后向隐藏层的状态,
Figure FDA0003672968640000049
Figure FDA00036729686400000410
分别为时间步t-1的前向和后向隐藏层的状态,ht为BiGRU层的最终输出;
将BiGRU层输出的特征向量输入池化层,采用最大池化操作继续提取代表能力最强的特征向量,降低输出向量的维度;
S34,为了抑制模型的过拟合问题,在TCNN-BiGRU模型的池化层和全连接层之间加入了Dropout层,并在模型的训练过程中加入了Early Stopping方法;
S35,全连接层的输入为TextCNN结构和BiGRU结构输出的特征向量进行拼接得到的最终向量;全连接层类似于传统神经网络中的隐藏层,其中的每个神经元与其前一层的所有神经元进行全连接,整合局部特征图,得到全局特征信息,并将输出值送入Softmax分类器;Softmax激活函数通过对向量进行运算,将向量中的值映射成为(0,1)之间的值,得到句子属于每个类别的概率,概率值最大的类别即为预测的分类结果;Softmax函数计算公式如下:
Figure FDA0003672968640000051
其中,p(yi|s)为句子属于第i类的概率,yi为向量的第i个值,c为类别数。
7.根据权利要求6所述的一种基于加权词向量和神经网络的软件漏洞自动分类方法,其特征在于:在卷积层应用不同尺寸的卷积核生成了不同大小的特征图,需要对每个特征图进行池化操作,来获得相同维度的特征;采用最大池化对卷积层的输出进行池化操作,抽取每个特征图的最大值表示该特征,从而捕获最重要的特征;通过最大池化操作,每一个卷积核得到一个特征值,对所有卷积核进行池化操作,再拼接起来,得到池化层最终的特征向量。
CN202210614135.1A 2022-05-31 2022-05-31 一种基于加权词向量和神经网络的软件漏洞自动分类方法 Pending CN114881172A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210614135.1A CN114881172A (zh) 2022-05-31 2022-05-31 一种基于加权词向量和神经网络的软件漏洞自动分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210614135.1A CN114881172A (zh) 2022-05-31 2022-05-31 一种基于加权词向量和神经网络的软件漏洞自动分类方法

Publications (1)

Publication Number Publication Date
CN114881172A true CN114881172A (zh) 2022-08-09

Family

ID=82679298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210614135.1A Pending CN114881172A (zh) 2022-05-31 2022-05-31 一种基于加权词向量和神经网络的软件漏洞自动分类方法

Country Status (1)

Country Link
CN (1) CN114881172A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117251376A (zh) * 2023-10-09 2023-12-19 湖北大学 一种软件缺陷预测方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117251376A (zh) * 2023-10-09 2023-12-19 湖北大学 一种软件缺陷预测方法和系统
CN117251376B (zh) * 2023-10-09 2024-03-19 湖北大学 一种软件缺陷预测方法和系统

Similar Documents

Publication Publication Date Title
Zulqarnain et al. Efficient processing of GRU based on word embedding for text classification
Chen et al. Ensemble application of convolutional and recurrent neural networks for multi-label text categorization
CN112711953B (zh) 一种基于注意力机制和gcn的文本多标签分类方法和系统
CN110321563B (zh) 基于混合监督模型的文本情感分析方法
CN110348227B (zh) 一种软件漏洞的分类方法及系统
CN109165387A (zh) 一种基于gru神经网络的中文评论情感分析法
CN113535953B (zh) 一种基于元学习的少样本分类方法
CN112256866B (zh) 一种基于深度学习的文本细粒度情感分析算法
CN112052684A (zh) 电力计量的命名实体识别方法、装置、设备和存储介质
CN111984791B (zh) 一种基于注意力机制的长文分类方法
CN113392209A (zh) 一种基于人工智能的文本聚类方法、相关设备及存储介质
CN111241303A (zh) 一种大规模非结构化文本数据的远程监督关系抽取方法
CN112836051B (zh) 一种在线自学习的法院电子卷宗文本分类方法
CN112529638B (zh) 基于用户分类和深度学习的服务需求动态预测方法及系统
CN111274790A (zh) 基于句法依存图的篇章级事件嵌入方法及装置
CN111709225B (zh) 一种事件因果关系判别方法、装置和计算机可读存储介质
CN115062727A (zh) 一种基于多阶超图卷积网络的图节点分类方法及系统
CN115292490A (zh) 一种用于政策解读语义的分析算法
CN114881173A (zh) 基于自注意力机制的简历分类方法和装置
CN112668633B (zh) 一种基于细粒度领域自适应的图迁移学习方法
JP2005078240A (ja) データマイニングによる知識抽出法
CN112559741B (zh) 核电设备缺陷记录文本分类方法、系统、介质及电子设备
CN114881172A (zh) 一种基于加权词向量和神经网络的软件漏洞自动分类方法
Zhang et al. Text Sentiment Classification Based on Feature Fusion.
CN114138971A (zh) 一种基于遗传算法的极大多标签分类方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination