一种基于深度学习的加权网络社区发现方法及装置与流程

文档序号:21360362发布日期:2020-07-04 04:33阅读:302来源:国知局
一种基于深度学习的加权网络社区发现方法及装置与流程

本发明涉及社区发现技术领域,尤其涉及一种基于深度学习的加权网络社区发现方法及装置。



背景技术:

复杂网络是由大量节点以及节点之间错综复杂的关系共同构成的网络结构,除了小世界和无标度等特性外,复杂网络还呈现出明显的社区结构。给定一个网络,社区发现根据网络中节点间的相互关系,将所有节点聚合成一系列子结构,即社区。与不同社区间节点之间的连接关系相比,同一社区内的节点之问通常具有较强的连接关系。目前,主流的社区发现方法大都是针对无权网络,可分为基于图分割的方法(kernighan-liu算法),基于层次聚类的算法(gn,fn),基于标签传播的方法(lpa),基于相似度聚类的算法(k-means)。由于无权网络尚不足以反映现实世界中大量对象之间的联系,且现有的社区发现方法仅考虑节点与邻居节点之间的联系,忽略节点与邻居节点的邻居节点之间的联系,难以提高社区发现的准确度。



技术实现要素:

本发明提供一种基于深度学习的加权网络社区发现方法及装置,以克服现有技术的缺陷,本发明能够综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,提高社区发现的准确度。

为了解决上述技术问题,本发明一实施例提供一种基于深度学习的加权网络社区发现方法,包括:

对给定的加权网络图进行预处理,得到二阶邻相似度矩阵;

通过深度稀疏自编码器提取所述二阶邻相似度矩阵的低维特征,得到低维特征矩阵;

根据聚类算法对所述低维特征矩阵进行聚类,得到社区发现结果。

进一步地,所述对给定的加权网络图进行预处理,得到二阶邻相似度矩阵,具体为:

分析所述加权网络图中节点间的联系,获取加权邻接矩阵和无权邻接矩阵;

根据所述加权邻接矩阵和所述无权邻接矩阵,得到所述二阶邻相似度矩阵。

进一步地,在所述对给定的加权网络图进行预处理,得到二阶邻相似度矩阵之后,在所述通过深度稀疏自编码器提取所述二阶邻相似度矩阵的低维特征,得到低维特征矩阵之前,还包括:

训练所述深度稀疏自编码器。

进一步地,所述训练所述深层稀疏自编码器,具体为:

分析所述加权网络图中节点间的联系,获取加权邻接矩阵和无权邻接矩阵;

根据所述加权邻接矩阵和所述无权邻接矩阵,得到模块度矩阵和无权二阶邻邻接矩阵;

使用所述二阶邻相似度矩阵、所述模块度矩阵和所述无权二阶邻邻接矩阵训练所述深度稀疏自编码器。

进一步地,所述聚类算法包括k-means聚类算法。

本发明另一实施例提供一种基于深度学习的加权网络社区发现装置,包括:

预处理模块,用于对给定的加权网络图进行预处理,得到二阶邻相似度矩阵;

特征提取模块,用于通过深度稀疏自编码器提取所述二阶邻相似度矩阵的低维特征,得到低维特征矩阵;

聚类模块,用于根据聚类算法对所述低维特征矩阵进行聚类,得到社区发现结果。

进一步地,所述对给定的加权网络图进行预处理,得到二阶邻相似度矩阵,具体为:

分析所述加权网络图中节点间的联系,获取加权邻接矩阵和无权邻接矩阵;

根据所述加权邻接矩阵和所述无权邻接矩阵,得到所述二阶邻相似度矩阵。

进一步地,所述基于深度学习的加权网络社区发现装置,还包括:

训练模块,用于在所述对给定的加权网络图进行预处理,得到二阶邻相似度矩阵之后,在所述通过深度稀疏自编码器提取所述二阶邻相似度矩阵的低维特征,得到低维特征矩阵之前,训练所述深度稀疏自编码器。

进一步地,所述训练所述深层稀疏自编码器,具体为:

分析所述加权网络图中节点间的联系,获取加权邻接矩阵和无权邻接矩阵;

根据所述加权邻接矩阵和所述无权邻接矩阵,得到模块度矩阵和无权二阶邻邻接矩阵;

