一种社交网络用户分组方法、装置及服务器与流程

文档序号:18319639发布日期:2019-08-03 10:20阅读:140来源:国知局
一种社交网络用户分组方法、装置及服务器与流程

本发明涉及数据处理技术领域,具体涉及一种社交网络用户分组方法、装置及服务器。



背景技术:

随着社交软件的普及,人与人的关系从线下迁移到线上,构成了一个庞大、复杂的社交网络(社交网络如表示用户之间支付关系的第三方支付网络、表示用户关系的用户关系网络等)。

社交网络一般包括多个用户,在对社交网络的用户进行分组的基础上,对社交网络进行分析和信息挖掘具有重要意义;例如通过对社交网络的用户进行分组,可有助于定位传销、赌博等特定性质的团体,提高社交软件运营的风险控制能力,又如通过对社交网络的用户进行分组,可聚合具有相同爱好、兴趣的用户,针对不同分组的用户进行精准的信息推荐。

对社交网络的用户进行分组可以认为是,将社交网络中的用户进行聚类,划分出若干个分组,使得一个分组中所聚集的用户具有相同的特性;目前的社交网络的用户分组方式主要依据用户之间的关系紧密程度确定,通过将关系紧密程度较大的用户划分到同一分组,实现社交网络的用户分组。但本发明的发明人发现,关系紧密程度较大的用户并不一定同属一个分组,例如在第三方支付网络中,虽然赌博团伙之间的支付来往频繁,但赌博团伙与非赌博团伙(例如其好友家人等)之间同样可能存在频繁的支付关系;因此仅通过用户之间的关系紧密程度进行用户分组,极可能存在用户分组结果不准确的情况。



技术实现要素:

有鉴于此,本发明实施例提供一种社交网络用户分组方法、装置及服务器,以提升用户分组结果的准确性。

为实现上述目的,本发明实施例提供如下技术方案:

一种社交网络用户分组方法,包括:

获取社交网络,所述社交网络包括多个用户,所述社交网络的部分用户带有已知分组标签;

针对所述社交网络的用户,迭代的进行用户分组处理,直至得到的用户分组结果相应的目标函数达到极值;其中,所述目标函数至少包括:目标惩罚值,所述目标惩罚值表示相同已知分组标签的用户被划分到同一分组的可能性;

将社交网络中的用户在所述目标函数达到极值的用户分组结果中所属的分组,作为最终的用户分组结果。

本发明实施例还提供一种社交网络用户分组装置,包括:

社交网络获取模块,用于获取社交网络,所述社交网络包括多个用户,所述社交网络的部分用户带有已知分组标签;

迭代处理模块,用于针对所述社交网络的用户,迭代的进行用户分组处理,直至得到的用户分组结果相应的目标函数达到极值;其中,所述目标函数至少包括:目标惩罚值,所述目标惩罚值表示相同已知分组标签的用户被划分到同一分组的可能性;

结果输出模块,用于将社交网络中的用户在所述目标函数达到极值的用户分组结果中所属的分组,作为最终的用户分组结果。

本发明实施例还提供一种服务器,包括:至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述程序,以执行上述所述的社交网络用户分组方法。

基于上述技术方案,本发明实施例提供的社交网络用户分组方法,在衡量用户分组效果的目标函数中至少加入了目标惩罚值,以表示相同已知分组标签的用户被划分到同一分组的可能性,从而在针对社交网络的用户进行迭代的用户分组处理后,可使得得到的用户分组结果趋于相同已知分组标签的用户被划分到同一分组的情况,提高用户分组结果的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的社交网络用户分组方法的流程图;

图2为对遍历的节点进行用户分组的处理示例图;

图3为本发明实施例提供的社交网络用户分组方法的另一流程图;

图4为本发明实施例提供的社交网络用户分组方法的再一流程图;

图5为社交网络的一种示例图;

图6为对遍历的节点进行用户分组后的示例图;

图7为一次迭代过程中所得到的用户分组结果的示例图;

图8为本发明实施例提供的社交网络用户分组装置的结构框图;

图9为服务器的硬件结构框图。

具体实施方式

社交网络一般可以采用由许多节点通过边相互连接组成的数学模型进行表示,其中一节点通常指代一用户(单一用户或者一用户集群),边表示节点之间的关系;一般而言,边可以带有权重值,用来刻画节点之间的连接紧密程度,边的权重越大,则边所连接的节点间的连接紧密程度越大,如边所连接的节点对应的用户间的关系紧密程度越大。

传统的社交网络用户分组方式主要基于用户之间的关系紧密程度确定,即主要依据社交网络的节点之间的连接紧密程度确定,通过将相互连接且边的权重值较大的节点划分到一个分组中,实现针对社交网络的用户的分组。然而,连接节点的边的权重值较大,虽然可体现边所连接的节点的连接紧密程度较大(如连所连接的节点对应的用户的关系紧密程度较大),但连接紧密程度较大的节点对应的用户并不一定同属一个分组,这就导致传统的社交网络用户分组方式的用户分组结果的准确性并不理想。

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

图1为本发明实施例提供的社交网络用户分组方法的流程图,本发明实施例提供的社交网络用户分组方法可应用于服务器,由服务器实现对社交网络的用户进行分组,并使得得到的用户分组结果具有较高的准确性;参照图1,本发明实施例提供的社交网络用户分组方法可以包括:

步骤s100、获取针对社交网络的用户的上一次用户分组结果;其中,所述上一次用户分组结果中的每一分组均对应有一代表用户,所述上一次用户分组结果中的各代表用户带有标定分组标签,且至少部分代表用户带有已知分组标签。

