一种基于社区检测的多标签分类方法与流程

文档序号:17590071发布日期:2019-05-03 21:42阅读:313来源:国知局
一种基于社区检测的多标签分类方法与流程

本发明涉及多标签分类分析领域,特别是一种基于社区检测的多标签分类方法。



背景技术:

当前,存在着一些基于网络表示学习的多标签分类分析方法。基于矩阵特征向量计算,通过计算关系矩阵的前k个特征向量或奇异向量来得到k维的节点表示。利用“非线性降维的全局几何框架”计算出了全局最优解的isomap算法。通过分析高维度的流行,从而找到与之对应的低纬度的嵌入,在计算高维度节点之间的距离时,提出了用实际输入数据来估算其测地线距离的算法,代替了传统的欧式距离,并保证了近似收敛到原始高维数据的真实结构。

还存在着一些基于随机游走的多标签分类分析方法。研究者将词嵌入技术应用于网络或图节点的特征学习。通过实验验证了随机游走序列中节点和文档中的单词一样都遵从指数定律(power-law),从而进一步将著名的词表示学习算法word2vec应用在随机游走序列上,学习节点表示。

当前,有很多技术方法可用于网络中节点的多标签分类分析。传统的多标签分类算法是将多标签学习问题转换为多类(单标签)分类问题。将训练数据集中的标签集合子集进行二进制编码,每个编码值看作是单标签分类任务中的多类分类问题的不同类别值,然后,训练多类分类器。当给定一个未知样本时,首先根据训练得到的多类分类器对其进行预测,然后将预测出的结果转成二进制编码,从而得到其所属的类别标签集合。这个方法比较简单,但如果当标签类别的数量很多时,将其转换为新的类别标签时值的数量会增加很多,从而导致这些类别标签的训练样本不足以及训练时间开销大。



技术实现要素:

有鉴于此,本发明的目的是提出一种基于社区检测的多标签分类方法,能够改善网络中节点的多标签分类效果。

本发明采用以下方案实现:一种基于社区检测的多标签分类方法,提供一数据预处理模块用以获得网络节点表示;提供一社区发现模块用以进行社区发现和嵌入;提供一节点嵌入模块用以进行节点相量的表示;提供一融合模块用以得到最终的节点相量表示;提供一分类结果输出模块用以得到最终的多标签分类结果;

利用上述各模块进行多标签分类具体包括以下步骤:

步骤s1:提供一社交网络数据集,所述数据预处理模块对所述社交网络中结构进行节点和边的表示;

步骤s2:所述社区发现模块利用基于高斯混合模型(gmm)的目标函数进行社区发现和社区嵌入;

步骤s3:所述节点嵌入模块利用非线性映射函数连接的深层模型,表示初始节点向量;

步骤s4:所述融合模块将步骤s2中所述的社区发现和社区嵌入以及步骤s3中所述的节点的向量表示即节点嵌入信息进行融合,得到最终节点相量;

步骤s5:所述分类结果输出模块利用分类函数对步骤s4得到的最终节点相量进行分类,获得节点最终多标签分类结果。

进一步地,所述深层模型的输入和输出通过非线性映射函数连接;所述深层模型的输入层包括来自目标节点及其邻域的属性信息,输出层表示节点的向量特征。

进一步地,所述深层模型的输入层位于所述深层模型的左侧,是所述深层模型的监督学习组件,通过标记数据进行训练,用以预测类标签;所述输出层位于所述深层模型的右侧,用以预测网络输入的上下文。

进一步地,所述步骤s5利用softmax函数对所述最终节点相量进行分类,得到各节点的标签类别。

进一步地,所述步骤s2具体还包括以下内容:

利用基于高斯混合模型的目标函数进行社区发现和社区嵌入;即每个节点vi的嵌入hi是由来自社区zi=k的多元高斯分布生成的;然后,对于v中的所有节点,能够得到似然函数为:

v表示所有节点的集合。

进一步地,所述步骤s3具体还包括以下内容:用非线性函数hk(xi)=σ(wkhk-1(xi)+tk)来表示kth层的深层模型,其中,wk和tk为kth层的权重和偏量;σ为sigmoid非线性激活函数,则所述深层模型中的嵌入层表示为:

与现有技术相比,本发明有以下有益效果:

本发明能够结合社区发现和社区嵌入的方法,能够较好的从数据集中将节点进行标签分类,改善网络中节点的多标签分类效果。

附图说明

图1为本发明实施例的流程图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

