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指标来衡量种子节点的均匀分布性,比较所提方法于对比方法在不同领域真实网络上的预测性能。