可选的,对社交网络的用户进行分组的目标可以认为是,经过迭代的用户分组处理,使得用户分组结果相应的目标函数达到极值(如通过设置,目标函数达到极值可以是目标函数达到最大化;也可能通过设置,使得目标函数达到极值为目标函数达到最小化;目标函数达到极值的表示形式可以根据实际情况设定);可以理解的是,针对用户分组任务而言,目标函数可以定义用户分组结果的效果,目标函数的值越趋于极值,则用户分组结果的效果越好;一次用户分组处理所得到的分组结果可以认为是一次用户分组结果,可以包括多个分组,一个分组包括至少一个用户。

可选的,由于在对社交网络的用户进行分组过程中,需要经过多次迭代的用户分组处理,即下一次的用户分组处理是建立在上一次迭代得到的用户分组结果的基础上;相应的,所述上一次用户分组结果可以认为是,上一次迭代得到的用户分组结果,本次的用户分组处理建立在上一次迭代得到的用户分组结果的基础上。

可选的,社交网络所进行的用户分组处理可分为初始化用户分组处理和非初始化用户分组处理。

初始化用户分组处理可以是,针对初始的社交网络所进行的初始化的用户分组处理;可选的,初始的社交网络的部分用户可带有已知分组标签,可将初始的社交网络中的一个用户构成一个分组,使得社交网络中的每一用户自动分组后,每一分组中的用户可作为相应分组的代表用户使用,再初始化各代表用户的标定分组标签,得到初始化的用户分组结果;

具体的,若社交网络采用由许多节点通过边相互连接组成的数学模型进行表示,则初始的社交网络中部分节点可标注有已知分组标签,可将初始的社交网络中的一个节点构成一个分组,使得社交网络中的每一个节点自成分组后,每一分组中的节点可作为相应分组的代表节点使用,再初始化各代表节点的标定分组标签,得到初始化的用户分组结果;即在数学模型的表达中,用户可通过社交网络中的节点进行表示;

这里需要说明的是,标定分组标签与已知分组标签所代表的含义不同,用户的已知分组标签可用于标示用户真实、实际应属的分组,而用户的标定分组标签是用于区分、分离不同分组的标签;

在本发明实施例提供的社交网络用户分组方法中,标定分组标签相同的用户可划分到同一分组,而用户的已知分组标签可用于表示用户所属分组的真实特性;可以理解的是,由于初始化用户分组处理过程中,社交网络中的每一个用户自成分组,因此各用户的标定分组标签不同。

对于非初始化的一次用户分组处理可以认为是后续流程步骤所示的一次循环、一次迭代的用户分组处理过程;相应得到的上一次用户分组结果中,一个分组可能包含至少一个用户,此时对于上一次用户分组结果中的各分组,需要确定各分组相应的代表用户,并确定各代表用户的标定分组标签,及标注出各代表用户的已知分组标签。

在本发明实施例中,至少部分代表用户标注有已知分组标签;已知分组标签可以对用户所属的真实分组的性质进行标示;通过对部分代表用户进行已知分组标签的标注,可辅助用户分组结果趋于真实、准确的方向。

同时,通过确定上一次用户分组结果中的每一分组对应的代表用户,可在一分组包含多个用户的情况下,由该分组的代表用户进行表示,减少用户分组过程中的数据处理量。

步骤s110、确定所述上一次用户分组结果相应的目标函数,所述目标函数至少包括:目标惩罚值,所述目标惩罚值表示相同已知分组标签的代表用户被划分到同一分组的可能性。

在获取针对社交网络的用户的上一次用户分组结果后,可确定该上一次用户分组结果相应的目标函数;由于此时还处于迭代中,因此上一次用户分组结果相应的目标函数并未达到极值。

区别于传统的用户分组的目标函数,本发明实施例基于至少部分代表用户标注有已知分组标签的情况,在衡量用户分组目标的目标函数中至少加入了目标惩罚值,以衡量相同已知分组标签的代表用户被划分到同一的分组的可能性;

即在确定上一次用户分组结果相应的目标函数时,需要考虑上一次用户分组结果中,具有相同已知分组标签的代表用户被划分到同一分组的可能性,并以目标惩罚值进行表示。可选的,可以通过设置,可使得目标惩罚值越大,带有相同已知分组标签的用户被划分到同一个分组的可能性越大;也可通过设置,使得惩罚值越小,带有相同已知分组标签的用户被划分到同一个分组的可能性越大。

可选的,在数学模型的实现上来看,带有相同已知分组标签的用户被划分到同一个分组的可能性,可以由带有相同已知分组标签的节点被划分到同一分组的可能性进行表示。

本发明实施例在衡量用户分组效果的目标函数中加入目标惩罚值,以在用户分组效果的衡量中加入带有相同已知分组标签的用户被分到同一个分组的可能性,从而通过使得目标函数达到极值(如目标函数最大化),可以使得下一次迭代得到的用户分组结果更趋于带有相同已知分组标签的用户被分到同一个分组的情况,提升后续迭代得到的用户分组处理过程趋于真实、准确的方向。

步骤s120、遍历上一次用户分组结果中的各代表用户。

步骤s130、对于遍历到的一代表用户,将该代表用户分别归属到各邻居代表用户所在的分组,并分别计算该代表用户分别归属到各邻居代表用户所在的分组后相应的各目标函数,与所述上一次用户分组结果相应的目标函数的增益,取增益最大的邻居代表用户所在分组作为该代表用户重新划分到的分组,并将该代表用户的标定分组标签调整为,该增益最大的邻居代表用户的标定分组标签。

对于上一次用户分组结果中的各分组的代表用户,本发明实施例可逐一的进行遍历,并以步骤s130的方式,确定遍历到的代表用户所应重新划分到的分组,调整所遍历到的代表用户的标定分组标签(即将所遍历到的代表用户的标定分组标签,调整为重新划分到的分组的代表用户的标定分组标签)。