如图1所示,本实施例提供了一种基于社区检测的多标签分类方法,提供一个数据预处理模块,用于得到网络节点表示;一个社区发现模块,利用一个基于高斯混合模型(gmm)的目标函数同时来进行社区发现和嵌入;一个节点嵌入模块,利用一个非线性映射函数连接的深层模型,来表示节点向量,模型的输入层包括来自目标节点及其邻域的属性信息,输出层表示节点的向量特征;一个融合模块,定义了一个社区发现和嵌入的目标函数,并联合节点嵌入的信息进行反馈,得到最终的节点向量表示;一个分类结果输出模块,用分类函数得到节点最终的多标签分类结果。

利用上述各模块进行多标签分类具体包括以下步骤:

步骤s1:提供一社交网络数据集,所述数据预处理模块对所述社交网络中结构进行节点和边的表示;

步骤s2:所述社区发现模块利用基于高斯混合模型(gmm)的目标函数进行社区发现(社区发现是一种类似聚类的方法)和社区嵌入;

步骤s3:所述节点嵌入模块利用节点的属性和标签信息,构建一个输入和输出通过一系列非线性映射函数连接的深层模型,表示节点向量;左边输出层被认为是模型的监督学习组件,因为它预测了类标签,我们使用标记数据来训练它。右边输出层预测网络输入的上下文,它来自上下文生成算法。

步骤s4:所述融合模块将步骤s2中所述的社区发现和社区嵌入以及步骤s3中所述的节点的向量表示即节点嵌入信息进行融合,得到最终节点相量;

步骤s5:所述分类结果输出模块利用分类函数对步骤s4得到的最终节点相量进行分类,获得节点最终多标签分类结果。

较佳的,在本实施例中,分别详细描述各模块的配置。

1)数据预处理模块1

首先,描述数据预处理模块如何用户进行数据的预处理。

用二维平面上的欧几里得网格的规则来表示结构,节点之间的边用一个概率决定,也就是随机网络。

2)社区发现模块2

下面描述社区发现模块2是如何将上一模块得到的数据进行社区发现和嵌入的。通常情况下,大多数人会采用一种直接检测社区和学习社区嵌入的管道式方法。首先利用光谱聚类来检测社区,然后对每个社区利用高斯混合来得到嵌入表示。显然,这种流水线方法缺乏统一的目标函数,因此,后面难以使用节点嵌入进行优化。因此,我们可以在一个基于gmm的目标函数中同时来进行社区发现和嵌入。也就是说,我们认为每个节点vi的嵌入hi是由来自社区zi=k的多元高斯分布生成的。然后,对于v中的所有节点,我们可得到似然函数为:

3)节点嵌入模块3

下面描述节点嵌入模块3是如何将节点进行向量表示的。利用节点的属性和标签信息,构建一个输入和输出通过一系列非线性映射函数连接的深层模型。我们用一个非线性函数hk(xi)=σ(wkhk-1(xi)+tk)来表示kth层的深层模型,其中,wk和tk为kth层的权重和偏量。σ为sigmoid非线性激活函数,于是,嵌入层可以表示为:

模型分为两个部分,一个是左边输出层被认为是模型的监督学习组件,因为它预测了类标签,我们使用标记数据来训练它。右边输出层预测网络输入的上下文,它来自上下文生成算法。因此,该部分被视为捕获拓扑结构信息的模型的无监督组件。这两个部分紧密相互连接,因为它们共享从输入层到嵌入层的第一层。此外,属性信息自然地集成到嵌入中,因为它是模型的输入。总的来说,该模型通过使用标记数据和未标记数据以半监督学习方式进行训练,嵌入层作为输入层和输出层之间的桥梁,能够同时很好的利用节点的属性和标签信息。

4)融合模块4

为了使整个过程能够相互促进和融合,我们需要利用从社区发现和社区嵌入到节点嵌入的反馈。假设我们已经确定了混合社区成员和社区嵌入。然后,我们通过将节点嵌入视为未知,重复利用公式来实现这种反馈。通过优化来强制同一社区内的节点更接近其所在的社区中心。也就是说,同一个社区的两个节点可能具有相似的嵌入。因此,我们同时优化了社区发现,社区嵌入和节点嵌入。对于节点嵌入,我们利用了节点的结构信息和节点的属性、标签信息。通过定义了社区发现和嵌入的目标函数,并联合节点嵌入的信息,得到最终的节点向量表示。

5)分类结果输出模块5

最后,将描述分类结果输出模块5,模块4的输出向量得到了最终的节点向量,分类结果输出模块利用softmax分类函数对所得向量逐一计算,根据设定的阈值得到该节点关于标签类别的预测值。在训练阶段,需要将预测值与目标值求误差,并利用随机梯度下降法和后向传播对整个系统的参数进行迭代更新;否则,只需将得到的预测值输出即可。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

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