基于贪心子图的社会网络节点挖掘方法与流程

文档序号:12722301阅读:315来源:国知局
基于贪心子图的社会网络节点挖掘方法与流程

本发明涉及的是一种社会网络节点挖掘方法。



背景技术:

社会网络中的节点挖掘方法主要分为启发类方法和贪心类方法。前者主要是根据社会网络节点自身属性或者网络自身拓扑结构来衡量网络中各个节点的重要程度,如度中心性算法,由于其计算节点的重要性时仅考虑节点的邻居拓扑结构,虽然其计算速度快,但是精确度欠佳;又如接近中心性算法和中介中心性算法,由于其计算时涉及到整个网络拓扑,所以其算法效率很低。而后者则是通过传播模型对于每一个节点进行传播模拟,进而通过其传播范围的大小来计算节点的重要程度,该类算法由于结合了传播模型进行真实传播,算法效率低下,导致了其不适用于大型社会网络。



技术实现要素:

本发明的目的在于提供一种能够解决现有的社会网络影响力节点挖掘方法中启发类方法在节点挖掘效果上不理想及贪心类方法在算法复杂度上极高这两个问题的基于贪心子图的社会网络节点挖掘方法。

本发明的目的是这样实现的:

步骤一:输入社会网络图,根据邻居子图节点影响潜力算法得出每个节点的影响潜力,把节点按照其影响潜力递减的顺序排序,并选出个影响潜力最大的节点添加到候选集合C1中;

步骤二:根据僵尸节点的定义,抽取社会网络图中符合条件的节点组成集合,并按照“僵尸节点”的本身特异性阈值从高到低排序,从排名中选取前个节点加入到候选集合C2中;

步骤三:对于从候选集合C1中和候选集合C2中共抽取k个节点组成的集合C3,通过改进影响力的线性阈值模型表现为爬山贪婪算法进行传播激活尝试,初始时节点挖掘结果集S为空集,此时对集合C3中的每个节点进行传播模拟,选取激活范围最大的节点加入集合S中,完成第一个节点的选择,同时对每一个被激活的节点进行标记,下一次传播时默认为已激活节点不进行计算,每一次计算之后,剔除该社会网络图中被激活节点,抽取子图进行下一次传播;

步骤四:通过步骤三的传播后对集合C3以被标记为传播过程中的已激活节点的节点进行剔除,此时C3中节点个数变少,重复步骤1和步骤2的节点选取过程,再次选取k个节点填充集合C3;

步骤五:重复步骤三的激活传播过程,直至节点挖掘结果集S达到规模k,结束。

本发明还可以包括:

1、节点的影响潜力的估计公式为:

其中,Γ(i)是节点i的相邻节点集合,C(j)代表节点j的聚集系数,di及dj分别代表节点i及节点j的度。

2、节点i对节点j的影响力通过如下公式计算,

式中,Pi代表源节点i的影响潜力,Pj代表节点j的影响潜力,C(i)为节点i的聚集系数。

3、所述僵尸节点是激活阈值很高,所有的邻居节点都处于激活状态时其自身还无法被激活的节点,僵尸节点的定义通过如下公式表示:

(1+γ)<θ>≤θv≤max{θ12...θn}

其中,γ为僵尸节点的阈值调节参数,取值为[0,1],表示网络中被选为僵尸节点的最低阈值参数,而僵尸节点阈值选取的范围为介于(1+γ)<θ>和网络中阈值最高节点的阈值之间;<θ>为网络的平均阈值,网络平均阈值有如下公式表示:

式中,|V|为网络中节点的数量,θi为节点i的特异性阈值,其取值在网络进行第一次传播之前根据网络的特性随机给出。

本发明的目的是为了解决现有的社会网络影响力节点挖掘算法中启发类方法在节点挖掘效果上不理想及贪心类方法在算法复杂度上极高这两个问题,提出的一种基于贪心子图的节点挖掘改进方法。本发明针对于启发类方法在节点挖掘效果上不理想及贪心类方法在算法复杂度上极高这两个问题,采取先启发后贪心合并计算的理论,提出了基于贪心子图的社会网络节点挖掘算法。该算法首先依据节点度这个重要属性结合了局部拓扑结构的聚集系数估计出节点的影响潜力,根据影响潜力高低排序并加入种子节点候选集合,同时通过对网络的整体评判排序并选择出特异性阈值最高的节点加入种子节点候选集合。在完成候选集合的选择后,通过改进影响力的线性阈值模型表现为贪心子图策略对于集合中的节点进行真实的传播模拟,选取增量影响范围最大的节点加入到最终节点挖掘结果集合中,并且在每一步传播完成时动态的修正候选集合中的节点,重复候选集合修正过程和传播模拟过程直至达到预期规模的节点挖掘结果集合,最终得到理想的节点挖掘效果。