可选的,在数学模型表示上,一用户的邻居用户可以是:与该用户的节点通过边连接的邻居节点对应的用户;即由节点表示用户的基础上,一节点的邻居节点可以认为是与该节点通过边连接的节点;相应的,步骤s130在具体实现时,可选方式可以包括:在遍历到上一次用户分组结果中一分组的代表用户时,设该代表用户为i,则本发明实施例可调取i的所有邻居代表用户,分别将i归属到各邻居代表用户所在的分组,并计算出i分别归属到各邻居代表用户所在的分组后相应的各目标函数;其中,所计算的一目标函数至少包括:i归属到一邻居代表用户所在分组后相应的目标惩罚值,以表示i归属到一邻居代表用户所在分组后,相同已知分组标签的代表用户被划分到同一分组的可能性;

此处i归属到一邻居代表用户所在的分组后相应的目标函数的计算,可与上一次用户分组结果相应的目标函数的计算原理相同;

进而,计算i分别归属到各邻居代表用户所在的分组后相应的各目标函数,与所述上一次用户分组结果相应的目标函数的增益,取增益最大的邻居代表用户所在的分组为i重新划分到的分组;同时,将代表用户i的标定分组标签调整为,该增益最大的邻居代表用户的标定分组标签。此处是以目标函数最大化作为目标函数达到极值的表现,因此取增益增大的邻居代表用户所在分组,为i重新划分到的分组;在改变目标函数达到极值的表现形式下,如以目标函数最小化作为目标函数达到极值的表现,则可取增益最小的邻居代表用户所在分组,为i重新划分到的分组。

为便于理解,以图2所示示例进行说明,在数学模型的表示上,图2的一个节点表示一个用户,对于遍历到的上一次用户分组结果中一分组的代表节点i(即表示代表用户i),可调取i的所有邻居代表节点i1,i2和i3(此处为便于描述,仅以存在3个邻居代表节点为例进行说明),则可将i分别归属到邻居代表节点i1,i2和i3所在的分组,计算出i归属到i1所在的分组对应的目标函数,i归属到i2所在的分组对应的目标函数,i归属到i3所在的分组对应的目标函数;计算i归属到i1所在的分组对应的目标函数,与上一次用户分组结果相应的目标函数的增益,计算i归属到i2所在的分组对应的目标函数,与上一次用户分组结果相应的目标函数的增益,计算i归属到i3所在的分组对应的目标函数,与上一次用户分组结果相应的目标函数的增益,从而取增益最大的邻居代表节点所在分组作为i所划分到的分组,将i的标定分组标签调整为增益最大的邻居代表节点的标定分组标签。

以上述方式,对于上一次用户分组结果中遍历到的各分组的每一代表用户,重新确定划分到的分组,直至上一次用户分组结果中各分组的代表用户均已遍历。

步骤s140、判断上一次用户分组结果中的各代表用户是否均已遍历,若否,返回步骤s130,若是,执行步骤s150。

步骤s150、确定上一次用户分组结果中的各代表用户划分到的分组,确定划分的各分组对应的代表用户,并标注各代表用户的已知分组标签,得到本次用户分组结果。

在遍历完上一次用户分组结果中的各代表用户,确定上一次用户分组结果中的各代表用户划分到的分组后,可确定划分的各分组对应的代表用户,一种可选实现可以为:将划分到同一个分组的用户合并成一个用户,并以各分组合并得到的用户作为各分组相应的代表用户(一分组的用户合并成一个用户后,该分组的其他用户可视为是隐藏,可在得到最终的用户分组结果时,将各分组中隐藏的用户进行展示);

具体的,在数学模型的实现上,可将划分到同一个分组的节点合并成一个节点,并以各分组合并得到的节点作为各分组相应的代表节点。

同时,对于划分的各分组,需要重新标注各分组的代表用户的已知分组标签,可选的,可统计各分组中具有相同已知分组标签的个数最多的用户,将一分组中具有相同已知分组标签的个数最多的用户相应的已知分组标签,作为该分组的代表用户所标注的已知分组标签;

可选的,在数学模型的实现上,本发明实施例可重新标注各分组的代表节点的已知分组标签,可统计各分组中具有相同已知分组标签的个数最多的节点,将一分组中具有相同已知分组标签的个数最多的节点相应的已知分组标签,作为该分组的代表节点所标注的已知分组标签。

步骤s160、确定本次用户分组结果相应的目标函数。

本次用户分组结果相应的目标函数可至少包括:本次用户分组结果相应的目标惩罚值,以表示本次用户分组结果相应的相同已知分组标签的用户划分到同一分组的可能性。其计算原理与上一次用户分组结果相应的目标函数的计算相同。

步骤s170、判断本次用户分组结果相应的目标函数是否达到极值,若否,执行步骤s180,若是,执行步骤s190。

步骤s180、将本次用户分组结果作为下一次迭代时相应的上一次用户分组结果,进入下一次迭代,返回步骤s100。

可选的,目标函数达到极值可以设置为目标函数达到最大化,从而步骤s170可通过判断本次用户分组结果相应的目标函数,与上一次用户分组结果相应的目标函数的差值是否大于零,来实现,如差值大于零,则目标函数未达到极值,如差值不大于零,则认为目标函数达到极值;可选的,如果本次用户分组结果相应的目标函数,与上一次用户分组结果相应的目标函数的差值大于零,说明本次用户分组结果相应的目标函数可能不是最大化,还需进行迭代;从而在下一次迭代时,将本次用户分组结果作为下一次迭代时相应的上一次用户分组结果,进入下一次迭代,返回步骤s100。

