通过局部距离和节点秩优化函数的社交网络社区发现***
技术领域
本发明涉及一种社交网络技术领域,特别是涉及一种通过局部距离和节点秩优化函数的社交网络社区发现***。
背景技术
在过去的二十年中,互联网发展全球化进程的提速,数据网络在人类社会中的地位变得愈来愈重要,研究人员对复杂网络的研究也越来越感兴趣。在大自然中,复杂网络形式多样,由相互影响相对独立的社区组成。例如,社交网络、生物网络、经济网络、信息网络等等。社区结构是复杂网络的重要拓扑属性,所以社区发现在复杂网络分析和数据挖掘等研究中具有重要意义。这种属性使社区发现更好地分析复杂网络并提取有用的信息并应用于各个领域,例如文本分析,个性推荐***,用户标识,流行病传播,行为预测。
尽管已经有很多关于社交网络社区发现的文章,在网络中,每个集群中包含的节点之间必须以某种方式彼此关联,而不是与集群外部的节点相关,从而形成一个社区。因此大多数研究人员都认为,社区的特征是社区节点之间紧密连接以及与社区外部的节点稀疏连接。自从Girvan和Newman创性的工作以来,已经提出了许多用于复杂网络中社区检测的算法,其中最为典型算法,例如模块度优化算法,标签传播算法,贪心算法,随机游走算法,谱划分算法,模糊算法。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种通过局部距离和节点秩优化函数的社交网络社区发现***。
为了实现本发明的上述目的,本发明提供了一种通过局部距离和节点秩优化函数的社交网络社区发现***,包括数据获取模块、拉普拉斯节点矩阵计算模快、网络社交节点值计算发现模块、社区优化模块和展示模块;
数据获取模块的数据输出端与拉普拉斯节点矩阵计算模块的数据输入端相连,拉普拉斯节点矩阵计算模块的数据输出端与网络社交节点值计算发现模块的数据输入端相连,网络社交节点值计算发现模块的数据输出端与社区优化模块的数据输入端相连,社区优化模块的数据输出端与展示模块的展示数据端相连;
数据获取模块用于获取网络社交节点数据集;
拉普拉斯节点矩阵计算模块用于对数据获取模块中获取的网络社交节点数据集进行拉普拉斯归一化处理;得到拉普拉斯节点矩阵;
网络社交节点值计算发现模块用于根据网络社交的内部距离和外部距离,计算得到网络社交节点值:
若网络社交节点值大于或者等于预设网络社交节点值,则发现网络社交社区;
若网络社交节点值小于预设网络社交节点值,则重新发现网络社交社区;
社区优化模块用于对网络社交节点值计算发现模块中发现的网络社交社区进行优化;
展示模块用于将社区优化模块或/和网络社交节点值计算发现模块中得到的网络社交社区进行展示。
在本发明的一种优选实施方式中,在拉普拉斯节点矩阵计算模块中对获取的网络社交节点进行拉普拉斯归一化处理计算方法为:
其中,D表示节点度矩阵;
A表示邻接矩阵。
在本发明的一种优选实施方式中,在拉普拉斯节点矩阵计算模块中拉普拉斯节点矩阵中元素值的计算方法为:
其中,deg(vi)表示节点i的度;
deg(vj)表示节点j的度;
vi表示节点i;
vj表示节点j;
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中网络社交的内部距离的计算方法为:
其中,Lsym表示拉普拉斯节点矩阵;
G表示社交网络;
Vk表示节点集合;k=1,2,3,...,K;
dinternal(G,Vk)表示网络社交的内部距离。
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中网络社交的外部距离的计算方法为:
其中,Lsym表示拉普拉斯节点矩阵;
V表示节点分区集合;V={V1,V2,V3,...,VK};
G表示社交网络;
Vk表示节点集合;k=1,2,3,...,K;
dexternal(G,Vk)表示网络社交的外部距离。
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中网络社交节点值的计算方法为:
其中,Vk表示节点集合;k=1,2,3,...,K;
V表示节点分区集合;V={V1,V2,V3,...,VK};
dinternal(G,Vk)表示网络社交的外部距离;
dexternal(G,Vk)表示网络社交的内部距离;
SLDL(G,V)表示网络社交节点值。
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中节点集合V
k的邻接矩阵
的计算方法为:
其中,Vk表示节点集合;k=1,2,3,...,K;
V表示节点分区集合;V={V1,V2,V3,...,VK};
vx表示节点x;x=1,2,3,...,N;
vy表示节点y;y=1,2,3,...,N。
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中节点集合V-V
k的邻接矩阵
的计算方法为:
其中,Vk表示节点集合;k=1,2,3,...,K;
V表示节点分区集合;V={V1,V2,V3,...,VK};
vx表示节点x;x=1,2,3,...,N;
vy表示节点y;y=1,2,3,...,N。
在本发明的一种优选实施方式中,在社区优化模块中对发现的网络社交社区进行优化的方法为:
其中,Vk表示节点集合,k=1,2,3,...,K;
V表示节点分区集合;V={V1,V1,V1,...,VK};
vi表示节点i;
:表示在……情况下,有……;
V[vi]表示节点i属于节点集合V[vi];
vj表示节点j;
Aij表示邻接矩阵A中的第i行第j列元素值;
若成立,则保留节点集合V[vi];
若不成立,则舍去节点集合V[vi]。
在本发明的一种优选实施方式中,还包括性能度量模块,其性能度量模块中的性能度量的计算方法为:
其中,m表示连接节点边的总数;Aij表示邻接矩阵A中的元素值;Fij表示任意连接i、j两个节点的边的比例;
其中,deg(vi)表示节点i的度;deg(vj)表示节点j的度;vi表示节点i;vj表示节点j;
或/和还包括Jaccard系数模块,其Jaccard系数模块中的Jaccard系数的计算方法为:
其中,VM为最佳社区结构;
V0为参考向量;
J(VM,V0)表示Jaccard系数;
当VM和V0都为空时,J(VM,V0)=1;
或/和还包括Error指数模块,Error指数模块中的Error指数计算方法为:
其中,VM′为V的结构特征;
V0′为V0的结构特征;
E(VM′,V0′)表示Error指数;
当V具有与V0相同的社区结构时E(VM′,V0′)等于0;
将其性能度量值、Jaccard系数值、Error指数值之一或者任意组合展现在展示模块上。
综上所述,由于采用了上述技术方案,首先,本发明考虑了节点自传递问题。其次,提出的方法综合考量了边权值问题,能够有效表示出整个社交网络的特征结构。第三,在处理多比例最优化问题上,本发明的优化函数能有效找到最优的社区结构。最后本发明与其他方法相比,具有更好的性能。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明***示意框图。
图2是本发明局部距离社区分区示意图。
图3是本发明不同算法在人工网络上的比较示意图。
图4是本发明社区发现过程概览示意图。
图5是本发明在不同网络上的可视化示意图。
图6是本发明在真实数据网络的社区成员关系示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
迄今为止,已经提出了一些经典和有效的局部社区发现算法和MF算法,Liu等人提出一种基于节点对相似度的局部社区发现框架,通过嵌入更好的节点相似度度量可以获得新的局部社区发现算法。
Clauset等人提出了用于测量局部社区结构的算法R,计算方法如下:
式中,B是一个局部社区,R表示测量局部社区结构的算法,Bin表示端点全部在局部社区B中的边数,而Bout是在局部社区B中具有一个端点的边数。该算法需要预先定义社区的大小。它会连续向当前社区添加使R增加最大的相邻节点,直到当前社区达到预定义的大小为止。
Luo等人提出了另一个局部社区发现算法M,计算方法如下:
式中,M表示局部社区发现算法,Ein表示社区的内部边数量,而Eout表示社区边界与外部节点之间的边缘数量。该算法提出了三种启发式节点搜索方法,以部分解决复杂网络中发现社区的问题。但是,它必须为不同大小的网络设置不同的阈值。
这两种算法具有几个理想的优点,可以检测出任意形状的聚类,不需要预先设置聚类的数量,并且可以通过决策图显示中心的选择过程。但是,DPC仍然存在缺陷。首先,截断距离对聚类结果有更大的影响。此外,需要人工干预才能选择合适的集群中心。
Lancichinetti等人提出了一个适应度函数Fc来衡量社区内部节点的密度。适应度函数定义如下:
式中,
表示社区c的内部度总和,
表示社区c的外部度总和,α表示用于控制检测到的社区规模的分辨率参数,F
c表示社区内部节点的密度。质量函数可以有效地度量社区内节点的紧密度,但不能充分利用节点之间的局部信息。
Xu等人研究了如何将计算智能的遗传算法应用于有向,无向的社区发现,并通过迭代开发了优化算法。Wang等人提出了一种使用贝叶斯MF模型发现重叠社区的方法。此方法的优点是可以自动确定社区的数量,并且没有分辨率限制。但是,它对社区数量的内值估计可能会误导分解并返回错误的解决方案。
Guo等人使用局部度中心节点和Jaccard系数将社区的核心成员检测为网络中的种子,从而确保所选种子是社区的中心节点。每次都通过适应度函数对种子中具有最大程度的节点进行预扩展。根据适应度函数利用节点之间的内力对预扩展过程中性能最好的前k个节点进行扩展,以获得网络中的高质量社区。
Chen等人提出了一种新颖的社区发现方法,该方法利用非负矩阵分解(Nonnegative Matrix Factorization,NMF)模型将重叠的社区与网络分开,通过特征矩阵预处理和排序优化来解决社区数量未知问题,从而使该算法能够将未知社区数的网络结构进行划分。Hu等人提出了一种用于对称非负矩阵分解的改进的拉格朗日交替方向算法。
最近,Li等人提出了一种基于半监督矩阵分解和随机游走的方法来执行社区划分。通过网络拓扑计算节点之间的转移概率,使用随机游走模型获得最终的游走概率,并构建特征矩阵。
Wu等人提出了一种新颖的框架,称为混合超图正则化非负矩阵分解(MixedHypergraph Regularization Nonnegative Matrix Factorization,MHGNMF),该框架考虑了节点之间的高阶信息以提高聚类性能。超图正则化项强制将相同超边缘内的节点投影到相同的潜在子空间上,从而实现更具判别性的表示。在提出的框架中,通过将每个质心的两种邻居混合在一起来生成一组超边,利用了拓扑连接信息和结构相似性信息。
以上局部社区发现算法都是利用网络的拓扑性质,都默认网络的具有相同的边权值,而在真实数据网络中,实体之间的联系强弱是不一样的,并且都没有考虑节点偏见性,容易错误估计权值。据本发明所知,还没有其他将基于局部距离与拉普拉斯矩阵分解的方法结合起来的社区发现工作。
为了更好地描述提出的模型,本发明将使用以下数学定义:
定义1:网络G=(V,E)由节点分区集合V和边集合E组成,节点分区集合V中包含的节点将标记为v1、v2、v3、……、vN,vp表示节点p,p=1,2,3,...,N;N表示节点分区集合中节点总个数;边集合E中包含的边表示连接了哪些节点。因此,如果边对∪x≠y(vx,vy)在边集合E中,x=1,2,3,...N,y=1,2,3,...N;则vx连接到vy。在本发明中,仅处理无向图,因此边对∪x≠y(vx,vy)与边对∪y≠x(vy,vx)相同,∪y≠x(vy,vx)表示vy连接到vx,即表示vy和vx相互连接。其中,∪ζ表示条件ζ;即∪x≠y表示条件x≠y,∪y≠x表示条件y≠x。
定义2:每个网络G具有一个邻接矩阵A。如果网络G具有N个节点,则邻接矩阵A是一个以0和1组合形式的N×N矩阵。Apq=1当且仅当边对∪p≠q(vp,vq)∈E,p=1,2,3,…,N,q=1,2,3,…,N;即vp和vq连接。由定义1得知,∪p≠q(vp,vq)=∪q≠p(vq,vp),所以这里的邻接矩阵A是一个对称矩阵。
定义3:网络G=(V,E)的社区发现是将节点分区集合V划分为节点集合V1,V2,V3,…,VK的结果,使得V1∪V2∪V3∪...∪VK=V,且V1,V2,V3,...,VK都不为空集。即节点集合V1,V2,V3,...,VK就是社区结构。本发明将分区定义为V={V1,V2,V3,...,VK}。分区的个数为K=<V>,<V>表示节点分区集合V中节点集合的个数。
定义4:给定一个网络G=(V,E)与节点分区集合V={V
1,V
2,V
3,...,V
K},网络G的边可以划分为边集合E
mn,即E
mn∈E,
且
m=1,2,3....,K,n=1,2,3....,K;当且仅当
且
则有边对
定义5:特别定义,
k=1,2,3,...,K,l=1,2,3,...,K;换句话说,内部边集合
包含节点集合V
k的内部边,内部边集合
中的任一边对上的两节点都属于同一社区;而外部边集合
包括V
k的外部边,外部边集合
中的任一边对上的一节点在节点集合V
k中,另一节点在不属于节点集合V
k,而属于节点集合V-V
k中。
本发明提供了一种通过局部距离和节点秩优化函数的社交网络社区发现***,如图1所示,包括数据获取模块、拉普拉斯节点矩阵计算模快、网络社交节点值计算发现模块、社区优化模块和展示模块;
数据获取模块的数据输出端与拉普拉斯节点矩阵计算模块的数据输入端相连,拉普拉斯节点矩阵计算模块的数据输出端与网络社交节点值计算发现模块的数据输入端相连,网络社交节点值计算发现模块的数据输出端与社区优化模块的数据输入端相连,社区优化模块的数据输出端与展示模块的展示数据端相连;
数据获取模块用于获取网络社交节点数据集;
拉普拉斯节点矩阵计算模块用于对数据获取模块中获取的网络社交节点数据集进行拉普拉斯归一化处理;得到拉普拉斯节点矩阵;
网络社交节点值计算发现模块用于根据网络社交的内部距离和外部距离,计算得到网络社交节点值:
若网络社交节点值大于或者等于预设网络社交节点值,则发现网络社交社区;
若网络社交节点值小于预设网络社交节点值,则重新发现网络社交社区;
社区优化模块用于对网络社交节点值计算发现模块中发现的网络社交社区进行优化;
展示模块用于将社区优化模块或/和网络社交节点值计算发现模块中得到的网络社交社区进行展示。
在本发明的一种优选实施方式中,在拉普拉斯节点矩阵计算模块中对获取的网络社交节点进行拉普拉斯归一化处理计算方法为:
其中,D表示节点度矩阵;
A表示邻接矩阵。
在本发明的一种优选实施方式中,在拉普拉斯节点矩阵计算模块中拉普拉斯节点矩阵中元素值的计算方法为:
其中,deg(vi)表示节点i的度;
deg(vj)表示节点j的度;
vi表示节点i;
vj表示节点j;
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中网络社交的内部距离的计算方法为:
其中,Lsym表示拉普拉斯节点矩阵;
G表示社交网络;
Vk表示节点集合;k=1,2,3,...,K;
dinternal(G,Vk)表示网络社交的内部距离。
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中网络社交的外部距离的计算方法为:
其中,Lsym表示拉普拉斯节点矩阵;
V表示节点分区集合;V={V1,V2,V3,...,VK};
G表示社交网络;
Vk表示节点集合;k=1,2,3,...,K;
dexternal(G,Vk)表示网络社交的外部距离。
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中网络社交节点值的计算方法为:
其中,Vk表示节点集合;k=1,2,3,...,K;
V表示节点分区集合;V={V1,V2,V3,...,VK};
dinternal(G,Vk)表示网络社交的外部距离;
dexternal(G,Vk)表示网络社交的内部距离;
SLDL(G,V)表示网络社交节点值。
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中节点集合V
k的邻接矩阵
的计算方法为:
其中,Vk表示节点集合;k=1,2,3,...,K;
V表示节点分区集合;V={V1,V2,V3,...,VK};
vx表示节点x;x=1,2,3,...,N;
vy表示节点y;y=1,2,3,...,N。
在本发明的一种优选实施方式中,在网络社交节点值计算发现模块中节点集合V-V
k的邻接矩阵
的计算方法为:
其中,Vk表示节点集合;k=1,2,3,...,K;
V表示节点分区集合;V={V1,V2,V3,...,VK};
vx表示节点x;x=1,2,3,...,N;
vy表示节点y;y=1,2,3,...,N。
在本发明的一种优选实施方式中,在社区优化模块中对发现的网络社交社区进行优化的方法为:
其中,Vk表示节点集合,k=1,2,3,…,K;
V表示节点分区集合;V={V1,V1,V1,…,VK};
vi表示节点i;
:表示在……情况下,有……;
V[vi]表示节点i属于节点集合V[vi];
vj表示节点j;
Aij表示邻接矩阵A中的第i行第j列元素值;
若成立,则保留节点集合V[vi];
若不成立,则舍去节点集合V[vi]。
在本发明的一种优选实施方式中,还包括性能度量模块,其性能度量模块中的性能度量的计算方法为:
其中,m表示连接节点边的总数;Aij表示邻接矩阵A中的元素值;Fij表示任意连接i、j两个节点的边的比例;
其中,deg(vi)表示节点i的度;deg(vj)表示节点j的度;vi表示节点i;vj表示节点j;
或/和还包括Jaccard系数模块,其Jaccard系数模块中的Jaccard系数的计算方法为:
其中,VM为最佳社区结构;
V0为参考向量;
J(VM,V0)表示Jaccard系数;
当VM和V0都为空时,J(VM,V0)=1;
或/和还包括Error指数模块,Error指数模块中的Error指数计算方法为:
其中,VM′为V的结构特征;
V0′为V0的结构特征;
E(VM′,V0′)表示Error指数;
当V具有与V0相同的社区结构时E(VM′,V0′)等于0;
将其性能度量值、Jaccard系数值、Error指数值之一或者任意组合展现在展示模块上。
如图2所示:整个网络G被划分为5个分区,即V={V
1,V
2,V
3,V
4,V
5},其中简要表明了V
1分区的内部边集合
以及外部边集合
社区发现即找到网络G=(V,E)的节点分区集合V={V1,V2,V3,...,VK},每个集群中包含的节点之间必须以某种方式彼此关联,而不是与集群外部的节点相关,从而形成一个社区。首先本发明为解决节点信息自传递问题,综合考虑节点自身对自己的影响,引入自身度矩阵,再利用拉普拉斯矩阵分解原理,构造出如下模型:
其中,D表示节点度矩阵;
表示未归一化的拉普拉斯矩阵;A表示邻接矩阵;I
n表示n阶单位矩阵;L
sym为拉普拉斯节点矩阵。
考虑到提取网络特征的完备性,即充分考虑边权值问题。本发明通过对邻接矩阵的归一化操作,通过对邻接矩阵两边乘以节点的度开方然后取逆得到。单个节点运算来说,做归一化就是除以它节点的度,这样每一条邻接边信息传递的值就被规范化了,不会因为某一个节点有10条边而另一个只有1条边导致前者的影响力比后者大,因为做完归一化后者的权重只有0.1了,从单个节点上升到二维矩阵的运算,就是对矩阵求逆了,乘以矩阵的逆的本质,就是做矩阵除法完成归一化。但左右分别乘以节点i,j度的开方,就是考虑一条边的两边的点的度。具体到每一个节点对vi,vj矩阵中的元素由下面的式子给出:
其中,deg(v
i)表示节点i的度;deg(v
j)表示节点j的度;也就是度矩阵在节点i,j处的值;v
i表示节点i;v
j表示节点j;
表示拉普拉斯节点矩阵中第i行第j列的元素值。
内部距离与外部距离由下式给出:
其中,L
sym表示拉普拉斯节点矩阵;
表示V
k的邻接矩阵;
表示V-V
k的邻接矩阵;d
internal(G,V
k)表示网络社交的内部距离;d
external(G,V
k)表示网络社交的外部距离,其d
external(G,V
k)可以写成d
e(G,V
k)或d
e;d
internal(G,V
k)可以写成d
i(G,V
k)或d
i。
在公式(8)中应当理解当节点x和节点y均属于节点集合(节点集合也叫社区)V
k,V
k的邻接矩阵
在第x行第y列的元素值为1;当节点x属于节点集合V
k,节点y属于节点集合V-V
k,V
k的邻接矩阵
在第x行第y列的元素值为0;同理,在公式(9)中当节点x和节点y均属于节点集合V
k,V
k的邻接矩阵
在第x行第y列的元素值为0;当节点x属于节点集合V
k,节点y属于节点集合V-V
k,V-V
k的邻接矩阵
在第x行第y列的元素值为1。
对于所有vx∈V都有Axx=1(即,每个节点都具有一个自环)。除自环之外的所有边均被计数两次。dinternal(G,Vk)的取值在[0,1]之间,当网络G是相互不连续的社区的并集时,dinternal(G,Vk)=1,这种情况是完美的社区结构图。其dexternal(G,Vk)取值也在[0,1]之间(对于完美的社区结构图,其值为0)。
局部距离拉普拉斯网络社交节点值函数如下:
其中,Vk表示节点集合;V表示节点分区集合;dinternal(G,Vk)表示网络社交的外部距离;dexternal(G,Vk)表示网络社交的内部距离;SLDL(G,V)表示网络社交节点值。
LDL模型需要强调的一点是对应于每个局部分区(局部内部距离加局部外部距离)的权重为|Vk|/2|V|。这样做是避免较小的社区将对其总社区群的得分产生不成比例的影响。
3.3节点秩优化函数Node Rank Optimization Function
由于本发明提出的社区发现算法,产生不止一种可能的社区发现结果。在这种情况下,需要一个社区发现优化。本发明提出的最优社区选择方法是基于社区发现有效性的思想,即在社区内部而不是外部应该有更多的边。由Radicchi等人最早提出弱标准(WeakRadicchi Criterion,WRC)与强标准(Strong Radicchi Criterion,SRC),但是他的WRC过于薄弱,并且在各个节点表现出无差别性。那么即使u与Vk完全断开连接,也可以将任何额外的节点u添加到Vk并仍然满足WRC。这样可以导致许多发现的社区失效。因此本发明提出一种节点秩优化函数,如下:
φ表示节点j所属节点集合;Aij表示邻接矩阵A中的第i行第j列元素值;V[i]表示节点i属于节点集合V[i];:表示在……情况下,有……。
其中,vi表示节点i,vy表示节点y。
因此,NRO函数表达式如下:
其中,Vk表示节点集合,V表示节点分区集合;vi表示节点i;:表示在……情况下,有……;V[vi]表示节点i属于节点集合V[vi];vj表示节点j;Aij表示邻接矩阵A中的第i行第j列元素值。
若成立,则保留节点集合V[vi];
若不成立,则舍去节点集合V[vi]。
该优化效果中,因为设置了两个协调参数V[i]与V-V[i]使得比WRC更强一点,比SRC更弱一点,以此来达到更好的优化效果。
本发明所提算法主要流程如下:
4实验结果与分析
为了评估本发明所提出的算法,本发明拟使用十一个真实数据网络和人工网络数据集。数据来源http://www-personal.umich.edu/mejn/Netdata/和http://snap.stanford.edu/data/。实验的硬件环境如下:Inter(R)Core(TM)i5-4160M CPU,3.60GHz和4GB的内存,windows 10,MATLAB R2019a。
4.1评估指标
在本发明中,为了评估不具有真实性的网络的性能,用Q作为实验中的性能度量。性能度量Q为:
其中,m表示连接节点边的总数;Aij表示邻接矩阵A中的元素值;Fij表示任意连接i、j两个节点的边的比例;
其
deg(v
i)表示节点i的度;deg(v
j)表示节点j的度;v
i表示节点i;v
j表示节点j。
δij(ci,cj)表示如下:
其中,ci是为其分配顶点i的社区,cj是为其分配顶点j的社区。
Jaccard系数(Jaccard Similarity Coefficient,JSC)用于比较有限样本集之间的相似性和差异性。
给定两个集合VM,V0,Jaccard系数定义为VM与V0交集的大小与并集大小的比值Jaccard值越大说明相似度越高。
其中,VM为最佳社区结构,V0为参考向量,当VM和V0都为空时,J(VM,V0)=1。
Rand指数(Rand Index,RI),RI取值范围为,值越大意味着社区发现结果与真实情况越吻合。RI越大表示聚类效果准确性越高同时每个类内的纯度越高。
Error指数,当V具有与V0相同的社区结构时E(VM′,V0′)等于0,定义如下:
其中,VM′为V的结构特征,V0′为V0的结构特征。
4.2人工网络性能比较
本发明采用人工数据网络(GN基准网络)上运行算法。每个节点的内部边集合Einternal与同一社区中的其他节点连接,外部边集合Eexternal与其他社区连接。随着外部边集合Eexternal的增加,社区结构变得不太清晰,社区发现任务也变得更具挑战性。
表1人工网络参数
图3表示8种算法在人工数据网络的性能比较,本发明在人工网络和真实网络的各种数据集上实验性地分析了提出的LDL算法,并通过实验与传统算法进行比较,分别为LinkLPA,MFM,LFK,NMF,LRLFP,SpeClust1和SpeClust2。
如图3(a)所示:描述了8中算法在Jaccard系数评估标准的性能表现,不难理解当外部边数概览越来越大时,Jaccard系数值是越来越低的,当外部边概率小于0.4时,本发明所提算法LDL是比较有明显优势的,但在0.4以后Jaccard系数值略比其他算法低,不过也始终要比LinkLPA算法的高。
图3(b)描述了算法在Rand指数评估标准的性能表现,各算法整体趋势与图3(a)相似,随着外部边数概率增加,Rand指数逐渐降低。值得注意的是,本发明所提算法LDL与LinkLPA算法较其他算法有明显优势,且当外部边数概率小于0.4时,LDL算法要优于LinkLPA算法。
图3(c)在Modularity评估标准的性能表现中看出算法性能差异不大,但是LDL算法始终保持优势。
图3(d)中各算法在Error值的表现有明显差异,可以看出当外部边数概率小于0.8时,LDL算法的Error值达到最低,当概率大于0.8时,LDL算法也仅仅比MFM算法性能差3个百分点。综上所述,本发明所提LDL算法的确要比其他7种算法效果更好且更稳定。
4.3真实网络性能比较
为了进一步评估本发明所提的LDL算法,本发明选择了十一个具有不同大小的代表性社交网络。表2中,Networks表示真实数据网络,Node表示节点数,Edge表示边数,A-co表示节点的平均聚类系数,A-Lenth表示平均路径长度,Description描述网络的现实意义。如表2所示:
表2真实网络
为了更好表示整个社交网络社区发现的过程,图4(a)~图4(i)表示以power grid网络为例整个社区发现过程的简要概览。总共为9个子图,即最终形成9个社区。
如图4(a)所示:为第一个被划分出的社区结构(绿色割集);其次会划分出第二个社区结构(***割集),如图4(b)所示;接着划分出第三个社区结构,如图4(c)所示;以此类推,直到划分第九个社区,已经达到收敛标准,即所有的节点都被包含在某个社区内,如图4(i)所示。
经过划分的社交网络已经具有清晰的社区结构,图5(a)~图5(d)分别为本发明所提出的LDL算法在社交网络Dolphin、Lemis、Celegansnertal、Netscience这4个网络的社区发现的可视化结果。可以发现,LDL算法在大规模数据网络中,识别质量很高(如表2所示),节点的度数与平均聚类系数越高,显示效果越强烈,越容易成为社区中心从而形成社区结构。
表4表示在真实数据集中,提出的LDL算法与传统算法在Jaccard指数上的结果比较。表中被加粗的值表示性能表现最优的算法,灰色阴影值表示性能表现次优的算法。
表4提出的LDL算法与传统算法在Jaccard指数上的结果(真实数据集)
|
LinkLPA |
MFM |
LDL |
NMF |
LRLFP |
LFK |
speClust1 |
speClust2 |
Karate |
0.5 |
0.7375 |
0.6507 |
0.5882 |
0.325 |
0.6052 |
0.5593 |
0.2852 |
Dolphins |
0.1035 |
0.1918 |
0.2131 |
0.1877 |
0.0541 |
0.2118 |
0.2161 |
0.2136 |
Lemis |
0.4112 |
0.4793 |
0.6524 |
0.2844 |
0.2410 |
0.6276 |
0.4159 |
0.1972 |
Public book |
0.3403 |
0.6671 |
0.6440 |
0.6512 |
0.0551 |
0.3951 |
0.6749 |
0.6951 |
Football |
0.7147 |
0.6357 |
0.4052 |
0.8413 |
0.6920 |
0.0798 |
0.0798 |
0.07798 |
Celegansnertal |
0.3445 |
0.2151 |
0.4804 |
0.343 |
0.0681 |
0.3551 |
0.2150 |
0.2151 |
Email |
0.2599 |
0.0460 |
0.2085 |
0.1912 |
0.1251 |
0.0462 |
0.0467 |
0.0467 |
Public blogs |
0.3112 |
0.5167 |
0.5690 |
0.5426 |
0.0162 |
0.4027 |
0.4120 |
0.4998 |
Netscience |
0.2186 |
0.1332 |
0.2213 |
0.1780 |
0.0841 |
0.1464 |
0.0239 |
0.0100 |
Power |
0.1603 |
0.0168 |
0.2240 |
0.2092 |
0.0048 |
0.0023 |
0.1371 |
0.0285 |
Hep_th |
0.1524 |
0.1912 |
0.2203 |
0.1036 |
0.2015 |
0.1242 |
0.2003 |
0.0972 |
如表4所示,本发明所提的LDL算法在Lemis、Celegansnertal、Public blogs、Netscience、Power以及Hep_th数据网络中表现最优,均优于其余7种算法;LDL算法在Karate、Dolphins以及Email数据网络中表现次优,分别仅次于MFM,speClust1,LinkLPA算法,但都比其余6种算法性能表现更加优秀;LDL算法在Public book、Football数据网络中的表现一般,比其它某些算法表现稍好。
表5提出的LDL算法与传统算法在Rand指数上的结果(真实数据集)
|
LinkLPA |
MFM |
LDL |
NMF |
LRLFP |
LFK |
speClust1 |
speClust2 |
Karate |
0.8503 |
0.9251 |
0.8574 |
0.9037 |
0.80214 |
0.8396 |
0.85 |
0.2852 |
Dolphins |
0.7536 |
0.2523 |
0.7612 |
0.7536 |
0.7721 |
0.2523 |
0.2517 |
0.2136 |
Lemis |
0.8835 |
0.8558 |
0.8914 |
0.73 |
0.8445 |
0.8168 |
0.4686 |
0.1972 |
Public book |
0.7304 |
0.8419 |
0.7132 |
0.8377 |
0.639 |
0.3951 |
0.8432 |
0.395 |
Football |
0.978 |
0.9682 |
0.8874 |
0.76 |
0.95 |
0.0781 |
0.08 |
0.0798 |
Celegansnertal |
0.8281 |
0.2151 |
0.8468 |
0.7717 |
0.795 |
0.2151 |
0.2151 |
0.2151 |
Email |
0.9107 |
0.0866 |
0.9233 |
0.9131 |
0.95 |
0.08 |
0.045 |
0.045 |
Public blogs |
0.6779 |
0.7542 |
0.7799 |
0.7545 |
0.5085 |
0.5007 |
0.4998 |
0.4998 |
Netscience |
0.9872 |
0.9879 |
0.9935 |
0.9881 |
0.99 |
0.9903 |
0.7792 |
0.01 |
Power |
0.964 |
0.9599 |
0.976 |
0.9656 |
0.9668 |
0.8995 |
0.9394 |
0.9201 |
Hep_th |
0.8674 |
0.9015 |
0.9395 |
0.9041 |
0.9192 |
0.803 |
0.9077 |
0.9234 |
如表5所示,本发明所提的LDL算法在Lemis、Celegansnertal、Public blogs、Netscience、Power以及Hep_th数据网络中表现最优,均优于其余7种算法;LDL算法在Dolphins和Email数据网络中表现次优,均仅次于LRLFP算法,但都比其余6种算法性能表现更加优秀;LDL算法在Karate、Public book以及Football数据网络中的表现一般,会比其余某些算法表现稍好。例如在Karate数据网络中,性能表现要比LFK、speClust1、LinkLPA、LRLFP、speClust2这5种算法都优秀。
表6提出的LDL算法与传统算法在Modularity指数上的结果(真实数据集)
|
LinkLPA |
MFM |
LDL |
NMF |
LRLFP |
LFK |
speClust1 |
speClust2 |
Karate |
0.4427 |
0.4477 |
0.4347 |
0.4459 |
0.3663 |
0.4343 |
0.4116 |
0.1545 |
Dolphins |
0.46 |
0.0108 |
0.4709 |
0.4486 |
0.4022 |
0.01080 |
0.0054 |
0.1299 |
Lemis |
0.5882 |
0.5768 |
0.5772 |
0.4849 |
0.5298 |
0.5632 |
0.1088 |
0.2034 |
Public book |
0.5531 |
0.5091 |
0.5196 |
0.5182 |
0.4117 |
0.4065 |
0.4595 |
0.4209 |
Football |
0.6189 |
0.5423 |
0.6092 |
0.6236 |
0.6171 |
0.1075 |
0.5933 |
0.5753 |
Celegansnertal |
0.433 |
0.4378 |
0.4521 |
0.3761 |
0.1722 |
0.2035 |
0.0092 |
0.3874 |
Email |
0.6178 |
0.0381 |
0.5008 |
0.6547 |
0.6547 |
0.3292 |
0.1002 |
0.3048 |
Public blogs |
0.3007 |
0.3431 |
0.3967 |
0.367 |
0.1864 |
0.1155 |
0.0087 |
0.2133 |
Netscience |
0.8085 |
0.8118 |
0.872 |
0.8238 |
0.8238 |
0.8011 |
0.2062 |
0.73 |
Power |
0.5826 |
0.531 |
0.6438 |
0.6241 |
0.5471 |
0.5289 |
0.6207 |
0.5227 |
Hep_th |
0.6021 |
0.6754 |
0.7181 |
0.501 |
0.6503 |
0.685 |
0.6821 |
0.5431 |
如表6所示,本发明所提的LDL算法在Dolphins、Celegansnertal、Public blogs、Netscience、Power以及Hep_th数据网络中表现最优,均优于其余7种算法;LDL算法在Lemis和Public book数据网络中表现次优,均仅次于LinkLPA算法,但都比其他6种算法性能表现更加优秀;LDL算法在Karate、Football以及Email数据网络中的表现一般,会比其余某些算法表现稍好。以Football数据网络为例,所提算法性能表现要比MFM、LFK、speClust1、speClust2这4种算法更加优异。
表7提出的LDL算法与传统算法在Error指数上的结果(真实数据集)
|
LinkLPA |
MFM |
LDL |
NMF |
LRLFP |
LFK |
speClust1 |
speClust2 |
Karate |
0.75 |
0.5 |
0.25 |
0.5 |
2.5 |
0.25 |
0.25 |
0.75 |
Dolphins |
0.8 |
0.4 |
0.4 |
0.5 |
3.2 |
0.4 |
0.6 |
0.8 |
Lemis |
0.8333 |
0.6667 |
0.1 |
0.5 |
0.4 |
0.8333 |
0.6667 |
0.8333 |
Public book |
1.3333 |
0.667 |
0.3333 |
0.5543 |
0.62 |
0.3333 |
0.6667 |
0.6667 |
Football |
0.833 |
0.3333 |
0.5 |
0.75 |
0.25 |
0.9167 |
0.9167 |
0.9167 |
Celegansnertal |
0.5 |
0.8333 |
0.3333 |
0.6667 |
0.7 |
0.8333 |
0.8333 |
0.8333 |
Email |
0.3333 |
0.5 |
0.4286 |
0.7 |
0.75 |
0.5234 |
0.9762 |
0.9762 |
Public blogs |
0.17 |
0.138 |
0.1345 |
0.1375 |
0.1375 |
0.417 |
0.5 |
0.5 |
Netscience |
0.0024 |
0.1935 |
0.0123 |
0.032 |
0.4975 |
0.0024 |
0.9877 |
0.9975 |
Power |
0.8611 |
0.7574 |
0.5832 |
0.6239 |
0.8621 |
0.8265 |
0.980 |
0.7281 |
Hep_th |
0.4278 |
0.5439 |
0.3738 |
0.7421 |
0.6384 |
0.4839 |
0.7846 |
0.8971 |
如表7所示,本发明所提的LDL算法在Error指数表现出的优势更加明显,在Karate、Dolphins、Lemis、Pobliic book、Celegansnertal、Email、Public blogs、Netscience、Power以及Hep_th这十个数据网络中均表现最优,在Football这一个数据网络中表现要比LRLFP算法稍微差一点,实验数据表明LDL算法具有较强的稳定性。
综上,虽然本发明提出的LDL算法并没有在每一个数据网络中都表现最优,但占优比(最优+次优)远高于其他算法。本发明所提LDL算法在平均聚类系数更高,数据网络更复杂的社交网络中有更优的性能表现,更契合现代社交网络大规模化,复杂化的特点。
如图6(a)~图6(e)所示:分别表现了LDL算法在Karate、Lemis、Celegansnertal、Public blogs、Power grid这5种真实数据网络的社区结构对比表现。横坐标表示第几个节点,纵坐标表示社区成员关系即节点所属社区,蓝色为参考社区结构,红色为LDL算法的社区结构。算法执行后的社区结构与参考社区结构越相似则得分越高。
表8中,统计了表4~表7中所提的LDL算法与传统算法在各个指标上的表现情况,并利用本发明构造的损失函数Y=LOG10((X1+X2+X3)/(X4+1))。X1表示在Jaccard指数下的变异系数;X2表示在Rand指数下的变异系数;X3表示在Modularity指数下的变异系数;X4表示在Error指数下的变异系数;Y表示构造的损失函数。
表8提出的LDL算法与传统算法在每个指标上的结果(真实数据集)
如表8所示:通过统计均值、标准差、变异系数以及构造的损失函数,对所提的LDL算法在每个指标上的表现情况做出结果分析。首先提出的LDL算法在Jaccard,Rand这两个指标上的得分最高(加粗数据值),在Jaccard指标中,LDL算法在每个数据网络中的均值是最高的,但是标准差却高于了LinkLPA,这说明LDL算法在个数据网络的表现差异性大于了LinkLPA算法,不过在综合考量指标变异系数(均值/标准差,越高越好)的得分最终还是最高的;在Rand指标中,LDL算法在均值与标准差的表现都要优于其他算法,当然在变异系数的分数也明显高出其他最好的NMF算法接近77%;其次LDL算法在Modularity指标上的得分仅次于LinkLPA算法,这是由于LDL算法在各数据网络中的表现差异性比LinkLPA算法大;LDL算法在Error指标上的表现与其他算法相比是最好的,Error率仅有0.0548,远远优于其他算法,该项实验数据表明本发明所提的算法具有较强的鲁棒性;最后在损失函数的性能得分也是最高的,相比传统最好的方法还要高出接近7个百分点。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。