《武汉工程大学学报》  2020年02期 207-212   出版日期:2021-01-26   ISSN:1674-2869   CN:42-1779/TQ
基于CNN的突发事件预警系统的设计与实现


伴随着当今互联网的飞速发展,面对互联网渠道带来的大量实时数据,从中获得数据并进行分析监测已经成为了重要途径[1-2],在城市应急管理体系中,建立能够人机互动、随需应变、高效准确的突发事件预警系统是提升政府应急管理水平的重要手段[3]。对城市恐怖威胁突发事件,其存在的潜在威胁和相关部门的事后应急救援、处理方式都会成为关注焦点,在事件传播信息不准确的情况下,就可能引发极大的负面作用,甚至影响到社会稳定和政府公信力。因此,在当今互联网时代下,迫切需要对网络传播的恐怖威胁事件进行及时抓取、处理、分析和研判,以便及时有效地掌握事件的影响程度和演化规律。相比于传统的建模方式,采用数据获取、分析、展示一体的智能化方式更加适应当今的互联网环境。在数据分析部分,根据数据源类型,可以归划成为短文本分类的问题,传统分类方法主要包含特征工程、特征选择和机器学习算法3个方面[4];随着深度学习发展,越来越多的学者开始使用深度学习[5-7]来解决分类问题,这种方法基于深度神经网络的模型在无需大量人工特征的情况下取得了比传统分类器更好的效果[8]。而随着后续学者的深入研究,面对上述网络模型的特征表达语义弱、文本表示维度高等问题,提出了相关改进算法,谢金宝等[9]提出基于语义理解的注意力神经网络、长短期记忆网络与卷积神经网络(convolution neural network,CNN)的多元融合的文本分类模型,结果表明相较于传统的结构模型,该模型的文本识别能力提升较为明显。对传统CNN结合统计的方法虽然可以通过构建词向量和权重保留词语上下文关系,但传统CNN表达能力却没有提高。本文提出通过采用结合改进型词频-逆文本频率(term frequency-inverse document frequency,TI)、word2vec的改进型CNN为分析模型,建立了一套以当地相关安全网站所发布的安全新闻事件为研究对象,以挖掘和分析事件中存在的威胁隐患为目的智能化获取、分析、展示数据研判系统,以便获取恐怖威胁突发事件安保预警等级,协助安保部门提升城市安全事件威胁检测效率,从而降低对社会造成的各类损失。1 系统总体设计方案系统的主要任务是挖掘和分析针对当地在互联网中发布的突发事件相关信息并及时向城市突发事件应急管理部门提示预警等级,用于考虑是否提升相应地区应急管理力度,提高应急保障部门工作效率以减少相应损失,因此系统功能设计为如图1所示的3大模块。整个系统的城市恐怖突发事件的威胁分析工作流程分为3个阶段,采用python开源框架Scrapy,实现对拟定网站的遍历爬取,获取突发事件相关信息,以结构化方式存入到数据库中。再利用分词清洗功能进行预处理,再代入CNN核心算法模型中分析研判,给出应急等级,最后采用B/S(Browser/Server)技术实现对应急等级和相应数据的展示,整套系统具体工作流程如图2所示。单条突发事件威胁程度的划分,参考我国突发公共事件分类等级,结合系统应用环境的实际,将单条事件的等级划分为4个等级,分别为I级(红色)、II级(橙色)、III级(黄色)、IV级(蓝色),威胁程度分别对应重大威胁、较大威胁、一般威胁、轻微威胁。城市应急等级也将分为4种程度,分别为I、II、III、IV级安保等级,I级最高,同时排除无威胁度事件IV级数量。安保等级数值计算公式为:[T=0.9a+0.6b+0.3c+0.0d] (1)其中a,b,c,d分别对应4种等级威胁度突发事件的数量,参照类似G.A.Millar的9级量化方法[10],将事件类型采用四级量化权重值,分别为0.9,0.6,0.3,0.0。由于关于突发事件威胁度的语料相对较少,采用人工筛选标记的方法对采集样本进行标记分类,以最近1个月为1个期间段,同往期数据比较,确定表1所示威胁等级数值T取值范围。根据上述设计方案,在Windows 10上以开发语言python为主,采用B/S架构设计,集结HTML、 CSS、JavaScript、Echarts等技术开发系统前台界面;使用Scrapy爬虫框架对指定统一资源定位符(uniform resource locator,URL)数据进行抓取并利用JieBa分词对其进行分词、清洗;采用结合了word2vec的改进型CNN模型对数据进行威胁度分类;数据库管理系统采用MySQL;以Django为Web服务器。在硬件方面,均采用Lenovo Inter(R)Core(TM)i5 -7400CPU服务器,8 GB运行内存,Centos7操作系统,其中数据研判机器显卡为NVIDIA GeForce GTX 1060 Founders?。2 CNN分析研判算法在构建威胁度研判模型时,首先需要对数据采集入库模块所采集的数据进行预处理,将文本数据转换成网络模型的输入向量矩阵,系统采用的word2vec是一种快速有效地训练词向量模型的方法[11],具体为先对文本[w]采用JieBa分词对整个文本进行分词处理,处理后文本中的每1条数据和经过分词后的文本转换为低维数值向量的形式如下:[w=[w1,...,wn]] (2)[V=[Vw1,...,Vwn]] (3)其中[n]为词语个数,列向量Vwi与词wi相对应,由多维数值构成。而为了刻画词语对文本的重要度,在将单词转换成词向量时用改进型词频-逆文本频率[12]进行向量词权重的计算,使得文本生成的词向量从高纬度高稀疏的传统数据变成了类似图像的连续稠密矩阵数据。将获取的文本数据转换成词向量后,系统采用的卷积神经网络会通过把词向量不同的特征拼接作为卷积神经网络的输入,使得网络模型在训练过程中针对不同的特征信息来学习和调整模型的参数,从而获得更多的隐藏信息。同时为了提高网络的表达能力,对卷积神经网络进行了优化,优化后的神经网络结构如图3所示,整个网络结构总共由5个部分组成,分别为输入层、卷积层、跨层、池化层和全连接层(包含输出层)。对于网络结构中添加的跨层,系统在传统网络结构的基础上,在卷积层后面增加了1个跨通道层[13],使得在面对提取特征多为非线性的情况下,可以提取出更抽象的特征,从而提高网络的表达能力。其本质是1个[1×1]的卷积核,实现在以原本卷积层的输出ci作为跨层的输入,对应相应通道的权重矩阵[ω1Tk-h+1]与偏差值b2,并通过非线性激活函数实现函数映射,得到通过式(4)运算后跨层结果C。[C=f(ω1Tk-h+1ci+b2)] (4)3 系统实现及测试3.1 网络模型建立网络模型训练数据采用数据采集模块获取的实际数据,从中取4种威胁等级突发事件共10 000条,并对数据进行人工标记。为了评估算法模型对文本数据特征识别的有效性,统计模型每1个epoch数据个数与正确分类数据个数,通过两者的比值形成模型的准确率A及损失值L,从而验证模型的稳定性。[A=nt/ncL=f(y,x)] (5)式(5)中,[nt]表示总数据个数,[nc]表示正确分类个数;采用的函数为交叉熵函数[f],[y]为通过模型预测的类别,x为正确的标记值。将上述的数据集代入到设计好的卷积神经网络模型中,采用高斯分布的方式初始化权重W和偏差b的矩阵,输出类型为4(I、II、III、IV级威胁度)、batch_size为64、学习率为0.001、最大迭代次数为3 000、权重衰减为0.005、测试间隔区间为50个epoch,dropout为0.5,优化器选用Adam,其他参数参见图3的卷积神经网络结构。如图4分别为训练时批次损失数值和变化趋势、训练时准确率变化趋势,从图4中可以看出随着迭代次数的增加,损失值逐渐减小最终趋近0.2,精确度逐渐增加最终趋近94%。在训练的同时,按测试间隔进行测试,如图5所示,模型损失值也是逐渐减小,而精确度在3 000次迭代后可以达到80%以上,由于通过爬虫获取的多样性数据以及人工标记训练集的原因,出现一定范围的偏差值属正常现象,训练结果表明,本系统设计使用的改进型词频-逆文本频率、word2vec的改进型卷积神经网络模型能够较好的识别出突发事件威胁类型。3.2 研判算法性能对比分析为了测试研判模型的性能,对3种不同的文本分类模型在本文获取的数据集上进行了对比试验,同时为了使得模型准确率达到最高,参考了原论文设置了对比试验的参数,并统一迭代次数为3 000次,每100次为1个批次;试验通过准确率(precision)、召回率(recall)、调和平均率(FScore)来评价模型性能。[P=PTrue(mi)PTrue(mi)+PFalse(mi)] (6)[R=PTrue(mi)A(mi)] (7)[F=2PRP+R] (8)式(6)~(8)中P为准确率,R为召回率,F为调和平均率;PTrue(mi)为正确预测为mi类的个数,PFalse(mi)为错误预测为mi类的个数,A(mi)为实际mi类的个数。通过具体试验,得到表2所示3种模型训练后获得的分类效果,对比分析发现本文所用的模型(TI-Word-CNN)在分类性能上有一定的提升,相比于Word-CNN[14]模型及Word-RCNN[15]模型调和平均率分别提升了5.4%和3%。表2 采样数据威胁度研判对比 Tab. 2 Comparison of threat degree of sampled data %[模型\&准确率\&召回率\&调和平均率\&Word-CNN\&89.3\&87.3\&88.3\&Word-RCNN\&91.9\&89.5\&90.7\&TI-Word-CNN\&94.3\&93.2\&93.7\&]而上述3种模型在本文筛选标记的数据集上进行30个批次迭代后,得到了如图6所示训练准确率变化曲线图,从图中可以看出本文研判模型每批迭代效果都要优于其他两种,达到相同的分类效果所用的训练批次更少,这也进一步说明本文选取的研判模型可以取得更好的训练精度和数据分类能力。图6 3种模型30批次迭代准确率变化曲线Fig. 6 Variation curves of iteration accuracy rate of 30 batches of three models为了更进一步对比分析本文采用模型的优越性,对新抓取的网页突发事件数据采用抽取数据的方式对3种分类模型进行测试,用于测试的数据将从整体数据中随机抽取200条数据,要求覆盖到I、II、III、IV四种威胁程度,且不同威胁等级的相关事件各50条,最后将数据输入到模型中进行分析处理,结果如表3所示,给出了3种模型判断结果,通过误差分析,系统采用的研判模型实际测试准确率达到了93%,得出虽然系统存在一定的误差,但是研判分类效果还是较好,能够基本实现突发事件文本分析。表3 实际采样数据威胁度研判对比Tab. 3 Comparison of threat degree of sampled data[研判模型\&I级威胁条数\&II级威胁条数\&III级威胁条数\&IV级威胁条数\&准确率/%\&Word-CNN\&41\&46\&56\&57\&87\&Word-RCNN\&45\&53\&44\&58\&90\&TI-Word-CCNN\&46\&47\&52\&55\&93\&]3.3 实际运行测试以系统目前设定的URL为例,系统利用建立的各种功能,采集了15 293条相关数据,并对近4个月的数进行了威胁度研判,针对发布时间区间设定为2019.3.1-3.29,实际研判结果如表4所示。在此期间,系统共采集了110条相关新闻事件,经系统分析与判别,其中有76条突发事件属于IV级威胁,有20条数据属于III级威胁度,II级威胁等级数据有9条,有5条数据被判定为I级威胁度;采用威胁计算公式得安保等级数值T为15.6,根据表1的安保等级划分的取值范围,确定安保等级为III级。表4 2019.3.1-3.29威胁数据数量统计Tab. 4 Statistics of threat data during 2019.3.1-3.29[总量\&I级威胁条数\&II级威胁条数\&III级威胁条数\&IV级威胁条数\&预警条数\&研判安保等级\&110\&76\&20\&9\&5\&14\&III\&]系统以设定的URL链接对相应的网页新闻数据进行抓取,可视化界面如图7所示,采集的具体数据信息包括数据标题、数据内容、发布时间及数据的来源,并以采取时间为基准创建数据编号、创建时间,并在展示页面设置对数据的操作功能,利用散点图和条形图分别展示近1个月数据分布情况和近4个月各威胁度统计量,以便为人工分析提供参考依据。通过预警系统,从图中可以直观的看出,近4个月的数据展示中IV类威胁事件相比突出,且在测试日期期间,II类威胁事件在27到30号之间发生较多,III类主要居于13到23号,建议根据数据情况,应该针对该段日期类结合城市实际情况勘察原因,以便及时采取相应措施,降低突发事件对社会造成的各类损失。由系统的运行结果可看出,系统能够实现对设定资源数据进行采集、预处理,并通过训练完毕的卷积神经网络对数据进行分析预警,也能够通过可视化模块实现对分析后的数据结构进行展示,总体来说,系统整体运行稳定且性能良好。4 结 论本文针对互联网发布的各种突发事件,结合城市安保部门的业务需求,给出了恐怖突发事件威胁预警系统的设计与实现方案。系统采用设定的URL链接,利用Scrapy网络爬虫框架实现对突发事件的数据的采集;利用JieBa分词实现对采集的单条数据进行清洗、分词;采用结合了改进型词频-逆文本频率、word2vec的改进型卷积神经网络模型实现对数据威胁等级的分类,并根据往期数据评判出研判期间内的安保等级;同时利用可视化技术分类呈现数据研判结果。从对比分析及实际运行结果来看,系统已基本达到了设计目标,可以作为相关安保部门的评判突发事件辅助预警信息系统。后续将在研判模型优化上深入研究,以提高威胁度评判精确度,降低损失值。