步骤s190、将社交网络中各用户在本次用户分组结果相应所属的分组,作为最终的用户分组结果。

可选的,如果本次用户分组结果相应的目标函数达到最大化,则可终止迭代;此时可将社交网络中的各用户,在本次用户分组结果相应所属的分组,作为最终的用户分组结果,具体的,可输出本次用户分组结果中,各分组所包含的各用户的标定分组标签,及各分组相应的已知分组标签。

基于图1所示方法,本发明实施例在针对所述社交网络,多次迭代的进行用户分组处理时,其可选实现可以包括:

获取针对社交网络的用户的上一次用户分组结果;其中,所述上一次用户分组结果中的每一分组均对应有一代表用户,所述上一次用户分组结果中的各代表用户带有标定分组标签,且至少部分代表用户带有已知分组标签;

遍历上一次用户分组结果中的各代表用户,确定每一遍历的代表用户重新划分到的分组,并将每一遍历的代表用户的标定分组标签调整为,重新划分到的分组的代表用户相应的标定分组标签;(该步骤的可选实现可参照步骤s130部分所示)

在将每一遍历的代表用户重新划分分组后,确定各分组对应的代表用户,并重新标注各代表用户的已知分组标签,得到本次用户分组结果;

若本次用户分组结果相应的目标函数未达到极值,则将本次用户分组结果作为下一次迭代时相应的上一次用户分组结果,进入下一次迭代,直至得到的用户分组结果相应的目标函数达到极值。

可以看出,本发明实施例是对社交网络的部分用户提前标注了已知分组标签,从而在衡量用户分组效果的目标函数中加入了目标惩罚值,以衡量每次用户分组结果中相同已知分组标签的用户被划分到同一分组的可能性;进而在对社交网络的用户进行分组时,进行迭代的用户分组处理,并且迭代的目标是使得目标函数达到极值,使得得到的用户分组结果趋于相同已知分组标签的用户被划分到同一分组的情况,提升用户分组结果的准确性;

由此,本发明实施例提供的社交网络用户分组方法的核心流程可以如图3所示,包括:

步骤s200、获取社交网络,所述社交网络包括多个用户,所述社交网络的部分用户带有已知分组标签。

本发明实施例可获取需要进行用户分组的社交网络,该社交网络中的部分用户提前标注有已知分组标签,以辅助后续迭代的用户分组处理,趋于已知分组标签的用户划分到同一分组的方向。

步骤s210、针对所述社交网络的用户,迭代的进行用户分组处理,直至得到的用户分组结果相应的目标函数达到极值;其中,所述目标函数至少包括:目标惩罚值,所述目标惩罚值表示相同已知分组标签的用户被划分到同一分组的可能性。

在获取社交网络后,本发明实施例可以目标函数达到极值为指导,针对社交网络的用户,迭代的进行用户分组处理(即下一次的用户分组处理是建立在上一次迭代得到的用户分组结果的基础上),使得最终得到的用户分组结果相应的目标函数达到极值。

由于本发明实施例中的目标函数至少包括目标惩罚值,以表示相同已知分组标签的用户被划分到同一分组的可能性,因此在多次迭代的用户分组处理后,最终得到的用户分组结果相应的目标函数达到极值,则可使得最终得到的用户分组结果趋于相同已知分组标签的用户被划分到同一分组的情况,得到具有较高准确性的用户分组结果。

可选的,在针对所述社交网络的用户,迭代的进行用户分组处理的过程中,所进行的一次用户分组处理可参照前文相应部分所示。

可选的,在每次得到的用户分组结果中,各分组所包含的用户可分别使用一代表用户表示(即一次划分得到的各分组可能均包含多个用户,可对于每一分组,可使用分组的代表用户对该分组所包含的多个用户进行表示,使得一次得到的用户分组结果中各分组均对应有一代表用户),以减少数据处理量。

步骤s220、将社交网络中的用户在所述目标函数达到极值的用户分组结果中所属的分组,作为最终的用户分组结果。

可选的,由于所得到的用户分组结果中各分组所包含的用户可能使用相应的代表用户进行表示,因此最后得到的用户分组结果中各分组可能存在合并用户时所隐藏的用户,本发明实施例可将各分组中隐藏的用户进行展示,确定最后得到的用户分组结果中各分组所包含的用户,输出最后得到的用户分组结果中,各用户的标定分组标签,及各分组相应的已知分组标签。

显然,上述描述的用户分组结果中各分组所包含的用户,使用代表用户进行表示的方式仅是可选的,本发明实施例也可在得到上一次迭代的用户分组结果时,直接基于各分组所包含的用户进行下一次迭代的用户分组处理。

本发明实施例提供的社交网络用户分组方法包括:获取社交网络,所述社交网络包括多个用户,所述社交网络的部分用户带有已知分组标签;针对所述社交网络的用户,迭代的进行用户分组处理,直至得到的用户分组结果相应的目标函数达到极值;其中,所述目标函数至少包括:目标惩罚值,所述目标惩罚值表示相同已知分组标签的用户被划分到同一分组的可能性;将社交网络中的用户在所述目标函数达到极值的用户分组结果中所属的分组,作为最终的用户分组结果。

本发明实施例提供的社交网络用户分组方法,在衡量用户分组效果的目标函数中至少加入了目标惩罚值,以表示相同已知分组标签的用户被划分到同一分组的可能性,从而在针对社交网络的用户进行迭代的用户分组处理后,可使得最终得到的用户分组结果趋于相同已知分组标签的节点被划分到同一分组的情况,提高用户分组结果的准确性。

