2. 网络文化与数字传播北京市重点实验室, 北京 100101
2. Beijing Key Laboratory of Internet Culture and Digital Dissemination, Beijing 100101, China
社会安全事件主要包括恐怖袭击事件、经济安全事件和涉外突发事件等[1],社会安全事件频繁发生, 给人民群众的生命和财产带来严重损害[2]。本文以恐怖事件为例分析社会安全事件。近几年,恐怖事件发生的数量急剧增加[3]。在1970年—2015年期间, 全球恐怖事件数据库(Global Terrorism Database, GTD)(http://www.start.umd.edu/gtd/)收集超过156 000个来自200多个国家和地区[4]的恐怖主义事件。根据GTD搜集的数据, 可以发现从2012年—2015年, 恐怖袭击的数量增加了52 134件, 3年的时间发生的恐怖事件数量是过去45年总数量的1/3。如今, 我们生活在大数据时代, 大量的信息被产生, 被收集并存储在数据存储系统中[5], 如何在大数据量的背景下, 分析社会安全事件各个属性之间复杂的内部关系, 针对社会安全事件攻击类型实现快速准确的分类, 给社会安全事件预警和分析提供数据支撑, 成为一个备受关注的问题。
分析社会安全事件攻击行为, 可以发现社会安全事件攻击行为类型与许多因素有关, 各因素与社会安全事件攻击行为类型呈现非线性关系。神经网络采用广泛互联的结构与有效的学习机制来模拟人脑信息处理的过程, 是人工智能发展中的重要方法, 在诸如手写体识别、图像标注、语义理解和语音识别等技术领域取得了非常成功的应用[6]。BP神经网络在人工神经网络模型中最广泛的一种网络模型,是多层前向神经网络的一种, 可用任意精度逼近任意非线性函数, 逼近性能尤其明显[7]。根据社会安全事件攻击行为类型特征进行指标提取, 映射指标与社会安全事件攻击行为类型的关系, 训练各个指标的权重, 模拟出社会安全事件攻击行为类型的网络模型, 实现社会安全事件攻击行为类型分类。
受学习速率的限制,BP神经算法需要花费几.个小时甚至更长的时间来完成训练任务[6]。随着互联网的发展, 传统的大数据计算平台涌现出了一批新的大数据处理框架, 包括Apache Hadoop、Dyrad、Yahoo S4、Apache Spark等, 作为最流行的大数据处理框架Spark[8], 吸引了越来越多的关注, 而基于弹性分布式数据集(Resilient Distributed Dataset, RDD)的Spark编程模式在实际项目中的应用也越来越广[9]。基于Spark的分布式神经网络将神经网络的训练任务分发到多个主机同时进行训练, 可以提高训练速度。本文针对社会安全事件攻击行为分类, 提出了一种基于Spark平台的分布式神经网络分类(Distributed Neural Network Classification, DNNC)算法。
1 相关工作社会安全事件中, 恐怖事件比重较大, 严重破坏社会稳定与发展。为了减少恐怖事件的发生, 降低恐怖事件的发生数量, 世界各个国家各个科研机构都进行大量的研究人员投入。各个科研机构根据近40多年来收集的GTD, 分析恐怖事件发生的原因, 对恐怖事件进行分类, 研究各个类别攻击的不同点, 以及各个类别之间存在的相关性, 预测恐怖事件的发生, 并对恐怖事件进行预警。
Freilich等[10]总结了社会安全事件中恐怖主义事件的一些特殊问题, 概括了恐怖事件的各种描述方法,评估了各种描述方法之间的优缺点, 加深了对社会安全事件中恐怖主义事件的理解。Meierrieks等[11]根据1984年—2007年共58个国家的样本数据, 研究了药物生意对恐怖主义事件的影响, 其研究结果表明药物的上涨会减少社会安全事件中恐怖主义事件的发生。Lutz等[12]介绍了全球化的思想和恐怖主义事件的定义, 分析了恐怖主义事件对旅游和外国投资的影响, 得出全球化会导致社会混乱, 社会混乱将导致恐怖主义事件的发生;反过来, 恐怖主义事件会影响旅游业和外国投资。
Sakhare等[13]先对犯罪数据进行整体分析, 根据1 000条犯罪记录数据集抽取了20个犯罪特征, 并运用J48决策树算法对犯罪人员进行分类, 通过混淆矩阵、TP(True Positive)率、FP(False Positive)率、分类精度、召回率、F检验、MCC(Matthews Correlation Coefficient)值等属性检验J48算法决策树的可靠性和稳定性, 分类结果用于确定是否怀疑特殊人员可能进行犯罪。Sakhare等[14]提出了可以将数据挖掘算法运用在犯罪和刑事数据源方面, 用于识别犯罪嫌疑人的犯罪活动, 同时使用J48、朴素的贝叶斯和JRip算法对犯罪样本和犯罪库进行识别, 识别率最高的算法用来识别潜在的犯罪嫌疑人, 其实验结果表明贝叶斯是最有效的和花费时间最少的算法。Joshi等[15]基于计算机处理器的分支预测技术提出了HB(History Bit)算法, 该算法通过对属性的优先级进行分类, 根据分类的前后赋予不同分组的权重,其实验结果表明, HB算法分类的准确性比传统的贝叶斯和决策树有显著的提高。
Sivaraman等[5]基于GTD提出了一种集成决策树分类算法。该算法集成J48、C4.5, 通过提取17个恐怖事件攻击相关属性训练集成决策树, 以实现恐怖事件攻击类型识别,其实验结果表明,与单一的决策树算法相比, 该算法在召回率和准确率方面有显著提升。Sheikh[16]使用1970年—2014年的GTD恐怖事件数据, 针对发生的恐怖事件进行预测建模, 根据城市、攻击类型、目录类型、声称模式、武器的攻击类型和动机等属性通过分类技术对未来恐怖袭击进行预测。Wu等[17]基于传统的递归神经网络开发了一个新型递归神经网络, 并建立一个Situation-Aware公共安全评估平台, 该平台基于GTD为每个国家, 预测恐怖袭击风险水平,以及哪个国家最有可能受到潜在的恐怖组织的攻击。Strang等[18]使用Hadoop大数据处理平台在Google新闻上收集大量复杂的恐怖主义信息, 运用统计产品与服务解决方案(Statistical Product and Service Solutions, SPSS)软件分析恐怖组织的意识形态和恐怖袭击类型的关系。
综上所述, 在面向社会安全的恐怖事件攻击行为分类上, 现有算法分类的准确性不高, 为此本文提出的基于Spark平台的DNNC算法以提高攻击行为分类的准确性。将大数据处理技术运用在面向社会安全的恐怖攻击行为分类问题, 可以快速地从大量庞杂的数据堆里分析出有用的信息, 挖掘数据的有用价值, 提高社会安全事件攻击行为分类的准确性。社会安全攻击行为准确分类, 可以提高社会安全事件分析的效率, 可以更加准确地分析和总结出不同社会安全事件发生的原因, 针对不同的类别的社会安全事件, 应该如何进行提前防范和预警, 降低事件发生带来的损失。
2 基于Spark平台的DNNC算法 2.1 Spark平台大数据时代下, 出现很多大数据处理框架。在计算方面, 主要有MapReduce框架[19-20]和Spark框架[21-22]。Spark是加州大学伯克利分校AMP(Algorithms, Machines, and People)实验室开源的计算框架, 基于内存计算的Spark在计算效率上是基于磁盘计算的MapReduce的100倍。Spark逐渐形成了自己的生态圈, 如图 1所示, 并成为Apache顶级项目, 是现今最流行的开源分布式大数据计算平台, 非常适合迭代的机器学习任务[23]。
Spark生态圈即伯克利数据分析栈(Berkeley Data Analytics Stack, BDAS)包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件, Spark Core提供内存计算框架、Spark Streaming的实时处理应用、Spark SQL的即席查询、MLlib或MLbase的机器学习和GraphX的图处理, 它们由加州大学伯克利分校AMP实验室提供, 能够无缝地集成并提供一站式解决平台。
2.2 DNNC算法 2.2.1 算法流程源数据是对一个恐怖事件进行详细描述, 存在数据不规范、类型不统一、数据缺失、数据重复、数据异常等问题, 无法直接对数据进行模型训练, 必须对源数据进行数据处理, 随后将预处理的数据传入到分布式神经网络进行模型训练, 实现面向社会安全恐怖事件分类。算法主要包括6个步骤:
1) 数据抽取。
源数据中addnotes等属性是对事件的一些补充描述, 对攻击行为分类关系不大, 可直接删去。summary属性简要介绍事件发生的过程,其中包括事件发生的时间、地点等, 可以通过其他属性进行表示, 可直接删去summary属性。country和country_txt, region和region_txt等, 存在重复定义, 保留country、region等这类编号属性, 将文字描述属性country_txt、region_txt等属性直接删去。Nhostkid等属性在几万条事件记录中只有3 000多条有对应的属性值, 数据严重缺失, 提供的有用信息较少, 直接删去。通过对源数据进行数据抽取, 删除无用或者作用较小的属性,保留有用的属性。有用的属性包括国家编号、地区编号、经度、维度、武器编号、死亡人数、受伤人数、目标子类型编号等。
2) 数据转换。
源数据经过数据抽取后, 得到相对有价值的数据, 该数据类型也存在一定的规范性, 但还是无法直接进行模型训练, 抽取后的数据存在的主要问题是数据类型不统一, 有的属性字段是日期类型, 有的是字符串类型, 有的是数值类型等。模型训练需要的数据是量化后的数值类型数据, 针对无法进行计算的非数值型属性字段, 需要进行数据类型转换,例如对字符串类型的数据, 通过按英文字母排序, 将排序的编号作为该属性的一个映射值。
3) 数据预处理。
数据预处理阶段主要完成填充缺失数据值、删除异常值数据和重复数据。缺失值填充主要使用拉格朗日插值法;对异常值数据主要采用箱型图分析法来检查重复数据, 对重复的数据记录只保留其中一条。
4) 数据规范化。
不同评价指标往往具有不同的量纲, 数值间的差别可能很大, 不进行处理会影响数据分析的结果。为了消除指标之间的量纲和取值范围差异的影响, 需要进行标准化处理, 将数据按照比例进行缩放, 使之落入一个特定的区域, 以便于进行综合分析。本文使用最小-最大值规范化也称为离差标准化, 对原始数据进行线性变换, 将数值映射到区间[0, 1]内, 转换公式如式(1) 所示:
${x^*} = \frac{{x - min}}{{max - min}}$ | (1) |
其中:max为样本数据的最大值; min为样本数据的最小值;max-min为极差。离差标准化保留原来数据中存在的关系, 是消除量纲和数据取值范围影响的最简单方法。
5) 数据相关性分析。
数据进行规范化之后就可以直接运用于模型的训练。为了进一步提高模型的可靠性, 还需对数据各属性进行相关性分析, 对每个属性则进行两两相关性计算, 相关性分析主要使用Person相关系数, 两个属性存在较高的相关性, 即Person相关系数接近1, 在两个属性中舍弃与目标属性相关性较低的属性。
6) 模型训练与事件分类。
将处理后的数据作为模型的输入数据,同时为模型设置初始化参数,然后对模型进行训练。训练结束后,可以获得各个神经网络层的权重,通过权重可以得面向社会安全分类模型,最后对社会安全事件进行分类。
2.2.2 算法设计基于Spark分布式平台实现分布式神经网络算法对社会安全事件攻击行为进行分类, 系统整体结构如图 2所示。
图 2展示了分布式神经网络系统整体结构, 整个系统搭建在Spark分布式平台上, 数据存储使用分布式文件系统。整个系统包含4个节点, 也就是4台主机, 分别是1台Master和3台Worker。Master节点是控制节点, 进行任务调度和分配; Worker节点是计算节点, 进行模型训练。
Worker节点都是使用三层前馈神经网络, 输入层有n个神经元, 隐含层有p个神经元, 输出层有m个神经元。社会安全事件攻击行为数据, 在经过数据处理后生成规范的数据, 存储在分布式文件系统, 长度为n的社会安全事件攻击行为序列数据x=x1x2…xn, 则分别输入到计算节点进行计算, 其他变量和函数的定义如下。
隐含层输入向量:g=(g1, g2, …, gp)
隐含层输出向量:h=(h1, h2, …, hp)
输出层输入向量:s=(s1, s2, …, sm)
输出层输出向量: y=(y1, y2, …, ym)
期望输出向量:d=(d1, d2, …, dm)
输入层到隐含层的连接权值:wih
隐含层到输出层的连接权值:who
隐含层各神经元的阈值:bh
输出层各神经元的阈值:bo
样本数据个数:k=1, 2, …, t
权重学习率:η
激活函数:
输出函数:
误差函数:
利用输出层各神经元的y(k)和隐含层各神经元的输出来修正连接权值who(k):
$\Delta {w_{ho}}(k) = \frac{{\partial e}}{{\partial {w_{ho}}}} = {y_o}(k){h_h}(k)$ | (2) |
$w_{ho}^{N + 1} = w_{ho}^N - \eta \Delta {w_{ho}}(k)$ | (3) |
利用隐含层各神经元的h(k)和输入层各神经元的输入修正连接权值wih(k):
$\Delta {w_{ih}}(k) = \frac{{\partial e}}{{\partial {w_{ih}}}} = \frac{{\partial e}}{{\partial h(k)}}*\frac{{\partial h(k)}}{{\partial {w_{ih}}}} = h(k){x_i}(k)$ | (4) |
$w_{ih}^{N + 1} = w_{ih}^N - \eta \Delta {w_{ih}}(k)$ | (5) |
计算全局误差:
$E = \frac{1}{{2s}}(\sum\limits_{k = 1}^s {} \sum\limits_{o = 1}^m {} {({d_o}(k) - {y_o}(k))^2}$ | (6) |
面向社会安全事件的分布式神经网络系统中, Master节点进行权重的广播和权重的回收, Worker节点获取Master节点广播的权重, 进行模型训练。详细构成如下:
1) Master节点进行初始化模型参数,随机生成初始权重, 并通过broadcast(广播)的方式把模型的初始化参数和初始权重传到各个Worker节点上。
2) 各个Worker节点根据broadcast得到模型的初始化参数和初始化权重, 对各自的神经网络模型进行初始化, 根据分配的数据训练神经网络模型, 调整权重, 使误差值e不断减小。训练结束后, 将最终调整的权重传递给Master节点。
3) Master节点收集各个Worker节点的权重, 计算更新权重w′, 判断全局误差最小值是否小于设定值, 或者循环次数是否达到设定值:两个条件有一个成立, 结束循环,全局误差最小的权重作为最终模型的训练参数, 得到社会安全事件攻击行为分类模型;两个条件都没有达到, 进行步骤4)。
4) 将更新权重w′重新broadcast到各个Worker节点。各个Worker节点进行新一轮的循环。
基于BP神经网络和分布式系统架构设计DNNC算法。
算法1 DNNC算法。
输入 攻击行为类型识别输入样本x。
输出 模型训练后的权重wih和who。
1) Master节点:初始化权重wih=rand(-1, 1), who=rand(-1, 1), bh=rand(-1, 1), bo=rand(-1, 1), 并将初始化参数进行广播。
2) Worker节点:分别根据式(2)、(4) 计算权重更新量Δwho和Δwih(k)。
3) Worker节点:分别根据式(3)、(5) 计算更新权重, 根据式(6) 计算全局误差, 并将更新权重和全局误差传回Master节点。
4) Master节点:根据传回的权重进行权重, 并将权重从新分发给各个Worker节点。
5) 重复2) ~4), 直到全局误差小于设定值或者循环次数到达最大值。
3 实验与分析 3.1 实验环境实验使用的测试平台为搭建的Spark分布式集群, 集群规模为本校计算中心分配的4个虚拟计算节点, 每个节点的操作系统为Centos6.5, 4核CPU, 内存为16 GB, 存储为50 GB, Hadoop版本为2.6.5, Spark版本为1.6.0, 开发环境为IDEA2016.2.5。
3.2 数据集本文实验使用了GDT全球恐怖事件数据库2012年—2015年的47 000多条记录, 源数据记录了恐怖事件的事件编号、国家、地区、事件发生的经度、事件发生的纬度、攻击类型等80个属性, 数据集的部分数据如表 1所示。
根据GTD, 对数据进行攻击行为分类统计, 统计信息如表 2所示。
分布式神经网络结构为三层:第一层是输入层, 第二层是隐含层, 第三层是输出层。输入神经元个数为10, 隐含神经元个数为15, 输出神经元个数为8;每组数据量为50个;最大循环次数1 000;数据训练集和测试集比例为4:1;隐含层激活函数为tanh();初始学习率为2.0;学习率调整比例为1.0, 输出函数为sigm()。
3.4 实验结果对比模型训练完成后, 得到分布式神经网络模型权重wih和who,根据得到的权重进行攻击类型识别, 本文提出的DNNC算法的识别准确率如表 3所示。
本文算法与决策树算法和集成决策树算法[5]的比较结果如表 4所示。
实验结果表明:本文提出的DNNC算法仅部分攻击类型上识别准确率有所下降(主要因为DNNC考虑的是全局最优),但总体优势明显。DNNC算法的平均准确率比决策树算法提升15.90个百分点,比集成决策树算法提升8.60个百分点。DNNC算法对社会安全事件进行分类, 能更加准确地学习各个属性与分类目标之间存在的关系, 通过各个层之间的变换, 关联各个属性, 挖掘各个属性之间存在的隐含关系, 相对于决策树, 每次只考虑一个属性值进行决策分类, 更具有优势, 分类准确性更高。
4 结语本文分析了恐怖事件攻击行为的数据特征, 从数据的层面挖掘攻击行为与哪些属性具有相关性、哪些属性影响攻击行为的类别; 同时提出了分布式神经网络分类算法, 来解决恐怖事件攻击行为分类问题。神经网络的非线性拟合特性可以准确地构建恐怖事件攻击行为分类模型, 而Spark作为基于内存计算的分布式平台, 非常适合反复进行迭代的神经网络算法, 能提高神经网络训练速度。结合神经网络和Spark分布式平台的优势, 将其运用于恐怖事件攻击行为的分类, 比传统的恐怖事件分类算法更有优势, 识别率更高。但从社会安全事件攻击行为分类问题上看, 对于样本数量较小的攻击类别的识别率还需要进一步提高。从大数据背景看, 对分布式神经网络算法训练速度的提高, 也将是下一步工作研究的重点。
[1] | 国务院. 国家突发公共事件总体应急预案[J]. 中国中医基础医学杂志, 2006, 12(1): 77-79. (State Council. National emergency response plan for public emergencies[J]. Chinese Journal of Basic Medicine in Traditional Chinese Medicine, 2006, 12(1): 77-79.) |
[2] | 孙越恒, 王文俊, 迟晓彤, 等. 基于多维时间序列模型的社会安全事件关联关系挖掘与预测[J]. 天津大学学报(社会科学版), 2016, 18(2): 97-102. (SUN Y H, WANG W J, CHI X T, et al. Correlation mining and prediction of social security events based on multi-dimensional time series model[J]. Journal of Tianjin University (Social Sciences), 2016, 18(2): 97-102.) |
[3] | BACKER D A, BHAVNANI R, HUTH P K. Peace and Conflict 2016[M]. Oxford: Routledge, 2016: 67. |
[4] | KLUCH S P, VAUX A. The non-random nature of terrorism: an exploration of where and how global trends of terrorism have developed over 40 years[J]. Studies in Conflict & Terrorism, 2016, 39(12): 1031-1049. |
[5] | SIVARAMAN R, SRINIVASAN S, CHANDRASEKERAN R M. Big data on terrorist attacks: an analysis using the ensemble classifier approach[EB/OL]. [2017-01-10]. http://edlib.net/2015/icidret/icidret2015042.pdf. |
[6] | 焦李成, 杨淑媛, 刘芳, 等. 神经网络七十年:回顾与展望[J]. 计算机学报, 2016, 39(8): 1697-1716. (JIAO L C, YANG S Y, LIU F, et al. Seventy years beyond neural networks: retrospect and prospect[J]. Chinese Journal of Computers, 2016, 39(8): 1697-1716.) |
[7] | 刘畅. BP神经网络的权值快速计算法及其逼近性能分析[J]. 科技视界, 2016(11): 130-131. (LIU C. Fuzzy calculation method and approximation performance analysis of BP neural network[J]. Science & Technology View, 2016(11): 130-131. DOI:10.3969/j.issn.2095-2457.2016.11.087) |
[8] | SALEHIAN S, YAN Y. Comparison of spark resource managers and distributed file systems[C]//Proceedings of the 2016 IEEE International Conferences on Big Data and Cloud Computing, Social Computing and Networking, Sustainable Computing and Communications. Piscataway, NJ: IEEE, 2016: 567-572. |
[9] | LIU T, FANG Z, ZHAO C, et al. Parallelization of a series of extreme learning machine algorithms based on spark[C]//Proceedings of the 2016 IEEE/ACIS 15th International Conference on Computer and Information Science. Piscataway, NJ: IEEE, 2016: 1-5. |
[10] | FREILICH J D, LAFREE G. Measurement issues in the study of terrorism: introducing the special issue[J]. Studies in Conflict and Terrorism, 2016, 39(7/8): 569-579. |
[11] | MEIERRIEKS D, SCHNEIDER F. The short-and long-run relationship between the illicit drug business and terrorism[J]. Applied Economics Letters, 2016, 23(18): 1274-1277. DOI:10.1080/13504851.2016.1150942 |
[12] | LUTZ B J, LUTZ J M. Globalization, terrorism, and the economy[M]//LUTZ B J, LUTZ J M. Globalization and the Economic Consequences of Terrorism. Berlin: Springer, 2017: 1-30. |
[13] | SAKHARE N N, JOSHI S A. Classification of criminal data using J48-decision tree algorithm[J]. IFRSA International Journal of Data Warehousing & Mining, 2014, 4(3): 167-171. |
[14] | SAKHARE N, JOSHI S. Criminal identification system based on data mining[C]//Proceedings of the 3rd International Conference on Recent Trends in Engineering and Technology. Chandwad, Nashik, India: [s.n.], 2014. |
[15] | JOSHI S, SAKHARE N. History bits based novel algorithm for classification of structured data[C]//Proceedings of the 2015 IEEE International Advance Computing Conference. Piscataway, NJ: IEEE, 2015: 609-612. |
[16] | SHEIKH H R. Use of predictive modeling for prediction of future terrorist attacks in Pakistan[EB/OL]. [2017-01-10]. http://koha.isra.edu.pk: 8080/jspui/handle/123456789/59. |
[17] | WU S, LIU Q, BAI P, et al. SAPE: a system for situation-aware public security evaluation[C]//Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence. Menlo Park: AAAI Press, 2016: 4401-4402. |
[18] | STRANG K D, SUN Z. Analyzing relationships in terrorism big data using Hadoop and statistics[J]. Journal of Computer Information Systems, 2017, 57(1): 67-75. DOI:10.1080/08874417.2016.1181497 |
[19] | DEAN J, GHEMAWAT S. MapReduce: simplified data processing on large clusters[J]. Communications of the ACM, 2008, 51(1): 107-113. DOI:10.1145/1327452 |
[20] | LÄMMEL R. Google's MapReduce programming model-revisited[J]. Science of Computer Programming, 2008, 70(1): 1-30. DOI:10.1016/j.scico.2007.07.001 |
[21] | ZAHARIA M, CHOWDHURY M, FRANKLIN M J, et al. Spark: cluster computing with working sets[C]//HotCloud 2010: Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing. Berkeley: USENIX Association, 2010: 10. |
[22] | ZAHARIA M, CHOWDHURY M, DAS T, et al. Resilient distributed datasets: a fault-tolerant abstraction for in-memory cluster computing[C]//Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation. Berkeley: USENIX Association, 2012: 2. |
[23] | MENG X, BRADLEY J, YUVAZ B, et al. MLlib: machine learning in Apache Spark[J]. The Journal of Machine Learning Research, 2016, 17(1): 1235-1241. |