生物医学网络科学Biomedical Network Science
结果呈现与研究前沿13 / 15

数学推导与算法

阅读
约 2 分钟

一、贝蒂数的秩公式

kk 维链群 CkC_k 是以 kk-单纯形为基的向量空间(维数 nkn_k),边界算子 ∂k:Ck→Ck−1\partial_k:C_k\to C_{k-1} 的矩阵即 BkB_k。由 ∂k∂k+1=0\partial_{k}\partial_{k+1}=0,有 im∂k+1⊆ker⁡∂k\mathrm{im}\,\partial_{k+1}\subseteq\ker\partial_k,同调群 Hk=ker⁡∂k/im∂k+1H_k=\ker\partial_k/\mathrm{im}\,\partial_{k+1},其维数

βk=dim⁡ker⁡Bk−rank⁡Bk+1=(nk−rank⁡Bk)−rank⁡Bk+1.\beta_k=\dim\ker B_k-\operatorname{rank}B_{k+1}=(n_k-\operatorname{rank}B_k)-\operatorname{rank}B_{k+1}.

霍奇分解:Ck=imBk+1⊕imBk⊤⊕ker⁡LkC_k=\mathrm{im}\,B_{k+1}\oplus\mathrm{im}\,B_k^{\top}\oplus\ker L_k,三部分两两正交。由于 Lk=Bk⊤Bk+Bk+1Bk+1⊤L_k=B_k^{\top}B_k+B_{k+1}B_{k+1}^{\top} 是两个半正定矩阵之和,Lkx=0L_kx=0 当且仅当 Bkx=0B_kx=0 且 Bk+1⊤x=0B_{k+1}^{\top}x=0,因此 dim⁡ker⁡Lk=βk\dim\ker L_k=\beta_k。对 k=1k=1,ker⁡L1\ker L_1 中的向量是边上的“调和流”:既无源汇(B1x=0B_1x=0,散度为零),也不能写成三角形的边界(B2⊤x=0B_2^{\top}x=0,旋度为零),它们恰好绕着“洞”流动。

计算复杂度:基于矩阵秩的方法在单纯形数目 nn 上为 O(n3)O(n^3);持续同调的标准算法是对按过滤顺序排列的边界矩阵做列约简,最坏情况同为立方复杂度,实践中通常接近线性。团复形中三角形数目可达 O(N3)O(N^3),这是 TDA 只适用于中小规模网络或需要稀疏化的原因。

二、超拉普拉斯矩阵的两个极限

多重网络上节点–层 (i,α)(i,\alpha) 的状态 xiαx_{i\alpha} 满足

ẋiα=∑jAij[α](xjα−xiα)+Dx∑β≠α(xiβ−xiα),\dot{x}_{i\alpha}=\sum_j A^{[\alpha]}_{ij}(x_{j\alpha}-x_{i\alpha})+D_x\sum_{\beta\ne\alpha}(x_{i\beta}-x_{i\alpha}),