本发明的特点主要体现在:

目前,对于社会网络影响力最大化节点挖掘算法,无论国内还是国外,都在积极的研究,学者们提出了多种模型方法和相应的算法,它们针对不同的网络模型和具体的实际问题,各有特点。本发明在前人研究的基础上,针对于现有的影响力最大化节点挖掘算法在节点选择效果上的不稳定性以及算法执行效率上的低下,同时取其精华的结合了经典算法中的优点和创新,提出了基于节点贪心子图的挖掘算法,其主要观点和内容如下:

(1)节点子图影响潜力估计算法。线性阈值模型一直以来都是最经典的传播模型之一,而在各种应用到该模型的算法中,需要得到模型中的影响力和特异性阈值,线性阈值模型中节点u对于邻节点v存在的影响力buv通常用1/d(v)(d(v)表示网络中节点v的度数)估计,这就表明,该节点周围的所有邻居节点对其的影响力大小都是相同的,显然这并不符合实际,同时也忽略了节点之间的差异性。为了弥补其不足,本发明设计并实现了节点子图影响潜力估计算法,通过影响潜力估计算法挑选出的节点,弥补了只考虑节点本身的缺陷,通过结合邻居节点的拓扑结构更加合理的考虑了近邻影响的效果,计算出社会网络图中每个节点的影响潜力。

首先计算邻居子图中的节点对节点i的影响效果,公式中引入聚集系数C,用来测度网络中长度为3的环形(即三角形),通俗的意义就是说你的两个朋友,他们彼此也有可能互为朋友,这在一个社会网络图中是很容易存在的。在计算一个节点的影响效果时,同时考虑了节点本身以及邻居子图的一些拓扑度量系数,即邻居子图节点的度和节点的聚集系数。节点影响潜力估计公式定义为:

其中,Γ(i)是节点i的相邻节点集合,C(j)代表节点j的聚集系数,亦即通过节点的周围相邻的节点影响力,线性地反映出该节点本身的影响力。

算法以度中心性为基础,结合节点i的周围邻居节点的结构,通过引入邻居节点的聚集系数同时作用在周围节点的度指标上,这样通过综合节点本身的度,再加上节点周围邻居的结构,求得综合作用下该节点在局部的重要程度。如当一个节点的某一个邻居比较重要的话,相应的,该节点的重要性也会提升。而当网络图趋近于全图,即从节点的局部信息来看就是节点的所有邻居节点它们两两彼此之间都存在联系,显而易见,节点的重要程度远没有其为“桥”节点时高,所以节点的局部重要性与其聚集系数成反比。通过公式可以看出,当节点i的邻居节点的聚集系数趋近于1时,节点影响潜力估计公式就趋近于度中心性算法,而邻居节点的聚集系数越小,即邻居节点的局部重要性越高,则节点的影响潜力受其邻居节点的影响程度也就越大。

与此同时,传播模型中的节点影响力则根据节点的影响潜力计算公式递进得出,在计算节点u对节点v的影响效果时,我们同时考虑了节点u及节点v本身的影响潜力,而这在现实应用中也是符合逻辑的,两个人的地位不同,就决定了一个人对另一个人的影响效果是不同的,地位高的人通常对地位相对低的人影响力高一些,即地位高的人说话更有效果一些。

(2)基于贪心子图的节点挖掘算法。本发明的两个算法是一种递进关系,基于节点子图的影响潜力估计算法,通过结合节点邻居的拓扑结构性质,较好的达到了节点局部信息的挖掘效果。然而,这还不足以说明其在全图中的选择效果。因此,本发明递进的引入贪心子图的策略,证明我们选择的影响力最大化节点的全局效果。Kemple和Kleinberg当时提出的爬山贪婪算法确实被证明可以达到63%的近似最优解,算法的准确性非常高。但是在实际计算节点影响力的时候,其时间复杂度也是特别高,对于节点很少的网络尚且需要很长时间,对于现阶段的网络更不适用,因此在实际应用中,几乎不能单独使用贪心算法。本发明于贪心算法在时间复杂度上的局限性,提出了基于贪心子图的改进算法。首先,定义网络中的“僵尸节点”,表示那些激活阈值很高,所有的邻居节点都处于激活状态时,其自身还无法被激活。

在给出僵尸节点的定义之前,需要给出网络的平均阈值这一概念,网络平均阈值定义如公式(2)所示:

式中,|V|为网络中节点的数量,θi为节点i的特异性阈值,其取值在网络进行第一次传播之前根据网络的特性随机给出,取值为[0,1],θi==0表示节点最低激活阈值,即其邻居只要被激活,它也跟着激活,在实际网络中很少存在,θi==1表示节点无法被激活,即最高的激活阈值。节点的特异性阈值用来代表社会网络中每个节点被激活的难易程度,并且在以后的传播中保持不变。

下面给出僵尸节点的定义如公式(3)所示:

(1+γ)<θ>≤θv≤max{θ12...θn} (3)

其中,γ为僵尸节点的阈值调节参数,取值为[0,1],表示网络中被选为僵尸节点的最低阈值参数,而僵尸节点阈值选取的范围为介于(1+γ)<θ>和网络中阈值最高节点的阈值之间。

基于贪心子图的社会网络节点挖掘算法首先针对具体社会网络中的每个节点,通过节点影响潜力估计公式,计算出具体的影响潜力(Pi),计算出来的节点影响潜力能够充分表示节点在局部网络中的重要程度。但这还并不能确保最终影响范围最大的节点一定从影响潜力最大的节点中间产生,为了修正选择结果的不确定性,我们在真实传播之前,还会从僵尸节点与影响潜力节点组成的候选集合中选择k个节点作为备选初始传播节点集合。通过改进影响力的线性阈值模型表现为爬山贪婪策略进行传播模拟,每次选取增量影响范围最大的节点加入最终初始节点集合中。并且在下一次传播之前,判断最终初始激活节点集合规模是否已经达到预期,若未达到预期,还会进行进一步传播节点修正。修正的内容具体为:在一次激活传播完成后,网络中已激活的节点很有可能包含原先被选在候选集合中的节点,而此时应该剔除候选集合中已被选择为激活节点或者已被成功激活的节点,在下一次传播前,重新进行候选集合的初始化,使得候选集合节点数量达到k个。从而保证每一次传播的初始候选集合中节点的个数为k,而这k个种子节点中影响潜力节点和僵尸节点的比例随着具体社会网络的变化而变化。

其次,根据节点子图影响潜力估计算法计算得出的初始节点结合“僵尸节点”共同通过动态爬山贪心算法进行传播最终挖掘出影响力最大化节点。

本发明的技术效果为:

本发明方法在计算节点影响潜力的时候通过研究网络中节点的基本特性来近似评估节点的重要程度,为了提出一个能兼顾时间效率和种子集合传播效果的节点挖掘策略,在评估一个节点在网络中的重要程度时,我们首先考虑的是其局部信息,一是因为节点的局部信息最能反映出一个节点在自身这个范围内的影响程度,二是对于节点全局信息的考量我们并没有忽略,而是放在后面的算法中递进的进行总体评估。在考虑节点局部信息的时候,我们的算法并没有单纯考虑节点本身的属性,而是认为节点的邻居子图中的节点分布,对于该节点影响力的评估也是有很大影响的。所以我们通过度指标和聚集系数指标分别在节点本身信息和其周围邻居的连接情况上综合进行一个节点重要性的评估;通过图2可以直观的看出,本发明提出的基于贪心子图的社会网络节点挖掘算法对于节点的选择效果明显的好于其他几个对比算法。在这5个算法中,GSG算法的位置偏移距离在影响力节点TOP-K的5种情况中偏移距离总和最小,而接近中心性(CC)算法次之。度中心性(DC)算法和中介中心性(BC)算法由于位置偏移距离总和最大,说明这两个算法对于海豚社会网络中的节点影响力挖掘效果最差。

本发明改进了线性阈值模型中的影响力计算方法。在线性阈值模型中,网络中节点之间的影响力通常用节点的度进行计算,即通过1/dj表示节点i对节点j的影响力bij,dj在这里代表节点j的度数。即线性阈值模型中节点i对节点j的影响力定义为:

其中,Γ(j)表示节点j的直接相邻节点集合。

现有的经典判定方法在广泛的应用中虽然也取得了不错的成果,其对节点之间影响力的判断站在受影响节点角度来看,所有的邻居节点对其的影响力是相同的。然而从现实角度出发来看,由于受影响节点的每个邻居节点其本身在网络中的影响力是不同的,所以单纯凭借受影响节点的邻居节点数目来判定其受到的影响力大小还是不准确的。在线性阈值模型中,传统的bij估计并没有考虑到节点的局部拓扑结构,而是对网络中所有的节点都按照节点自身的属性设置一个固定的参数作为节点之间的相互影响力。根据分析得出,这种经典的方法其实也是度指标的一种体现,是网络中节点的度指标作用在节点间相互影响力上的体现,这与度中心性如出一辙,而其缺点和不足也比较明显。

