一种基于社交网络的社团划分方法、系统及存储介质
技术领域
本发明涉及复杂网络分析和图数据挖掘
技术领域
,具体涉及一种基于社交网络的社团划分方法、系统及存储介质。背景技术
现如今,人们都喜欢通过各种在线社交网络来联系彼此,在社交网络中,用户既是网络内容的生产者也是消费者。他们会因具有相近的关系:朋友、亲属、同事等,具有密切的互动:聊天、评论、关注、转发等,以及具体类似的兴趣爱好和消费习惯等而联系在一起。
社团划分是要找到复杂网络中那些具有内在密切关系、高度相似的成员,并将他们划分到一起,并且要使得同一个社团之间的成员联系紧密,不同社团之间的成员联系松散。通过挖掘出这些成员之间的潜在关系,划分出社团,对互联网平台向用户投放符合用户特征和兴趣的新闻和广告,以及提供个性化服务会提供很大帮助。另外,通过捕捉成员之间的关系和对所发布的言论进行检测,可有效监控或引导舆情,以及实现对犯罪社团组织的检测等,对社会的稳定发展具有十分重要的意义。总之,目前社团划分技术已经广泛应用于个性化推荐、广告投放、在线舆情监控、异常检测和恐怖组织识别等领域。
不过,社交网络中成员之间的复杂关系很难表示和学习,为了方便理解和研究,一般通过图的形式进行表示,针对社团划分本质上可看作一个图聚类问题,如何有效挖掘出图中节点属性和拓扑结构中的有效信息是一个难题。在现有技术中,大多都只挖掘了网络拓扑结构信息或节点的属性信息,显然还不够准确,忽略了重要信息;并且一般只考虑节点的直接邻居,没有考虑高阶邻居潜在的关系,并不符合实际情形,也没有显式地表达和衡量不同的邻居节点与目标节点之间的相关性,模型的可解释性不强;最后,传统的方法往往难以有效地对包含各种属性信息的高维数据进行数据融合;以上这些因素都会不同程度地导致社团划分结果不够准确。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种基于社交网络的社团划分方法、系统及存储介质。将网络拓扑结构和属性信息进行有效集成,通过对节点低维嵌入表示和软聚类分配共同地迭代优化,使聚类性能进一步优化。
本发明解决上述技术问题的技术方案如下:一种基于社交网络的社团划分方法,包括如下步骤:
步骤S1、从社交网络中获得用户数据,对所述用户数据进行预处理,得到节点的邻接矩阵和属性矩阵;
步骤S2、根据注意力机制,通过所述邻接矩阵和所述属性矩阵捕获节点的高阶拓扑邻近性和属性邻近性,得到邻近性权重;
步骤S3、通过图自动编码器和所述邻近性权重,对所述邻接矩阵和所述属性矩阵进行联合编码,得到节点的低维嵌入表示;
步骤S4、通过聚类算法对所述低维嵌入表示进行聚类,得到节点的软聚类分配,通过所述软聚类分配得到目标损失函数,将所述目标损失函数迭代至最小化,得到训练模型;
步骤S5、根据所述训练模型中的聚类分配结果,得到所述节点的社团划分结果。
本发明的有益效果是:利用注意力机制显式衡量用户间的相关性,反映出不同用户对目标用户的相似度或影响力差异,还通过低维嵌入表示将网络拓扑结构和属性信息进行有效集成,充分捕捉有效信息,有效地对包含各种属性信息的高维数据进行融合;在统一的框架中同时对训练后的节点低维嵌入表示和软聚类分配迭代优化,可使聚类性能进一步优化,社团划分更准确。
在上述技术方案的基础上,本发明还可以做如下改进:
进一步,所述步骤S1包括:
步骤S11、通过网络爬虫方法从社交网络获得用户数据,或由所述社交网络中的社交平台提供用户数据;
步骤S12、对所述用户数据进行预处理,所述预处理步骤如下:
将所述用户数据进行数据清洗,并将数据清洗后的用户数据存储;
将所述清洗后的用户数据中用户之间的关系进行转换处理,得到表征节点的拓扑结构信息的邻接矩阵,对所述清洗后的用户数据中的用户的特性进行转换,得到表征节点的属性信息的属性矩阵。
进一步,所述步骤S2具体包括:
步骤S21、根据式(1),通过邻接矩阵捕获各节点之间的高阶拓扑邻近性,得到拓扑结构权重矩阵,所述式(1)为:其中,为t阶邻居节点的邻接矩阵归一化表示;
步骤S22、根据式(2),通过属性矩阵捕获各节点之间的属性邻近性,得到属性权重值,所述式(2)为:
pij=wT[xi||xj],
式中,xi为节点i的属性值,xj为邻居节点j的属性值,W为参数矩阵,||为向量串联操作,T为矩阵转置;
步骤S23、根据式(3)对所述属性权重值和所述拓扑结构权重矩阵中的拓扑结构权重值进行结合并归一化,得到邻近性权重,所述式(3)为:
式中,mij、mir为拓扑结构权重矩阵M中的拓扑结构权重值,Pij、Pir为属性权重值,Ni为i在M中的邻居节点集合,LeakyReLU为激活函数。
采用上述进一步方案的有益效果是:利用注意力机制可显式衡量用户间的相关性,反映出不同用户对目标用户的相似度或影响力差异,通过考虑高阶邻居的影响得到高阶拓扑邻近性,相比现有技术中只考虑用户的直接连边的邻居节点进行分析,更深层次地捕捉到用户之间的潜在关联,使得划分结果更准确且符合实际。
进一步,步骤S3具体包括:
步骤S31、根据式(4),通过预设的图自动编码器中对所述邻接矩阵和所述属性矩阵进行编码,并通过所述邻近性权重进行加权计算,在所述图自动编码器的各中间层和输出端对应序列得到包括所述拓扑结构信息和所述属性信息的各中间层低维嵌入表示和输出端低维嵌入表示;所述式(4)为:
......
式中,σ为非线性激活函数,αij为所述邻近性权重值,W(1),W(2)...W(k)为图自动编码器各中间层和输出端的参数矩阵,为图自动编码器的初始输入数据,即邻居节点j的邻接矩阵和属性矩阵的联合表示,表示节点i在图自动编码器的各中间层对应序列学习得到的低维嵌入表示;表示与节点i相关的各邻居节点在图自动编码器的各中间层对应序列学习得到的低维嵌入表示,hi为图自动编码器的输出端学习得到的低维嵌入表示;
步骤S32、根据式(5)对所述输出端低维嵌入表示通过解码器进行解码,得到表征节点之间存在连边概率的重构邻接矩阵所述式(5)为:
式中,T为转置,hi为节点i的输出端低维嵌入表示,hj为节点j的输出端低维嵌入表示;
步骤S33、根据重构损失函数式(6),通过所述重构邻接矩阵和所述邻接矩阵对所述图自动编码器进行预训练,当所述重构损失函数式(6)的值迭代至最小化时,迭代更新所述各中间层低维嵌入表示和所述输出端低维嵌入表示;所述重构损失函数式(6)为:
式中,Aij代表邻接矩阵中任一元素的值,取值为0或1,代表重构邻接矩阵中相应的元素的值,取值在0到1之间。
采用上述进一步方案的有益效果是:通过图自动编码器和损失函数得到节点的低维嵌入表示,将网络拓扑结构和属性信息进行有效集成,充分捕捉有效信息,低维嵌入表示还可以有效地对包含各种属性信息的高维数据进行融合,使社团划分更准确。
进一步,所述步骤S4具体包括:
步骤S41、利用k-means聚类算法对所述输出端低维嵌入表示进行聚类,得到初始聚类中心,其中,一个所述初始聚类中心对应一个社团;
步骤S42、根据余弦相似度函数式(7)测量所述低维嵌入表示和所述初始聚类中心之间的相似性,得到每个节点的软聚类分配,所述余弦相似度函数式(7)为:
式中,hi为节点i的输出端低维嵌入表示,μu为第u个初始聚类中心;
步骤S43、根据所述软聚类分配定义聚类损失函数式(8),所述聚类损失函数式(8)为:LC=∑i∑jlog(1/qiu),式中,i、j为节点,qiu为软聚类分配;
步骤S44、根据式(9)将所述重构损失函数与所述聚类损失函数联合学习,得到最终的目标损失函数,所述式(9)为:Lr为重构损失函数,LC为聚类损失函数,为平衡两个损失函数影响的超参数;
步骤S45、将所述目标损失函数进行迭代至最小化,迭代更新所述各中间层低维嵌入表示和所述输出端低维嵌入表示,得到训练模型。
采用上述进一步方案的有益效果是:在统一的框架中同时对学习到的节点低维嵌入表示和软聚类分配迭代优化,可使聚类性能进一步优化,社团划分更准确。
进一步,所述步骤S5具体包括:
根据所述训练模型确定每个节点的最终聚类分配,根据所述最终聚类分配得到最终聚类中心,其中,一个所述最终聚类中心对应一个社团,每个节点根据所述最终聚类中心划分到对应的社团。
为了解决上述技术问题,本发明还提供一种基于社交网络的社团划分系统,包括预处理模块、训练模块和划分模块;
所述预处理模块:用于从社交网络中获得用户数据,对所述用户数据进行预处理,得到节点的邻接矩阵和属性矩阵;
所述训练模块:用于根据注意力机制,通过所述邻接矩阵和所述属性矩阵捕获节点的高阶拓扑邻近性和属性邻近性,得到邻近性权重;通过图自动编码器和所述邻近性权重,对所述邻接矩阵和所述属性矩阵进行联合编码,得到节点的低维嵌入表示;通过聚类算法对所述低维嵌入表示进行聚类,得到节点的软聚类分配,通过所述软聚类分配得到目标损失函数,将所述目标损失函数迭代至最小化,得到训练模型;
所述划分模块:用于根据所述训练模型中的聚类分配结果,得到所述节点的社团划分结果。
附图说明
图1为本发明一实施例提供的一种基于社交网络的社团划分方法的流程图;
图2为本发明一实施例提供的一种基于社交网络的社团划分系统的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例一
如图1所示,一种基于社交网络的社团划分方法,包括如下步骤:
步骤S1、从社交网络中获得用户数据,对所述用户数据进行预处理,得到节点的邻接矩阵和属性矩阵;
步骤S2、根据注意力机制,通过所述邻接矩阵和所述属性矩阵捕获节点的高阶拓扑邻近性和属性邻近性,得到邻近性权重;
步骤S3、通过图自动编码器和所述邻近性权重,对所述邻接矩阵和所述属性矩阵进行联合编码,得到节点的低维嵌入表示;
步骤S4、通过聚类算法对所述低维嵌入表示进行聚类,得到节点的软聚类分配,通过所述软聚类分配得到目标损失函数,将所述目标损失函数迭代至最小化,得到训练模型;
步骤S5、根据所述训练模型中的聚类分配结果,得到所述节点的社团划分结果。
在本实施例中,利用注意力机制显式衡量用户间的相关性,反映出不同用户对目标用户的相似度或影响力差异,还通过低维嵌入表示将网络拓扑结构和属性信息进行有效集成,充分捕捉有效信息,有效地对包含各种属性信息的高维数据进行融合;在统一的框架中同时对训练后的节点低维嵌入表示和软聚类分配迭代优化,可使聚类性能进一步优化,社团划分更准确。
优选的,作为本发明的一个实施例,所述步骤S1具体包括:
步骤S11、通过网络爬虫方法从社交网络获得用户数据,或由所述社交网络中的社交平台提供用户数据;
步骤S12、对所述用户数据进行预处理,所述预处理步骤如下:
将所述用户数据进行数据清洗,并将数据清洗后的用户数据存储;
将所述清洗后的用户数据中用户之间的关系进行转换处理,得到表征节点的拓扑结构信息的邻接矩阵,对所述清洗后的用户数据中的用户的特性进行转换,得到表征节点的属性信息的属性矩阵。
需要说明的是,将社交网络中的每个用户抽象为节点,用户之间的好友关系抽象成边,将用户的个人特性(性别、年龄、学历、兴趣爱好等),以及互动关系(转发或评论内容、互动频率、粉丝关注数等)抽象为属性标签。
其中,对清洗后的用户数据以txt文本形式存储;使用numpy数据计算工具处理用户数据进行转换处理,得到邻接矩阵和属性矩阵。
其中,邻接矩阵可表示为其中Aij=1表示第i个节点与第j个节点之间有邻接关系,其中Aij=0表示第i个节点与第j个节点之间没有邻接关系,邻接矩阵的每一行表示了一个节点和所有其他节点的链接关系,可以看作是对应节点的一种表示。
其中,属性矩阵可表示为
优选的,作为本发明的一个实施例,所述步骤S2具体包括:
步骤S21、根据式(1),通过邻接矩阵捕获各节点之间的高阶拓扑邻近性,得到拓扑结构权重矩阵,所述式(1)为:其中,为t阶邻居节点的邻接矩阵归一化表示;
步骤S22、根据式(2),通过属性矩阵捕获各节点之间的属性邻近性,得到属性权重值,所述式(2)为:
pij=wT[xi||xj],
式中,xi为节点i的属性值,xj为邻居节点j的属性值,W为参数矩阵,||为向量串联操作,T为矩阵转置;
步骤S23、根据式(3)对所述属性权重值和所述拓扑结构权重矩阵中的拓扑结构权重值进行结合并归一化,得到邻近性权重,所述式(3)为:
式中,mij、mir为拓扑结构权重矩阵M中的拓扑结构权重值,Pij、Pir为属性权重值,Ni为i在M中的邻居节点集合,LeakyReLU为激活函数。
需要说明的是,目标节点是指网络中的用户,邻居节点是指与用户有互动关系或相似属性的其他用户,其中节点i为目标节点,节点j是节点i的邻居节点,当t>1时,表示节点j是节点i的高阶邻居。其中,mij为捕获节点j和节点i之间的高阶拓扑邻近性得到的拓扑结构权重值,表示节点j与节点i在t阶内的拓扑相关性;如果mij>0,则可认为节点j是目标节点i的相似邻居,节点i在M中的邻居集合用Ni表示。
需要说明的是,将学习到的属性权重值和拓扑权重值结合起来,原则上可以得到反映节点间相似度关系的邻近性权重值,但为了使不同节点之间的系数更易于比较,需对所有属于Ni的节点进行归一化处理,如果邻居节点与目标节点越相似,得到的邻近性权重值就越大,越不相似就越小。
本实施例中,采用上述进一步方案的有益效果是:利用注意力机制可显式衡量用户间的相关性,反映出不同用户对目标用户的相似度或影响力差异,通过考虑高阶邻居的影响得到高阶拓扑邻近性,相比现有技术中只考虑用户的直接连边的邻居节点进行分析,更深层次地捕捉到用户之间的潜在关联,使得划分结果更准确且符合实际。
优选的,作为本发明的一个实施例,所述步骤S3具体包括:
步骤S31、根据式(4),通过预设的图自动编码器中对所述邻接矩阵和所述属性矩阵进行编码,并通过所述邻近性权重进行加权计算,在所述图自动编码器的各中间层和输出端对应序列得到包括所述拓扑结构信息和所述属性信息的各中间层低维嵌入表示和输出端低维嵌入表示;所述式(4)为:
......
式中,σ为非线性激活函数,αij为所述邻近性权重值,W(1),W(2)...W(k)为图自动编码器各中间层和输出端的参数矩阵,为图自动编码器的初始输入数据,即邻居节点j的邻接矩阵和属性矩阵的联合表示,表示节点i在图自动编码器的各中间层对应序列学习得到的低维嵌入表示;表示与节点i相关的各邻居节点在图自动编码器的各中间层对应序列学习得到的低维嵌入表示,hi为图自动编码器的输出端学习得到的低维嵌入表示;
步骤S32、根据式(5)对所述输出端低维嵌入表示通过解码器进行解码,得到表征节点之间存在连边概率的重构邻接矩阵所述式(5)为:
式中,T为转置,hi为节点i的输出端低维嵌入表示,hj为节点j的输出端低维嵌入表示;
步骤S33、根据重构损失函数式(6),通过所述重构邻接矩阵和所述邻接矩阵对所述图自动编码器进行预训练,当所述重构损失函数式(6)的值迭代至最小化时,迭代更新所述各中间层低维嵌入表示和所述输出端低维嵌入表示;所述重构损失函数式(6)为:
式中,Aij代表邻接矩阵中任一元素的值,取值为0或1,代表重构邻接矩阵中相应的元素的值,取值在0到1之间。
需要说明的是,邻接矩阵占用了|n|×|n|的存储空间,|n|表示获取的社交网络数据中的用户数,当|n|增长到百万级时,即表示高维数据,会影响处理数据的效率;而实际中绝大部分用户并不存在社交关系,所以邻接矩阵中绝大多数Aij的值为0,因此数据十分稀疏,会得到高维稀疏的数据,会使学习和应用变得困难。而节点的嵌入学习是指将网络中的节点经学习得到一个低维稠密的嵌入表示,使得数据维度远远小于n,即低维嵌入表示。直观的说,在网络中拓扑结构相似的节点也应该具有相近的嵌入表示。而图自动编码器就可以有效地学习这种嵌入表示,以有效捕捉图的拓扑结构和属性信息。
本实施例中,通过图自动编码器和损失函数得到节点的低维嵌入表示,将网络拓扑结构和属性信息进行有效集成,充分捕捉有效信息,低维嵌入表示还可以有效地对对包含各种属性信息的高维数据进行融合,使社团划分更准确。
优选的,作为本发明的一个实施例,所述步骤S4具体包括:
步骤S41、利用k-means聚类算法对所述输出端低维嵌入表示进行聚类,得到初始聚类中心,其中,一个所述初始聚类中心对应一个社团;
步骤S42、根据余弦相似度函数式(7)测量所述低维嵌入表示和所述初始聚类中心之间的相似性,得到每个节点的软聚类分配,所述余弦相似度函数式(7)为:
式中,hi为节点i的输出端低维嵌入表示,μu为第u个初始聚类中心;
步骤S43、根据所述软聚类分配定义聚类损失函数式(8),所述聚类损失函数式(8)为:LC=∑i∑jlog(1/qiu),式中,i、j为节点,qiu为软聚类分配;
步骤S44、根据式(9)将所述重构损失函数与所述聚类损失函数联合学习,得到最终的目标损失函数,所述式(9)为:Lr为重构损失函数,LC为聚类损失函数,为平衡两个损失函数影响的超参数;
步骤S45、将所述目标损失函数进行迭代至最小化,迭代更新所述各中间层低维嵌入表示和所述输出端低维嵌入表示,得到训练模型。
其中,为每一个初始聚类中心分配一个独一无二的标签,即表示用户所属的社团,可划分成c个社团,初始聚类中心可表示为μu∈[0,1,...,c]。
其中,余弦相似度函数是使用两个向量夹角的余弦值作为衡量两个个体间差异的大小,夹角越接近0度,余弦值越接近1,表示两个向量越相似。
需要说明的是,软聚类分配是根据K-means聚类算法预先给每个节点分配一个聚类中心,在模型的学习过程中,每个节点的分配可能会发生变动,只是一个临时的划分,不是最终的结果。qiu可看作每个节点的软聚类分配,所有用户的软聚类分配可表示为其作用是为了引入聚类信息来实现聚类导向的节点低维嵌入表示,通过迫使每个节点与相应的聚类中心更接近,实现同一类别间的距离最小,不同类别间距离最大。
其中,通过随机梯度下降算法对目标损失函数Ltotal进行求导,迭代优化目标损失函数至最小化。
本实施例中,在统一的框架中同时对学习到的节点低维嵌入表示和软聚类分配迭代优化,可使聚类性能进一步优化,社团划分更准确。
优选的,作为本发明的一个实施例,所述步骤S5具体包括:
根据所述训练模型确定每个节点的最终聚类分配,根据所述最终聚类分配得到最终聚类中心,其中,一个所述最终聚类中心对应一个社团,每个节点根据所述最终聚类中心划分到对应的社团。
其中,当目标损失函数收敛至最小值时,每个用户最终的聚类分配都存储在中,即Q中包括每个用户属于每个社团的概率值,取其中的最大概率值maxqiu,其所对应的最终聚类中心所分配的标签就是用户所属的社团。被划分到同一社团的成员在某些方面高度相似,而不同社团之间的成员联系松散。
实施例二
本实施例提供一种基于社交网络的社团划分系统,如图2所示,包括预处理模块、训练模块和划分模块;
所述预处理模块:用于从社交网络中获得用户数据,对所述用户数据进行预处理,得到节点的邻接矩阵和属性矩阵;
所述训练模块:用于根据注意力机制,通过所述邻接矩阵和所述属性矩阵捕获节点的高阶拓扑邻近性和属性邻近性,得到邻近性权重;通过图自动编码器和所述邻近性权重,对所述邻接矩阵和所述属性矩阵进行联合编码,得到节点的低维嵌入表示;通过聚类算法对所述低维嵌入表示进行聚类,得到节点的软聚类分配,通过所述软聚类分配得到目标损失函数,将所述目标损失函数迭代至最小化,得到训练模型;
所述划分模块:用于根据所述训练模型中的聚类分配结果,得到所述节点的社团划分结果。
在本实施例还提供一种基于社交网络的社团划分系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,当所述处理器执行所述计算机程序时,以实现如一种基于社交网络的社团划分方法的步骤,在此不再一一赘述。
本实施例还提供一种存储介质,存储介质包括存储有一个或者多个计算机程序,一个或者多个计算机程序可被一个或者多个处理器执行,以实现如上各实施例中的基于社交网络的社团划分方法的步骤,在此不再一一赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明实施例所提供的技术方案进行了详细介绍,本专利中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。