论文部分内容阅读
动态高速数据流上的异常检测技术在近年来逐步成为研究热点。其中,数据流上的多维序列异常检测技术更是在诸如Web安全、航空航天安全和计算机系统异常诊断等领域都具有迫切需求。然而,目前关于数据流异常检测的研究主要针对单维序列异常检测,而关于多维序列的研究又主要聚焦于静态数据库上的模式挖掘。相比之下,数据流多维序列异常检测更加具有挑战性,因为以下因素会对检测的准确性和高效性带来不利影响:第一,多维序列数据所含信息量大、冗余多且维度间关联性强,处理过程较为复杂;第二,数据流上存在概念漂移问题;第三,异常检测中存在正常数据和异常数据不平衡的问题。为支持准确高效的数据流多维序列异常检测,本文对多维序列处理技术、数据流上的特征向量降维技术和数据流上的异常检测技术进行了深入研究。取得的主要研究进展如下:多维序列数据的处理是数据流上多维序列异常检测的关键。一方面,处理过程中造成的有效信息丢失将直接影响异常检测的准确性。另一方面,处理过程中带来的无效信息过量保留将使得检测效率无法满足于高速数据流的要求。为此,本文首先提出了基于词频统计和共生矩阵的混合式多维序列转换算法MMST。MMST算法能够将多维序列转换为定长特征向量,转换过程中区别对待无序维和有序维,同时保留了无序维中各单词的频率信息以及有序维中各单词的频率信息和顺序信息。理论分析和实验结果表明,与基于共生矩阵的多维序列转换算法CO-OC相比,MMST算法能够丢弃多维序列中的无效信息,有效减少转换后的特征向量长度,显著提高了异常检测效率。与基于词频统计的多维序列转换算法FRE相比,MMST算法能够充分保留多维序列中的有效信息,有效保证了异常检测的准确性。利用合适的多维序列处理技术可将多维序列转换为定长特征向量,但得到的向量通常仍然较为稀疏,异常检测系统的检测效率会受此影响。针对这个问题,本文提出了一种动态数据流上的增量特征选择算法IFS。IFS算法可以根据向量中各个特征维的信息量和差异度淘汰分类有效性较低的特征维,从而降低向量维度以提高检测效率。由于数据流的动态特性,各个特征维的分类有效性将随着概念漂移发生改变,IFS算法能够增量评价各个特征维的分类有效性,并在发生概念漂移时及时动态调整特征映射函数。理论分析和实验结果表明,IFS算法能够有效减少特征向量的维度,大大降低了异常检测系统的平均更新时间,从而能够提高异常检测效率。与使用IFS算法前相比,异常检测系统的吞吐率提高了42%,同时未导致异常检测准确性的显著下降。将多维序列流转换为特征向量流并充分降维后,本文提出了基于代价敏感支持向量机的数据流异常检测算法CBAD对转换得到的特征向量流进行异常检测。针对异常检测中数据非平衡的问题,CBAD算法能够根据训练集中正常数据和异常数据的数量比例自适应地为代价敏感支持向量机设置惩罚因子,以免因训练集中异常数据过少而损失异常检测准确性。针对数据流上的标签稀缺问题,CBAD算法能够挑选出测试数据中信息量较大的数据进行人工打标签,并与从旧训练集中挑选出的信息量较大的数据混合,用于代价敏感支持向量机的训练更新,在减少标签请求率的同时,逐步提高了异常检测准确性。针对数据流的概念漂移问题,CBAD算法可在不依赖于标签的情况下,及时发现并处理数据流中的概念漂移,保证了异常检测的准确性。实验表明,CBAD算法能够在标签请求率仅为30%的情况下,对存在概念漂移的动态数据流进行准确高效的异常检测。为了进一步验证本文的理论研究成果,本文基于分布式流处理平台Storm设计实现了基于代价敏感支持向量机的数据流多维序列异常检测系统ADMS,能够在分布式流处理环境中对多维序列进行异常检测。ADMS系统首先使用混合式多维序列转换算法MMST将多维序列流转换为定长特征向量流,然后使用增量特征选择算法IFS对得到的特征向量进行增量特征选择降维,最后通过基于代价敏感支持向量机的数据流异常检测算法CBAD实时监控降维后的特征向量流对多维序列异常进行检测。实验表明,ADMS系统能够较为准确地检测出异常多维序列,在吞吐率为每秒199条序列、标签请求率仅为30%的情况下将异常检测的漏报率和误报率分别控制在5%以下和7%以内。此外,在存在概念漂移的模拟数据流中,ADMS系统仍能保持较高的检测准确性。