Identifying influential nodes in social networks: a voting approach

原文戳这里
论文代码戳这里.

发表在chaos, solutions and Fractals上的一篇文章。该文章基于启发式方法VoteRank进行了改进,在解决影响力最大化问题上提出不仅要尽可能少的寻找种子节点,而且要尽可能广泛的在网络中寻找种子节点。这样一来,就会避免信息在网络局部的流动,大大增强了节点的传播能力。

图中所示即为 V o t e R a n k + + VoteRank^{++} VoteRank++的主要思想:尽可能使得红色点分布的广泛且少。

背景知识

V o t e R a n k + + VoteRank^{++} VoteRank++是基于VoteRank提出来的方法。而VoteRank在 这里有详细的讲解,在这里就不赘述。

提出的方法

整体思路

节点的影响力不仅仅取决于邻居的个数,也受其本身的拓扑结构影响。基于此思想我们考虑对VoteRank算法进行了改进,从而大大提升了该算法的效率,降低了该算法的复杂度。本文此部分的研究重点将集中于:
(1)对于每个节点,如何合理地区分每个邻居的重要性;
(2)在投票完成后,如何对节点的邻居进行投票能力的削弱,以保证种子节点在网络中的均匀分布性;
(3)如何降低算法的复杂度。

伪代码

针对三个研究重点,对伪代码部分内容进行讲解:

(1)如何区分邻居重要性

伪代码第3行回答了这一问题。我们在原文中把第三行的公式拿出来:

这里 v a v va_v vav​是每个节点的投票能力。该算法认为,每个节点在投票时不能给每个邻居的投票相同。
举个例子,你的邻居(社交)有胡歌,有我,让你选出一个有影响力的人,你肯定选胡歌对不对?

这是因为胡歌的影响力(度)是你的邻居里面最大的。所以这里将每个邻居的度在所有邻居度之和的占比作为区分邻居重要性的一个指标。当然,在投完票后,每个节点如何汇总大家对它的投票呢?原文中第二个公式如下:

其中,

这两个公式放到一起讲。首先VP = Voting Probability(投票概率),和上面的意思差不多,就是我给你投票的概率大小,取决于你的度在我所有邻居度之和里面的占比。其次, v s v vs_v vsv​代表节点 v v v一轮投票后的得分。从公式可以看出,每个节点的得分取决于邻居个数以及邻居重要的重要程度。(你想想你选班长是不是也是这个道理)这一点体现在伪代码的6~9行。

(2)算法如何对邻居进行投票能力的削弱

为什么要削弱投票能力?文章开头有提到,要使得种子节点尽可能少且广泛的分布。这一点同样也很好理解,在此不过多赘述。在伪代码第17~20行有说明。同样,在原文中选取重要公式来讲这一点:

每一轮投票结束后,总会选出一个影响力最大的节点。为了不让这个节点附近的区域再选出一个有影响力的节点, V o t e R a n k + + VoteRank^{++} VoteRank++在这里对种子节点的一阶和二阶节点进行了投票能力的抑制。这里的 λ \lambda λ是一个削减系数, λ ∈ [ 0 , 1 ] \lambda \in[0,1] λ∈[0,1]。

(3)如何降低算法时间复杂度

这里有降低,但是相较于原算法VoteRank也没有明显的降低。具体怎么做呢?
原算法的画风是这样的:给每一个节点一个投票能力和得分,开启一轮投票,投票结束后,得分最高的作为种子节点,并把这个节点选出来(不参与下一轮投票);接下来又给每一个节点一个投票能力和得分,开启一轮投票……
这样做很明显浪费了不少空间,因为有的节点很明显就不是当种子节点的料,所以没必要每轮投票都去更新它的信息。so,基于这一思想, V o t e R a n k + + VoteRank^{++} VoteRank++的想法是:只更新需要更新的节点信息!
这里伪代码第13行的 H H H就是每一轮中只需要更新信息的部分节点。有的节点肯定不服气,大家都是节点,凭什么只更新你?

这里的选取规则如下:
在VoteRank++中,在确定了一个有影响力的节点后,其一阶和二阶邻居的投票能力被降低了。因此,只有距离选定节点最短距离不超过三跳的节点才需要更新其投票分数。
通俗一点,就是说,只有刚刚被选中的节点(上一轮影响力得分最大)的三跳以内的邻居信息需要更新。为什么呢?因为刚刚说过了,刚刚被选中的节点的一阶和二阶邻居投票能力都被抑制(改变)了,所以他们的信息就更改了,需要重算,那可不就是三阶以内的邻居需要重新计算嘛。
伪代码整体如下:(太长了截了两张图)


