一种从动态属性图中检测多异常子图演化算法的制作方法

文档序号:24076318发布日期:2021-02-26 16:55阅读:323来源:国知局
一种从动态属性图中检测多异常子图演化算法的制作方法

[0001]
本发明属于数据挖掘和异常检测领域,是一种从动态属性图中检测多异常子图演化算法,从而进一步直观地分析异常子图在动态图中演化的过程。


背景技术:

[0002]
一个属性图由一个节点集合和一个边集合构成,异常子图检测是指在一个由节点集合和边集合构成的连通属性图中检测出异常连通子图的过程。异常子图检测方法已成功地应用于社交媒体网络事件检测、道路网络交通拥挤检测等任务中,但对属性图中异常子图动态演化的研究却很少。目前,异常子图检测算法主要包括精确算法和近似算法,精确算法能在可接受的时间内,对图的节点数量小于1000的小规模问题求解。一种搜索算法flexscan用于识别由一个中心和它的k-1邻域的一个连通子集构成的所有连通子图中最不规则的连通子图。speakman和neillet等人通过应用线性时间子集扫描(ltss)来过滤次优子集,并为图结构数据设计新的分支定界算法,有效提高了flexscan的性能。另一方面,学术界也已经提出了许多用于异常子图扫描的近似算法。duczmal等人提出了一种具有模拟退火策略的启发式算法,该算法通过在子图的紧缩性上加入正则化来扩展。speakman等人提出了一种基于dijkstra的算法的可加子图检测算法。rozenshtein等人应用半定规划和gw算法来识别紧凑但不一定连接的异常子图。chen和neil提出了一种基于迭代子图展开和线性时间子集扫描的贪婪算法。wu等人将属性图近似于树形拓扑结构,提出了基于动态规划的tspsd的算法。近似算法可以在大规模数据集上使用,但是对于返回的子图的质量没有理论上的保证。


技术实现要素:

[0003]
该模型可以从动态属性图中检测多异常子图,从而进一步直观地分析异常子图在动态图中演化的过程,具有较高的应用价值。例如,(1)交通拥堵检测问题:将城市交通道路网络构建成一个网络图,通过车速和车流量来检测道路网络中的异常子图,并通过直观的异常子图演化分析,可以得知哪些区域的路网结构是经常性发生拥堵的,可以为未来城市道路发展作为参考;(2)社交媒体事件检测问题:通过社交媒体数据(例如微博数据)构建一个以人为节点的社交网络,通过某个事件的语料库检测动态社交网络中的异常子图,从而可以直观地分析该时间在社交网络中传播的过程,可以通过影响一些关键节点来影响舆论的传播。
[0004]
本发明的技术方案是一种从动态属性图中检测多异常子图演化算法,以下描述步骤:
[0005]
第一步:获取动态网络数据集;
[0006]
第二步:对数据进行预处理,筛选实验中所需要的数据字段,对数据缺失值进行删除或者补全的处理;
[0007]
第三步:构建动态网络;
[0008]
第四步:将动态图和参数m输入到算法模型de-mass中,输出一组演化异常子图ψ
ω
使目标函数的值最大;
[0009]
第五步:将演化异常子图ψ
ω
在动态图中可视化出来,直观地发现异常子图的演化模式和演化特点。
[0010]
该方法模型的理论技术主要包含如下:
[0011]
1)动态图和演化异常子图的符号定义
[0012]
动态图:在每个时间片上是一个无向连通图,随着时间的演化动态图的结构是不变的,其中是顶点集,l是顶点总数,表示边集,t={1,

,n}表示动态图中包含的所有时间片;
[0013]
根据时间片集将图g分为{g1,

,g
n
},是经验p值的集合,表示在时间片上具有p值(p
t
(v))的每个顶点,t∈t;
[0014]
演化异常子图:给定时间片t上的异常子图每个异常子图在g
t
中为连通的,i∈{1,

,m},有和演化的异常子图是一个满足以下条件的异常子图序列:
[0015]
(a)存在一个连续的时间片序列ω(j,k),它表示时间片集合{j,j+1,

,k},ω中每个时间片的异常子图集合不为空;
[0016]
(b)在时间片序列ω中,相邻时间片的异常子图之间至少共享一个顶点,例如对于中的异常子图满足
[0017]
2)多异常子图扫描的目标函数
[0018]
给定一个动态图用非参数扫描统计量来检测演化异常子图,ψ
ω
是指在时间周期ω(j,k)内演化的异常子图,即n(ψ
ω
)表示ψ
ω
中的总节点数,n
α

