论文部分内容阅读
时间序列的异常点是用户(或系统)产生的不符合预期行为模式的数据。研究异常点的起因和可能引起的后果,可以辅助用户(或系统)提供有效的决策支持。例如拒绝服务(Denial of service,DoS)攻击会产生大量异常的网络流量。研究这些异常数据的起因,并预测可能瘫痪的链路,为系统管理员调整路由策略、避免网络拥塞提供决策支持。由于技术的发展,当前时间序列数据之间关系的复杂化以及异常种类的增多导致已有的异常检测算法很难有效的发现异常。因此,如何从这些异常数据中提取特征,精确的对异常进行检测是当前时间序列研究中的一个重要方向。本文从用户行为模式的角度,分析正常数据和异常数据的特征,并结合信号处理、模式识别的方法,分别对流量工程中的流量时间序列和推荐系统中项目的评分时间序列进行异常检测。论文主要做了三项工作:(1)基于用户正常行为模式的时间序列异常检测。针对流量工程中时间序列的异常检测问题,提出流量时间序列的异常检测模型BasisEvolution(BE)。该模型包括数据预处理,基函数生成(正常流量空间构建),基函数更新(正常流量空间更新),以及异常检测四个阶段:1)数据预处理阶段,实际采集到的数据是海量未被标记的时间序列。针对该问题,采用集成学习的思想,提出基于多种异常检测算法联合检测的数据清理策略。2)存在“变异”或者类型未知的异常导致已有的异常检测算法失效或者具有很高的误检率。为解决上述问题,基于用户(或网络)的正常行为模式提出基函数生成算法,实现正常流量空间的构建,并将无法投影到该空间的数据看做异常。3)实际应用中,时间序列数据的动态变化导致已有的基函数无法表示新数据。针对该问题,基于用户(或网络)的正常行为模式缓慢变化的特性,利用增量学习的思想,提出基函数更新算法。4)对大规模时间序列的异常检测通常会产生大量的异常点,需要消耗大量的资源进行分析处理。针对该问题,在异常检测阶段基于相同原因生成异常点的时间集中性,提出异常点的聚类算法和评价准则。与其他异常检测算法相比,BasisEvolution具有更高的异常检测精度和更低的误检率;能检测“变异”或者类型未知的异常;能动态适应不断更新的数据;降低了异常处理的规模,节省了大量的时间和资源。(2)基于趋势预测模型的时间序列异常检测。基于预测的异常检测就是通过比较未来时间序列数据的评估值和实际值进行异常检测。针对基于神经网络(Artificial neural networks,ANNs)的预测模型在构建时需要大量训练时间的问题,提出基于趋势预测模型的时间序列异常检测方法。网络流量时间序列中,该方法基于用户(或网络)的正常行为模式,分析流量时间序列的周期性和短时相关性特征。通过对包含上述特征的流量成分(趋势)的预测,实现对未来正常流量的评估。与通用的后向传播(Back Propagation,BP)神经网络模型相比,基于趋势的预测模型在更少的训练时间即可达到更高预测精度。同时,在异常检测中,基于趋势预测模型的异常检测性能更好。(3)基于用户异常行为模式的时间序列异常检测。针对推荐系统中项目的评分时间序列异常检测问题,提出基于动态时间区间分割和假设检验的异常检测模型(Dynamic time interval segmentation and hypothesis test detection-based framework,SDF)。该模型分析了用户的异常行为模式(主要是异常评分行为),提取异常评分特征,实现对异常的实时检测。另外,提出了算法的稳定性准则用于评价时间序列异常检测算法的性能。1)异常检测模型SDF:a.针对托攻击(Shilling attacks)特征难以提取的问题,提出从项目的角度分析托攻击构造的虚假用户的异常行为模式,提取托攻击的异常评分特征的思路。b.基于异常评分特征,提出动态分割项目评分时间序列的算法,对相邻评分进行聚类,并以假设检验的形式对每个类进行异常检测。该算法解决了在线异常检测的实时性要求。2)算法的稳定性准则:不同时间尺度下,同一个算法对同一个数据点的异常检测可能产生不同的结果。针对该问题,我们分析了检测结果不一致的起因和后果,并设计了算法的稳定性评价指标。从目标项目的角度提取的异常评分特征具有普适性。与常用的基于项目的异常评分检测算法相比,SDF的异常检测算法误检率更低,具有线性时间复杂度,适用于实时应用场景。对比常用的几种算法的稳定性发现SDF的稳定性最好。