一种基于约束的种子节点数据挖掘系统的制作方法

文档序号:20948768发布日期:2020-06-02 20:00阅读:209来源:国知局
一种基于约束的种子节点数据挖掘系统的制作方法

本发明涉及一种数据挖掘系统,具体涉及一种基于约束的种子节点数据挖掘系统,属于数据技术领域。



背景技术:

影响力最大化问题最早源于市场营销领域,早期在利用数据挖掘改进病毒营销的研究中首次提出了社交网络影响力最大化的问题,即通过在网络中选择k个最有影响力的营销点去推销产品,使得最后购买该产品的人最多。后来又给出了作为离散优化问题的影响最大化的系统性研究。均从社交网络分析交互式粒子系统和市场营销的早期工作中提取出了两个非常经典的基础模型:线性阈值模型(linearthreshold,lt)和独立级联模型(independentcascade,ic)。不仅证明了优化问题是np难的,而且还提出了一种贪婪方法,可以保证最优结果近似在(1-1/e)因子内。由于大量的蒙特卡罗模拟导致了时间复杂度很高,因此如果面对实际网络中拥有上万,上千万甚至上亿个节点的大型网络时,贪心方法的时间过度消耗会使得其根本无法使用。

针对贪心方法时间的低效性和不能扩展到大规模社交网络的问题,此后许多研究者基于这两种模型进行了不断改进,各种不同的方法也相继被提了出来,如celf方法、celf++方法、newgreedy方法、mixgreedy方法等。尽管如此,面对成百上千万的大型网络,其高时间成本问题仍然未能得到很好的解决。为了进一步提升选种子的效率,一些启发式方法也被提了出来,如degreediscount方法、group-pagerank策略、imrank、im-pla方法、geneticalgorithm等。然而,这些方法选择种子依赖于迭代计算,这也是造成很高时间成本的关键原因之一。



技术实现要素:

本发明针对选择种子节点的过程中存在性能问题和影响力重叠问题,提出一种基于约束的种子节点数据挖掘系统,具体步骤为:该系统包括影响力计算装置、候选种子筛选装置和重叠开销检查装置,影响力计算装置计算节点的影响力,候选种子筛选装置以影响力计算装置计算得到的影响力为输入,筛选出候选种子节点,重叠开销检查装置以候选种子节点筛选装置筛选出的候选种子为输入,选择出种子节点,其中:

影响力计算装置包括活跃度计算模块、扩散意愿计算模块、传播潜力计算模块和直接影响力计算模块,活跃度计算模块、扩散意愿计算模块和传播潜力计算模块的输出共同构成直接影响力计算模块的输入;

候选种子节点选择装置用于筛选候选种子节点,由受限邻居节点集合模块、受限扩散影响力计算模块和筛选模块组成;

影响力重叠检测装置由重叠开销计算模块和种子节点决策模块组成。

进一步地,在影响力计算装置中,活跃度计算模块用于计算节点参与信息传播的活跃程度,其中节点vi的活跃度记为act(vi),由计算,nvi表示vi的出边邻居集合,wvi,vj表示连接vi和vj的边的权重。act(vi)越大,表明vi分享信息的频率越高;

扩散意愿计算模块定量计算节点vi将信息传播给vj的积极程度,vi对vj的扩散意愿记为dw(vi,vj),dw(vi,vj)是vi分享信息给vj的优选项,其值越高,表示vi越倾向于向vj共享信息;

传播潜力计算模块计算节点传播信息的潜在能力,vi的传播潜力记为dp(vi),其中,outdegree(vi)表示vi的出度,dp(vi)值越高,节点vi的扩散潜力越大;

直接影响计算模块计算一个节点对邻居节点的影响程度,vi对vj的直接影响力记为di(vi,vj),di(vi,vj)=ω1act(vi)+ω2wdiffu(vi,vj)+ω3dp(vi),其中ω1、ω2、ω3分别为节点活跃度、扩散意愿和传播潜力的权重系数。

