一种基于k核的公平社区挖掘方法

文档序号:25879741发布日期:2021-07-16 18:24阅读:154来源:国知局
一种基于k核的公平社区挖掘方法

1.本发明涉及大图数据分析技术领域,尤其是涉及一种基于k核的公平社区挖掘方法。


背景技术:

2.近年来,随着信息技术的发展,各种大数据技术普遍应用于研究中,例如社交网络,web网络,生物网络等。从这些网络中提取出隐含的稠密子结构是网络分析的一个基本问题,例如从社交网络中挖掘出社交圈子,在web网络中发现关键重要的网站,以及在生物网络找出蛋白络合物。目前人们在图网络挖掘的领域中提出了许多模型来提取网络中的稠密子图,其中比较经典的模型为极大团模型,极大团表示图中的极大完全图,也就是说每两个点之间都要有边相连。
3.属性图是一种带有属性的图,属性可以具体分为节点属性以及边属性。属性的存在增加的图的信息维度,使挖掘出来的社区具有更加丰富的含义。如果在属性图中简单地寻找极大团,找到的极大团常常带有非常不均匀的属性。以性别作为属性为例,普通的极大团枚举方法可能找到属性全为“男性”或“女性”的社区,这样的社区是不公平的,因为不同性别的节点数量有很大的差距。为了解决这个问题,我们提出了“公平团”的概念以及挖掘“公平团”的方法。
4.现有的普通极大团枚举方法也可以用来寻找公平团,但是由于没有充分地利用节点的属性信息,因此不得不首先找到所有的团,然后根据公平团的条件来进行筛选,效率低下。


技术实现要素:

5.在挖掘社区时,本发明通过使用公平团挖掘方法,代替极大团挖掘方法,解决了社区挖掘的不公平性以及枚举效率低的问题。
6.为实现上述目的,本发明提供了如下技术方案:
7.一种基于k核的公平社区挖掘方法,包括如下步骤:
8.s1:核分解,寻找colorful

(k

1)

核;
9.s2:公平团枚举,对核分解后产生的节点属性图,采用枚举方法寻找k

公平团;
10.s3:输出结果集合,输出的所有k

公平团即为公平社区;
11.对于一个节点属性图和一个阈值k,符合以下条件的团c被称为k

公平团:(1)对于任意属性值,团c内该属性值节点的数量不小于k;(2)不存在一个团c’包含c还满足条件(1)。
12.优选的,所述s1步骤包括:
13.s11:对节点图进行贪心着色;
14.s12:计算节点图中每个节点的最小色彩度,将色彩度小于k

1的节点删除,并放入删除队列中;
15.s13:弹出删除队列中的节点,在图中找到弹出节点的邻居节点;
16.s14:更新邻居节点的最小色彩度,并进行判断;若邻居节点最小色彩度小于k

1,则放入删除队列中;
17.s15:重复s13

s14,直至删除队列为空,最后剩余节点构成的节点属性图即为colorful

(k

1)

核。
18.优选的,所述s2步骤包括:
19.s21:对核分解后的节点属性图进行节点遍历,分别寻找当前节点的连通分量;
20.s22:初始化结果集合、候补集合和筛选集合,结果集合代表验证通过的节点集合,候补集合用于扩展结果集合,筛选集合内记录的是与当前结果集合里的所有节点都有边相连的节点集合;初始化后的结果集合、筛选集合为空,候选集合为s21步骤中的连通分量里的节点集合;
21.s23:判断候补集合、筛选集合是否均为空,若均为空则输出结果集合;
22.s24:若候补集合不为空,弹出候补集合的一个节点u并加入结果集合中,结合公平团定义对结果集合进行检查;初始化新的结果集合、候补集合和筛选集合,其中,新的候补集合为当前候补集合中所有与u有边相连的节点,新的筛选集合为当前筛选集合中所有与u有边相连的节点;利用新的集合进行下一层的搜索,搜索完毕,将弹出节点u加入筛选集合内;
23.s25:重复s23

s24步骤,直至候补集合遍历完成;
24.s26:更换节点,重复s21

