生物医学网络科学Biomedical Network Science
社团结构与社区发现16 / 19

数学推导与算法

阅读
约 7 分钟

本节把模块度、Louvain 与 Leiden 算法、谱方法、随机块模型、映射方程、可检测性和团渗流中只陈述的结果完整推一遍。记号:AA 为无向无权网络的邻接矩阵(加权网络把 AijA_{ij} 换成边权、kik_i 换成强度即可),ki=∑jAijk_i=\sum_j A_{ij} 为节点 ii 的度,m=12∑ikim=\frac12\sum_i k_i 为边数,nn 为节点数。

A. 从模块度到谱二分(Newman 2006)

第 1 步:把 δ\delta 函数写成 ±1\pm1 变量。 二分时令 si∈{+1,−1}s_i\in\{+1,-1\} 表示节点 ii 在哪一侧。两点同侧时 sisj=1s_is_j=1,异侧时 sisj=−1s_is_j=-1,所以 δ(ci,cj)=12(1+sisj).\delta(c_i,c_j)=\tfrac12(1+s_is_j).

第 2 步:代入模块度。 记模块度矩阵 Bij=Aij−kikj2mB_{ij}=A_{ij}-\dfrac{k_ik_j}{2m},则 Q=12m∑ijBij⋅1+sisj2=14m∑ijBij+14m∑ijBijsisj.Q=\frac{1}{2m}\sum_{ij}B_{ij}\cdot\frac{1+s_is_j}{2} =\frac{1}{4m}\sum_{ij}B_{ij}+\frac{1}{4m}\sum_{ij}B_{ij}s_is_j . BB 的每一行之和为零:∑jBij=ki−ki⋅2m2m=0\sum_j B_{ij}=k_i-\dfrac{k_i\cdot 2m}{2m}=0。所以第一项消失,得到 Q=14m𝒔⊤B𝒔Q=\dfrac{1}{4m}\mathbf s^\top B\mathbf s。这一步是精确的。

第 3 步:特征分解。 BB 是实对称矩阵,有正交归一的特征向量 𝒖1,…,𝒖n\mathbf u_1,\dots,\mathbf u_n,对应特征值 β1≥β2≥⋯≥βn\beta_1\ge\beta_2\ge\cdots\ge\beta_n。把 𝒔\mathbf s 展开为 𝒔=∑lal𝒖l\mathbf s=\sum_l a_l\mathbf u_l,al=𝒖l⊤𝒔a_l=\mathbf u_l^\top\mathbf s,则 Q=14m∑l=1nal2βl,∑lal2=𝒔⊤𝒔=n.Q=\frac{1}{4m}\sum_{l=1}^{n}a_l^2\,\beta_l,\qquad \sum_l a_l^2=\mathbf s^\top\mathbf s=n .

第 4 步:放松与取整(近似在这里进入)。 若 𝒔\mathbf s 可以是任意实向量(只保留 𝒔⊤𝒔=n\mathbf s^\top\mathbf s=n),把全部“权重”nn 放到最大特征值上即可使 QQ 最大,即 𝒔∝𝒖1\mathbf s\propto\mathbf u_1。但 sis_i 只能取 ±1\pm1,退而求其次:让 a1=𝒖1⊤𝒔=∑iu1isia_1=\mathbf u_1^\top\mathbf s=\sum_i u_{1i}s_i 尽量大,显然取 si=sign⁡(u1i)s_i=\operatorname{sign}(u_{1i})。这是启发式,不保证全局最优;Newman 建议之后再做一轮“逐个翻转节点、保留使 QQ 增加的翻转”的局部微调。

第 5 步:何时停止。 因为 B𝟏=𝟎B\mathbf 1=\mathbf 0,全 1 向量总是特征值为 0 的特征向量。若 β1≤0\beta_1\le 0(没有正特征值),任何二分都不能让 QQ 超过“不分”的 0,网络被判为不可再分。

