基于多层局部敏感哈希表的网络流量异常快速检测方法与流程

文档序号:11524133阅读:208来源:国知局
本发明涉及计算机技术和网络
技术领域
:,特别是涉及网络流量产生异常,需要快速定位异常位置的应用,具体是一种基于多层局部敏感哈希表的网络流量异常快速检测方法。
背景技术
::近年来,随着计算机技术的不断发展和网络应用的不断深化,网络不仅在工业、银行、科研教育等各个领域发挥重要作用,而且早已走向千家万户,使得网络在人们的日常工作和生活中扮演着越来越重要的角色。网络规模的不断扩大,计算机技术和网络技术的迅速发展,网络出现各种安全、性能问题的可能性也日益增大,而且这些问题对人们日常工作和生活的影响也越来越大。木马、蠕虫病毒,分布式拒绝服务攻击以及网络滥用、网络设备异常等是目前互联网安全的几个主要威胁。如何及时发现和诊断网络异常,维护和保证网络系统的正常运行逐渐成为了人们关注的焦点。因此,设计适用于大规模的网络流量异常快速检测方法显得十分重要。目前,有许多用于网络流量异常检测的方法,这些方法主要包括:·主成分分析(principalcomponentanalysis,pca)当l为轻微的高斯随机噪声时,pca可以通过一次svd准确地找到最优的l。但当l被严重破坏(即s很大)时,l的估计往往不准确,并且pca还需要预知子空间维数r。·鲁棒主成分分析(robustpca,rpca)rpca克服了pca在异常检测过程中的缺点,但是rpca在求解低秩矩阵l和稀疏矩阵s的过程中采用了松弛技术,影响了异常检测的精度。·直接鲁棒矩阵分解(directrobustmatrixfactorization,drmf)drmf在求解低秩矩阵l和稀疏矩阵s的过程中没有采用松弛技术,提高了异常检测的精度。drmf被证明在视频活动检测中十分有效。但是,drmf用于实际网络异常检测也有许多不足之处:①drmf在求解带噪声流量数据的低秩成分时,用到了奇异值分解(singularvaluedecomposition,svd),而svd的时间代价非常高;②drmf在精确得到低秩成分和异常成分过程中需要反复执行svd。技术实现要素:本发明所要解决的技术问题是,针对现有技术不足,提供一种基于多层局部敏感哈希表的网络流量异常快速检测方法。为解决上述技术问题,本发明所采用的技术方案是:一种基于多层局部敏感哈希表的网络流量异常快速检测方法,包括以下步骤:1)输入带噪声流量矩阵x,初始化异常矩阵s;2)反复迭代(2)式和(3)式,得到(2)式和(3)式的最优解:其中,c为去噪流量数据矩阵;l为低秩逼近矩阵;e为异常矩阵s非零项的最大值;k为低秩逼近矩阵分解的最大秩;为二范数;3)输出低秩逼近矩阵l和异常矩阵s,即得到带噪声流量矩阵x的低秩逼近矩阵l和异常矩阵s,完成异常检测。所述2)式的求解过程包括以下步骤:1)将2)式转化为如下问题:其中,vk表示维度为k的子空间,ck表示c在vk上的投影矩阵;on×k中的o表示子空间的符号,该子空间的大小为:n行k列,即该子空间包含k个列向量,每个列向量的维度为n;2)设计用于存储od对向量的多层局部敏感哈希表:顶层哈希表表示基本哈希表,基本哈希表对应基本局部敏感哈希函数的桶宽为w,向下各层哈希表都是虚拟的,对应的局部敏感哈希函数的桶宽依次为:2w,4w,8w,16w,…;虚拟哈希表的局部敏感哈希函数为:其中,b∈[0,w);a是服从高斯分布的n维随机向量;cij是矩阵c中的第i行第j列,为c(i)归一化后的向量;1≤i≤m;m表示矩阵c的行数;3)利用多层局部敏感哈希表,通过subspace-noreuse方法自适应寻找子空间vk,实现流量异常快速检测;或者,重用多层局部敏感哈希表快速寻找子空间vk,实现流量异常快速检测。通过subspace-noreuse方法自适应寻找子空间vk的具体实现过程包括:1)构建多层局部敏感哈希表h;2)初始化列表q为空;3)将第一层哈希表包含的哈希桶h[1,1]插入列表q;4)计算列表q中各哈希桶包含od对向量的平均值向量,然后进行归一化,设p=1;5)当p<k时,一直进行如下循环,直到p=k为止,寻找出子空间vk:5a)列表q中哈希桶对应的矩阵记为:ci(i=1,2,…,p),根据矩阵划分原则,选择投影误差最大的子矩阵进行划分,即:vp∈οn×p;mi表示ci的行数;5b)从列表q中移除ci对应的哈希桶,同时记录ci所在的层数索引值f以及对应哈希桶索引值f;5c)从子空间vp中移除由ci贡献的基向量,更新子空间vp;5d)根据ci所在的层数索引值f以及对应哈希桶索引值f,将ci一分为二,ci一分为二后的两个子矩阵所在的哈希层索引值为f*=f+1(由于哈希桶划分顺序为:自下而上。当哈希桶划分到第f层时,由于此时找出的子空间还不满足要求,所以,要继续划分,进入第f+1层,即f*=f+1),该两个子矩阵对应的哈希桶索引值分别为:2f-1,2f;5e)对于f∈id:将哈希桶h[f*,f]插入列表q;计算哈希桶h[f*,f]对应矩阵的平均值向量,通过gram-schmidt标准正交化,更新子空间vp;哈希桶h[f*,f]具体含义是指:第f*层中的第f个哈希桶;id={2f-1,2f};5f)当步骤5e)完成后,设vp+1=vp,p的值加1;5g)继续重复步骤5a)~5f),当p=k时,整个循环结束,返回子空间vp。重用多层局部敏感哈希表快速寻找子空间vk的具体实现过程包括:1)已知带噪声流量矩阵x以及两个连续迭代步骤中的异常矩阵s[t],s[t+1],判断从矩阵c[t]到c[t+1]所有可能发生变化的行,用r[t]和r[t+1]分别记录s[t]和s[t+1]非零项的行索引;r=r[t]∪r[t+1];s[t],s[t+1]为连续两个迭代步骤的异常矩阵;c[t],c[t+1]为连续两个迭代步骤的去噪流量数据矩阵;2)对于r∈r:从多层局部敏感哈希表中删除行c[t](r),将行c[t+1](r)插入多层局部敏感哈希表;c[t](r)表示第t次迭代的去噪流量数据矩阵的第r行;3)运用subspace-noreuse方法,求解c[t+1]对应的子空间vk。od对向量:网络中源结点与目的结点之间的流量。与现有技术相比,本发明所具有的有益效果为:本发明设计的多层局部敏感哈希表,大大降低了流量异常检测的时间复杂度。对于具有m行数据的流量矩阵,将所有od对向量映射到基本哈希表,哈希计算的时间复杂度为ο(m)。本发明的lsh-subspace方法,仅仅第一次迭代步骤需要映射所有行到lsh表中,之后,由于本发明的lsh表更新方法,在当前迭代步骤能够重用前一步骤建立的lsh表,当前步骤最多有2e行需要更新,时间复杂度为ο(2e)。由于异常很少发生,所以ο(2e)<ο(m);综上所述,subspace-noreuse方法和lsh-subspace方法都实现了(2)式低秩矩阵逼近的优化问题,降低了流量异常检测方法的整体时间复杂度,实现了流量异常的快速检测。特别地,lsh-subspace方法在实现低秩矩阵逼近过程中,由于利用了重用技术,使得它在流量异常检测的速度上显现出优越性。附图说明图1局部敏感哈希在二维空间的几何解释;图2多层局部敏感哈希表;图3(a)~图3(d)为寻找子空间具体实例;图4(a)~图4(d)为异常检测方法性能比较;图5(a)和图5(b)为异常检测方法速度比较;图6(a)~图6(d)分别为4个哈希桶h[1,1],h[2,1],h[3,1],h[4,1]中od对向量集合的亲和度矩阵。具体实施方式1)问题第一步:系统建模假设网络由n个结点组成,本发明将流量数据建模成流量矩阵流量矩阵x的行表示单个od(源结点与目的结点)对在各个时隙的流量数据,流量矩阵x的列表示所有od对在同一个时隙的流量数据,n表示时隙总数。由于流量数据具有时间稳定性和空间相关性的特征,因此,正常流量数据将位于低维线性子空间,构成低秩矩阵,异常流量数据将位于这个低维线性子空间之外,构成异常矩阵。所以,将异常检测问题归于如下的受约束优化问题:其中,s为异常矩阵,l为矩阵x-s的低秩逼近,k为截断秩,e为s中允许非零项的上限值。(1)式的目的是,在满足s中非零项比较少的情况下,最小化低秩矩阵逼近误差。通过从测量矩阵x中排除异常矩阵s进行低秩逼近,这样能够确保估计低秩结构的可靠性。得到异常矩阵s后,能够把异常简单的检测出来。通常,涉及到秩或者零范数的优化问题是很难解决的。可以利用一些松弛技术解决低秩矩阵逼近问题。然而,松弛技术可能对低秩矩阵逼近的精度有严重影响,进而影响异常检测精度。基于drmf方法,在没有采取松弛技术的情况下,直接解决(1)式优化问题,能够得到不错的异常检测精度。采取块坐标下降策略,用迭代的方式,解决(1)式优化问题。基于矩阵分解的异常检测方法的步骤如下:步骤1:输入带噪声流量矩阵x,设置矩阵分解的最大秩k以及异常矩阵非零项的最大值e,初始化异常矩阵s步骤2:反复迭代(2)式和(3)式,得到子问题(2)式和(3)式的最优解:①低秩矩阵逼近问题:②异常检测问题:步骤3:输出低秩逼近矩阵l和异常矩阵s,即得到带噪声流量矩阵x的低秩逼近矩阵l和异常矩阵s,完成异常检测。根据eckart-young定理,(2)式的低秩矩阵逼近问题,可以通过svd直接给出解决方法,l是(2)式去噪流量数据矩阵c的截断svd逼近。z.lu和y.zhang写的文章“penaltydecompositionmethodsforl0-normminimization”,给出了(3)式的有效解决方法,因为(3)式的最优化问题不是本发明方法的重点,所以,本发明运用z.lu和y.zhang写的文章“penaltydecompositionmethodsforl0-normminimization”中的定理解决(3)式的异常检测问题。本发明亮点在于就(2)式优化问题提出优化算法,大大减少(2)式优化问题的时间复杂度,关于求解(2)式的优化算法在后面详细说明。第二步:时间复杂度基于矩阵分解的异常检测方法,在每次迭代过程中,利用截断svd逼近(2)式中的c。然而,svd操作将引入高昂的计算代价,使得处理大规模流量数据不具有可扩展性。下面简要介绍svd:给定矩阵将它进行svd分解:其中,l=min(m,n),σ=[σ1,...,σl]是矩阵c的奇异值按照降序排列而成的向量形式,的列对应左奇异向量,的列对应右奇异向量。通过设置σ=[σ1,...,lσ]前k个值保持不变,其余的全部置为零以及使用前k个列向量,对c进行降秩(秩k截断svd)逼近。由于svd具有时间复杂度为:ο(min{mn2,nm2}),使得对于大规模流量矩阵,通过svd得到截断的svd变得不可能。另外,基于矩阵分解的异常检测方法的低秩矩阵逼近问题需要反复进行迭代,这样积累的计算代价将是非常高的。因此,以下两个问题成为关键问题:①怎样减少低秩矩阵逼近的计算代价?②怎样减少整个迭代过程总的计算代价?下面给出解决问题①②的方法。第三步:寻找子空间以及重用技术·寻找子空间最优秩k矩阵逼近,即:最小化投影误差其中,c,是c的svd秩k截断:将c的行投影在由c的前k个右奇异向量组成的子空间上,即ck的最优性表明,在由vk的列组成的维度最多为k的子空间上,c的行投影误差最小。因此,为了得到最优秩k矩阵逼近,需要寻求一个子空间vk,使得c的投影误差足够小,用如下优化问题描述:因此,本发明企图通过寻找维度为k的子空间vk,最小化c与其投影矩阵ck之间的投影误差:代替通过截断svd解决(2)式的低秩矩阵逼近问题。这一步给出了问题①的解决方法,即本发明的亮点之一。·重用技术由于网络中的异常事件很少发生,所以,基于矩阵分解的异常检测方法中的异常矩阵s是稀疏矩阵,其非零位置至多为e个。虽然(2)式中去噪流量矩阵c在每次迭代中通过变化的s(c=x-s)进行更新,但是,s是稀疏矩阵,仅仅一部分项非零,因此,在连续的迭代步骤中,去噪流量矩阵c仅仅只有一部分项发生改变。所以,在连续的两次迭代步骤中,对于c[t],c[t+1]的低秩逼近矩阵必定具有相关性,这提供了一个重用数据的机会,在当前步骤中重用前一步骤的结果,以减少整个迭代过程的时间复杂度。这一步,给出了问题②的解决方法,即本发明亮点之二。在下面步骤中,详细呈现本发明的方法。2)设计用于存储od对向量的多层局部敏感哈希表:第一步:引入局部敏感哈希(localitysensitivehashing,lsh)函数根据文章“locality-sensitivehashingschemebasedonp-stabledistributions”,局部敏感性定义为:如果对于υ空间内任意两个点p和q,满足以下两个性质,则称函数族h={g:υ→u}是(r,cr,p1,p2)敏感的:·if||p,q||s≤rthenprh[g(p)=g(q)]≥p1.·if||p,q||s≥crthenprh[g(p)=g(q)]≤p2.其中,||p,q||s表示元素p和q间的距离,υ表示元素域,c>1,p1>p2。根据文章“locality-sensitivehashingschemebasedonp-stabledistributions”,lsh函数定义为:ha,b:lsh函数ha,b是基于欧氏距离的:其中,a是服从高斯分布的n维随机向量,w是哈希桶桶度,b∈[0,w),本发明利用实际流量矩阵的行向量作为od对向量,运用局部敏感哈希函数(7)式将od对向量映射到基本哈希表,实现od对向量的重排。给定od对向量其中,m是od对向量总数,n是时隙总数。当od对向量的哈希地址相同的时候,即在哈希过程中产生了碰撞,这些od对向量映射到相同的哈希桶。根据文章“locality-sensitivehashingschemebasedonp-stabledistributions”的结论,针对(7)式定义的lsh函数,两个od对向量p和q发生碰撞的概率为:其中,d=||p-q||s是od对p和q之间的距离,fs(t)是s-稳定分布的概率密度函数。(8)式是关于桶宽w的增函数,给定两个od对向量的距离d,桶宽w越大,则这两个od对向量映射到相同哈希桶的概率就越大。lsh函数的良好性质:它能将相似的od对向量映射到相同的哈希桶。图1阐述了在二维空间中采用lsh函数的几何结果。给定向量a和od对向量q,atq是两者的点积(q在向量a上的投影),b是一个微调参数。向量线a被分成宽度为w的多个哈希桶,通过lsh函数,相近的点(例如:q和p1)以很高的概率映射到相同的哈希桶。第二步:将od对向量映射到多层局部敏感哈希表根据od对向量(源结点与目的结点之间的流量构成的行向量)归一化后的数据,计算od对向量在哈希表中的位置。去噪流量矩阵表示需要逼近的矩阵。给定od对向量数据:将其归一化:其中,cij表示矩阵c的第i行第j列。下面举例说明归一化的作用:举例说明:给定两个od对向量r1=[2,3,4],r2=[4,6,8],两个向量的值明显不同,然而,这两个od对具有相同的流量接入模式,因此具有相似的流量交易。这两个向量应该映射到相同的哈希桶,共同贡献一个基向量显然,这个基向量能够很好的表示这两个od对向量。为了自适应寻找子空间,本发明设计一种多层局部敏感哈希表来重排具有不同相似度的od对向量(图1)。在这个多层局部敏感哈希表中,顶层的哈希桶桶度设置为w,所有的od对向量运用基本哈希函数(即:),逐个映射到基本哈希表中的各个哈希桶,同时插入各个od对向量的索引值。本发明把顶层哈希表作为基本哈希表,其它各层哈希表都是虚拟的(它们的哈希桶桶宽分别是:2w,4w,8w,16w,…),这些虚拟哈希表是根据基本哈希表建立的,它们在物理上是不存在的,这些虚拟哈希表的lsh函数分别为:等等。图2阐述了本发明的多层局部敏感哈希表。c(2)在基本哈希表中的哈希地址为4,它在向下各层哈希表中的哈希地址依次为:2,1,1,1,…。特别地,本发明使用f表示哈希表的层次,最底层(第一层):f=1,次最底层(第二层):f=2,等等。本发明的多层局部敏感哈希表具有以下两个良好性质:第一,如果知道od对向量在基本哈希表中的哈希地址,那么可以简单的推出它在所有向下各层哈希表中的哈希地址,因此,不需要在物理上建立基本哈希表以外的哈希表。给定od对向量,如果它在基本哈希表中的哈希地址为l,那么它在向下各层哈希表中对应的哈希地址依次为:相反,如果知道od对向量在哈希表中的哈希地址为l,那么它在其上一层哈希表中对应的哈希地址为:2l-1或者2l;第二,不同层次利用不同桶宽(自上而下,哈希表对应哈希桶的桶宽呈指数增长,依次为:w,2w,4w,8w,16w,…)的局部敏感哈希函数,所以,不同层次哈希桶中的od对向量具有不同相似度。即:顶层哈希表的哈希桶中的od对相似度高于向下各层哈希表的哈希桶中的od对向量相似度。3)设计基于多层局部敏感哈希表的流量异常快速检测方法第一种:自适应寻找子空间及其时间复杂度·自适应寻找子空间给定秩k和实际流量矩阵c,秩k矩阵逼近的目标是寻找包含k个相互正交基向量的子空间vk,最小化矩阵c在子空间vk上的投影误差在多层局部敏感哈希表的基础上,本发明提出一种自适应矩阵划分方法,寻找子空间,划分得到的每个子矩阵对子空间贡献一个基向量。每个迭代步骤,所有子矩阵均来自前一步骤,选择子矩阵进行划分,寻找子空间,直到找到k个基向量为止。去噪流量矩阵c,经过p-1次划分之后,已经被划分成p个子矩阵,分别用c1,c2,...cp表示,其中,把当前部分子空间记为:vp∈οn×p,去噪流量矩阵c在当前部分子空间vp上的投影误差为:本发明用row(c)表示矩阵c的行集合,很明显,row(c)=row(c1)∪row(c2)∪...∪row(cp),row(ci)∩row(cj)=φ,(i≠j,i,j=1,2,…,p),因此,目标是寻找子空间,最小化投影误差:根据(10)式,本发明提出一种矩阵划分原则:在所有的子矩阵中,选择在当前子空间上投影误差最大的子矩阵进一步划分。选择的子矩阵为:这样可以最大程度的减少整体投影误差。基于这个矩阵划分原则,本发明提出自适应寻找子空间方法subspace-noreuse,该方法具体步骤如下:步骤1:构建多层局部敏感哈希表h步骤2:初始化列表q:q=null//q:存储贡献基向量的子矩阵列表步骤3:将第一层哈希表包含的哈希桶h[1,1]插入列表q//h[1,1]对应整个流量矩阵步骤4:计算列表q中各哈希桶包含od对向量的平均值向量,然后进行归一化,p=1//p表示基向量数量,刚开始p=1步骤5:当p<k时,一直进行如下循环,直到p=k为止:①列表q中哈希桶对应的矩阵记为:ci(i=1,2,…,p),根据矩阵划分原则:选择投影误差最大的子矩阵进行划分,即:②f=f(ci)表示矩阵ci在h中的层数索引值f,f=f(ci)表示矩阵ci在第f层具体哈希桶索引值f③从列表q中移除ci对应的哈希桶,同时记录ci所在的层数索引值f以及对应哈希桶索引值f④从子空间vp中移除由ci贡献的基向量,更新子空间vp⑤根据移除子矩阵ci的哈希层和哈希桶索引值f和f,将ci一分为二,对应到上一层的哈希层索引值为f=f+1,哈希桶索引值为id=set{2f-1,2f}⑥对于f∈id:第一,将哈希桶h[f,f]插入列表q;第二,计算哈希桶h[f,f]对应矩阵的平均值向量,通过gram-schmidt标准正交化,更新子空间vp⑦当⑥中循环完成之后,vp+1=vp,p=p+1⑧继续进行外层循环,当p=k时,整个循环结束,返回子空间vp基于多层局部敏感哈希表的设计,本发明的子空间寻找方法具有如下良好特性:第一,经过多层局部敏感哈希表处理,矩阵划分能够利用自下而上的哈希表简单的完成;第二,由于不同层的哈希表代表不同的相似度,矩阵划分使得子矩阵中的od对向量比划分之前大矩阵的od对向量相似度更高。因此,通过子矩阵产生的基向量比直接通过大矩阵产生的基向量更具代表性。举例说明:3(a)~图3(d)阐述了本发明提出的自适应寻找子空间方法subspace-noreuse。为了找到秩为4的流量矩阵的逼近矩阵,在图3(a)中,利用整个流量矩阵的行平均值向量初始化子空间,将整个流量矩阵对应的哈希桶h[1,1]插入到列表q中,在图3(b)中,通过多层局部敏感哈希表,整个矩阵划分成两个子矩阵,每个子矩阵由更多相似的行向量组成,每个子矩阵贡献一个基向量。经过划分之后,列表q由对应着两个子矩阵的两个哈希桶h[2,1],h[2,2]更新。因为寻找的子空间仅包含两个基向量,所以继续划分子矩阵。假设h[2,2]的投影误差比h[2,1]的投影误差大,所以对应于h[2,2]的子矩阵需要进一步划分,此时列表q包含三个哈希桶:h[2,1],h[3,3],h[3,4],划分之后如图3(c)所示。假设对应于h[2,1],h[3,3],h[3,4]的三个子矩阵中,对应于h[3,4]的子矩阵投影误差最大。通过多层局部敏感哈希表,对应于h[3,4]的子矩阵能够简单的划分成两个子矩阵:h[4,7],h[4,8]。最终得到的子空间包含4个基向量,分别是h[2,1],h[3,3],h[4,7],h[4,8]对应子矩阵的平均值向量。因为每个子矩阵贡献一个基向量,为了让每个迭代步骤得到的子空间都能够很好的表示流量矩阵,所有迭代步骤中所有子矩阵包含的行应该覆盖流量矩阵所有的行。如图3(a)~图3(d)所示,本发明的矩阵划分程序在每个迭代步骤均满足以上条件。在每个迭代步骤中(如3(a)~图3(d)),灰度部分总是覆盖整个矩阵。·时间复杂度通过反复划分矩阵寻找子空间,有两个关键步骤:第一,选择子矩阵进一步划分,第二,子空间的更新。在第p个迭代步骤,总共找到p个子矩阵和p个基向量。为了找到最优的子矩阵进一步划分,分别计算p个子矩阵在由p个基向量构成的子空间上的投影误差总时间复杂度为ο(p)。为了更新子空间,首先删除来自大矩阵贡献的基向量,然后利用新划分得到的两个子矩阵各自的平均值向量更新子空间。特别地,每个新得到的平均值向量必须与存在的基向量,通过gram-schmidt过程进行正交化,正交化过程涉及在每一个存在的基向量上进行投影操作。因此,投影操作的总次数为p-1+p=2p-1,子空间更新的时间复杂度为ο(2p-1)。寻找维度为k的子空间需要进行k-1次迭代,总时间复杂度为其中k为截断秩。对比svd时间复杂度(ο(min{mn2,nm2})),本发明的自适应寻找子空间方法具有更小的时间复杂度。第二种:重用多层局部敏感哈希表快速寻找子空间及其时间复杂度·重用多层局部敏感哈希表快速寻找子空间基于矩阵分解的异常检测方法,在每次迭代步骤中,交替解决(2)式的低秩矩阵逼近问题和(3)式的异常检测问题。由于异常矩阵s在每次迭代步骤中都要更新,所以,c=x-s也随之变化。在每个步骤中,为了寻找秩k矩阵对c进行逼近,直接的方式是,首先建立一种新的多层局部敏感哈希表来存储更新的矩阵c,然后运用subspace-noreuse方法寻找子空间,这样的计算代价仍然是很高的。异常矩阵s通常是稀疏的(至多e项不为零)。比较连续两个步骤得到的异常矩阵,矩阵中大部分行保持不变(至多2e行发生变化)。为了重用前一步骤建立的多层局部敏感哈希表,在当前迭代步骤仅仅更新一部分行,本发明提出重用多层局部敏感哈希表快速寻找子空间方法lsh-subspace,该方法具体步骤如下:步骤1:已知带噪声流量矩阵x以及两个连续迭代步骤中的异常矩阵s[t],s[t+1],判断从矩阵c[t]到c[t+1]所有可能发生变化的行,用r[t]和r[t+1]分别记录s[t]和s[t+1]非零项的行索引步骤2:r=r[t]∪r[t+1]//s[t]和s[t+1]非零项的行索引构成的集合步骤3:对于r∈r:第一,从多层局部敏感哈希表中删除行c[t](r);第二,将行c[t+1](r)插入多层局部敏感哈希表步骤4:运用subspace-noreuse方法,求解c[t+1]对应的子空间v。本实施例是lsh-subspace方法在公共流量跟踪数据集abilene上的应用,同时,对比其它异常检测方法,突出本发明方法lsh-subspace的性能优越性。对于高效的数据处理,数据归一化通常用于缩放数据的特征。本发明通过归一化流量数据,使得li,j∈[0,1],其中,分别是流量数据的最大值,最小值。为了从行跟踪数据中产生受破坏的合成矩阵首先,通过随机选择γ×(m×n)个位置作为异常位置,产生异常矩阵其中γ为异常比率。为了评估本发明提出的异常检测方法在大误差情况下是如何表现出鲁棒性的,实验选择的异常值是从[0,10]中随机产生的,而不是服从高斯分布。合成数据x是异常数据s和行数据l的总和,即:对于所有的(i,j),xi,j=li,j+si,j。采用如下性能指标来评估本发明提出的lsh-subspace方法:第一,假阳性率(falsepositiverate,fpr):不是异常,结果错误的判断为异常的概率;第二,假阳性率(falsenegativerate,fnr):是异常,却没有检测出来的概率;第三,正确检测率(correctdetectionrate,cdr):正确地检测为异常或正常的概率;第四,异常均方误差(rmseonoutlier):rmse(rootmeansquareerror)是测量异常值与实际异常值之间的标准偏差;第五,计算时间(computationtime):检测异常耗费时间(秒)的平均值;第六,加速(speedup):给定两种不同方法alg1和alg2,执行时间分别为t1和t2,alg2相对于alg1在计算时间上的加速定义为:s1-2=t1/t2。所有的模拟实验都在一台普通的pc机上进行,配置为:intel(r)i5-4590、cpu(3.3ghz)(4cores)、16.00gbram,为了测量计算时间,对于所有执行方法,都插入计时器。为了评估本发明所提方法lsh-subspace的性能,实验执行五种方法进行性能比较。首先执行异常检测方法drmf(截断svd+迭代误差阈值),然后执行本发明的方法lsh-subspace,反复将大矩阵划分成小矩阵,利用subspace-noreuse方法寻找子空间。流量矩阵的截断svd是基于这个子空间来计算的。lsh-subspace包含一种快速更新lsh表的方法,利用重用技术,快速得到更新的矩阵c。第三种方法subspace-noreuse不同于lsh-subspace,新建的lsh表保存更新的矩阵c。另外还有两种用于流量矩阵异常检测的方法,分别是rpca,pca。·异常检测精度在图4(a)~图4(d)中,pca表现出来的性能最差,假阳性率(fpr)几乎为1,正确检测率(cdr)为0,尽管pca的假阴性率(fnr)很低。由于在一个大范围内随机产生异常值,所以pca对这些异常值表现出来的鲁棒性不好,不能将正常数据和异常数据很好的分离。比较rpca,drmf,lsh-subspace和subspace-noreuse,rpca的fpr和cdr不如drmf,lsh-subspace和subspace-noreuse,由于rpca利用了松弛技术,将流量矩阵的低秩特征松弛成核范数,这大大影响了异常检测性能。更高的假阳性率(fpr)导致错误的异常警告,这可能大大增加网络的维护代价。drmf,lsh-subspace和subspace-noreuse在异常检测程序中都采用矩阵的秩和零范数作为直接约束条件。它们在fpr,cdr,rmse方面获得相似的优越性能。本发明的方法lsh-subspace和方法subspace-noreuse都是为了快速得到低秩矩阵逼近,它们得到相同的精度。由于它们得到的截断矩阵不是通过svd,所以它们的假阴性率(fnr)稍微低于drmf。因为drmf,lsh-subspace和subspace-noreuse得到相似的优越性能,所以进一步比较它们的计算速度,如图5(a)和图5(b)所示。特别地,为了计算加速指标,利用drmf作为基准方法,设置alg1=drmf。通过lsh函数把od对向量进行分组,通过自适应矩阵划分寻找子空间,本发明的方法lsh-subspace和subspace-noreuse的速度分别是drmf的3倍和2.5倍。对比subspace-noreuse,本发明的lsh-subspace在异常检测中速度更快,因为它采用了重用技术,所以减少了计算时间。所有的模拟结果显示本发明提出的方法lsh-subspace对于快速高精度的流量异常检测是非常有效的。·重排相似度验证作为lsh-subspace方法的一个重要步骤,本发明设计了一种新颖的多层lsh表来重排od对向量,使相似的od对向量映射到lsh表中相同的哈希桶。多层局部敏感哈希表的一个良好特征是:在不同的哈希层od对向量以不同的相似度分组,促进了自适应矩阵划分寻找子空间。为了评估lsh表中不同层od对向量的相似度分布,本发明定义了两个od对向量的余弦值:给定一组od对向量{x1,x2,…,xm},把这组集建模成完全连通图,每个结点表示一个od对向量边的权重表示相似度值gi,j。图的邻接矩阵称为亲和度矩阵。在图6(a)~图6(d)中,绘制了从底层到第四层4个哈希桶h[1,1],h[2,1],h[3,1],h[4,1]中od对向量集合的亲和度矩阵。h[1,1]是最底层的哈希桶,因为最底层只有一个哈希桶,所以这个桶包含流量矩阵中所有的od对向量。根据等式(12),相似度值越大,表明od对向量的相似度越高。颜色越浅意味着od对向量之间的相似度越高。从颜色分布来看,上层哈希桶od对向量比下层哈希桶od对向量具有更强的相关性。多层局部敏感哈希表的这些良好特征,促进了大矩阵划分为小矩阵,这样得到的小矩阵贡献的基向量更具有代表性,得到的子空间能够很好的表示原矩阵。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1