可选的,需要说明的是,传统的用户分组的目标是以用户之间的关系紧密程度进行衡量,如在数学模型的表达上,传统的用户分组的目标是以节点之间的连接紧密程度进行衡量,一般是通过一个量化的指标来刻画分组内部节点连接的紧密程度(即分组内部用户间的关系紧密程度),并以该量化的指标作为传统的用户分组的目标函数;本发明实施例除在用户分组的目标函数中使用传统的刻画分组内部节点连接的紧密程度的指标外,还加入了目标惩罚值,以衡量相同已知分组标签的用户被划分到同一分组的可能性,以使得本发明实施例最终得到的用户分组结果,除可保留用户之间的关系紧密程度的衡量指标外,还可考虑相同的已知分组标签的用户被划分到同一分组的可能性。

可选的,在一种可选实现上,本发明实施例可使用模块度作为刻画分组内部用户间的关系紧密程度的量化指标,在数学模型的表示上,模块度可以是表示分组内部节点的真实边数和随机边数的差,如果这个差越大就代表分组内部节点的连接越紧密,反之,越松散。

可选的,在每次得到的用户分组结果中各分组对应一代表用户的情况下,本发明实施例对于某一次迭代得到的用户分组结果,用户分组结果相应的模块度的计算可以是:根据该用户分组结果中代表节点的个数和各边的权重值,确定该用户分组结果相应的模块度;

可选的,作为一种可选实现,对于某一次迭代得到的用户分组结果,用户分组结果相应的模块度的计算可以根据如下公式1实现;

其中,公式1中存在如下已知变量:n为某一次迭代得到的用户分组结果的代表节点的个数(即代表用户的个数),m为某一次迭代得到的用户分组结果的所有边的权重值的和,aij为连接代表用户i和代表用户j的边权重,ki为代表用户i的度(即所有连接该代表用户i的边的权重值的和);代表随机边数;δ(ci,cj)为delta(狄拉克)函数,当输入相同时为1,否则为0,即代表用户i的标定分组标签与代表用户j的标定分组标签相同时,值为1,否则为0;

公式1中存在如下未知变量:ci,表示代表用户i所在的标定分组标签。

需要说明的是,对于某一次迭代得到的用户分组结果,本发明实施例可根据该用户分组结果中代表用户的个数和各边的权重值,确定该用户分组结果相应的模块度;上述公式1仅是以此确定模块度的一种可选方式。

本发明实施例在目标函数加入目标惩罚值的情况下,对于某一次迭代得到的用户分组结果,用户分组结果相应的目标函数可以包括:用户分组结果相应的模块度与目标惩罚值的和;

可选的,在每次得到的用户分组结果中各分组对应一代表用户的情况下,对于某一次迭代得到的用户分组结果,用户分组结果相应的目标惩罚值的确定可以是:可根据已知分组的个数,该用户分组结果所划分的分组的个数,该用户分组结果中各已知分组所包含的用户个数,以及各划分的分组中属于各已知分组的用户个数,确定相应的目标惩罚值。

可选的,本发明实施例所使用的目标函数的一种可选表示可以如下公式2所示;

其中,表示目标惩罚值;在该形式的目标惩罚值下,目标惩罚值越大,代表带有相同已知分组标签的用户被划分到同一分组的可能性越大,效果越好;反之,则可能性越小,效果越差;

上述公式2中存在如下已知变量:其中,与公式1定义一致,γ≥1,λ≥0为预先定义好数值的参数,可根据实际情况选定:γ越大,所划分的分组大小就越小;λ越大,越能迫使位于同一个已知分组的用户被划分在一个分组;j为预先标定的已知分组个数;

公式2中存在的未知变量为:标定分组标签定义如公式1,k为所划分的分组的个数,nk代表在已知分组标签的用户中,第k个已知分组所包含的用户个数,wkj代表当前第j个划分的分组中,含有属于第k个已知分组的用户个数。

可以理解是,在给定目标函数的情况,用户分组的迭代过程就是通过各次迭代得到的各代表用户的标定分组标签,来使得目标函数达到极值(如目标函数达到最大化)。

可选的,本发明实施例所进行的用户处理分组的迭代过程,可分为初始化用户分组处理和非初始化用户分组处理。可选的,图4示出了在对社交网络进行初始化用户分组处理后,所进行的用户处理分组的流程,参照图4,该流程可以包括:

步骤s300、获取社交网络,所述社交网络的部分用户标注有已知分组标签。

步骤s310、将社交网络中的每一个用户自成分组,并以各用户作为相应分组的代表用户,初始化社交网络各代表用户的标定分组标签,得到初始化的用户分组结果。

在对社交网络进行初始化用户分组处理的过程中,本发明实施例可将社交网络中的一个用户构成一个分组,从而社交网络中的各用户可作为其所构成的分组的代表用户,并进行社交网络中各代表用户的标定分组标签的初始化,得到初始化的用户分组结果;相应的,在数学模型的表达上,本发明实施例可将社交网络中的一个节点构成一个分组,从而社交网络中的各节点可作为其所构成的分组的代表节点,并进行社交网络中各代表节点的标定分组标签的初始化,得到初始化的用户分组结果;

可选的,在初始化社交网络各代表用户的标定分组标签时,本发明实施例可将社交网络中各代表用户的序号作为,各代表用户的标定分组标签;即对于社交网络中的一代表用户,该代表用户中的序号可被初始化为该代表用户的分组标签。

步骤s320、确定所述初始化的用户分组结果相应的目标函数,所述目标函数至少包括:模块度与目标惩罚值;所述模块度表示分组内部用户的关系紧密程度;所述目标惩罚值表示相同已知分组标签的用户,被划分到同一分组的可能性。

对于所得到的初始化的用户分组结果,本发明实施例可确定初始化的用户分组结果相应的模块度以及目标惩罚值,该目标惩罚值可表示初始化的用户分组结果中,相同已知分组标签的用户被划分到同一分组的可能性,该模块度可表示初始化的用户分组结果中,分组内部用户的关系紧密程度;

