DISCO: Influence Maximization Meets Network Embedding and Deep Learning
来自西电的一篇待发表的文章。之前的基于神经网络的工作都是用STR模型获取节点的标签,该文章认为这一行为是不够准确的。作为一个NP-hard问题,系欸但那的影响力标签是难以获取的。该文章思路很清晰,将IM问题转化为一个用神经网络求解参数的一个问题 Q Q Q。通过embedding获取节点特征,之后Q将特征结合输入神经网络进行节点影响力最大化问题的求解。
1、基于学习的IM问题的建模
给定同构网络G,IM问题可以建模为:
由于该问题已经被证明为是一个NP-hard问题,即每个节点的标签难以获取。故基于学习的IM建模为:
其中
Θ
\Theta
Θ为满足IM问题的参数集合。该公式可以近似地计算节点的影响力。
2、映射函数的定义
2.1 节点的embedding
使用了Structure2vec的变体。定义如下:
其中,每个节点的向量被初始化为一个q维的0向量;
a
v
a_v
av是一个节点
v
v
v的表示参数,当
v
v
v在种子集中
a
v
=
1
a_v=1
av=1,反之为0;
ω
(
i
,
j
)
\omega(i,j)
ω(i,j)则为节点i和j之间的权重。其中,
α
1
,
.
.
.
α
4
\alpha_{1},...\alpha_{4}
α1,...α4为需要学习的参数。这里迭代一般不超过四次,即最多聚合四跳邻居的信息。
2.2 基于DQN的评估方程
在获得了节点的embedding以后,定义评估方程Q。
其中
x
v
I
x^{I}_v
xvI是节点
v
v
v在
I
I
I次迭代后得到的向量,
[
,
]
[ , ]
[,]表示拼接操作。不难看出,方程与
α
1
\alpha_1
α1~
α
4
\alpha_4
α4,
β
1
\beta_1
β1~
β
3
\beta_3
β3紧密相关,这些参数都是需要学习的,这里用
Θ
\Theta
Θ表示参数集。
总结一下,对于一个网络G,一个种子集大小k,一个种子集S,
S
^
=
V
−
S
\hat{S}=V-S
S^=V−S为种子节点候选集,那么用Q为候选集中每个节点计算影响力,之后选择Q值最大的节点加入种子集。
3、模型训练
其中,损失函数的定义如下:
其中,R为DQN中的reward,在这里表示种子集影响力的增量:
而
γ
\gamma
γ为当前种子节点的影响力衰减系数,决定了未来reward的占比,这里
γ
∈
[
0
,
1
]
\gamma \in [0,1]
γ∈[0,1]。在这个loss函数中,前一项为:
表示为前
δ
\delta
δ次迭代后得到的种子节点影响力,是目标。后一项为模拟值。值得注意的是,在这里挑选种子节点是,为了遵循
ε
−
p
o
l
i
c
y
\varepsilon-policy
ε−policy(详见原文),这里以概率
ε
\varepsilon
ε以及
1
−
ε
1 - \varepsilon
1−ε分别在普通节点和Q值最大的节点中选择种子节点。
4、种子节点的选择
在这个过程中,Q的迭代只进行一次,关于这一点原文在理论上进行了解释,感兴趣的小伙伴参见原文。至此,该文章算法部分结束。
原文请搜索arXiv:1906.07378v1 [cs.SI] 18 Jun 2019。