为了验证所提方法的有效性,我们在多个社交网络上选取了经典且性能突出的4-8个影响力最大化算法作为对照方法,并在SIR(Susceptible–Infected–Recovered )模型和LR( Linear Threshold)模型上进行了病毒的传播模拟,并使用 F ( t ) F(t) F(t), F ( t c ) F(t_c) F(tc​)和激活节点数目指标衡量方法的效率,另外使用 L S L_S LS​指标来衡量种子节点的均匀分布性,比较所提方法于对比方法在不同领域真实网络上的预测性能。

用投票机制寻找影响力节点:VoteRank plus Method相关推荐

  1. redis集群节点宕机 fail状态 redis的投票机制实测

    redis集群节点宕机 fail状态 redis的投票机制实测  redis集群是有很多个redis一起工作,那么就需要这个集群不是那么容易挂掉,所以呢,理论上就应该给集群中的每个节点至少一个备用的r ...

  2. python去中心化是什么意思_一种完全去中心化的治理投票机制Aeternity介绍

    为了确保能够持续性地开发æternity协议,并且能够定期增加新功能,必须评估和确定可持续的筹资机制以引导良好的生态发展.幸运的是,经过各种选项和可行性分析,启动æternity的第一次链上治理机制成 ...

  3. 深度解析:DAO的7种常见投票机制

    在大多数的 DAO 当中,Token 承载了类似于股票对于股份公司的作用,包括承载所有权,治理决策权,收益权等等.很长时间以来,DAO 的主要投票权体现形式,是最简单的一通证一票(1T1V)的形式.但 ...

  4. 二叉链表之寻找两节点的最近公共祖先☆

    题目:p.q分别为指向该二叉树中任意两个节点的指针,试编写算法ancestor(root,p,q,r),找到p.q的最近公共祖先节点r 分析:         上一道题其实可以给我们一些启示,就是我们 ...

  5. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  6. pytorch综合多个弱分类器,投票机制,进行手写数字分类(boosting)

    首先,这个文章的出发点就是让一个网络一个图片进行预测,在直观上不如多个网络对一个图片进行预测之后再少数服从多数效果好. 也就是对于任何一个分类任务,训练n个弱分类器,也就是分类准确度只比随机猜好一点, ...

  7. Libra天平币项目机制原理与节点功能测试

    Facebook主导的区块链项目,Libra 是一种建立在"Libra 区块链"的基础上的货币,面向全球提供金融服务.本文进行Libra原理机制的论述,并进行节点运行和功能测试. ...

  8. 运行BU,利用矿工投票机制寻求BCH升级方案

    围绕着11月的升级问题,BCH社区前段时间可谓纷争不断,开发团队Bitcoin ABC和nChain分别提出了各自的升级方案,但是双方却明确表示不能接受对方的版本. 正在火药味正浓之际,2018年8月 ...

  9. 基站寻找邻居节点索引号的MATLAB代码

    基站邻居的MATLAB代码记录: 调用方式: M = 100; % BS总数, 要求: 4 9 16 25 36 49 64 81 100 .... index_BS = 20; neighbor = ...

最新文章

  1. localStorage和sessionStorage
  2. C标准库 limits.h
  3. AndroidSDK下载以及配置
  4. python之socket编程
  5. 解决Entry fileTemplates//Singleton.java.ft not found in C:/Dev/android-studio/lib/resources_en.jar
  6. ORA-29807: specified operator does not exist
  7. 如何在关闭窗口的时候,不让浏览器自动弹出确认关闭对话框
  8. Vue基本操作及运行截图总结
  9. 如何使用react-tools将jsx编译成JavaScript
  10. n3k配置vpc是否还需要配置hsrp_VPC配置案例
  11. SpringBoot整合Sharding-JDBC实现水平分库分表
  12. DenseNet网络结构详解及代码复现
  13. linux 联通ip配置,linux下设置电信网通双线路IP地址
  14. 网络中心化 和 去中心化
  15. Android系统预装Chrome并自定义主页
  16. vim 强制保存修改只读文件
  17. 如何将阿里云旧服务器上的数据转移到新服务器上
  18. 下载微软官方原版系统镜像
  19. 广发证券电脑linux,广发证券易淘金电脑PC官方版
  20. 已解决SyntaxError:expected ‘:‘

热门文章

  1. 个人淘客推广App — 支持淘宝、京东、唯品会、拼多多、美团推广
  2. EasyIPCamera-WindowsLinuxARM服务接口
  3. 根据曲线曲率计算该曲率(曲线图)的积分
  4. [算法] 二叉树的DFS与BFS算法 (Java) -- 痛定思痛 彻底搞懂
  5. mysql insert 指定列_MySQL中插入数据列到特定列
  6. java中关于++x前加加和x++后加加的疑惑!
  7. 3DSlicer三维重建
  8. Python爬虫:我这有美味的汤,你喝吗
  9. linux脚本if语句可以嵌套,批处理嵌套if语句
  10. ios 简易日程(获取XX年XX月第一天是星期X)