即 ẋ=−ℒx\dot{x}=-\mathcal{L}x,ℒ=⨁αL[α]+Dx(Llayer⊗IN)\mathcal{L}=\bigoplus_\alpha L^{[\alpha]}+D_x\,(L_{\text{layer}}\otimes I_N),两层时 Llayer=(1−1−11)L_{\text{layer}}=\begin{pmatrix}1&-1\\-1&1\end{pmatrix}。

  • 小 DxD_x:取 x=(𝟏N,−𝟏N)x=(\mathbf{1}_N,-\mathbf{1}_N)。由于 L[α]𝟏=0L^{[\alpha]}\mathbf 1=0,直接计算得 ℒx=(2Dx𝟏N,−2Dx𝟏N)=2Dxx\mathcal{L}x=(2D_x\mathbf 1_N,-2D_x\mathbf 1_N)=2D_x\,x,所以 2Dx2D_x 总是 ℒ\mathcal{L} 的一个特征值,且该特征向量与 𝟏2N\mathbf 1_{2N} 正交,故 λ2≤2Dx\lambda_2\le2D_x。用瑞利商同样可得:层内项为 0,层间项为 Dx∑i(1−(−1))2=4NDxD_x\sum_i(1-(-1))^2=4ND_x,除以 x⊤x=2Nx^{\top}x=2N 得 2Dx2D_x。当 DxD_x 足够小时 λ2=2Dx\lambda_2=2D_x(Gómez 等,2013)。
  • 大 DxD_x:层间耦合迫使 xi1≈xi2x_{i1}\approx x_{i2},令 xi1=xi2=yix_{i1}=x_{i2}=y_i,限制在这个子空间上的瑞利商为 y⊤(L[1]+L[2])y2y⊤y\frac{y^{\top}(L^{[1]}+L^{[2]})y}{2y^{\top}y},因此 λ2→λ2((L[1]+L[2])/2)\lambda_2\to\lambda_2\big((L^{[1]}+L^{[2]})/2\big)。由于 λ2\lambda_2 是凹函数(瑞利商最小值),λ2(L[1]+L[2]2)≥12(λ2(L[1])+λ2(L[2]))\lambda_2\big(\tfrac{L^{[1]}+L^{[2]}}{2}\big)\ge\tfrac12\big(\lambda_2(L^{[1]})+\lambda_2(L^{[2]})\big),可以超过任一单层。

三、时间一致可达性的扫描算法

把接触按时间排序,维护布尔矩阵 RR(Rij=1R_{ij}=1 表示从 ii 出发的信息已能到达 jj),初始 R=IR=I。每遇到一次无向接触 (u,v,t)(u,v,t):

R⋅u←R⋅u∨R⋅v,R⋅v←R⋅u∨R⋅v.R_{\cdot u}\leftarrow R_{\cdot u}\lor R_{\cdot v},\qquad R_{\cdot v}\leftarrow R_{\cdot u}\lor R_{\cdot v}.

扫描结束时 RR 即为可达矩阵。复杂度 O(N⋅M)O(N\cdot M)(MM 为接触数)。同一时刻的多次接触需要约定处理顺序(或限制每个时间步只传一步),这一约定会影响结果,应在方法中写明。

四、拉普拉斯特征映射

目标 ∑ijWij∥yi−yj∥2=2tr(Y⊤LY)\sum_{ij}W_{ij}\|y_i-y_j\|^2=2\,\mathrm{tr}(Y^{\top}LY)。在约束 Y⊤DY=IY^{\top}DY=I 下引入拉格朗日乘子,驻点条件为 LY=DYΛLY=DY\Lambda,即广义特征值问题 Ly=λDyLy=\lambda Dy。令 u=D1/2yu=D^{1/2}y,等价于对称归一化拉普拉斯 ℒsym=D−1/2LD−1/2\mathcal{L}_{\text{sym}}=D^{-1/2}LD^{-1/2} 的普通特征值问题 ℒsymu=λu\mathcal{L}_{\text{sym}}u=\lambda u。最小特征值 0 对应常向量 y=𝟏y=\mathbf 1(平凡解),取接下来的 dd 个特征向量作为 dd 维嵌入。代码示例使用 ℒsym\mathcal{L}_{\text{sym}} 的特征向量 uu;如需严格对应上式,可再左乘 D−1/2D^{-1/2}。

五、从谱图卷积到 GCN

谱图卷积把信号 xx 变换到拉普拉斯 ℒsym=UΛU⊤\mathcal{L}_{\text{sym}}=U\Lambda U^{\top} 的特征基上滤波:gθ⋆x=Ugθ(Λ)U⊤xg_\theta\star x=Ug_\theta(\Lambda)U^{\top}x。为避免特征分解,用切比雪夫多项式近似 gθg_\theta;Kipf 与 Welling(2017)取一阶近似并设 λmax≈2\lambda_{\max}\approx2:

