本发明属于计算机软件的技术领域,涉及一种网络检测方法。
背景技术:
Barabási和Albert的无标度网络模型和Watts和Strogatz的小世界网络模型揭示了网络结构的本质规律,在过去的近20年里,推动了复杂网络研究的迅速发展。进一步的研究发现,多数现实网络是不均匀的,由许多子网络组成。子网络内节点之间的连接比较紧密,而子网之间节点的连接比较稀疏,这一现象在人工网络和自然网络中都比较常见,称之为网络中的社团结构(community structure)。社团结构成为了继小世界和无标度特性之后复杂网络中最普遍和最重要的拓扑结构属性之一。随着复杂网络理论的不断成熟,研究者对很多复杂的互连系统,包括社会网络、Internet和World Wide Web(WWW)等各种网络,都从复杂网络的视角去研究其统计特征和实际应用。现代社会处在一个大数据、大流量的时代,高度依赖于这些网络系统的正常高效运行。如何快速地检测这些网络在演变的过程中是否出现异常,引起了研究者们的广泛关注,目前的方法主要是从网络整体出发,通过比较邻近时隙的网络变化量,设置相关阈值,判定网络是否异常,这些方法的不足主要在于网络太大,不能实时判断,阈值设置难度大,检测出异常后,定位异常范围也非常困难。为此,本发明基于网络具有社团结构的特性和绝大部分的通信都在社团内发生的思想,以社团为单位,构建隐马尔科夫模型,提出了一种大型复杂网络社团异常检测方法,首先,应用复杂网络社团探测算法,将网络划分为不同的社团;然后以社团为单位,构建隐马尔科夫模型并训练相关参数;最后使用训练好的模型计算被监测序列的熵,定位异常社团。
技术实现要素:
本发明基于网络具有社团结构的特性和绝大部分的通信都在社团内发生的思想,以社团为单位,构建隐马尔科夫模型,提出了一种大型复杂网络社团异常检测方法。下面分别从社团和隐马尔科夫模型等方面来说明本发明提出的技术方法。
一、社团:在同一社团内部,节点之间连接相对紧密,而在社团之间的节点之间的连接相对稀疏,以网络中模块度最小为原则划分将网络划分为不同社团,其中Nc表示网络中社团的数目,M表示网络中连接的总数,mc表示社团c内节点之间的连接数,dc表示社团c内所有节点度数之和。
二、社团通信模型的构建方法
(1)基本定义:
观测值为社团c中发生通信量的节点序列,表示为其中表示在t时刻社团c与其他社团通信的节点,特别地,如果通信的两个节点都在社团c中,则只考虑发送数据的节点。观测值空间为:V={1,2,...,N}。
状态值为与t时刻与社团c连接的社团,表示为y=y1,y2,...yT,状态值空间为S={1,2,...,M}。
社团通信模型的参数模型表示为:θ={π,A,B},其中,π为初始模型的初始状态概率,A为状态转移概率,B为观测概率。
(2)基于前向后向算法的社团通信模型的参数估计技术
社团c的社团通信模型参数估计任务是由采集到的观测值序列估计出对应的隐半马尔可夫模型的参数。本发明采用著名的前向后向算法解决社团通信模型的参数估计问题,具体如下所述。
1)定义前向后向变量:
αt(j)=P[St=j,o1:t|θ]
βt(j)=P[ot+1:T|St=j,θ]
2)前向后向算法的初始化:
α1(j)=πj,
βT(j)=1。
3)迭代推导过程:
4)计算中间变量:
ξt(i,j)=P[St=i,St+1=j,o1:T|λ]=αt(i)aijbj(ot+1)βt+1(j)
5)参数更新公式
其中,当ot=vk时,I(ot=vk)=1,否则I(ot=vk)=0。
(3)网络社团异常检测方法
计算观测序列的熵:
计算正常状态下的观测序列的熵的标准方差为σ0,均值为μ0,
异常检测时,首先计算监测序列的熵的均值为μ,再以|μ-μ0|为异常检测量,如果|μ-μ0|≥3σ0,则为异常状态。
附图说明
图1为基于隐马尔可夫模型的社团网络异常检测模型示意图。
具体的实施方式
流程如图1所示,步骤如下:
步骤1:训练数据预处理,生成社团通信序列序列的训练数据集;
步骤2:采用前向后向算法估计模型的参数;
步骤3:采集实时网络通信序列;
步骤4:使用训练好的模型计算被监测序列的熵;
步骤5:计算异常检测量|μ-μ0|;
步骤6:判断|μ-μ0|≥3σ0是否成立,如果成立,则表示异常,否则未发现异常。