ω
)定义为n
α

ω
)=∑
v∈v(ψ),t∈ω
δ(p
t
(v)≤α),其中表示演化异常子图ψ中的顶点集,α是预定义的符号值;如果输入为真,函数δ(.)=1;反之,δ(.)=0;
[0019]
动态图g中非参数扫描统计量的一般形式定义为:
[0020][0021]
式中表示ψ
ω
中正常节点的数目,m为正常节点数量的上限;基于非参数扫描统计量φ,演化异常子图的检测可形式化为以下优化问题:
[0022][0023]
相当于如下问题:
[0024][0025]
其中是集合{α
max
}与不超过中α
max
的不同p值集合的并集;
steiner tree问题(b-pcst)子问题,并提出了一种检测动态图中演化异常子图的近似算法de-mass。该算法能够有效在动态图中检测多异常子图的演化过程,可以应用于多个领域实际问题中。例如,通过将算法应用于道路交通网络(中国三个城市)的研究,我们发现了不同的城市交通拥堵模式:北京的大规模交通拥堵通常是由三个小区域的拥堵演变而来的,而天津和南京的交通拥堵通常是围绕市中心和商业区。
附图说明
[0051]
图1动态图中多异常子图演化示意图。
[0052]
图23月5日北京早高峰异常子图检测实验结果:
[0053]
a:上午6:20

6:30拥堵子图路段;
[0054]
b:上午6:50

7:00拥堵子图路段;
[0055]
c:上午8:30

8:40拥堵子图路段。
具体实施方式
[0056]
本发明一种从动态属性图中检测多异常子图演化算法,该算法能够在多个领域中有效、直观地检测出异常子图的演化过程,具体实施过程可按以下描述步骤进行:
[0057]
第一步:获取动态网络数据集。例如道路交通网络需要获取城市道路网络数据和车辆gps数据集,社交媒体网络需要社交媒体数据集;
[0058]
第二步:对数据进行预处理。筛选实验中所需要的数据字段,对数据缺失值进行删除或者补全的处理;
[0059]
第三步:构建动态网络。例如对于道路交通动态网络,网络中的节点代表每条道路,如果两条道路之间有交叉路口关系,则这两条道路对应的节点之间有边的关系;对于社交媒体网络,网络的节点是用户,如果两个用户之间有转发或者评论关系的话,这两个用户对应的节点之间有边的关系;
[0060]
第四步:将动态图和参数m输入到算法模型de-mass中,输出一组演化异常子图ψ
ω
使目标函数的值最大;
[0061]
第五步:将演化异常子图ψ
ω
在动态图中可视化出来,直观地发现异常子图的演化模式和演化特点。
[0062]
本发明提出一种基于动态属性图的多异常子图扫描的模型,模型的理论技术主要包含如下:
[0063]
1)动态图和演化异常子图的符号定义
[0064]
动态图:在每个时间片上是一个无向连通图,随着时间的演化动态图的结构是不变的,其中是顶点集,l是顶点总数,表示边集,t={1,

,n}表示动态图中包含的所有时间片;
[0065]
根据时间片集将图g分为{g1,

,g
n
},是经验p值的集合,表示在时间片上具有p值(p
t
(v))的每个顶点,t∈t;
[0066]
演化异常子图:给定时间片t上的异常子图每个异常子图在g
t
中为连通的,i∈{1,

,m},有和演化的异常子图是一个满足以下条件的异常子图序列:(a)存在一个连续的时间片序列ω(j,k),它表示时间片集合{j,j+1,

,k},ω中每个时间片的异常子图集合不为空;(b)在时间片序列ω中,相邻时间片的异常子图之间至少共享一个顶点,例如对于中的异常子图满足满足
[0067]
2)多异常子图扫描的目标函数
[0068]
给定一个动态图用非参数扫描统计量来检测演化异常子图,ψ
ω
是指在时间周期ω(j,k)内演化的异常子图,即n(ψ
ω
)表示ψ
ω
中的总节点数,n
α