使用所述二阶邻相似度矩阵、所述模块度矩阵和所述无权二阶邻邻接矩阵训练所述深度稀疏自编码器。

进一步地,所述聚类算法包括k-means聚类算法。

本发明的实施例,具有如下有益效果:

通过对给定的加权网络图进行预处理,得到二阶邻相似度矩阵,进而通过深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,得到低维特征矩阵,从而根据聚类算法对低维特征矩阵进行聚类,得到社区发现结果。相比于现有技术,本发明针对加权网络图,综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,并利用深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,使得对低维特征矩阵进行聚类而得到的社区发现结果更加准确。本发明能够综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,提高社区发现的准确度。

附图说明

图1为本发明第一实施例中的一种基于深度学习的加权网络社区发现方法的流程示意图;

图2为本发明第二实施例中的一种基于深度学习的加权网络社区发现装置的结构示意图。

具体实施方式

下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,文中的步骤编号,仅为了方便具体实施例的解释,不作为限定步骤执行先后顺序的作用。本实施例提供的方法可以由相关的服务器执行,且下文均以服务器作为执行主体为例进行说明。

请参阅图1。

如图1所示,第一实施例提供一种基于深度学习的加权网络社区发现方法,包括步骤s1~s3:

s1、对给定的加权网络图进行预处理,得到二阶邻相似度矩阵。

s2、通过深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,得到低维特征矩阵。

s3、根据聚类算法对低维特征矩阵进行聚类,得到社区发现结果。

在步骤s1当中,给定一个加权网络图g=(v,e),其中,v={v1,v2,…,vn}表示网络中节点的集合,e={e1,e2,…,em}表示网络中边的集合。

定义节点v的邻居节点的集合为n(v),n(v)内所有节点的邻居节点(不包括节点v)称为节点v的二阶邻居节点。二阶邻居节点i与节点v的所有路径长度为2的路径权重之和为