本发明改进了线性阈值模型中影响力的计算公式,计算节点i与节点j之间的作用效果不再使用传统的bij进行估计,而考虑到节点影响潜力在局部拓扑结构中的作用,当然,这种影响力也与节点本身的重要程度有密切的关系,这里用聚集系数的负相关作为调节参数体现。在这里聚集系数的负相关体现了节点在邻居子图(NSG)中的紧密程度,而在考虑节点i对节点j的影响力(bij)的时候,更加注重源节点(节点i)对受众节点(节点j)的影响。在线性阈值模型中应用时,节点i对节点j的影响力通过公式(5)计算出来。

式中,Pi代表节点i的影响潜力,C(i)为节点i的聚集系数。

本发明最后通过上面所述的方法结合爬山贪婪算法提出了一种基于动态爬山贪心策略的社会网络节点挖掘算法,仅仅采用基于节点影响潜力进行节点挖掘并没有利用影响传播的动态过程,还是属于启发类的方法,考虑到贪心类算法在影响范围上具有的优势,因此这最终的节点选择采用贪心策略,以保证算法的最终影响效果。由于贪心算法的不足,本方法还不仅仅采用贪心算法,而是采用基于贪心子图的社会网络节点挖掘算法选取最具影响力的节点,通过首先估计节点的局部影响潜力,并结合上基于线性阈值模型的贪心子图策略,选取最终节点。由图3可知,无论是任何一个算法,随着初始激活节点集合规模的增大,其最终的影响范围都在扩大。由于爬山贪婪算法总是能够得到当前63%的近似最优的传播效果,而通过上面的分析我们可以看出,基于贪心子图的节点挖掘算法相比于在同一个数据集上爬山贪婪算法,前者所选种子集合所激活节点数目并不小于后者所选种子集合所激活的节点数目,这就说明GSG算法在解决影响力最大化节点挖掘问题时的影响效果是比较稳定和高效的。而在图4中就可以看出,当选择相同规模的初始激活节点集合时,GSG算法所需的运行时间大约为Greedy算法的k/n倍,其中k为初始激活节点集合规模,n为实验数据集中总的节点规模。

通过实验数据分析,如图5所示,GSG算法在数据集规模为数万个节点的社会网络上挖掘初始激活节点的运行时间还是可以接受的。如,在Enron email network数据集上选择500个初始激活节点时,GSG算法执行所需的时间为513秒≈8.5分钟;同时,在该数据集上选择1000个初始激活节点时,GSG算法执行所需时间为1456秒≈24分钟,而该数据集的规模已经达到了36k这样一个规模,在社会网络分析研究中数据中型偏大数据集了。

总而言之,通过上面几个对比分析可以看出,本方法提出的基于贪心子图的社会网络节点挖掘算法无论是在初始激活节点集合挖掘的效果方面,还是算法运行时间效率方面,亦或是算法应用在大型复杂网络方面,均表现出了其优越性。

附图说明

图1为本发明的流程框图;

图2为本发明涉及的海豚社会网络节点挖掘算法TOP-K位置偏移图;

图3为本发明的GSG算法和Greedy算法在Wiki-Vote数据集上的传播效果;

图4为本发明的GSG算法和Greedy算法在不同种子节点集规模下的运行时间;

图5为本发明的GSG算法在Enron email network数据集上运行时间。

具体实施方式

下面结合附图举例对本发明作进一步描述。

结合图1,本发明的基于贪心子图的社会网络节点挖掘改进算法通过以下步骤实现:

步骤一:输入社会网络图,根据邻居子图节点影响潜力算法得出每个节点的影响潜力,把节点按照其影响潜力递减的顺序排序,并选出个影响潜力最大的节点添加到候选集合C1中;

步骤二:根据僵尸节点的定义,抽取社会网络图中符合条件的节点组成集合,并按照“僵尸节点”的本身特异性阈值从高到低排序,从排名中选取前个节点加入到候选集合C2中;

步骤三:对于从候选集合C1中和候选集合C2中共抽取k个节点组成的集合C3,通过改进影响力的线性阈值模型表现为爬山贪婪算法进行传播激活尝试,初始时节点挖掘结果集S为空集,此时对集合C3中的每个节点进行传播模拟,选取激活范围最大的节点加入集合S中,完成第一个节点的选择,同时对每一个被激活的节点进行标记,下一次传播时默认为已激活节点不进行计算,每一次计算之后,剔除该社会网络图中被激活节点,抽取子图进行下一次传播;

步骤四:通过步骤3的传播后对集合C3以被标记为传播过程中的已激活节点的节点进行剔除,此时C3中节点个数变少,重复步骤1和步骤2的节点选取过程,再次选取k个节点填充集合C3;

步骤五:重复步骤3的激活传播过程,直至节点挖掘结果集S达到规模k,结束。

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