进一步地,候选种子节点选择装置中,受限邻居节点集合模块输入一个给定节点,输出该节点的受限邻居节点集合,如果从vi出发的一个消息能够在传播有限的距离后到达vj,则vj便是vi的受限邻居,记作为vi受限邻居节点集合描述vi可以通过贪婪的方式传播影响力的节点集合,记为cnvi,

受限扩散影响力计算模块用于计算任意节点在受限邻居间的影响力,输入待计算的节点、该节点的受限邻居集合以及该节点对各个受限邻居的直接影响力,vi的受限扩散影响力activate(vi,vj)决定了vj是否能够被vi激活,如果vi能够激活vj,则activate(vi,vj)=1,否则其值为0。

筛选模块选出受限扩散影响力最大的2k个节点作为候选种子节点,其中k表示种子节点的数量。

进一步地,候选种子节点选择装置的工作流程为:

步骤1:记划定有限邻居的最大距离为max-distance,令dis=1;

步骤2:从网络中选择一个节点记为curnode,构建只包含curnode的集合n,

步骤3:对于集合n中的每个节点,执行下列步骤:

步骤3.1:利用节点活跃度计算模块和扩散潜力计算模块分别计算当前节点活跃度和扩散潜力;

步骤3.2:对于当前节点,利用受限邻居节点集合模块计算与当前节点距离为dis的受限邻居集合l;

步骤3.3:利用受限扩散影响力计算模块计算该节点在受限邻居集合中的影响力,具体步骤如下:

步骤3.3.1:对于l中的每个非激活邻居,执行下列操作:

步骤3.3.1.1:利用扩散意愿计算模块计算当前节点对当前非激活邻居的扩散意愿;

步骤3.3.1.2:利用直接影响力计算模块计算当前节点对当前非激活邻居的直接影响力;

步骤3.3.1.3;如果直接影响力大于预定义的阈值θ,则将该邻居置为激活状态,并将其加入集合n中。

步骤3.3.2:从n中删除当前节点,令dis=dis+1,

步骤4:重复步骤3,直至dis大于预定义的距离max-distance;将此过程中激活的受限邻居数量作为curnode的受限扩散影响力;

步骤5:重复步骤2到步骤4,得到网络中每个节点的受限扩散影响力;

步骤6:利用筛选模块,选出2k个候选种子节点。

进一步地,影响力重叠检测装置工作过程如下:

步骤1:按受限扩散影响力由高到低的顺序对所有的候选种子节点排序;

步骤2:将第一个候选种子节点作为种子加入种子集合;

步骤3:对后续的每个候选种子节点执行下列操作:

步骤3.1:利用重叠开销计算模块计算当前候选种子节点和每个种子的重叠开销;

步骤3.2:利用种子节点决策模块计算是否将当前候选种子节点作为种子节点;如果可以把当前候选节点作为种子,则将此候选种子节点加入种子节点集合;

步骤4:重复步骤3,直到获得k个种子节点。

本发明提出了有限贪婪的种子选择思想,在有限的邻居之内通过贪婪方式识别出影响力最大的节点,即利用了贪婪可以获取接近最优结果的长处,又将贪婪搜索限制在一定范围之内,从而降低时间复杂度。本发明还提出了重叠开销计算模型。在决定是否将一个节点作为种子节点时,根据此模型计算该节点和种子节点之间的重叠开销。如果重叠开销不满足要求,则将该节点排除在种子节点之外,以此降低由影响力重叠引起的传播效率缩水。

附图说明

图1为本发明系统结构图。

图2为重叠效果对比图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

本实施例提供了种子节点挖掘方法的一种技术方案。所述的种子节点挖掘方法由影响力计算装置、候选种子筛选装置和重叠开销检查装置协同执行。并且,所述的种子节点挖掘方法集成部署在多台通过网络互连的计算机内部。

