(12)发明专利申请
(10)申请公布号 CN 108809709 A(43)申请公布日 2018.11.13
(21)申请号 201810573541.1(22)申请日 2018.06.06
(71)申请人 山东大学
地址 264209 山东省威海市环翠区怡园街
道文化西路180号(72)发明人 康钦马 孔汉章 王武闯 邱会学 (74)专利代理机构 青岛清泰联信知识产权代理
有限公司 37256
代理人 高洋(51)Int.Cl.
H04L 12/24(2006.01)
权利要求书2页 说明书5页 附图2页
(54)发明名称
一种基于节点亲密性与标签传播的社区发现方法(57)摘要
本发明提出了一种基于节点亲密度与标签传播的社区发现方法,该方法属于复杂网络分析领域。所述方法的主要技术特点为:利用局部拓扑信息评估网络中相邻节点之间的亲密性并以此构建亲密度矩阵;基于亲密度矩阵评估网络中节点的重要性,保证节点按照重要性从大到小的顺序更新;在迭代更新过程中,每个节点将自身的标签更新为邻居中影响力最大的标签,若存在多个影响力最大的标签,则通过计算标签的紧密性确定唯一的标签。当算法满足停止条件时跳出标签传播过程,具有相同标签的节点归属到同一社区。本发明设计合理,能够快速地检测到高质量的社区,并能有效地提高标签传播方法的鲁棒性,可广泛应用于蛋白质功能预测、疫情监测和电子商务精准推荐等领域中。
CN 108809709 ACN 108809709 A
权 利 要 求 书
1/2页
1.一种基于节点亲密度与标签传播的社区发现方法,其特征在于,包括以下步骤:步骤(1):构建图模型,根据复杂网络模型构造一个无向无权图G=(V,E),其中V={v1,v2,…,vn}表示网络中节点集,E={e1,e2,…,em}表示网络中边集,n表示网络中节点的个数,m表示网络中边的条数,该图可用n维的邻接矩阵A表示,Au,v为邻接矩阵A中第u行、第v列的元素,若图中节点u和节点v为相邻节点(u和v之间通过一条边相连),则Au,v=1,否则Au,v=0;
步骤(2):评估节点亲密度及构建亲密度矩阵,对于图中的每一对相连节点u和v,利用局部拓扑信息评估它们之间的亲密度,并将该值保存在亲密度矩阵第u行、第v列中;
步骤(3):基于亲密度矩阵计算网络中节点的重要性,为提高算法的稳定性,将网络中节点按照重要性从大到小的顺序初始化更新序列;
步骤(4):初始化网络中的每个节点拥有单独的标签;步骤(5):对于序列中的每个节点,根据标签更新规则将该节点的标签更新为其邻居节点中影响力最大的标签;
步骤(6):一轮迭代完成后,若图中所有节点的标签均为最大影响力的标签,则标签传播过程结束,具有相同标签的节点归属到同一个社区,否则返回步骤5。
2.根据权利要求1所述的基于节点亲密度与标签传播的社区发现方法,其特征在于,在步骤(2)中,计算节点亲密度的方法为:
其中,Г(u)表示节点u和其邻居节点集合,Iu,v表示节点v对节点u的亲密度。
3.根据权利要求1所述的基于节点亲密度与标签传播的社区发现方法,其特征在于,在步骤(3)中,计算节点重要性的方法为:
节点u的重要性为亲密度矩阵中第u行元素之和。
4.根据权利要求1所述的基于节点亲密度与标签传播的社区发现方法,其特征在于,在步骤(5)中,对于序列中的每个节点,根据标签传播思想进行节点标签更新的方法为:
步骤(5-1):评价节点v所有邻居标签的影响力值,标签影响力的计算公式如下:
若lu=l,δ(lu,l)=1,否则δ(lu,l)=0,LI(l)表示标签l的影响力值;步骤(5-2):从节点v的邻居中选取影响力最大的标签,标签选取规则如下:
步骤(5-3):判断邻居标签中是否存在多个影响力最大的标签,若只存在一个影响力最大的标签,则将该标签作为节点v的标签,节点更新规则如下:
l(v)=lmax(v)
若存在多个影响力最大的标签,为提高算法的稳定性,使用紧密度函数代替传统算法
2
CN 108809709 A
权 利 要 求 书
2/2页
中随机选取的原则,紧密度函数的计算方法如下所示:
其中,nv(l)表示v的邻居节点中标签为l的节点的集合,Mv(l)表示nv(l)的节点之间最大可能的边的数量(Mv(l)=(|nv(l)|-1)*|nv(l)|/2,|nv(l)|表示nv(l)中节点的个数),mv(l)表示nv(l)的节点之间实际存在的节点的数量,Dv(l)表示nv(l)中节点度之和,通过计算标签的紧密度,选取紧密度最大的标签作为当前节点的新的标签,节点标签更新规则如下:
其中l(v)表示节点v的新的标签。
3
CN 108809709 A
说 明 书
一种基于节点亲密性与标签传播的社区发现方法
1/5页
技术领域
[0001]本发明属于复杂网络分析领域,具体涉及一种基于节点亲密度的标签传播算法进行社区发现的问题。
背景技术
[0002]在现实世界中许多复杂系统可以被抽象为网络模型,如社交网络(QQ、微信、微博、Facebook、Twitter等)、科学家引文网络、蛋白质交互网络以及万维网等。在这些网络中,普遍存在一些如“小世界”、“无标度”和“社区结构”等简单网络所不具备的统计特征。众多研究表明,复杂网络中的个体之间并非随机连接,而是存在着异构特征,即相同类型的节点之间连接紧密,而不同类型的节点之间连接稀疏。这种特征被称为社区结构,即相同类型的节点及它们之间的连接同属一个社区。
[0003]社区发现作为复杂网络分析中的一个热点研究方向,对于揭示复杂网络的结构和功能具有重要的理论意义和应用前景,吸引了来自统计物理学、运筹学、计算机科学等多门学科领域的研究者们的关注。目前,社区发现已经在多个领域中发挥着重要的作用。在生物领域中,探测蛋白质交互网络中的模块结构有助于理解生物系统的组织和功能以及对未来蛋白质功能进行预测;在疫情监测方面,通过社区发现找出传染病病毒的核心社区有助于预测病毒传播路径和保护易感人群;在社交网络中利用社区发现技术可以进行好友推荐和精准广告投放。
[0004]近十几年来,研究者们已经提出了很多在复杂网络中进行社区发现的方法。然而,这些传统的社区发现方法广泛存在的问题是:[0005]1.计算开销大,无法适用于大型复杂网络。[0006]随着大数据时代的到来,很多社交网站拥有了数以亿计的用户,传统的社区发现算法(如GN算法等)由于时间复杂度过高的缺陷而无法扩展到规模如此庞大的复杂网络。[0007]2.依赖于先验信息。
[0008]多数社区发现方法的效果依赖于预先设定的社区个数或大小,不同的预设信息所产生的社区质量具有较大的差异。在实际复杂网络中,很难获得关于此类信息的最佳设定。[0009]标签传播算法作为一种图的半监督学习算法,由Raghavan等人首次引入到社区发现领域中。该算法因其计算开销小、无需先验信息的优点而对大型复杂网络有很强的适应性,从而受到研究者们的广泛关注。然而,标签传播算法的低鲁棒性的缺点使得多次执行该算法产生的解的质量具有较大的差异,有的解甚至可能包含整个网络,即所谓的“怪物社区”。因此,如何提高传统标签传播算法的准确性和稳定性成为一个亟待解决的难题。发明内容
[0010]本发明的目的在于针对当前技术的缺陷,提出一种基于节点亲密度的标签传播算法进行社区发现的方法。该方法在保持低时间开销的同时,提高了标签传播算法的稳定性和准确性。
4
CN 108809709 A[0011]
说 明 书
2/5页
本发明所采用的技术方案如下:
[0012]步骤(1):构建图模型。根据复杂网络模型构造一个无向无权图G=(V,E)。其中V={v1,v2,…,vn}表示网络中节点集,E={e1,e2,…,em}表示网络中边集,n表示网络中节点的个数,m表示网络中边的条数。该图可用n维的邻接矩阵A表示。Au,v为邻接矩阵A中第u行、第v列的元素。若图中节点u和节点v为相邻节点(u和v之间通过一条边相连),则Au,v=1;否则Au,v=0。
[0013]步骤(2):评估节点亲密度及构建亲密度矩阵。对于图中的每一对相连节点u和v,利用局部拓扑信息评估它们之间的亲密度,并将该值保存在亲密度矩阵第u行、第v列中。[0014]步骤(3):评估节点重要性并生成更新序列。基于亲密度矩阵计算网络中节点的重要性,将网络中节点按照重要性从大到小的顺序初始化更新序列,保证网络中的节点在每轮迭代中按照此序列更新标签。[0015]步骤(4):初始化网络中的每个节点拥有单独的标签。[0016]步骤(5):对于序列中的每个节点,根据标签更新规则将该节点的标签更新为其邻居节点中影响力最大的标签。[0017]步骤(6):一轮迭代完成后,若图中所有节点的标签均为最大影响力的标签,则标签传播过程结束,具有相同标签的节点归属到同一个社区;否则返回步骤5。[0018]进一步,所述步骤(2)中节点亲密度的计算公式为:
[0019][0020][0021][0022][0023][0024][0025][0026][0027][0028][0029][0030]
其中,Г(u)表示节点u和其邻居节点集合。Iu,v表示节点v对节点u的亲密度。
进一步,所述步骤(3)中节点重要性的计算公式为:
NI(u)表示节点u的重要性,该值为亲密度矩阵中第u行元素之和。进一步,所述步骤(5)中,具体实现包含以下子步骤:步骤(5-1):评价节点v所有邻居标签的影响力值。标签影响力的计算公式如下:
若lu=l,δ(lu,l)=1;否则δ(lu,l)=0。LI(l)表示标签l的影响力值。步骤(5-2):从节点v的邻居中选取影响力最大的标签,标签选取规则如下:
步骤(5-3):判断邻居标签中是否存在多个影响力最大的标签。若只存在一个影响
力最大的标签,则将该标签作为节点v的标签。节点更新规则如下:[0031]l(v)=lmax(v)
[0032]若存在多个影响力最大的标签,则使用紧密度函数代替传统算法中随机选取的原则。紧密度函数的计算方法如下所示:
5
CN 108809709 A
说 明 书
3/5页
[0033]
其中,nv(l)表示v的邻居节点中标签为l的节点的集合,Mv(l)表示nv(l)的节点之
间最大可能的边的数量(Mv(l)=(|nv(l)|-1)*|nv(l)|/2,|nv(l)|表示nv(l)中节点的个数),mv(l)表示nv(l)的节点之间实际存在的节点的数量,Dv(l)表示nv(l)中节点度之和。通过计算标签的紧密度,选取紧密度最大的标签作为当前节点的新的标签。节点标签更新规则如下:
[0035]
[0034]
其中l(v)表示节点v的新的标签。
[0037]本发明的优点及有益效果如下:
[0038]本发明提供了一种基于节点亲密性与标签传播的社区发现方法,该方法继承了标签传播算法的优良特性,一方面无需先验信息,能够自适应地在各种网络中进行社区检测;另一方面时间复杂度低,可以扩展到大型复杂网络。[0039]此外,同传统的标签传播方法相比,基于节点亲密度的标签传播算法从准确性和稳定性方面都有了明显的提升。该方法通过利用图的局部拓扑信息评估网络中相邻节点之间的亲密性并构建亲密度矩阵,在该矩阵的基础上计算网络中节点重要性,保证网络中的节点按照重要性从高到低的顺序进行更新,代替了传统算法中随机更新的方式;在标签传播过程中,该方法通过亲密度矩阵计算邻居标签的影响力。当有多个标签满足影响力最大的条件时,通过引入一个新的紧密度评价函数代替原有的随机选取的原则,进一步消除算法的随机性。上述改进措施能够保证算法快速且稳定地检测到高质量的社区。附图说明
[0040]图1为本发明的算法流程图;
[0041]图2为本发明在经典数据集Zachary’s karate club上的应用结果示意图;[0042]图3为本发明在经典数据集Zachary’s karate club上的节点重要性图。具体实施方式
[0043]图1为本发明所描述的宏观流程图。如图所示,本发明所述的基于节点亲密度与标签传播的社区发现算法包括以下步骤:1)建立图模型,可用邻接矩阵的方式存储;2)根据图的局部拓扑信息评价构建亲密度矩阵;3)评估节点重要性并生成初始化序列;4)为网络中的每个节点初始化独立的标签;5)对于序列中的每个节点,计算其邻居标签的影响力;6)若存在多个最大影响力的标签,则通过紧密型函数的评估确定唯一的标签;7)更新节点标签;8)所有的节点更新结束后,判断是否满足收敛条件(每个节点的标签同其邻居中影响力最大的标签相同),若满足则跳出循环,否则转到步骤5)继续执行;9)拥有相同标签的节点归属到相同的社区。
[0044]下面结合图2对本发明做进一步的详细描述:[0045]步骤(1):构建图模型。根据复杂网络模型构造一个无向无权图G=(V,E)。其中V=
6
[0036]
CN 108809709 A
说 明 书
4/5页
{v1,v2,…,vn}表示网络中节点集,E={e1,e2,…,em}表示网络中边集,n表示网络中节点的个数,m表示网络中边的条数。该图可用n维的邻接矩阵A表示。Au,v为邻接矩阵A中第u行、第v列的元素。若图中节点u和节点v为相邻节点(u和v之间通过一条边相连),则Au,v=1;否则Au,v=0。在图2中,社会学家Zachary在20世纪70年代用两年的时间观察美国一所大学中跆拳道俱乐部成员之间的社会关系网络构造一个无向无权图。该图包含34个节点和78条边,节点表示跆拳道俱乐部中的成员,边表示成员之间的社交关系。[0046]步骤(2):评估节点亲密度及构建亲密度矩阵。对于图中的每一对相邻节点u和v,利用局部拓扑信息评估它们之间的亲密度,并将该值保存在亲密度矩阵第u行、第v列中。节点亲密度的计算公式为:
[0047][0048]
以节点v1和节点v12为例,Iv1,v12=Г(v1)∩Г(v12)/Г(v12)=1,Iv12,v1=Г(v1)
∩Г(v12)/Г(v1)=0.118。Iv1,v12和Iv12,v1的值分别保存在亲密度矩阵的第1行、第12列和第12行、第1列中。[0049]步骤(3):评估节点重要性并生成更新序列。基于亲密度矩阵计算网络中节点的重要性,节点重要性的计算公式为:
[0050]
[0051]
NI(u)表示节点u的重要性,该值为亲密度矩阵中第u行元素之和。以节点v1为例,NI(v1)≈13.5054。所有节点的重要性如图3所示。为提高算法的稳定性,将网络中节点按照重要性从大到小的顺序初始化更新序列,保证网络中的节点在每轮迭代中按照此序列更新标签。在Zachary’s karate club网络中节点更新顺序为:{v34→v1→v33→v2→v3→v4→v32→v6→v7→v24→v30→v14→v8→v9→v11→v5→v25→v26→v31→v28→v17→v29→v27→v13→v20→v18→v22→v15→v16→v19→v21→v23→v10→v12}。[0052]步骤(4):初始化网络中的每个节点拥有单独的标签,lvi=i。[0053]步骤(5):对于序列中的每个节点,根据标签更新规则将该节点的标签更新为其邻居节点中影响力最大的标签。具体实现包含以下子步骤:[0054]进一步,所述步骤(5)中,具体实现包含以下子步骤:[0055]步骤(5-1):评价节点v所有邻居标签的影响力值。标签影响力的计算公式如下:
[0056]
[0057][0058][0059][0060]
若lu=l,δ(lu,l)=1;否则δ(lu,l)=0。LI(l)表示标签l的影响力值。
步骤(5-2):从节点v的邻居中选取影响力最大的标签,标签选取规则如下:
步骤(5-3):判断邻居标签中是否存在多个影响力最大的标签。若只存在一个影响
力最大的标签,则将该标签作为节点v的标签。节点更新规则如下:[0061]l(v)=lmax(v)
7
CN 108809709 A[0062]
说 明 书
5/5页
若存在多个影响力最大的标签,则使用紧密度函数代替传统算法中随机选取的原
则。紧密度函数的计算方法如下所示:
[0063]
其中,nv(l)表示v的邻居节点中标签为l的节点的集合,Mv(l)表示nv(l)的节点之间最大可能的边的数量(Mv(l)=(|nv(l)|-1)*|nv(l)|/2,|nv(l)|表示nv(l)中节点的个数),mv(l)表示nv(l)的节点之间实际存在的节点的数量,Dv(l)表示nv(l)中节点度之和。通过计算标签的紧密度,选取紧密度最大的标签作为当前节点的新的标签。节点标签更新规则如下:
[0065]
[0064]
其中l(v)表示节点v的新的标签。
[0067]以节点v34为例,其邻居标签包括{9,10,14,15,16,19,20,21,23,24,27,28,29,30,31,32,33}。依据更新规则,最大影响力的标签为节点v33的标签(LI(33)≈0.6667)。由于仅存在一个影响力最大的标签,因此无需计算标签紧密度,节点v34选取节点v33的标签作为自身的标签。其余节点的具体更新过程不再赘述。[0068]步骤(6):一轮迭代完成后,若图中所有节点的标签均为最大影响力的标签,则标签传播过程结束,具有相同标签的节点归属到同一个社区;否则返回步骤(5)。在上述例图中,一轮迭代完成后所有节点的标签均为其邻居中影响力最大的标签,因此退出循环。最终得到两个社区,分别为C0={v1,v2,v3,v4,v5,v6,v7,v8,v11,v12,v13,v14,v17,v18,v20,v22},C1={v9,v10,v15,v16,v19,v21,v23,v24,v25,v26,v27,v28,v29,v30,v31,v32,v33,v34}。最终的社区结构如图2所示。正方形和三角形的节点分别代表了分裂后两个社区的节点。
[0069]社会学家Zachary在调查过程中,该俱乐部的主管与校长之间因是否抬高俱乐部收费的问题产生了争执。结果该俱乐部分裂成了两个分别以主管和校长为核心的小俱乐部。图2中的节点v1和节点v34分别代表了俱乐部主管和校长,而正方形和三角形的节点分别代表了分裂后俱乐部的社区成员。改进后的标签传播算法仅通过一次迭代,就成功地检测分别以俱乐部主管和校长为首的两个社区,该划分与真实社区划分完全一致,体现了算法具有良好的稳定性和准确性。[0070]需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
[0066]
8
CN 108809709 A
说 明 书 附 图
1/2页
图1
9
CN 108809709 A
说 明 书 附 图
2/2页
图2
图3
10
因篇幅问题不能全部显示,请点此查看更多更全内容