s25步骤,直至核分解后的节点属性图遍历完成。
25.优选的,所述s2步骤中枚举方法基于深度优先遍历顺序完成。
26.优选的,所述s22步骤中还包括候补集合的优先排序,按照最小色彩度对候补集合内节点进行排列。
27.优选的,所述s24步骤中检查包括节点数量的检查以及属性值拥有节点数量的检查。
28.本发明采用上述结构的基于k核的公平社区挖掘方法,更好地展示社区的公平性,大大提升了搜索效率。
附图说明
29.图1为本发明实施例的流程图;
30.图2为本发明实施例中核分解的流程图;
31.图3为本发明实施例中公平团枚举的流程图;
32.图4为包括两种属性取值的节点属性图示例;
33.图5为图4中节点图的贪心着色图;
34.图6为图4中节点图的公平团子图;
35.图7为搜索树示例;
36.图8为核分解后的节点示例图。
具体实施方式
37.以下结合附图和实施例对本发明的技术方案作进一步说明。
38.为方便理解,本发明首先引入或定义如下概念:
39.1、节点属性图:图g=(v,e,a)是一个无向,无权,带属性的图,图上的每个节点v都带有一个属性值v.val。用a
n
来表示属性值集合的大小,即a
n
=|{u.val|u∈v}|。
40.2、团:一个完全子图,图中的任意两个顶点都有边相连。
41.3、k

公平团:给定一个节点属性图和一个阈值k,符合以下条件的团c被称为k

公平团:(1)对于每一个可能的属性值a
i
,c里属性值为a
i
的节点的数量不小于k;(2)不存在一个团c’包含c还满足条件(1)。
42.4、节点的色彩度:对于一个属性图和一个属性值a
i
,节点u关于a
i
的色彩度为是u的邻居中属性值为a
i
的节点能取到的颜色集合大小。
43.5、最小色彩度:属性图内每个节点u来说,都应该正好拥有a
n
个色彩度,因为这个色彩度是每个属性都有一个的,即使u的邻居中没有某个属性值的节点,这个属性也会有自己的色彩度,只不过这个值为0。把节点的最小的色彩度,记作节点的最小色彩度,即d
min
(u)。
44.6、colorful

k

核:对于一个属性图和一个阈值k,子图g是一个colorful

k

核需要满足下面的条件:(1)对于g里的任何一个节点u,d
min
(u,g)≥k;(2)不存在另一个子图g’满足(1)并且包含g。
45.示例:如图4所示,假设k为2。根据k

公平团的定义,我们可以得到子图c={v1,v2,v3,v4,v5,v6,v7}是一个公平团,因为在这个团里属性值为a的节点数量为4,属性书为b的节点数量为3,它们的值都大于要求的k=2。同时,图里不存在任何一个团c’包含c同时满足条件(1)。
46.结合上述定义、实施例以及说明书附图,对本发明进行阐述。
47.s1、核分解
48.在进行搜索之前,我们就可以利用属性信息,找到一部分不可能成为公平团一部分的点。为了实现这一点,我们利用节点的色彩度对图进行核分解,最后留下来的节点才是最终被搜索的节点。
49.首先我们对图进行贪心着色,使每个点v获得一个颜色值,记做color(v)。然后利用每个节点最小的色彩度,进行核分解。
50.具体地,若我们要寻找k

公平团,就应该首先寻找colorful

(k

1)

核。对于最小色彩度小于k

1的节点,我们将它们删除,因为这些点一定不会在k

公平社区内。对于每一个被删除的节点,它的邻居的最小色彩度也会被更新。这样的迭代一直持续到没有新的节点被删除。
51.获取colorful

(k

1)

核的过程如下:
52.s11:对图进行贪心着色。
53.s12:计算所有顶点的d
min
值,并且d
min
值小于k

1的顶点放入删除队列q中;
54.s13:如果q不为空,则弹出一个节点,找到弹出节点的邻居节点;
55.s14:更新上述节点邻居的d
min
值,如果发现有邻居的新d
min
值小于k

1,则将其也放入q中。
56.s15:重复s13

s14,直至q为空,所有未进入过q中的节点即为有可能在k

公平团中
的节点。
57.示例:假设我们找寻找所有的2

公平团,那么我们首先要寻找colorful
‑1‑
核。在图4

5所示,我们给节点进行了着色,共七种颜色。以v8为例,v8和v1,v7相连,v1和v7都具有属性a,因此d
a
(v8)=2and d
b
(v8)=0。因此d
min
(v8)=d
b
(v8)=0<1,v8一定不包含在任何一个2