参见图1,所述的种子节点挖掘方法包括:

所述的种子节点挖掘方法由影响力计算装置、候选种子筛选装置和重叠开销检查装置构成。所述的影响力计算装置计算节点的影响力,所述的候选种子筛选装置以所述的影响力计算装置计算得到的影响力为输入,筛选出候选种子节点,所述的重叠开销检查装置以所述的候选种子节点筛选出的候选种子为输入,选择出种子节点。

所述的影响力计算装置由活跃度计算模块、扩散意愿度计算模块、传播潜力计算模块以及直接影响力计算模块三部分构成。所述的影响力计算装置以节点的拓扑属性、社交属性为输入,计算节点的直接影响力。

所谓社交属性包括但不限于发布和接收社交信息的频率等。

所谓网络拓扑属性包括节点的度属性、邻居关系等。

所述的活跃度计算模块根据活跃度模型计算节点的活跃度。所述的活跃度模型描述在节点既定社交属性的前提下节点在社交活动中的活跃度。所述的活跃度指的是节点参与信息共享的频繁程度。

所述的扩散意愿度计算模块根据扩散意愿度模型计算节点相对于某邻居节点的扩散意愿度。所述的扩散意愿度模型在节点既定的社交属性和网络拓扑属性的前提下描述其向某邻居节点共享信息的倾向。节点对某邻居节点的扩散意愿度越大,表明此节点越倾向于向此邻居节点共享信息。

所述的传播潜力计算模块根据传播潜力模型计算节点传播信息的潜在能力。所述的传播潜力模型描述在既定节点拓扑属性下描述节点在网络中传播信息的潜在能力。

所述的直接影响力计算模块根据直接影响力模型计算节点对某个邻居节点的影响程度。所述的直接影响力计算模块根据所述的节点的活跃度、扩散意愿度以及传播潜力描述节点在信息传播过程中对某邻居节点的影响程度。

基于约束的种子节点数据挖掘装置包括影响力计算装置、候选种子筛选装置和重叠开销检查装置。其中,影响力计算装置由活跃度计算模块、扩散意愿度计算模块、传播潜力计算模块以及直接影响计算模块四部分构成。活跃度计算模块、扩散意愿度计算模块和传播潜力计算模块的输出共同构成直接影响计算模块的输入。

活跃度计算模块用于计算参与信息传播的活跃程度,它的计算操作根据定义1设置。

定义1(活跃度):描述节点参与信息传播的活跃程度。节点vi的活跃度记为act(vi),式中:定示vi的出边邻居集合,表示连接vi和vjd边的权重。act(vi)越大,表明vi分享信息的频率越高。

扩散意愿度计算模块定量计算节点vi将信息传播给vj的积极程度。该模块执行的的主要操作根据定义2设置。

定义2(扩散意愿):描述两个节点间扩散信息的积极程度。vi对vj的扩散意愿记为dw(vi,vj),dw(vi,vj)是用户vi分享信息给vj的优选项,其值越高,表示vi越倾向于向vj共享信息。

传播潜力计算模块计算节点传播信息的潜在能力。该模块的主要操作依据定义3设置。

定义3(传播潜力):描述节点传播信息的潜在能力。vi的传播潜力记为dp(vi),outdegree(vi)表示vi的出度。节点的传播潜力反映该节点能够传递消息的范围大小,dp(vi)的值越高,节点vi的传播潜力就越大。

直接影响力计算模块计算一个节点对邻居节点的影响程度。直接影响力计算模块执行的操作根据定义4设置。

定义4(直接影响力):描述一个节点对某个邻居节点的影响程度。vi对vj的直接影响力记为di(vi,vj),di(vi,vj)=ω1act(vi)+ω2wdiffu(vi,vj)+ω3dp(vi),其中ω1、ω2、ω3分别为节点活跃度、传播意愿及传播潜力的权重系数。这三个系数的值可通过序关系分析法确定。

