Details: Personalized PageRank
下面把 2.3 节拆成六个层次来讲透:conductance 的定义与直觉 → 为什么用 Personalized PageRank → PR 方程的随机游走推导 → 懒惰随机游走的矩阵形式 → 近似算法(push 方法)→ 扫描割与理论保证。
一、Conductance:为什么这样定义
1.1 定义
对无向加权图 G=(V,E,R),子集 S⊆V 的 conductance 为:
Φ(S)=min[vol(S),2m−vol(S)]σ(S)
其中:
σ(S)=vx∈S,vy∈/S∑Rxy
vol(S)=vi∈S∑deg(vi),deg(vi)=j∑Rij
2m=i∑deg(vi)
符号解释:
- Rxy:功能相似图中边 (vx,vy) 的权重,即 IsoRank 分数;
- σ(S):割权,即从 S 连到 Sc 的所有边权之和;
- vol(S):S 的体积,即 S 内所有节点度数之和;
- 2m−vol(S)=vol(Sc):补集体积;
- 分母取较小体积,保证 Φ(S) 关于 S 和 Sc 对称。
1.2 为什么分母用 min[vol(S),vol(Sc)]
如果分母用 ∣S∣(节点数),会偏向小集合:一个很小的集合只要割边少,conductance 就低,但它可能没有生物学意义。
如果用 vol(S),会偏向大集合:S=V 时割为 0,conductance 为 0,但这不是簇。
用 min[vol(S),vol(Sc)] 的直觉是:
- 如果 S 很小,分母是 vol(S),要求割相对于 S 自身的连接也不能太大;
- 如果 S 很大,分母是 vol(Sc),等价于在衡量补集这个“小集合”的割;
- 因此 Φ(S)=Φ(Sc),不会因取 S 还是补集而改变。
1.3 直观:conductance 衡量“像不像簇”
- 内部边多、外部边少 → σ(S) 小、vol(S) 大 → Φ(S) 小 → 像簇;
- 内部边少、外部边多 → σ(S) 大、vol(S) 小 → Φ(S) 大 → 不像簇。
在功能相似图中,一个跨物种功能簇应该内部高权重、外部低权重,因此对应低 conductance 集。
1.4 与“最大加权 clique”的对比
严格 clique 要求 S 内每对节点都有边,且边权高。PPI 数据有噪声、不完整,严格 clique 几乎不存在。
低 conductance 集只要求“内部连接相对紧密、外部连接相对稀疏”,允许缺失边和低权边,因此误差容忍。这就是作者从 clique 转向 conductance 的原因。
二、为什么用 Personalized PageRank
2.1 全局谱划分的问题
经典谱聚类需要对整张图做拉普拉斯特征分解,复杂度高,且给出的是全局划分,不能针对某个起点 v 找“包含 v 的簇”。
IsoRankN 需要:对每个蛋白 v,在它的星 Sv 上找包含 v 的高质量子集 Svs。这是局部图划分问题。
Anderson et al. (2006) 证明:
给定起点 v,可以通过计算 v 的 Personalized PageRank 向量,再对其做扫描割,高效地找到一个包含 v 的低 conductance 集,且该集合接近最优。
“Nibble”意为“小口咬”:只探索 v 附近的一小部分图,而不是全图。复杂度与输出集合大小相关,而不是 n 或 m。
普通 PageRank:
π=απW+(1−α)1/n
传送项均匀分布到所有节点,得到全局重要性排序。
Personalized PageRank:
p=αpW+(1−α)χv
传送项集中在起点 v,得到“相对于 v 的局部重要性排序”。与 v 连接紧密的节点获得较高质量。
三、PR 方程的随机游走推导
3.1 随机游走过程
从 v 出发,每一步:
- 以概率 γ 传送回 v;
- 以概率 1−γ 做懒惰随机游走:以 1/2 概率不动,以 1/2 概率按边权比例跳到邻居。
设 p(x) 为长期停留在节点 x 的概率。则:
p(x)=γ⋅1[x=v]+(1−γ)y∑p(y)Wyx
其中 Wyx 是从 y 跳到 x 的转移概率。
写成向量形式:
p=γχv+(1−γ)pW
这就是原文公式 (1) 的等价形式(原文用 γ 表示传送概率,与常见 PageRank 的 α 对应):
Pr(γ,v)=γχv+(1−γ)Pr(γ,v)W
注意符号: 原文中 γ 是传送回 v 的概率,γ 越大,越局部;常见 PageRank 中 α 常表示继续游走的概率,这里不要混淆。
3.2 解的存在唯一性
整理方程:
p(I−(1−γ)W)=γχv
p=γχv(I−(1−γ)W)−1
因为 W 是随机矩阵,谱半径 ≤1,而 0<γ≤1,所以 (1−γ)W 谱半径 <1,矩阵 I−(1−γ)W 可逆,解唯一:
p=γt=0∑∞(1−γ)tχvWt
展开理解:
p=γχv+γ(1−γ)χvW+γ(1−γ)2χvW2+⋯
- 第一项:传送一次就停在 v 的概率;
- 第二项:传送后走一步到达某节点的概率;
- 第 t 项:传送后走 t 步的概率;
- 因子 (1−γ)t 使长游走指数衰减,因此 p 集中在 v 附近。
这就是“局部性”的数学来源:γ 越大,衰减越快,p 越集中在 v 附近;γ 越小,扩散越远。
3.3 与 IsoRank 全局方程的关系
原版 IsoRank 的方程:
R=αAR+(1−α)E
Personalized PageRank 方程:
p=(1−γ)pW+γχv
结构相同:都是“传播项 + 重启/先验项”。区别:
| IsoRank | Personalized PageRank |
|---|
| 传播矩阵 | A(乘积图拓扑) | W(功能相似图懒惰游走) |
| 先验项 | E(序列同源性,全局) | χv(单点指示,局部) |
| 解的含义 | 所有蛋白对的全局相似度 | 相对于起点 v 的局部重要性 |
可以认为:IsoRank 是“以序列相似性为先验的全局 PageRank”;Personalized PageRank 是“以单点 v 为先验的局部 PageRank”。
四、懒惰随机游走矩阵 W
4.1 定义
原文:
W=21(I+D−1R)
符号解释:
- R:功能相似图的加权邻接矩阵,Rij=w(vi,vj);
- D:对角矩阵,Dii=∑jRij(按行归一化)或列和(无向图行和=列和);
- D−1R:普通随机游走转移矩阵,从 i 跳到 j 的概率为 Rij/deg(i);
- I:单位矩阵;
- 21(I+D−1R):以 1/2 概率不动,以 1/2 概率按边权跳。
4.2 为什么要“懒惰”
普通随机游走可能具有周期性(例如二分图上奇偶步来回跳),导致极限分布不收敛。懒惰随机游走通过“以 1/2 概率不动”打破周期性,保证:
- W 的特征值在 [−1,1] 内,且最大特征值为 1;
- 当 γ>0 时,(1−γ)W 谱半径 <1,PR 方程有唯一解;
- 收敛行为更稳定。
4.3 列和/行和归一化方向
原文说 “D is the diagonal of column sums of R”。对于无向图,行和等于列和,所以方向不影响结果。严格来说:
- 若 p 是行向量,W=21(I+D−1R) 中 D−1R 是行随机矩阵,pW 表示从 p 分布走一步后的分布;
- 若用列向量,则写成 W=21(I+RD−1),Wp 同理。
论文采用行向量约定,所以 pW 在右乘。
五、近似算法:push 方法
5.1 为什么不精确求解
精确求解 p=γχv+(1−γ)pW 需要解线性系统,复杂度 O(n3) 或至少 O(m),对于全图太大。
Anderson et al. (2006) 的贡献是:只需局部计算,就能得到 p 的近似,且近似误差可控制。
5.2 push 算法的核心思想
维护两个向量:
- p:当前对 PR 向量的估计(“已确定的质量”);
- r:残差(“尚未分配的质量”)。
初始:
p=0,r=χv
即所有质量都在起点 v 的残差中。
迭代 push 操作:
- 选一个残差 r(u) 较大的节点 u;
- 把 r(u) 的一部分“推送”到 p(u) 和邻居的残差中:
p(u)←p(u)+γr(u)
r(u)←21(1−γ)r(u)
r(w)←r(w)+21(1−γ)deg(u)Ruwr(u),∀w∈N(u)
解释:
- 以概率 γ,这部分质量“传送回 v”并永久留在 u 的估计中(严格说是留在当前节点,但传送项最终归到 v;实现上 p(u) 累加 γr(u),而 χv 项单独处理);
- 以概率 1−γ 继续游走,其中 1/2 不动(留在 u 的残差),1/2 按边权分给邻居;
- 当所有残差都小于阈值 ϵ 时停止。
5.3 复杂度与局部性
push 算法的复杂度与被 push 的节点数成正比,而不是全图节点数。由于 (1−γ)t 指数衰减,远离 v 的节点残差很快低于阈值,不会被 push。
因此对于局部性强的 γ,算法只探索 v 附近的一小部分图。这就是“Nibble”的高效来源。
5.4 近似误差保证
Anderson et al. (2006) 证明:当残差满足 ∥r∥∞≤ϵ 时,得到的 p 满足:
∥p−Pr(γ,v)∥1≤γϵ
即近似误差可控。误差越小,需要 push 的次数越多,但仍是局部的。
六、扫描割:从 PR 向量到低 conductance 集
6.1 排序
得到近似 PR 向量 p 后,按 p(vi) 从大到小对节点排序。
原文用归一化质量:
∑kRkp(vi)
这里原文写法可能有笔误;更常见的做法是按 p(vi)/deg(vi) 或直接按 p(vi) 排序。关键思想是:PR 质量高的节点更可能属于包含 v 的簇。
6.2 候选集 Tjp
原文:
Tjp={vi∣∑kRkp(vi)≥∑kRkp(vj)}
即取质量不低于第 j 个节点质量的所有节点,也就是排序后的前 j 个节点构成的前缀集合。
j 从 1 到 n,得到一系列嵌套候选集:
T1p⊆T2p⊆⋯⊆Tnp=V
6.3 扫描割
对每个前缀 Tjp,计算 conductance Φ(Tjp),取最小者:
Svs=jminΦ(Tjp)
这就是“sweep cut”:沿着 PR 排序扫描所有前缀,找 conductance 最小的截断。
6.4 理论保证
Anderson et al. (2006) 的核心定理(简化表述):
设 S∗ 是包含 v 的最优低 conductance 集,则扫描割得到的 Svs 满足
Φ(Svs)≤O(Φ(S∗))
或类似的近似保证,具体形式取决于 γ 和近似误差。
直观:PR 向量把“与 v 紧密相连”的节点排在前面,最优低 conductance 集会在某个前缀处出现,扫描割不会错过太多。
这意味着不需要精确求解全局最优割,局部 PR + 扫描就能得到近似最优的簇。
6.5 为什么扫描割适合噪声数据
- 不要求严格 clique,只要求割相对小;
- PR 质量是连续分数,允许边权变化;
- 取最小 conductance 前缀,自动确定簇的大小,不需要预设簇数;
- 对缺失边和低权边有容忍性。
七、2.3 节完整数学流程总结
对每个蛋白 v:
1. 在功能相似图的星 S_v 上,初始化 p=0, r=χ_v
2. 用 push 方法近似求解 Personalized PageRank:
p = γχ_v + (1-γ)pW, W = 1/2(I + D^{-1}R)
直到所有残差 ≤ ε
3. 按 p(v_i) 从大到小排序节点
4. 扫描所有前缀 T_j^p,计算 conductance Φ(T_j^p)
5. 取 S_v^s = argmin_j Φ(T_j^p)
输出 Svs 就是包含 v 的低 conductance 跨物种功能簇。
八、关键公式速查
| 概念 | 公式 |
|---|
| Conductance | Φ(S)=min[vol(S),2m−vol(S)]σ(S) |
| 割权 | σ(S)=∑vx∈S,vy∈/SRxy |
| 体积 | vol(S)=∑vi∈Sdeg(vi) |
| Personalized PageRank | Pr(γ,v)=γχv+(1−γ)Pr(γ,v)W |
| 懒惰随机游走矩阵 | W=21(I+D−1R) |
| 级数解 | p=γ∑t=0∞(1−γ)tχvWt |
| 候选前缀集 | Tjp={vi∣p(vi)≥p(vj)}(按质量排序后的前 j 个) |
| 扫描割 | Svs=minjΦ(Tjp) |
| 近似误差 | ∥p−Pr(γ,v)∥1≤ϵ/γ |
九、用一句话讲透 2.3
2.3 节用 Personalized PageRank 把“找包含 v 的低 conductance 簇”转化为“从 v 出发的局部随机游走稳态分布 + 按质量排序扫描割”;γ 控制局部性,懒惰随机游走保证收敛,push 近似保证高效,扫描割保证近似最优;整套机制不要求严格 clique,因此能容忍 PPI 网络的噪声和不完整性。
如果你愿意,下一步我可以继续把 star spread 与 star merging 的完整伪代码整理出来,或者画一张从 IsoRank 分数到最终簇分配的端到端流程图。