公平团中,因此可以将v8从图中移除。
58.s2:公平团的枚举
59.公平团枚举方法沿用了传统的团搜索框架,但是结合了属性图的特性,使搜索变得更加高效。枚举方法采用深度优先遍历顺序。
60.此过程中,使用到三个集合——结果集合r、筛选集合x、候选集合c,r代表验证通过的节点集合,结果集合输出后形成公平团。x是筛选过的节点集合,集合x内记录的是与当前r集合里的所有节点都有边相连的节点集合。c是可用于扩展结果集合r的候选节点集合,其中每个顶点必须是r中所有顶点的邻居。如图7的搜索树所示,假如当前正在将节点8加入r集合中,那么x集合中所拥有的点应该为{7,9},c中拥有的节点为{1,5,6}。
61.s21:经过核分解的节点图,剩下的点不一定在一个连通分量里。对于每一个顶点u,找到其所在连通分量里的所有节点。
62.s22:初始化集合,集合r和x为空集,集合c为上述连通分量里的节点。
63.s23:首先判断集合c、x是否为空集,如果是,则表明当前的集合r里记录了一个公平团,因为c是空集意味着x中没有节点可以被加入r中,x是空集意味着r已经是极大的了。
64.s24:若c不为空,则将c中节点加入到r中,然后更新集合r、c、x;对更新后的节点集合根据公平团的性质进行检查,看它是否有可能成为一个公平团。
65.对于c中的每一个节点u,设置新的r

=r∪u,c

为空集。用两个大小为a
n
的数组c
cnt
和r
cnt
来表示在c’和r’中各个属性所包含的节点数量。遍历原来的c集合,对于c里的节点v,如果v是u的邻居就加入到c’中,同时更新c
cnt
[v.val]。
[0066]
首先,查看c’和r’的大小之和是否不小于k*a
n
。根据公平团的定义,对于每个属性值a
i
,拥有该属性值的节点数量大于等于k。如果不满足,
[0067]
其次,查看团里每个属性值所拥有的节点的数量是否不小于k。如果对于任何一个属性值a
i
,c
cnt
[a
i
]+r
cnt
[a
i
]<k,那个当前节点集合不满足对公平团里属性数量的限制,弹出c内下一个节点。
[0068]
节点被搜索后,若上述条件均满足,则递归深度加一。
[0069]
s25:重复s23

s24步骤,依次将c中节点弹出,直至候补集合遍历完成。
[0070]
s26:更换节点,重复s21

s25步骤,直至核分解后的节点属性图遍历完成。
[0071]
为提升搜索的效率,减少无用的搜索,对s22步骤中c的取出顺序进行设置。首先将所有的节点以及它们的色彩度放入优先队列中,然后依次从里面弹出色彩度最小的那个节点,弹出节点的顺序就是我们利用色彩度获得的搜索顺序。
[0072]
s3:输出结果集合
[0073]
经过上述筛选,最终输出的所有k

公平团即为公平社区。
[0074]
示例:如图8所示,k=2、a
n
=2,对于核分解产生的节点图,所有的节点并不都在一个连通分量里面,导致形成多个图,需要对每个图进行检查。对左侧图进行检查,依次会产生如下集合形式:
[0075]

c={v1,v2,v3,v4},
[0076]

r={v1},c={v2,v3,v4},
[0077]

r={v1,v2},c={v3,v4},
[0078]

r={v1,v2,v3},c={v4},
[0079]

r={v1,v2,v4},c={v3},x={v3};由于v3节点已经在

中搜索过,所以将v3放入集合x中;
[0080]

r={v1,v2,v3,v4},
[0081]
接下来从v2节点开始搜索,但是v2已经在上述过程中访问过了,所以直接跳过,直至访问到v5节点,但是v5、v6不满足k=2条件。
[0082]
最后输出r={v1,v2,v3,v4}
[0083]
综上,本发明采用上述公平社区挖掘方法,解决在社区挖掘中极大团属性的不均衡问题,保证了公平性,同时采用色彩度方式,加快了搜索效率。
[0084]
以上是本发明的具体实施方式,但本发明的保护范围不应局限于此。任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,因此本发明的保护范围应以权利要求书所限定的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1