候选种子节点选择装置用于筛选候选种子节点,候选种子节点是最有可能成为种子的节点。该装置由受限邻居节点集合模块、受限扩散影响力计算模块和筛选模块组成。

受限邻居节点集合模块的输入是一个给定节点,输出是该节点的受限邻居节点集合。该模块的操作根据定义5和定义6设置。

定义5(受限邻居):如果从vi出发的一个消息能够在传播有限的距离后到达vj,则vj便是vi的有限邻居,记作为

定义6(受限邻居节点集合):vi受限邻居节点集合描述vi可以通过贪婪的方式向其传播影响力的节点集合,记为

受限扩散影响力计算模块用于计算任意节点在受限邻居间的影响力。它的输入有三项:待计算的节点、该节点的受限邻居集合以及该节点对各个受限邻居的直接影响力。第二个参数由受限邻居节点集合模块产生,第三个参数由影响力计算装置的直接影响计算模块产生。

定义7(受限扩散影响力):vi的扩散影响力由式(7)计算。

在该式中,activate(vi,vj)决定了vj是否能够被vi激活。activate(vi,vj)由公式(8)定义。由此式可知,如果vi能够激活vj,则activate(vi,vj)=1,否则其值为0。

筛选模块的主要任务是选出2k个候选节点,其中k表示种子节点的数量。该模块根据受限扩散影响力计算模块的计算结果,按照受限扩散影响力对所有节点进行降序排列,取前2k个节点作为候选种子节点。

候选种子节点的扩散影响力要比非候选节点大。但是,如果候选节点的影响力彼此重叠,那它们的影响力就会大打折扣。为了最大化种子节点的传播影响力,必须降低重叠开销。本发明采取的策略是如果一个候选节点与种子节点的重叠开销小于预定义的阈值,则该候选节点被选作种子节点;否则,剥夺该候选节点成为种子节点的权力。依据以上策略,影响力重叠检测装置由两个模块构成,分别是重叠开销计算模块和种子节点决策模块。

重叠开销计算模块计算一个给定候选种子节点与一个种子节点之间的重叠开销。它的主要操作根据定义8设置。

定义8(重叠开销):种子节点si和候选节点vj的重叠开销记为oc(si,vj)。

式(9)中,δ是一个常量,dis表示从si到vj或者vj到si的距离,可以用跳数表示。oc(si,vj)随着si到vj之间的距离增加而减小,当si和vj互不可达时,oc(si,vj)的值最小,记为0。

种子节点决策模块根据重叠开销计算模块得到的候选种子节点与各个种子节点的重叠开销,决定是否将此候选种子节点作为种子节点。此模块采取的决策策略如下:只要候选节点与任一种子节点的重叠开销大于预定义的开销阈值δcost,则剥夺该候选节点成为种子节点的权力。只有当该候选节点与所有种子节点的重叠开销都小于δcost时,该候选节点才被选为种子节点。

以图2为例。假定v2已经被选择为种子点,v3和v9为候选种子节点,由于v2和v3直接相连,它们的距离为1,oc(v2,v3)=δ。而v2和v9互不可达,故oc(v2,v9)=0,显而易见,v9应被选作种子节点。如果δ小于预定义的阈值,则v3会被选作种子节点。如果δ大于等于此阈值,v3则没有资格成为种子节点。

影响力重叠检测装置工作过程如下:

步骤1:按受限扩散影响力由高到低的顺序对所有的候选种子节点排序;

步骤2:将第一个候选种子节点作为种子加入种子集合;

步骤3:对后续的每个候选种子节点执行下列操作:

步骤3.1:利用重叠开销计算模块计算当前候选种子节点和每个种子的重叠开销;

步骤3.2:利用种子节点决策模块计算是否将当前候选种子节点作为种子节点;如果可以把当前候选节点作为种子,则将此候选种子节点加入种子节点集合;

步骤4:重复步骤3,直到获得k个种子节点。

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