gθ⋆x≈θ0x+θ1(ℒsym−I)x=θ0x−θ1D−1/2AD−1/2x.g_\theta\star x\approx\theta_0x+\theta_1(\mathcal{L}_{\text{sym}}-I)x=\theta_0x-\theta_1D^{-1/2}AD^{-1/2}x .

再令 θ=θ0=−θ1\theta=\theta_0=-\theta_1 减少参数,得到 θ(I+D−1/2AD−1/2)x\theta(I+D^{-1/2}AD^{-1/2})x。矩阵 I+D−1/2AD−1/2I+D^{-1/2}AD^{-1/2} 的特征值在 [0,2][0,2] 内,多层堆叠时可能导致数值不稳定,于是采用重归一化技巧,以 Ã=A+I\tilde{A}=A+I、D̃ii=∑jÃij\tilde{D}_{ii}=\sum_j\tilde{A}_{ij} 代替,得到 Â=D̃−1/2ÃD̃−1/2\hat{A}=\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2},其特征值在 (−1,1](-1,1] 内。多通道输入与输出时即 H(l+1)=σ(ÂH(l)W(l))H^{(l+1)}=\sigma(\hat{A}H^{(l)}W^{(l)})。

过平滑的谱解释:Â\hat{A} 是对称矩阵,最大特征值为 1,对应特征向量 u1∝D̃1/2𝟏u_1\propto\tilde{D}^{1/2}\mathbf 1;若图连通且非二部,其余特征值 |μi|<1|\mu_i|<1。于是 ÂkX=u1u1⊤X+∑i≥2μikuiui⊤X\hat{A}^kX=u_1u_1^{\top}X+\sum_{i\ge2}\mu_i^k u_iu_i^{\top}X,第二项按 |μ2|k|\mu_2|^k 衰减。代码示例中 |μ2|≈0.76|\mu_2|\approx0.76,32 层后剩余部分约为 0.75632≈1.3×10−40.756^{32}\approx1.3\times10^{-4},与数值结果(2×10−42\times10^{-4})量级一致。

六、GCN 训练的梯度(两层、交叉熵)

记 Z1=ÂXW1Z_1=\hat{A}XW_1,H1=ReLU(Z1)H_1=\mathrm{ReLU}(Z_1),Z2=ÂH1W2Z_2=\hat{A}H_1W_2,P=softmax(Z2)P=\mathrm{softmax}(Z_2),损失只在已标注节点集合 𝒴L\mathcal{Y}_L 上计算:𝒥=−1|𝒴L|∑v∈𝒴Llog⁡Pv,yv\mathcal{J}=-\frac{1}{|\mathcal{Y}_L|}\sum_{v\in\mathcal{Y}_L}\log P_{v,y_v}。则

∂𝒥∂Z2=M(P−Y)|𝒴L|,∂𝒥∂W2=(ÂH1)⊤∂𝒥∂Z2,∂𝒥∂W1=(ÂX)⊤[(Â⊤∂𝒥∂Z2W2⊤)⊙𝟏(Z1>0)],\frac{\partial\mathcal{J}}{\partial Z_2}=\frac{M(P-Y)}{|\mathcal{Y}_L|},\quad \frac{\partial\mathcal{J}}{\partial W_2}=(\hat{A}H_1)^{\top}\frac{\partial\mathcal{J}}{\partial Z_2},\quad \frac{\partial\mathcal{J}}{\partial W_1}=(\hat{A}X)^{\top}\Big[\Big(\hat{A}^{\top}\frac{\partial\mathcal{J}}{\partial Z_2}W_2^{\top}\Big)\odot\mathbf{1}(Z_1>0)\Big],

其中 MM 是只保留已标注行的对角掩码矩阵。注意未标注节点虽然不贡献损失,却通过 Â\hat{A} 参与前向传播——这正是“半监督”的含义,也是图上的数据泄漏容易发生的地方:测试节点的特征在训练时已被邻居“看到”。