从而将初始化的用户分组结果相应的模块度与目标惩罚值的和,作为所述初始化的用户分组结果相应的目标函数。

可选的,目标函数的具体确定计算方式可参照上文相应部分的介绍;如在初始化社交网络各代表用户的标定分组标签后,可计算nk,wkj相应的值,根据公式2确定初始化的用户分组结果相应的目标函数;显然目标函数的计算不限于公式2所示,依照上文描述的模块度和目标惩罚值的计算原理,也可能使用其他变形公式实现。

步骤s330、遍历初始化的用户分组结果中的每一代表用户。

步骤s340、对于遍历到的一代表用户,将该代表用户分别归属到各邻居代表用户所在的分组,并分别计算该代表用户分别归属到各邻居代表用户所在的分组后相应的各目标函数,与所述初始化的用户分组结果相应的目标函数的增益,取增益最大的邻居代表用户所在分组作为该代表用户重新划分到的分组,并将该代表用户的标定分组标签标记为,该增益最大的邻居代表用户的标定分组标签。

可选的,步骤s340的介绍可参照上文步骤s130部分的描述,此处不再赘述;只不过步骤s340是在初始化的用户分组结果的基础上所实现的(初始化的用户分组结果可以认为是,步骤s130所示的上一次用户分组结果的一种情况);

并且步骤s240中,一代表用户归属到一邻居代表用户所在的分组后相应的目标函数包括了模块度与目标惩罚值;具体的,本发明实施例可确定一代表用户归属到一邻居代表用户所在的分组后相应的模块度以及目标惩罚值,将所确定的相应的模块度与目标惩罚值的和,作为一代表用户归属到一邻居代表用户所在的分组后相应的目标函数;其中,该目标惩罚值可表示一代表用户归属到一邻居代表用户所在的分组后,相同已知分组标签的用户被划分到同一分组的可能性。

可选的,此处将代表用户的标定分组标签标记为,该增益最大的邻居代表用户的标定分组标签,可以是:将代表用户的标定分组标签调整为,该增益最大的邻居代表用户初始化时设置的标定分组标签(如该邻居代表用户的序号),而不涉及到已知分组标签。

一般而言,在对社交网络中的用户提前标注已知分组标签后,已知分组标签的标注还出现在确定一次用户分组结果中各分组的代表用户,对各分组的代表用户进行已知分组标签的标注的阶段。

步骤s350、判断初始化的用户分组结果中的各代表用户是否均已遍历,若否,返回步骤s340,若是,执行步骤s360。

步骤s360、确定初始化的用户分组结果中的各代表用户划分到的分组,确定划分的各分组对应的代表用户,并标注各代表用户的已知分组标签,得到本次用户分组结果。

步骤s370、确定本次用户分组结果相应的目标函数。

可选的,本次用户分组结果相应的目标函数至少包括:本次用户分组结果相应的模块度与目标惩罚值;所述目标惩罚值表示本次用户分组结果中,相同已知分组标签的用户,被划分到同一分组的可能性。可选的,本次用户分组结果相应的目标函数的计算方式可参照上文相应部分描述。

步骤s380、判断本次用户分组结果相应的目标函数,与所述初始化的用户分组结果相应的目标函数的差值,是否大于零,若是,执行步骤s390,若否,执行步骤s400。

可选的,此处以目标函数最大化,作为目标函数达到极值的一种表现。

步骤s390、将本次用户分组结果作为下一次迭代时相应的上一次用户分组结果,进入下一次迭代。

步骤s400、将社交网络中各用户在本次用户分组结果相应所属的分组,作为最终的用户分组结果。

一般而言,针对初始化的用户分组结果进行一次迭代的用户分组处理,并不能使得目标函数达到极值,因此图4所示流程执行后,将进入到非初始化用户分组处理的过程。

非初始化用户分组处理的过程可结合图1和图4所示,进行参照,用户分组处理的原理是相同的;优选的,非初始化用户分组处理的过程中,一次用户分组结果相应的目标函数可至少包括:模块度和目标惩罚值;非初始化用户分组处理的过程中,一次用户分组结果相应的目标惩罚值表示,该次用户分组结果相应的相同已知分组标签的用户被划分到同一分组的可能性。

为便于理解,作为一种示例,社交网络的数学模型形式可如图5所示,图5表示了某俱乐部成员的关系网络,一节点表示一成员,边代表所连接的两成员认识;

则在进行用户分组时,可先对社交网络进行初始化用户分组处理,得到初始化的用户分组结果;具体的,可将社交网络中各节点自成一分组,并将各节点的序号,作为初始化的各节点的标定分组标签,同时,对社交网络中的部分节点进行已知分组标签的标注;如图5所示,序号为0的节点可自成一个分组,且成为该分组的代表节点,并且标定分组标签为序号0,其他节点的情况同理;而这些节点中存在部分标注了已知分组标签的节点;

从而,可根据公式2确定出对初始化的用户分组结果相应的目标函数;该目标函数包括了相应的模块度和目标惩罚值的和;

进而,可遍历初始化的用户分组结果中的每一代表节点,对于遍历到的一代表节点,将该代表节点分别归属到各邻居代表节点所在的分组,并分别计算出与初始化的用户分组结果相应的目标函数的增益,将该代表用户划分到增益最大的邻居代表节点所在的分组,并将该代表节点的标定分组标签标记为,该增益最大的邻居代表节点的标定分组标签;

以上述方法,遍历完初始化的用户分组结果中的每一代表节点后,则可确定出初始化的用户分组结果中的每一代表节点所划分到的分组,形成如图6所示结果;相比于图5所示,图6中一个圆形范围内的节点,表示划分后的一个分组所具有的节点,且一分组中各节点的标定分组标签相同;