ω
)定义为n
α

ω
)=∑
v∈v(ψ),t∈ω
δ(p
t
(v)≤α),其中表示演化异常子图ψ中的顶点集,α是预定义的符号值。如果输入为真,函数δ(.)=1;反之,δ(.)=0;
[0069]
动态图g中非参数扫描统计量的一般形式定义为:
[0070][0071]
式中表示ψ
ω
中正常节点的数目,m为正常节点数量的上限;基于非参数扫描统计量φ,演化异常子图的检测可形式化为以下优化问题:
[0072][0073]
相当于如下问题:
[0074][0075]
其中是集合{α
max
}与不超过中α
max
的不同p值集合的并集;
[0076]
3)问题重构
[0077]
由于npgs问题包含一个非线性的目标函数,因此很难分析动态演化图中的npgs问题,也不能从通常涉及线性目标函数的已知np-hard问题中规约出来。
[0078]
为了解决分析上述问题的困难,我们提出在动态图中将npgs问题转化为一系列子问题。当在ψ
ω
中固定正常节点的数量,在满足连通的约束下,求ψ
ω
的最大异常数,从而得到最优的ψ
ω
。进一步地,这个问题可以推广到在ψ
ω
中正常节点数预算约束的问题。
[0079]
我们令和npgs问题(4)相当于以下问题:
[0080][0081]
其中每个对于是正常节点的个数。通过优化预算节点prize-collecting steiner tree问题(b-pcst)得到的异常子图
[0082]
[0083]
其中表示子树。我们设置利润π
α
(v)=1和成本c
α
(v)=0如果p(v)≤α;否则,π
α
(v)=0,c
α
(v)=1。此问题的步骤表示为利用两个异常子图在连续时间片内至少拥有一个公共顶点,我们可以建立一个树集:我们可以建立一个树集:
[0084][0085]
其中s为问题(6)的一个异常子图,其中收益π
α
=n
α
(s),花费花费是动态异常子图,我们设这个问题(7)的过程用问题(6)的异常子图集ω表示为
[0086]
4)de-mass近似算法
[0087]
为了有效地求出式(5)的解,我们提出了一种近似算法:de-mass。为了更好地介绍算法,首先在算法1中引入了几个概念:
[0088]
a)tspsd(g,α):输出静态图g中最异常的连通子图;
[0089]
b)nei(ω):与时间集合ω相邻的两个时间片集。例如,如果ω={t,

,2t},nei(ω)={t-1,2t+1}。
[0090]
c)将s
k
时间τ内顶点的p值设为1.0,即
[0091]
d)tree(s
ω
):去掉演化图s
ω
中的一些边,输出一个树集
[0092]
e)dp1(k,g):使用动态规划来寻找最优解k。输入为budget-k和图g;
[0093]
f)用动态规划法求最优解ψ
ω
,输入为budget-m和异常子图集合
[0094]
g)commonnode(s
τ
,s
τ+1
):|{s
τ
∩s
τ+1
}|,公共节点函数计算图形中s
τ
和s
τ+1
的公共顶点个数。
[0095][0096]
在算法1中,首先找到所有时间片中最大的异常子图集的时间片τ0,然后从时间片向两边扩展检测异常子图。tspsd算法将npgs问题转化为一系列b-pcst子问题(k-budget子图检测)。当在每个时间片上发现异常子图集时,比较异常子图集的目标函数值,在时间片中将最大值的时间片标记为τ0,并将最异常子图集合标记为将npgs问题转化为m-budget进化子图检测问题,将m-budget演化子图检测问题进一步分解为每个时间片上的多个k-budget子图检测问题。当我们得到时,我们继续检测从时间片τ0到时间轴两侧的异常子图,直到相邻两边的时间片边界不能检测到异常子图。为了检测一个时间片上的多个异常子图,我们在检测到每个异常子图之后更新时间片的p值。例如,算法1中的表示更新图τ中顶点的p值(我们将p值设置为1.0)。最后,算法输出一组演化异常子图ψ
ω
。通过dp1和更新p值,得到异常子图集ω,然后利用dp2得到m-budget问题的最优解。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1