论文部分内容阅读
群体性抗议事件是指一定社会群体,为表达对政府、政治人物或某些大型组织(如企业)的政策、规定或行为的反对意见,在特定时间地点预谋性或自发性聚集,并以游行、静坐、罢工、罢课、罢市、占领等形式开展的抗议活动。鉴于群体性抗议事件频繁出现的案例、高昂的社会成本,全球各个国家政府机构都十分重视对这类公共安全事件管控与决策能力的提升,并且投入了大量人力物力研究和把握这类事件的内在演变机理和早期检测与预警机制。2013年以来,全球整合新闻事件数据库GDELT宣布正式对全球开放,其自动编码入库了从1979年至今全球新闻资讯、电视广播、报纸甚至学术论文中提到的所有冲突与调解事件数据,监测了几乎全球每个国家,涵盖100多种语言,为基于数据挖掘和机器学习方法研究群体性抗议事件提供了丰富的数据基础。本文基于GDELT开源大数据,研究基于频繁子图模式挖掘的群体性抗议事件检测与预测技术,主要进行了以下四个方面的研究工作。第一,构建了基于Hadoop+Hive+Spark SQL大数据架构的GDELT大数据仓库。GDELT作为目前世界上最大的冲突与调解事件数据源,目前其全表原始数据记录数已超过20亿条,数据规模达到7.5TB,如何采集、存储、查询这些数据是最基础的工作。本文首先对GDELT的数据进行了实时采集并存储到HDFS分布式文件存储系统中,接着利用Hive完成原始数据的高性能ETL(抽取、转换、加载),将GDELT数据加载到Hive数据仓库中;考虑到Hive数据仓库的“惰性计算”特性使得其实时查询效果不好,进一步利用Spark SQL内存计算引擎外挂GDELT数据仓库,并通过ThriftServer提供统一的访问接口,大大增强了GDELT大数据仓库的实用性。第二,提出了两个大规模频繁子图并行挖掘算法:面向图集的PTrGraM算法和面向单个大图的SSiGraM算法。本文采用频繁子图挖掘方法从GDELT大数据中发掘特征模式,而目前频繁子图挖掘算法均是单机串行执行,无法有效满足大规模输入图及低阈值模式挖掘的需求,因此提出并行化挖掘频繁子图。考虑到面向图集的频繁子图挖掘算法其复杂度相对较低,提出了基于单机多线程的图集上频繁子图并行挖掘算法PTrGraM;面向单个大图的频繁子图挖掘复杂性更高,考虑在多台计算机上进行分布式挖掘,进而提出了基于Spark计算框架的单个大图上频繁子图分布式挖掘算法SSiGraM,算法实现子图分布式扩展和支持度分布式计算并引入了三种优化策略,最后在不同密度的四个大图上验证了该算法的性能。第三,提出了基于频繁子图特征工程的群体性抗议事件检测方法。针对目前基于启发式的特征选择策略在可区分性和可解释性方面的不足,提出使用面向图集的频繁子图来对群体性抗议事件中的参与主体交互模式进行描述,并且提出了一种频繁子图特征区分能力度量指标ISDP,最后使用强分类器SVM和集成学习分类器Adaboost、GradientBoosting三种分类器进行调优学习子图特征,训练事件检测模型。实验聚焦历史上权威报道过的造成重大影响的群体性抗议事件,在“占中”和“占领华尔街”两个数据集上验证了检测模型的有效性。第四,提出了基于隐式半马尔科夫模型(HSMM)的群体性抗议事件预测框架。针对群体性抗议事件的多阶段演化特性,提出了一种基于隐式半马尔科夫模型的群体性抗议事件预测框架,包含四个主要步骤:Ground-Truth抽取、BoEAG特征抽取、HSMM模型训练和序列分类在线测试。通过该预测框架,可以针对某个国家或地区,从GDELT数据中自动抽取其历史上发生的大量群体性抗议的事件关联图词袋特征BoEAG,并利用HSMM模型学习其发展演化的规律,最后通过贝叶斯决策序列分类预测将来某个时间段事件发生的可能性。在实验部分,结合东南亚五个国家:泰国、印尼、马来西亚、菲律宾和柬埔寨的测试数据集,比较了HSMM模型、HMM模型、Logistic回归和Baseline四种方法在群体性抗议事件预测任务中的有效性。综上所述,本文针对群体性抗议事件检测与预测这一问题,基于全球整合新闻事件数据库,首先构建可靠易用的大数据仓库,然后从中挖掘频繁子图特征模式,最后基于特征学习训练群体性抗议事件检测模型与预测模型,实现了开源大数据全链条的数据ETL、特征挖掘与分析应用,为基于数据挖掘和机器学习相关方法分析使用GDELT数据乃至其他大数据源提供了一种可行方案,具有重要的理论意义与应用价值。