网络社区检测算法研究与实践
1. NEEM - GCD算法概述与复杂度分析
1.1 算法流程
NEEM - GCD算法以邻接矩阵A、网络嵌入矩阵H和社区数量c作为输入。具体步骤如下:
1. 随机初始化p、h、u和Ʃ。
2. 交替执行E步和M步:
- E步:计算qr i。
- M步:计算p、h、u和Ʃ。
3. 重复上述步骤,直到算法收敛(实验中设置最大迭代次数max - step = 100)。
4. 算法收敛后,利用qr i(表示节点vi属于组r的后验概率)推导社区结构。
以下是NEEM - GCD算法的伪代码:
Alg. 1.NEEM - GCD algorithm
Input: adjacency matrix A, network embedding matrix Θ, number of communities c
Output: qr i, π, θ, φ and Ʃ
Initialize π, θ, φ and Ʃ randomly
For t1 = 1: maxstep // EM
Update qr i via Eq. (5) given π, θ, φ and Ʃ
Update π, θ, φ and Ʃ via Eqs. (6) to (9) given qr i
t1←t1 + 1
1.2 复杂度分析
考虑网络稀疏性,更新qr i、p、h、u和Ʃ一次的时间分别为ncki、ncd、3nd + d²、nc和ncki,其中n是节点