进一步,可分别将划分出的各分组所包含的节点进行合并,确定出划分出的各分组的代表节点,并标注各代表节点的已知分组标签,得到如图7所示本次用户分组结果;从而基于本次用户分组结果更新n,m,aij,ki的值,基于公式2计算本次用户分组结果的目标函数;

如果本次用户分组结果的目标函数与初始化的用户分组结果相应的目标函数的差值,大于零,说明本次用户分组结果的目标函数并不是最大化的,可将本次用户分组结果作为下一次迭代时所使用的上一次用户分组结果,以上述方式不断的迭代,直至最后一次得到的用户分组结果相应的目标函数达到最大化,输出最后一次得到的用户分组结果中各分组所包含节点对应的用户的标定分组标签,以及各分组相应的已知分组标签,实现趋于真实、准确的用户分组。

需要说明的是,图5所示社交网络的形式仅是作为一种便于描述本案方案的示例说明,实际的社交网络有可能是规模更大、更为复杂的。

基于本发明实施例的社交网络用户分组方法,对社交网络的进行分组,得到用户分组结果后,可确定出各分组的分组性质(一般由各分组相应的已知分组标签指示),根据各分组的分组性质,向各分组所包含的用户推荐相应的信息,实现对不同分组所包含的用户,针对性的进行信息推荐,提升信息推荐的精度。显然,进行信息推荐仅是本发明实施例提供的社交网络用户分组方法的一种可选应用场景,本发明实施例还可基于所得到的用户分组结果,进行特定性质的社团定位,如定位发现赌博、传销等社团。

本发明实施例提供的社交网络用户分组方法,实际可以认为是一种半监督式的用户分组方法;通过对目标函数进行修改,融合了模块度和部分用户的已知分组标签信息,使得关系比较紧密而且共享相同已知分组标签的用户被尽量划分在一个分组;同时,在目标函数的公式中(如公式2)引入控制变量γ,能有效控制所划分分组的大小;在真实的大规模第三方支付网络的支付数据上,本发明实施例提供的社交网络用户分组方法所划分的分组,与真实分组的重合度较高;同时,所划分的分组大小可被控制,使得每一分组所包含的用户数可被控制在一定数量,达到将社交网络的用户划分成众多规模较小的分组的效果,提升用户分组结果的精度和意义。

为证明本发明实施例提供的社交网络用户分组方法的效果,以说明在目标函数中加入目标惩罚值(表示相同真实分组标签的用户被划分到同一分组的可能性)所带来的用户分组结果的准确性提升;在对第三方支付网络进行抽样实验的基础上,本发明实施例获取了共有1000万以上个节点,3000万以上条边的第三方支付网络,其中872个节点属于5个犯罪团伙;实验的目标是将这个支付网络切割成尽可能小的分组,并且使得同一个犯罪团伙的成员尽可能被分到同一个分组中;实验中,将872个犯罪成员平分成两份,一部分用到用户分组的求解,一部分用于测试用户分组的效果;

实验中,采用熵、召回率和分组平均大小作为分组结果的评价指标,分别如下:

(1)熵,

其中,j和k分别表示划分的分组和已知分组的个数,wkj表示划分出的第j个分组所包含第k个已知分组的成员个数,nk表示第k个已知分组的成员个数。显然,如果熵值越小,所划分的分组和已知分组的重合度越高,划分效果越好。

(2)召回率,

其中,j,k,wkj,nk的定义如上。显然,如果召回率越大,则表示更多同属一已知分组的成员被划分到同一个分组,效果越好。

(3)分组平均大小,计算有效检测的分组(即至少包含一个犯罪骨干的分组)大小的平均值:

其中,表示si第i个有效分组的节点个数。有效分组平均大小越小越好。

通过将现有的表现最好的fast-unfolding和label-propagation方法,分别与本发明实施例提供的社交网络用户分组方法,以上述三个指标进行效果比较,并且设置参数γ=10,λ=100;比对结果如下表1所示。

表1

可以看出,label-propagation方法虽然划分出的分组大小很小,但是精度(熵和召回率)都很差。而本发明实施例在三个指标上都优于fast-unfolding的结果;可见,本发明实施例可将社交网络的用户划分成众多规模较小的分组的目的效果,并且划分结果趋于实际情况,用户分组结果具有极高的精度和准确性。

下面对本发明实施例提供的社交网络用户分组装置进行介绍,下文描述的社交网络用户分组装置可以认为是,服务器为实现本发明实施例提供的社交网络用户分组方法所需设置的程序模块。下文描述的社交网络用户分组装置的内容,可与上文描述的社交网络用户分组方法的内容相互对应参照。

图8为本发明实施例提供的社交网络用户分组装置的结构框图,该社交网络用户分组装置可应用于服务器,参照图8,本发明实施例提供的社交网络用户分组装置可以包括:

社交网络获取模块100,用于获取社交网络,所述社交网络包括多个用户,所述社交网络的部分用户带有已知分组标签;

迭代处理模块200,用于针对所述社交网络的用户,迭代的进行用户分组处理,直至得到的用户分组结果相应的目标函数达到极值;其中,所述目标函数至少包括:目标惩罚值,所述目标惩罚值表示相同已知分组标签的用户被划分到同一分组的可能性;

结果输出模块300,用于将社交网络中的用户在所述目标函数达到极值的用户分组结果中所属的分组,作为最终的用户分组结果。

可选的,迭代处理模块200,用于针对所述社交网络的用户,迭代的进行用户分组处理,具体包括:

获取上一次用户分组结果;其中,所述上一次用户分组结果中的每一分组对应有一代表用户,所述上一次用户分组结果中的各代表用户带有标定分组标签,且至少部分代表用户带有已知分组标签;

遍历上一次用户分组结果中的各代表用户,确定每一遍历的代表用户重新划分到的分组,并将每一遍历的代表用户的标定分组标签调整为,重新划分到的分组的代表用户相应的标定分组标签;

在将每一遍历的代表用户重新划分分组后,确定各分组对应的代表用户,并重新标注各代表用户的已知分组标签,得到本次用户分组结果;

若本次用户分组结果相应的目标函数未达到极值,则将本次用户分组结果作为下一次迭代时相应的上一次用户分组结果,进入下一次迭代,直至得到的用户分组结果相应的目标函数达到极值。

可选的,迭代处理模块200,用于获取上一次用户分组结果,具体包括:

将社交网络中的每一个用户自成分组,并以各用户作为相应分组的代表用户,将社交网络中各代表用户的序号,分别初始化为各代表用户的标定分组标签,得到初始化的用户分组结果;

或,获取上一次迭代得到的目标函数未达到极值的用户分组结果。

可选的,迭代处理模块200,用于遍历上一次用户分组结果中的各代表用户,确定每一遍历的代表用户重新划分到的分组,具体包括:

对于遍历到的一代表用户,将该代表用户分别归属到各邻居代表用户所在的分组,并分别计算该代表用户分别归属到各邻居代表用户所在的分组后相应的各目标函数,与所述上一次用户分组结果相应的目标函数的增益;

取增益最大的邻居代表用户所在分组作为该代表用户重新划分到的分组。

可选的,迭代处理模块200,用于将每一遍历的代表用户的标定分组标签调整为,重新划分到的分组的代表用户相应的标定分组标签,具体包括:

对于遍历到的一代表用户,将该代表用户的标定分组标签调整为,该增益最大的邻居代表用户的标定分组标签。

可选的,迭代处理模块200,用于在将每一遍历的代表用户重新划分分组后,确定各分组对应的代表用户,具体包括:

将划分到同一个分组的至少一个用户合并成一个用户,并以各分组合并得到的用户作为各分组相应的代表用户;

可选的,迭代处理模块200,用于重新标注各代表用户的已知分组标签,具体包括:

统计各分组中具有相同已知分组标签的个数最多的用户,将一分组中具有相同已知分组标签的个数最多的用户相应的已知分组标签,作为该分组的代表用户所标注的已知分组标签。

可选的,迭代处理模块200,用于若本次用户分组结果相应的目标函数未达到极值,则将本次用户分组结果作为下一次迭代时相应的上一次用户分组结果,具体包括:

确定所述上一次用户分组结果相应的目标函数,及本次用户分组结果相应的目标函数;判断本次用户分组结果相应的目标函数,与上一次用户分组结果相应的目标函数的差值是否大于零,若判断结果为是,将本次用户分组结果作为下一次迭代时相应的上一次用户分组结果,进入下一次迭代。

可选的,对于一次迭代得到的用户分组结果,迭代处理模块确定相应的目标惩罚值的过程可以包括:

对于一次迭代得到的用户分组结果,根据已知分组的个数,该用户分组结果所划分的分组的个数,该用户分组结果中各已知分组所包含的用户个数,以及各划分的分组中属于各已知分组的用户个数,确定相应的目标惩罚值。

可选的,对于一次迭代得到的用户分组结果,可根据公式确定相应的目标惩罚值;

其中,λ为预先定义的参数,j为预先标定的已知分组的个数,k为该用户分组结果所划分的分组的个数,nk代表在已知分组标签的用户中,该用户分组结果中的第k个已知分组所包含的用户个数,wkj代表该用户分组结果中第j个划分的分组中,含有属于第k个已知分组的用户个数。

可选的,在本发明实施例中,目标函数还可包括模块度,所述模块度表示分组内部用户的关系紧密程度;

对于一次迭代得到的用户分组结果,迭代处理模块确定相应的目标函数的过程可以包括:

对于一次迭代得到的用户分组结果,确定该用户分组结果相应的模块度及目标惩罚值,将该用户分组结果相应的模块度及目标惩罚值的和,作为相应的目标函数。

可选的,社交网络的一用户可被抽象为一节点,节点之间连接的边表示节点之间的关系,边的权重值用于刻画所连接的节点对应的用户之间的关系紧密程度;

则对于一次迭代得到的用户分组结果,可根据公式

确定相应的目标函数;

其中,表示相应的模块度,表示相应的目标惩罚值;n为该一次迭代得到的用户分组结果的代表用户的个数,m为该一次迭代得到的所有边的权重值的和,aij为连接代表用户i和代表用户j的边权重,ki为代表用户i的度(即所有连接该代表用户i的边的权重值的和);代表随机边数;δ(ci,cj)为delta(狄拉克)函数。

可选的,结果输出模块300,用于将社交网络中的用户在所述目标函数达到极值的用户分组结果中所属的分组,作为最终的用户分组结果,具体包括:

输出所述目标函数达到极值的用户分组结果中,各分组所包含的各用户的标定分组标签,及各分组相应的已知分组标签。

本发明实施例提供的社交网络用户分组装置可应用于服务器,服务器的一种可选硬件结构框图可如图9所示,包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;

在本发明实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;

可选的,处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

其中,存储器3存储有程序,处理器1调用存储3所存储的程序,以实现上述所述的社交网络用户分组方法的步骤。

可选的,所述程序的功能可参照上文相应部分的描述。

本发明实施例还提供一种存储介质,该存储介质存储有适于处理器执行的程序,以实现上述所述的社交网络用户分组方法的步骤;

可选的,所述程序的功能可参照上文相应部分的描述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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