第 6 步:递归细分。 对已有社团 gg 再二分时,QQ 的增量为 ΔQ=14m𝒔⊤B(g)𝒔\Delta Q=\frac{1}{4m}\mathbf s^\top B^{(g)}\mathbf s,其中 Bij(g)=Bij−δij∑l∈gBil,i,j∈g,B^{(g)}_{ij}=B_{ij}-\delta_{ij}\sum_{l\in g}B_{il},\qquad i,j\in g , 对角修正项保证 B(g)B^{(g)} 的行和也为零。用 B(g)B^{(g)} 的主特征向量重复第 4、5 步,直到所有社团都不可再分。

算法 1  模块度谱二分(递归版)
输入:网络 G;输出:社团划分 P
1. P ← {V};待处理队列 S ← {V}
2. while S 非空:
3.     取出 g;构造 B^(g)(不显式存储,见下)
4.     用 Lanczos/幂迭代求 B^(g) 的最大特征值 β1 与特征向量 u1
5.     if β1 ≤ 0(数值容差内): g 不可再分,continue
6.     s_i ← sign(u1_i);可选:逐点翻转微调 s
7.     ΔQ ← sᵀ B^(g) s / (4m)
8.     if ΔQ ≤ 0: continue
9.     按 s 把 g 分成 g+、g−,在 P 中替换 g;把 g+、g− 加入 S
10. return P

复杂度:BB 是稠密矩阵,但不必存储。B𝒙=A𝒙−𝒌(𝒌⊤𝒙)/2mB\mathbf x=A\mathbf x-\mathbf k\,(\mathbf k^\top\mathbf x)/2m,一次乘法只需 O(m+n)O(m+n)。每次二分需要若干次乘法(次数取决于特征值间隙);Newman(2006)估计稀疏网络上整个递归过程约为 O(n2log⁡n)O(n^2\log n)。

B. Louvain 局部移动的 ΔQ\Delta Q

