目录
1.背景
1.1原始背景
信息技术给个人带来了巨大的便利。越来越多的人逐渐参与到各种社交网络中来,如脸书、推特和微信,在这些网络上每天都有大量的信息交换。社交网络的繁荣促进了与网络分析和挖掘相关的研究。
在这些网络分析和挖掘的原始任务中,影响最大化(IM),由于其在病毒式营销、疾病分析、谣言控制、社会计算等大量应用中的巨大潜力而引起了研究者的极大关注。IM问题的定义是选择一组有影响力的节点作为种子节点,在网络上传播信息,并使这些节点的影响尽可能广泛。因此,解决IM问题的关键问题是如何识别有影响的节点。
VoteRank是一种用于社交网络中识别有影响力节点的算法,在影响力最大化(IM)问题的语境下进行研究。IM问题涉及在网络中选择一组有影响力的节点,以最大程度地提高它们对其他节点的影响力。
1.2应用背景
VoteRank*算法通过引入自我投票机制和考虑节点的多样性改进了之前的算法。该算法根据节点的H-index值计算每个节点的投票能力,并确定其自我投票和邻居投票的比例。根据节点的投票得分选择有影响力的节点,并抑制所选节点及其邻居的投票能力。
VoteRank*算法的详细过程和其相对于现有方法的优势在文档中进行了详细阐述。该算法通过在各种网络上进行实验评估,展示了其在传播速度和能力方面的优越性能。
2.算法
2.1算法优点
我们认为,在选择有影响力的节点时,自我投票具有重要意义,原因有以下两个原因:
(1)在许多现实场景中,人们当然可以为自己投票;
(2)自我投票有助于更准确地找到有影响力的节点。在VoteRank中,即使是最有影响力的节点也不能为自己投票;只有它的邻居才能选择它作为有影响力的节点。
VoteRank*算法相比现有算法具有以下优势:
1.引入自投票机制,更准确地选择有影响力节点[2h]。
2.考虑节点的多样性,提高传播速度和能力
为此,我们设计了一种改进的VoteRank算法,即VoteRank*,利用自投票的情况来寻找有影响力的节点。此外,我们还考虑了VoteRank*中节点的多样性。具体来说,我们根据节点的h指数值计算节点的投票能力和节点对其他节点的投票比例。
2.2大体过程
VoteRank*算法的详细步骤包括:
1.初始化每个节点的投票能力。
2.计算每个节点对自身和邻居的投票比例。
3.根据节点自身和邻居的投票计算得分。
4.选择得分最高的节点作为有影响力的节点。
5.抑制选定节点及其一跳和二跳邻居的投票能力。
6.重复步骤3至5,直到选择足够的有影响力节点。
2.3具体过程
为了对具有影响力的传播者进行投票,我们需要为每个节点初始化一个投票能力值。在VoteRank中,每个节点的初始投票能力为1。然而,这种初始化是不合理的。由于网络中的节点在位置、功能和角色等方面可能不同,它们的投票能力也应该是多样化的。具体而言,我们根据方程为节点v的投票能力进行初始化。
其中 h v 是节点v的H指数值,h max 是网络中所有节点的最大H指数值。为了计算节点v的H指数值,我们考虑了v的度以及其邻居节点的度。因此,与度数相比,H指数可以更准确地衡量节点的重要性。
在VoteRank-like算法的投票过程中,一个节点只能为其邻居投票,即使是最重要的节点也不能为自己投票。实际上,在许多实际投票场合中,候选人是可以为自己投票的。因此,这些算法中的投票机制不符合常识,也不利于识别有影响力的传播者。为了克服这一缺点,VoteRank*算法首次引入了自我投票机制。也就是说,在VoteRank*中,一个节点可以为自己以及其邻居投票。基于自我投票和H指数,我们可以通过下面的公式来定义节点u为邻居v投票的比例p_uv:
其中G_u是包括节点u及其一跳邻居在内的节点集合。这里,节点的H指数值被用来衡量节点的重要性。对于给定的两个节点x和y属于G_u,根据公式(2),如果h_x > h_y,则节点u给予节点x的投票要多于节点y的投票。
在投票过程中,一个节点会得到自己和邻居节点的投票。通过汇总这些投票,我们可以计算节点的投票得分。
在方程(3)中,p_uv表示v从u获得的投票数量。这个方程考虑了v获得的投票总数和v的邻居节点数。正如Sun等人的研究中所提到的,这两个因素都对节点v的投票得分有贡献。当所有节点都计算出它们的投票得分后,具有最高得分的节点被认为是在这次迭代中被识别为有影响力的传播者(算法1中第10行)。
VoteRank* 是一种通过迭代选择有影响力的传播者的方法。在选择一个传播者之后,如果选中的节点数量不够,VoteRank* 将开始新的迭代来选择下一个传播者(算法1中的11~26行)。假设v是最后一次迭代中选中的节点,则在接下来的投票轮次中,v将不再参与投票。同时,为了确保选中的传播者广泛分布在网络中,我们降低了靠近v的节点的选择概率。为此,我们削弱了这些节点的投票能力。在VoteRank中,只有那些给v投票的节点受到抑制(算法1中的21行)。
然而,这种抑制的范围还不够。尽管VoteRank通过限制一跳和二跳邻居的投票能力来抑制影响力,但是这个抑制策略中有一个参数。因此,我们提出了一个无参数的策略来降低多跳邻居的投票能力。假设u是一个有影响力的节点v的l跳邻居,则u的投票能力更新如下:
va(u) = (log(l)) * va(u) (4)
如果u是v的一跳邻居,则更新后的va(u)为0,因为l=1。也就是说,u将不再为其他节点投票。这是合理的,因为u已经为上一次迭代中最有影响力的节点投票了。根据公式(4),我们可以降低所选节点的多跳邻居的投票能力。然而,在本研究中对VoteRank*的实现中,我们只抑制了一跳和二跳邻居的投票能力(算法1中的15~18行)。
2.4伪代码实现
2.5代码实现
上述算法本人已全部实现(涵盖了C、C++、Java和Python等多个版本),如果有需要或者合作,请表明您的意图并私信联系我。期待与您的交流与合作!
3.实验结果
本文测试了20种不同现实应用Java程序代码构建的图,下面给出部分结果。(如果您需要实验对象和数据数据结果,请表明您的意图并私信联系我。期待与您的交流与合作!)
3.1实验一 log4j-2.10.0
3.2实验二 jedit-5.1.0
3.3实验三 jgap-3.6.3
4.总结
VoteRank*算法是一种用于社交网络中识别有影响力节点的算法。它通过引入自投票机制和考虑节点的多样性来改进现有算法。算法根据节点的H-index值计算每个节点的投票能力,并确定节点对自身和邻居的投票比例。
通过计算节点的投票得分,算法选择有影响力的节点,并抑制选定节点及其邻居的投票能力。该算法在选择有影响力节点时考虑了自投票和多样性的因素,相比现有方法具有优势。
通过实验评估,VoteRank*算法在多个网络中展现了出色的传播性能。综上所述,VoteRank*算法通过引入自投票和多样性考虑,有效地解决了社交网络中的影响最大化问题。
5.参考文献
1. He Q, Wang X, Lei Z, et al. TIFIM: A Two-stage iterative framework for influence maximization in social networks. Appl Math Comput 2019; 354:338–352; doi: 10.1016/j.amc.2019.02.0562. Kim J, Kim S-K, Yu H. Scalable and parallelizable processing of influence maximization for large-scale social networks. In: ICDE, vol. 2013. 2013; pp. 266–277; doi: 10.1109/ICDE.2013.65448313. Fan C, Zeng L, Sun Y, et al. Finding key players in complex networks through deep reinforcement learning, Nat Mach Intell 2020;2(6):317– 324; doi: 10.1038/s42256-020-0177-24. Kempe D, Kleinberg J, Tardos E. Maximizing the spread of influence through a social network. In: KDD’03. Association for Computing Machinery, New York, NY, USA. 2003; p. 137146; doi: 10.1145/956750.9567695. Zareie A, Sheikhahmadi A. A hierarchical approach for influential node ranking in complex social networks. Expert Syst Appl 2018;93:200–211; doi: 10.1016/j.eswa.2017.10.0186. Zhang J-X, Chen D-B, Dong Q, et al. Identifying a set of influential spreaders in complex networks, Sci Rep 2016;6(1):27823; doi: 10.1038/ srep278237. Sun H-L, Chen D-B, He J-L, et al. A voting approach to uncover multiple influential spreaders on weighted networks. Phys A Stat Mech Appl 2019;519:303–312; doi: 10.1016/j.physa.2018.12.0018. Kumar S, Panda A. Identifying influential nodes in weighted complex networks using an improved WVoteRank approach. Appl Intell 2022; 52(2):1838–1852; doi: 10.1007/s10489-021-02403-59. Guo C, Yang L, Chen X, et al. Influential nodes identification in complex networks via information entropy. Entropy 2020;22(2):1–19; doi: 10.3390/e22020242 10 LIU ET AL.10. Liu P, Li L, Fang S. Identifying influential nodes in social networks: A voting approach. Chaos Solit Fractals 2021;152:111309; doi: 10.1016/j .chaos.2021.11130911. Liu P, Li L, Wen Y, et al. Identifying Influential Nodes in Social Networks: Exploiting Self-Voting Mechanism[J]. Big Data, 2023.