定义节点u和节点v的相似度为sim(u,v)=αwuv+β∑j∈(n(u)∩n(v)(wuj+wju),其中,wuv表示节点u和节点v直接相连的边的权重,∑j∈(n(u)∩n(v)(wuj+wju)表示节点u与节点v经过公共邻居的路径的权重之和,α和β表示预设的两个参数,用于控制邻居节点和二阶邻居节点相似度的影响,α和β的取值范围均为(0,1),且α+β=1。与加权网络图g=(v,e)对应的相似度矩阵为x=[xij]n×n,其中,xij=sim(vi,vj),vi,vj∈v。

分析加权网络图g=(v,e)中节点间的联系,获取网络的加权邻接矩阵w=[wij]n×n和无权邻接矩阵a=[aij]n×n。对于加权邻接矩阵w=[wij]n×n,wij表示节点i和节点j的连接边的权重,若wij=0,则说明节点i和节点j无边相连。对于无权邻接矩阵a=[aij]n×n,若aij=1,则说明节点i和节点j有边相连,若aij=0,则说明节点i和节点j无边相连。

当获取到网络的加权邻接矩阵w=[wij]n×n和无权邻接矩阵a=[aij]n×n,将无权邻接矩阵a=[aij]n×n与a=[aij]n×n相乘,得到b=[bij]n×n,其中,bij表示节点i到节点j路径长度为2的路径条数,即节点i和节点j公共邻居的个数。根据加权邻接矩阵w=[wij]n×n和b=[bij]n×n,得到节点的二阶邻居权重矩阵wn=[wnij]n×n,则二阶邻相似度矩阵为x=αw+βwn。

当得到二阶邻相似度矩阵,需要应用对矩阵元素进行最小-最大规范化,即对矩阵元素进行线性变换,将矩阵元素的值映射到[0,1]之间。

在步骤s2当中,通过堆叠多个稀疏自编码器组成深度稀疏自编码器。稀疏自编码器作为一种利用反向传播算法使得输出值等于输入值的无监督深度学习方法,先将输入压缩成潜在空间表征,再通过潜在空间表征来重构输出。

稀疏自编码器包括编码器和解码器,编码器能将输入压缩成潜在空间表征,解码器能重构来自潜在空间表征的输入。通过将二阶邻相似度矩阵x={x1,x2,…,xn}中的一个向量xi∈rn*1作为输入向量输入稀疏自动编码器,经编码器得到一个低维向量hi,低维向量hi经解码器得到一个和xi维度相同的输出向量xi’,若输出向量xi’和输入向量xi极其相近,则认为低维向量hi能够很好表征输入向量xi的特征信息。

为使重构误差达到最小值,需要通过反向传播算法来训练稀疏自编码器,调整编码器和解码器的参数。当重构误差达到最小值,可认为输出向量xi’与输入向量xi是相等的。稀疏自动编码器的训练过程具体如下:

(1)将二阶邻相似度矩阵x作为自动编码器的输入向量,x的每一个列向量xi∈rn*1是节点i与网络所有节点的相似度向量,将xi输入到一个具有k个神经元的编码器中,通过hi=s(wxi+b)得到编码层的编码结果hi∈rk*1,其中,s(x)是编码层的一个激活函数,一般选用sigmoid函数、relu函数等,本实施例选用sigmoid函数,w∈rk*n是编码层的权重矩阵,b∈rk*1是编码层的偏置向量。

(2)当得到编码结果hi∈rk*1,hi是节点i对应的低维向量,将hi输入到解码层,通过hi’=s(w’hi+b’)得到解码层的输出向量xi’∈rn*1,其中,s(x)是编码层的一个激活函数,一般选用sigmoid函数、relu函数等,本实施例选用sigmoid函数,w’∈rn*k是解码层的权重矩阵,b’∈rk*1是解码层的偏置向量。

(3)经过训练,自编码器将通过反向传播算法自动调整编码层权重矩阵w∈rk*n,编码层偏置向量b∈rk*1,解码层权重矩阵w’∈rn*k,解码层偏置向量b’∈rk*1这四个参数,从而使输出向量xi’和输入向量xi的重构误差最小,相当于使取值最小。

(4)为使输出更好地还原输入,可对隐层单元添加一些稀疏性约束。在选用sigmoid函数作为神经元的激活函数的情况下,若神经元的输出为1,则表示该神经元被激活,否则表示该神经元未被激活。稀疏性是指在大多数情况下神经元都是未被激活的,可以使用神经元的输出作为神经元的激活度,使用kl散度为自编码器添加稀疏性限制对于n个样本,隐藏层的平均激活度为其中,kl(ρ‖ρj)表示以ρ和ρ为均值的两个变量的相对熵,kl散度的计算公式为:因此自动编码器的重构误差为:

稀疏自编码器大大减少了需要训练的参数量,降低了训练难度,同时克服了自编码器容易陷入局部及小值和存在过拟合的问题。

深度稀疏自编码器是由多个稀疏自编码器堆叠组成,深度稀疏自编码器比自动编码器多了很多隐藏层。深度学习的优势在于能够逐层学习原始数据的多种表达方式,每一层都以前一层学习来的特征作为基础,继续学习具有更好表达能力的特征。

在单个自编码器训练xi→hi→xi’的三层网络的过程中,获取低维特征向量hi,在此采用逐层训练的方式,将上一个稀疏自编码器的低维特征向量hi作为下一个自动编码器的输入向量,直到训练深度稀疏自编码器预定的层数。深度稀疏自编码器的逐层训练过程具体如下:

(1)设定深度稀疏自动编码器的结构:共p层,每层都是一个自解码器,每层节点数{k(1),k(2),...,k(p)},其中第一层的输入k(1)=n。

(2)将二阶邻相似度矩阵x=x(1)输入到有k(2)个节点的自编码器,提取训练得到的编码结果x(2),然后将矩阵x(2)输入到有k(3)节点的自动编码器,提取训练得到的编码结果x(3),直到从最后一个自动编码器中提取出训练得到的编码层结果x(p)。

在步骤s3当中,根据聚类算法对低维特征矩阵进行聚类,将相似度较高的节点归为同一社区,得到社区发现结果。

通过对给定的加权网络图进行预处理,得到二阶邻相似度矩阵,进而通过深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,得到低维特征矩阵,从而根据聚类算法对低维特征矩阵进行聚类,得到社区发现结果。本实施例针对加权网络图,综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,并利用深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,使得对低维特征矩阵进行聚类而得到的社区发现结果更加准确。本实施例能够综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,提高社区发现的准确度。

在优选的实施例当中,步骤s1,具体为:分析加权网络图中节点间的联系,获取加权邻接矩阵和无权邻接矩阵;根据加权邻接矩阵和无权邻接矩阵,得到二阶邻相似度矩阵。

在本实施例中,分析加权网络图g=(v,e)中节点间的联系,获取网络的加权邻接矩阵w=[wij]n×n和无权邻接矩阵a=[aij]n×n。对于加权邻接矩阵w=[wij]n×n,wij表示节点i和节点j的连接边的权重,若wij=0,则说明节点i和节点j无边相连。对于无权邻接矩阵a=[aij]n×n,若aij=1,则说明节点i和节点j有边相连,若aij=0,则说明节点i和节点j无边相连。

当获取到网络的加权邻接矩阵w=[wij]n×n和无权邻接矩阵a=[aij]n×n,将无权邻接矩阵a=[aij]n×n与a=[aij]n×n相乘,得到b=[bij]n×n,其中,bij表示节点i到节点j路径长度为2的路径条数,即节点i和节点j公共邻居的个数。根据加权邻接矩阵w=[wij]n×n和b=[bij]n×n,得到节点的二阶邻居权重矩阵wn=[wnij]n×n,则二阶邻相似度矩阵为x=αw+βwn。

当得到二阶邻相似度矩阵,需要应用对矩阵元素进行最小-最大规范化,即对矩阵元素进行线性变换,将矩阵元素的值映射到[0,1]之间。

在优选的实施例当中,在步骤s1之后,在步骤s2之前,还包括:训练深度稀疏自编码器。

其中,训练深层稀疏自编码器,具体为:分析加权网络图中节点间的联系,获取加权邻接矩阵和无权邻接矩阵;根据加权邻接矩阵和无权邻接矩阵,得到模块度矩阵和无权二阶邻邻接矩阵;使用二阶邻相似度矩阵、模块度矩阵和无权二阶邻邻接矩阵训练深度稀疏自编码器。

由于只将二阶邻相似度矩阵x作为训练集,并随机抽取二阶邻相似度矩阵x的部分列向量作为测试集,并不能可靠且充分地反映节点之间的相似关系,需要改进训练集和测试集。改进过程具体如下:

(1)加权网络中节点的关系是复杂的,能反映节点之间的相似性关系的矩阵也有不少。受模块度函数(其中,m表示网络中边的总数目,ki表示节点i的度数,kj表示节点j的度数,aij表示节点i与节点j是否有边相连,若有,则aij=1,否则aij=0,δ(ci,cj)表示节点i与节点j是否在同一社区,若在,则δ(ci,cj)=1,否则δ(ci,cj)=0)的启发,用模块度矩阵q=[qij]∈rnxn(其中,表示节点i和节点j的期望权重,wj表示与节点i相连接的边的权重之和,w表示加权网络中的总权重,wij表示节点i与节点j的连接边的权重)来表示节点之间的相似性关系。

(2)除了模块度矩阵之外,将加权网络的无权二阶邻邻接矩阵z也作为训练集的一部分。在预处理中得到网络的无权邻接矩阵a=[aij]n×n,和a=[aij]n×n的平方b=[bij]n×n,bij表示的是节点i到节点j路径长度为2的路径条数。考虑到无权邻接矩阵,故路径权重都为1,因此2*bij表示的是节点i到节点j的路径长度。加权网络的无权二阶邻邻接矩阵z为zij=0.5×aij+0.5×2*bij,其中,无权二阶邻邻接矩阵z对角线元素表示节点i与其自身的相似性,全部置0。

(3)通过预处理和上述操作,得到加权网络的二阶邻相似度矩阵、模块度矩阵和无权二阶邻邻接矩阵。将上述操作获取的模块度矩阵和无权二阶邻邻接矩阵分别应用对矩阵元素进行最小-最大规范化,即对矩阵元素进行线性变换,将矩阵元素的值映射到[0,1]之间。使用二阶邻相似度矩阵、模块度矩阵和无权二阶邻邻接矩阵训练深度稀疏自编码器。

在优选的实施例当中,聚类算法包括k-means聚类算法。

本实施例根据k-means聚类算法对低维特征矩阵进行聚类,有利于提高社区发现结果的准确度。

请参阅图2。

如图2所示,第二实施例提供一种基于深度学习的加权网络社区发现装置,包括:预处理模块21,用于对给定的加权网络图进行预处理,得到二阶邻相似度矩阵;特征提取模块22,用于通过深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,得到低维特征矩阵;聚类模块23,用于根据聚类算法对低维特征矩阵进行聚类,得到社区发现结果。

通过预处理模块21,给定一个加权网络图g=(v,e),其中,v={v1,v2,…,vn}表示网络中节点的集合,e={e1,e2,…,em}表示网络中边的集合。

定义节点v的邻居节点的集合为n(v),n(v)内所有节点的邻居节点(不包括节点v)称为节点v的二阶邻居节点。二阶邻居节点i与节点v的所有路径长度为2的路径权重之和为

定义节点u和节点v的相似度为sim(u,v)=αwuv+β∑j∈(n(u)∩n(v)(wuj+wju),其中,wuv表示节点u和节点v直接相连的边的权重,∑j∈(n(u)∩n(v)(wuj+wju)表示节点u与节点v经过公共邻居的路径的权重之和,α和β表示预设的两个参数,用于控制邻居节点和二阶邻居节点相似度的影响,α和β的取值范围均为(0,1),且α+β=1。与加权网络图g=(v,e)对应的相似度矩阵为x=[xij]n×n,其中,xij=sim(vi,vj),vi,vj∈v。

分析加权网络图g=(v,e)中节点间的联系,获取网络的加权邻接矩阵w=[wij]n×n和无权邻接矩阵a=[aij]n×n。对于加权邻接矩阵w=[wij]n×n,wij表示节点i和节点j的连接边的权重,若wij=0,则说明节点i和节点j无边相连。对于无权邻接矩阵a=[aij]n×n,若aij=1,则说明节点i和节点j有边相连,若aij=0,则说明节点i和节点j无边相连。

当获取到网络的加权邻接矩阵w=[wij]n×n和无权邻接矩阵a=[aij]n×n,将无权邻接矩阵a=[aij]n×n与a=[aij]n×n相乘,得到b=[bij]n×n,其中,bij表示节点i到节点j路径长度为2的路径条数,即节点i和节点j公共邻居的个数。根据加权邻接矩阵w=[wij]n×n和b=[bij]n×n,得到节点的二阶邻居权重矩阵wn=[wnij]n×n,则二阶邻相似度矩阵为x=αw+βwn。

当得到二阶邻相似度矩阵,需要应用对矩阵元素进行最小-最大规范化,即对矩阵元素进行线性变换,将矩阵元素的值映射到[0,1]之间。

通过特征提取模块22,堆叠多个稀疏自编码器组成深度稀疏自编码器。稀疏自编码器作为一种利用反向传播算法使得输出值等于输入值的无监督深度学习方法,先将输入压缩成潜在空间表征,再通过潜在空间表征来重构输出。

稀疏自编码器包括编码器和解码器,编码器能将输入压缩成潜在空间表征,解码器能重构来自潜在空间表征的输入。通过将二阶邻相似度矩阵x={x1,x2,…,xn}中的一个向量xi∈rn*1作为输入向量输入稀疏自动编码器,经编码器得到一个低维向量hi,低维向量hi经解码器得到一个和xi维度相同的输出向量xi’,若输出向量xi’和输入向量xi极其相近,则认为低维向量hi能够很好表征输入向量xi的特征信息。

为使重构误差达到最小值,需要通过反向传播算法来训练稀疏自编码器,调整编码器和解码器的参数。当重构误差达到最小值,可认为输出向量xi’与输入向量xi是相等的。稀疏自动编码器的训练过程具体如下:

(1)将二阶邻相似度矩阵x作为自动编码器的输入向量,x的每一个列向量xi∈rn*1是节点i与网络所有节点的相似度向量,将xi输入到一个具有k个神经元的编码器中,通过hi=s(wxi+b)得到编码层的编码结果hi∈rk*1,其中,s(x)是编码层的一个激活函数,一般选用sigmoid函数、relu函数等,本实施例选用sigmoid函数,w∈rk*n是编码层的权重矩阵,b∈rk*1是编码层的偏置向量。

(2)当得到编码结果hi∈rk*1,hi是节点i对应的低维向量,将hi输入到解码层,通过hi’=s(w’hi+b’)得到解码层的输出向量xi’∈rn*1,其中,s(x)是编码层的一个激活函数,一般选用sigmoid函数、relu函数等,本实施例选用sigmoid函数,w’∈rn*k是解码层的权重矩阵,b’∈rk*1是解码层的偏置向量。

(3)经过训练,自编码器将通过反向传播算法自动调整编码层权重矩阵w∈rk*n,编码层偏置向量b∈rk*1,解码层权重矩阵w’∈rn*k,解码层偏置向量b’∈rk*1这四个参数,从而使输出向量xi’和输入向量xi的重构误差最小,相当于使取值最小。

(4)为使输出更好地还原输入,可对隐层单元添加一些稀疏性约束。在选用sigmoid函数作为神经元的激活函数的情况下,若神经元的输出为1,则表示该神经元被激活,否则表示该神经元未被激活。稀疏性是指在大多数情况下神经元都是未被激活的,可以使用神经元的输出作为神经元的激活度,使用kl散度为自编码器添加稀疏性限制对于n个样本,隐藏层的平均激活度为其中,kl(ρ‖ρj)表示以ρ和ρ为均值的两个变量的相对熵,kl散度的计算公式为:因此自动编码器的重构误差为:

稀疏自编码器大大减少了需要训练的参数量,降低了训练难度,同时克服了自编码器容易陷入局部及小值和存在过拟合的问题。

深度稀疏自编码器是由多个稀疏自编码器堆叠组成,深度稀疏自编码器比自动编码器多了很多隐藏层。深度学习的优势在于能够逐层学习原始数据的多种表达方式,每一层都以前一层学习来的特征作为基础,继续学习具有更好表达能力的特征。

在单个自编码器训练xi→hi→xi’的三层网络的过程中,获取低维特征向量hi,在此采用逐层训练的方式,将上一个稀疏自编码器的低维特征向量hi作为下一个自动编码器的输入向量,直到训练深度稀疏自编码器预定的层数。深度稀疏自编码器的逐层训练过程具体如下:

(1)设定深度稀疏自动编码器的结构:共p层,每层都是一个自解码器,每层节点数{k(1),k(2),...,k(p)},其中第一层的输入k(1)=n。

(2)将二阶邻相似度矩阵x=x(1)输入到有k(2)个节点的自编码器,提取训练得到的编码结果x(2),然后将矩阵x(2)输入到有k(3)节点的自动编码器,提取训练得到的编码结果x(3),直到从最后一个自动编码器中提取出训练得到的编码层结果x(p)。

通过聚类模块23,根据聚类算法对低维特征矩阵进行聚类,将相似度较高的节点归为同一社区,得到社区发现结果。

通过预处理模块21,对给定的加权网络图进行预处理,得到二阶邻相似度矩阵,进而通过特征提取模块22,由深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,得到低维特征矩阵,从而通过聚类模块23,根据聚类算法对低维特征矩阵进行聚类,得到社区发现结果。本实施例针对加权网络图,综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,并利用深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,使得对低维特征矩阵进行聚类而得到的社区发现结果更加准确。本实施例能够综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,提高社区发现的准确度。

在本实施例当中,所述对给定的加权网络图进行预处理,得到二阶邻相似度矩阵,具体为:分析加权网络图中节点间的联系,获取加权邻接矩阵和无权邻接矩阵;根据加权邻接矩阵和无权邻接矩阵,得到二阶邻相似度矩阵。

通过预处理模块21,分析加权网络图g=(v,e)中节点间的联系,获取网络的加权邻接矩阵w=[wij]n×n和无权邻接矩阵a=[aij]n×n。对于加权邻接矩阵w=[wij]n×n,wij表示节点i和节点j的连接边的权重,若wij=0,则说明节点i和节点j无边相连。对于无权邻接矩阵a=[aij]n×n,若aij=1,则说明节点i和节点j有边相连,若aij=0,则说明节点i和节点j无边相连。

当获取到网络的加权邻接矩阵w=[wij]n×n和无权邻接矩阵a=[aij]n×n,将无权邻接矩阵a=[aij]n×n与a=[aij]n×n相乘,得到b=[bij]n×n,其中,bij表示节点i到节点j路径长度为2的路径条数,即节点i和节点j公共邻居的个数。根据加权邻接矩阵w=[wij]n×n和b=[bij]n×n,得到节点的二阶邻居权重矩阵wn=[wnij]n×n,则二阶邻相似度矩阵为x=αw+βwn。

当得到二阶邻相似度矩阵,需要应用对矩阵元素进行最小-最大规范化,即对矩阵元素进行线性变换,将矩阵元素的值映射到[0,1]之间。

在本实施例当中,所述基于深度学习的加权网络社区发现装置,还包括:训练模块24,用于在对给定的加权网络图进行预处理,得到二阶邻相似度矩阵之后,在通过深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,得到低维特征矩阵之前,训练深度稀疏自编码器。

在本实施例当中,所述训练所述深层稀疏自编码器,具体为:分析加权网络图中节点间的联系,获取加权邻接矩阵和无权邻接矩阵;根据加权邻接矩阵和无权邻接矩阵,得到模块度矩阵和无权二阶邻邻接矩阵;使用二阶邻相似度矩阵、模块度矩阵和无权二阶邻邻接矩阵训练深度稀疏自编码器。

由于只将二阶邻相似度矩阵x作为训练集,并随机抽取二阶邻相似度矩阵x的部分列向量作为测试集,并不能可靠且充分地反映节点之间的相似关系,需要改进训练集和测试集。改进过程具体如下:

(1)加权网络中节点的关系是复杂的,能反映节点之间的相似性关系的矩阵也有不少。受模块度函数(其中,m表示网络中边的总数目,ki表示节点i的度数,kj表示节点j的度数,aij表示节点i与节点j是否有边相连,若有,则aij=1,否则aij=0,δ(ci,cj)表示节点i与节点j是否在同一社区,若在,则δ(ci,cj)=1,否则δ(ci,cj)=0)的启发,用模块度矩阵q=[qij]∈rnxn(其中,表示节点i和节点j的期望权重,wj表示与节点i相连接的边的权重之和,w表示加权网络中的总权重,wij表示节点i与节点j的连接边的权重)来表示节点之间的相似性关系。

(2)除了模块度矩阵之外,将加权网络的无权二阶邻邻接矩阵z也作为训练集的一部分。在预处理中得到网络的无权邻接矩阵a=[aij]n×n,和a=[aij]n×n的平方b=[bij]n×n,bij表示的是节点i到节点j路径长度为2的路径条数。考虑到无权邻接矩阵,故路径权重都为1,因此2*bij表示的是节点i到节点j的路径长度。加权网络的无权二阶邻邻接矩阵z为zij=0.5×aij+0.5×2*bij,其中,无权二阶邻邻接矩阵z对角线元素表示节点i与其自身的相似性,全部置0。

(3)通过训练模块24完成预处理和上述操作,得到加权网络的二阶邻相似度矩阵、模块度矩阵和无权二阶邻邻接矩阵。将上述操作获取的模块度矩阵和无权二阶邻邻接矩阵分别应用对矩阵元素进行最小-最大规范化,即对矩阵元素进行线性变换,将矩阵元素的值映射到[0,1]之间。使用二阶邻相似度矩阵、模块度矩阵和无权二阶邻邻接矩阵训练深度稀疏自编码器。

在本实施例当中,所述聚类算法包括k-means聚类算法。

本实施例通过聚类模块23,根据k-means聚类算法对低维特征矩阵进行聚类,有利于提高社区发现结果的准确度。

综上所述,实施本发明的实施例,具有如下有益效果:

通过对给定的加权网络图进行预处理,得到二阶邻相似度矩阵,进而通过深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,得到低维特征矩阵,从而根据聚类算法对低维特征矩阵进行聚类,得到社区发现结果。本实施例针对加权网络图,综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,并利用深度稀疏自编码器提取二阶邻相似度矩阵的低维特征,使得对低维特征矩阵进行聚类而得到的社区发现结果更加准确。本实施例能够综合考虑节点与邻居节点,及与邻居节点的邻居节点之间的联系,提高社区发现的准确度。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

本领域普通技术人员可以理解实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1