用按社团求和的形式 Q=∑c[lcm−(dc2m)2]Q=\sum_c\left[\frac{l_c}{m}-\left(\frac{d_c}{2m}\right)^2\right](lcl_c:社团内部边数;dcd_c:社团度之和)。设节点 ii 当前独自成一个社团(贡献 −(ki/2m)2-(k_i/2m)^2),记 ki,Ck_{i,C} 为 ii 连向社团 CC 的边数。把 ii 并入 CC 后,lC→lC+ki,Cl_C\to l_C+k_{i,C},dC→dC+kid_C\to d_C+k_i,ii 自身的那一项消失: ΔQi→C=ki,Cm−(dC+ki)2−dC2−ki24m2=ki,Cm−kidC2m2.\Delta Q_{i\to C}=\frac{k_{i,C}}{m}-\frac{(d_C+k_i)^2-d_C^2-k_i^2}{4m^2} =\frac{k_{i,C}}{m}-\frac{k_i\,d_C}{2m^2}. 一般情形:节点 ii 从社团 DD 移到 CC,可看作“先移出成为孤点、再并入”,记 D′=D\{i}D'=D\setminus\{i\}, ΔQD→C=ki,C−ki,D′m−ki(dC−dD′)2m2.\Delta Q_{D\to C}=\frac{k_{i,C}-k_{i,D'}}{m}-\frac{k_i\,(d_C-d_{D'})}{2m^2}. 含义:第一项是“连向 CC 比连向原社团多出的边”,第二项是零模型下的期望惩罚。带分辨率参数 γ\gamma 时第二项乘以 γ\gamma。这个公式只需要 ii 的邻居信息和每个社团的 dcd_c,所以一次扫描全部节点的代价为 O(m)O(m)。(聚合后的超节点带自环,自环随节点一起移动,公式形式不变。)

算法 2  Louvain(一轮"局部移动 + 聚合")
1. 每个节点自成社团;记录每个社团的 d_c
2. repeat
3.     improved ← false
4.     for 节点 i(随机顺序):
5.         统计 i 连向各邻居社团的边数 k_{i,C}
6.         对每个邻居社团 C 计算 ΔQ_{D→C};取最大者 C*
7.         if ΔQ_{D→C*} > 0: 移动 i,更新 d_D、d_{C*};improved ← true
8. until not improved
9. 每个社团压缩为超节点,社团间边权相加,社团内边变为自环
10. 若第 9 步后社团数未减少则停止,否则在新网络上回到第 1 步

复杂度:每次扫描 O(m)O(m);扫描次数和层数没有严格的理论上界,经验上整体接近线性。第 7 步只接受严格增益,保证 QQ 单调上升、算法终止;但只能到达局部最优,结果依赖访问顺序。

推广到任意质量矩阵:若质量函数可写成 ∑ijMijδ(gi,gj)\sum_{ij}M_{ij}\delta(g_i,g_j)(MM 对称,如多层模块度的超模块度矩阵),则把节点 ii 从 DD 移到 CC 的增量为 2(∑j∈CMij−∑j∈D′Mij)2\left(\sum_{j\in C}M_{ij}-\sum_{j\in D'}M_{ij}\right),聚合时 M→Z⊤MZM\to Z^\top MZ(ZZ 为节点–社团指示矩阵)。这就是 GenLouvain 一类实现的核心,代码示例的多层模块度即用此法。

C. Leiden 算法的流程

算法 3  Leiden(一层)
输入:网络 G,初始划分 P;输出:新划分
1. 快速局部移动:队列 Q ← 全部节点(随机顺序)
2.     while Q 非空: 取出 v,移到增益最大的社团(含空社团);
3.         若 v 移动了,把 v 的不在 Q 中、且不属于 v 新社团的邻居加入 Q
4. 细化:对 P 中每个社团 C,令 P_ref 在 C 内从单点开始;
5.     对 C 中仍为单点、且与 C 其余部分连接足够好的节点 v(随机顺序):
6.         在 C 内与 v 相连、且自身与 C 连接足够好的子社团中,
7.         以概率 ∝ exp(ΔH/θ)(只考虑 ΔH ≥ 0)选择一个并入
8. 聚合:以 P_ref 的子社团为超节点建聚合网络;初始划分取 P(每个超节点归入其母社团)
9. 若 P 中每个社团都只含一个 P_ref 子社团(不再变化),停止;否则在聚合网络上回到第 1 步

“连接足够好”的判据与质量函数有关:以 CPM 为例,要求子集 SS 与 C\SC\setminus S 之间的边数不少于 γ∥S∥⋅(∥C∥−∥S∥)\gamma\,\|S\|\cdot(\|C\|-\|S\|)。第 7 步的随机性让细化可以探索更多可能的子社团;θ→0\theta\to0 时退化为贪心选择。

D. 分辨率极限的推导要点

把局部移动的方法用于“合并两个社团 1、2”:设它们之间有 l12l_{12} 条边,度之和为 d1,d2d_1,d_2,则 ΔQmerge=l12m−d1d22m2.\Delta Q_{\text{merge}}=\frac{l_{12}}{m}-\frac{d_1d_2}{2m^2}. 只要 l12≥1l_{12}\ge1 且 d1d2<2ml12d_1d_2<2m\,l_{12},合并就会提高 QQ。取 l12=1l_{12}=1、d1=d2=dd_1=d_2=d:当 d<2md<\sqrt{2m} 时,模块度最大化倾向于把两个哪怕内部完全连通的小团合并。

经典例子(Fortunato 与 Barthélemy 2007):ncn_c 个 KkK_k 完全子图连成环,相邻两团之间只有 1 条边。每团 d=k(k−1)+2d=k(k-1)+2,m=nc[k(k−1)2+1]m=n_c\left[\frac{k(k-1)}{2}+1\right]。代入 d2<2md^2<2m 得:当 nc>k(k−1)+2n_c>k(k-1)+2 时,把相邻两团合并的 QQ 更高。例如 k=5k=5 时,只要环上超过 22 个团,最大模块度划分就不再把每个团单独作为社团。代码示例中,10 个 K5K_5 时“每团一社团”的 Q=0.809Q=0.809 高于两两合并的 0.755;30 个 K5K_5 时则反过来(0.876 对 0.888)。

CPM 为何没有分辨率极限:对 CPM,合并社团 1、2 的增量为 ΔH=l12−γn1n2\Delta H=l_{12}-\gamma n_1n_2,只依赖两个社团自身,与网络其余部分无关。两个 K5K_5 之间 l12=1l_{12}=1、n1n2=25n_1n_2=25,只要 γ>1/25\gamma>1/25 就不会合并,与团数无关。

上述推导只说明“合并能提高 QQ”,并没有证明全局最优解一定合并;它也假设两社团之间的连接数和度之和已知。要点是:判据 d<2md<\sqrt{2m} 中出现的是全网边数 mm,因此“小”是相对于整个网络而言的——同一个蛋白复合物,放在更大的相互作用组里就可能被吞并。

E. 划分数目的估计

等大二分数用 Stirling 公式 N!≈2πN(N/e)NN!\approx\sqrt{2\pi N}(N/e)^N: (NN/2)=N![(N/2)!]2≈2πN(N/e)NπN(N/2e)N=2N2πN=2N+12πN.\binom{N}{N/2}=\frac{N!}{[(N/2)!]^2}\approx\frac{\sqrt{2\pi N}\,(N/e)^N}{\pi N\,(N/2e)^N}=\frac{2^N\sqrt{2}}{\sqrt{\pi N}}=\frac{2^{N+1}}{\sqrt{2\pi N}}. Bell 数的递推来自“考察包含节点 N+1N+1 的那个组”:若该组另含 N−jN-j 个其他节点((NN−j)=(Nj)\binom{N}{N-j}=\binom Nj 种选法),其余 jj 个节点任意划分(BjB_j 种),故 BN+1=∑j(Nj)BjB_{N+1}=\sum_j\binom NjB_j。BNB_N 的增长快于任何 cNc^N:粗略地,ln⁡BN∼Nln⁡N\ln B_N\sim N\ln N。

F. SBM 与 DC-SBM 的轮廓似然(Karrer 与 Newman 2011)

DC-SBM:Aij∼Poisson(θiθjωbibj)A_{ij}\sim\text{Poisson}(\theta_i\theta_j\omega_{b_ib_j})(i<ji<j;自环另计,此处略),对数似然(略去与参数无关的项) ln⁡P(A∣θ,ω,𝒃)=∑ikiln⁡θi+12∑rs(mrslnωrs−ωrs∑i∈rθi∑j∈sθj),\ln P(A\mid\theta,\omega,\mathbf b)=\sum_i k_i\ln\theta_i+\frac12\sum_{rs}\left(m_{rs}\ln\omega_{rs}-\omega_{rs}\sum_{i\in r}\theta_i\sum_{j\in s}\theta_j\right), mrs=∑ijAijδbi,rδbj,sm_{rs}=\sum_{ij}A_{ij}\delta_{b_i,r}\delta_{b_j,s}(r=sr=s 时为组内边数的 2 倍)。θ\theta 有尺度不确定性,加约束 ∑i∈rθi=1\sum_{i\in r}\theta_i=1(对每个组)。在此约束下对 θi\theta_i 求极大得 θ̂i=ki/κr\hat\theta_i=k_i/\kappa_r(κr=∑i∈rki\kappa_r=\sum_{i\in r}k_i),对 ωrs\omega_{rs} 求极大得 ω̂rs=mrs\hat\omega_{rs}=m_{rs}。代回并去掉常数,得到只依赖划分的轮廓对数似然 ℒDC(𝒃)=∑rsmrsln⁡mrsκrκs.\mathcal L_{\text{DC}}(\mathbf b)=\sum_{rs}m_{rs}\ln\frac{m_{rs}}{\kappa_r\kappa_s}. 标准 SBM 相当于所有 θi\theta_i 相同,同理得到 ℒSBM=∑rsmrsln⁡mrsnrns\mathcal L_{\text{SBM}}=\sum_{rs}m_{rs}\ln\frac{m_{rs}}{n_rn_s}。

二者的差别一目了然:DC-SBM 用组的度之和 κr\kappa_r 做归一化,标准 SBM 用组的节点数 nrn_r。前者把“度高”归因于节点参数 θi\theta_i,后者只能把度的差异归因于分组,因此在度异质的网络中会按度分组。

与模块度的对应(Newman 2016 的要点):若限定 ωrr=ωin\omega_{rr}=\omega_{\text{in}}、ωrs=ωout\omega_{rs}=\omega_{\text{out}}(r≠sr\ne s),并取 θi=ki\theta_i=k_i(期望度等于观测度),对数似然中依赖划分的部分为 12∑ij[Aijlnωinωout−kikj2m⋅2m(ωin−ωout)]δ(bi,bj)∝∑ij[Aij−γkikj2m]δ(bi,bj),\frac12\sum_{ij}\left[A_{ij}\ln\frac{\omega_{\text{in}}}{\omega_{\text{out}}}-\frac{k_ik_j}{2m}\cdot 2m(\omega_{\text{in}}-\omega_{\text{out}})\right]\delta(b_i,b_j) \;\propto\;\sum_{ij}\left[A_{ij}-\gamma\frac{k_ik_j}{2m}\right]\delta(b_i,b_j), 其中 γ=ωin−ωoutln⁡ωin−ln⁡ωout\gamma=\dfrac{\omega_{\text{in}}-\omega_{\text{out}}}{\ln\omega_{\text{in}}-\ln\omega_{\text{out}}}(ω\omega 已按 2m2m 归一化)。也就是说,最大化 QγQ_\gamma 就是在这个受限模型下做最大似然;交替地“固定划分估计 ωin,ωout\omega_{\text{in}},\omega_{\text{out}}、再更新 γ\gamma 与划分”,就得到一个由数据决定 γ\gamma 的迭代方案。

算法 4  DC-SBM 的贪心最大似然(固定组数 B,多次随机重启)
1. for restart = 1..R:
2.     随机初始化 b
3.     repeat
4.         for 节点 i(随机顺序): 把 i 移到使 L_DC 最大的组(只增益时移动)
5.     until 无移动
6.     记录 L_DC(b)
7. 返回 L_DC 最大的 b

Karrer 与 Newman 使用类似 Kernighan–Lin 的启发式(允许暂时降低似然的强制移动)以跳出局部最优;贝叶斯版本则用 MCMC 在划分空间中抽样。

G. 映射方程的展开

对两层编码,索引码本中各模块码字的使用频率正比于进入概率 qiq_i,模块 ii 的码本中各码字(模块内节点与退出码)的使用频率正比于 pαp_\alpha(α∈i\alpha\in i)与 qiq_i。由 Shannon 信源编码定理, H(𝒬)=−∑iqiqlog⁡2qiq,H(𝒫i)=−qipilog⁡2qipi−∑α∈ipαpilog⁡2pαpi,H(\mathcal Q)=-\sum_i\frac{q_i}{q}\log_2\frac{q_i}{q},\qquad H(\mathcal P_i)=-\frac{q_i}{p_i}\log_2\frac{q_i}{p_i}-\sum_{\alpha\in i}\frac{p_\alpha}{p_i}\log_2\frac{p_\alpha}{p_i}, 其中 q=∑iqiq=\sum_iq_i,pi=qi+∑α∈ipαp_i=q_i+\sum_{\alpha\in i}p_\alpha。代入 L=qH(𝒬)+∑ipiH(𝒫i)L=qH(\mathcal Q)+\sum_ip_iH(\mathcal P_i) 并记 η(x)=xlog⁡2x\eta(x)=x\log_2x,整理得 L(M)=η(q)−2∑iη(qi)−∑αη(pα)+∑iη(pi).L(M)=\eta(q)-2\sum_i\eta(q_i)-\sum_\alpha\eta(p_\alpha)+\sum_i\eta(p_i). 第三项与划分无关(节点访问分布的熵),只有含 qiq_i 与 pip_i 的三项随划分变化,而它们都只依赖于每个模块的退出流和总访问量,因此移动一个节点后的 ΔL\Delta L 可以像 ΔQ\Delta Q 一样局部计算。单一模块时 qi=0q_i=0,L=−∑αη(pα)L=-\sum_\alpha\eta(p_\alpha),即节点访问分布的熵。

对无向网络,pα=kα/2mp_\alpha=k_\alpha/2m;模块 ii 的退出概率 qiq_i 等于随机游走者某一步从 ii 内部走到外部的概率,即 ∑α∈ipα⋅kαextkα=12m∑α∈ikαext\sum_{\alpha\in i}p_\alpha\cdot\frac{k_\alpha^{\text{ext}}}{k_\alpha}=\frac{1}{2m}\sum_{\alpha\in i}k_\alpha^{\text{ext}}。有向网络需先用带传送的随机游走(传送概率常取 0.15)求稳态分布。

H. 可检测性阈值的直观推导

以 q=2q=2 为例给出一个启发式论证(严格结果见 Decelle 等 2011)。设每个节点有 cc 个邻居(稀疏极限下邻域是树状的)。把节点的组标签 σi=±1\sigma_i=\pm1 看作沿树传播的“信号”:沿一条边走一步,标签保持不变的概率为 cin/(cin+cout)c_{\text{in}}/(c_{\text{in}}+c_{\text{out}}),因此相关性每步乘以 λ=cin−coutcin+cout=cin−cout2c.\lambda=\frac{c_{\text{in}}-c_{\text{out}}}{c_{\text{in}}+c_{\text{out}}}=\frac{c_{\text{in}}-c_{\text{out}}}{2c}. 距离根节点 dd 步处约有 cdc^d 个节点,每个携带的关于根标签的相关性为 λd\lambda^d。把它们“投票”汇总,信号量级为 cdλdc^d\lambda^d,而随机涨落的量级为 cd\sqrt{c^d}。信号压过噪声的条件是 cdλd≫cd/2c^d\lambda^d\gg c^{d/2},即 cλ2>1⇔|cin−cout|>2c,c\lambda^2>1\iff |c_{\text{in}}-c_{\text{out}}|>2\sqrt c , 与 q=2q=2 时的阈值一致(一般 qq 时 λ=cin−coutqc\lambda=\frac{c_{\text{in}}-c_{\text{out}}}{qc},得 |cin−cout|>qc|c_{\text{in}}-c_{\text{out}}|>q\sqrt c)。这一条件也正是非回溯矩阵中携带社团信息的特征值 cin−coutq\frac{c_{\text{in}}-c_{\text{out}}}{q} 从噪声谱的半径 c\sqrt c 中分离出来的条件,所以非回溯谱方法恰好在阈值处开始有效。

I. 团渗流阈值

在 ER 网络 G(N,p)G(N,p) 中滚动一个 kk-团模板:每次保留 k−1k-1 个节点、把第 kk 个节点换到别处。可选择留下的 k−1k-1 个节点中哪一个作为下次移动的“支点”,约有 k−1k-1 种;新节点约有 N−k−1≈NN-k-1\approx N 个候选位置;新节点必须与留下的 k−1k-1 个节点全部相连,概率为 pk−1p^{k-1}。渗流阈值处,每次滚动产生的“下一个相邻 kk-团”的期望数应恰好为 1(类似分支过程的临界条件): (k−1)Npck−1=1⇒pc(k)=1[(k−1)N]1/(k−1).(k-1)\,N\,p_c^{\,k-1}=1\quad\Longrightarrow\quad p_c(k)=\frac{1}{[(k-1)N]^{1/(k-1)}} . 期望小于 1 时,滚动很快停止,kk-团社团的规模呈指数衰减;大于 1 时,出现横跨网络的巨大 kk-团社团。

J. 划分比较指标的性质

  • NMI 的上界与偏差:I(X;Y)≤min⁡{H(X),H(Y)}I(X;Y)\le\min\{H(X),H(Y)\},故 NMI ≤1\le1。当 YY 的组数很多时,即使 YY 随机,有限样本下的互信息估计也偏正(每组节点很少,列联表稀疏),这是随机多组划分 NMI 虚高的来源;调整互信息(AMI)减去了随机划分下互信息的期望。
  • ARI 的机会校正:在两个划分的组大小(边际)固定、节点标签随机排列的超几何模型下,∑(nxy2)\sum\binom{n_{xy}}2 的期望为 [∑(nx2)∑(ny2)]/(n2)\left[\sum\binom{n_x}2\sum\binom{n_y}2\right]/\binom n2,ARI 正是减去这一期望后的归一化值,因此随机划分的 ARI 期望为 0。
  • VI 是度量:VI(X,Y)=H(X∣Y)+H(Y∣X)\text{VI}(X,Y)=H(X\mid Y)+H(Y\mid X),满足非负性、对称性与三角不等式,上界为 log⁡2n\log_2 n。