← 返回目录

IEEE Transactions on Information Theory 57(8), 2011

Rumors in a Network: Who's the Culprit?

只知道谁被感染了、不知道先后顺序时,怎样找传播源?Shah 与 Zaman 证明:在正则树上,最大似然估计等价于选谣言中心性最大的节点,即能解释观测感染子图的"合法感染顺序"最多的节点;并精确刻画了这种估计在不同树上猜中的概率。

Devavrat Shah,Tauhid Zaman(MIT)。本页依据项目内的论文 PDF(43 页版本),替换了此前同名页面,更正内容见文末。

1研究问题

SI 模型:每条边的传播时间相互独立、服从指数分布。传播从源 v* 开始,经过一段时间后观测到 N 个被感染节点构成的连通子图 G_N,但不知道感染顺序和时间。目标是从 G_N 估计 v*。

2谣言中心性

以 v 为源时,一个"合法排列"是与图结构相容的感染顺序:每个节点都在它的某个邻居之后被感染。在正则树上,由于指数分布无记忆,每个合法排列出现的概率相同,于是 P(G_N | v) 正比于以 v 为源的合法排列个数,记为谣言中心性 R(v, G_N)。在树上它有闭式:

R(v, G_N) = N! / ∏_{u ∈ G_N} T_u^v T_u^v:以 v 为根时,u 的子树大小(含 u 自己)

估计量就是 R 最大的节点,称为谣言中心。

在度不均匀的树或一般图上,各合法排列的概率不再相同,R 不再正比于似然,谣言中心也不再是最大似然估计。

3一个可核对的例子

7 个节点的感染树:1–2–3,3–4,3–5,4–6,5–7。按上式逐个计算:

候选源各节点子树大小之积R = 7! / 积占全部 R 之和
17·6·5·2·2·1·1 = 84062.8%
27·1·5·2·2·1·1 = 1403616.7%
37·2·1·2·2·1·1 = 569041.7%
47·1·5·2·1·2·1 = 1403616.7%
51403616.7%
6、78406各 2.8%

节点 3 是谣言中心。"占全部之和"只有在正则树假设下才等于后验概率;这棵小树本身度并不均匀,这里的比例只用于说明公式。表中数值已用程序按定义逐一核对。

4O(N) 算法

  1. 任选一个根做一次遍历,自下而上传递子树大小("向上消息"),得到根的 R。
  2. 自上而下传递:父节点 u 的子节点 c 满足 R(c) = R(u) · T_c / (N − T_c)("向下消息")。
  3. 两遍遍历得到全部节点的 R,取最大者,并列时随机。

5推广到一般树与一般图

6主要结论

底图谣言中心猜中源的渐近概率
路径(2-正则树)以 t^{-1/2} 衰减到 0(定理 1)
d-正则树,d > 2下界为某个正常数 α_d,上界为 1/2(定理 2)
3-正则树恰为 1/4(定理 3)
满足多项式增长的几何树趋于 1(定理 4)

在小世界、无标度合成网络以及美国电网、互联网 AS 网络上,作者用模拟说明 BFS 启发式在网络"不太不规则"时表现良好;这部分是实验结论,不是定理。

7代码情况

2026-10-13 在 GitHub 检索,没有找到作者发布的代码,只有若干课程项目的第三方实现,本页未审查。

Dawkins 等 2021 的仓库(lab-sigma/Diffusion-Source-Identification,src/diffusion_source/algos.py)中有一个可读的实现 rumor_center(G, x):

8局限

9与 PR-SD 的关系

10本页更正记录

此前同名页面(docs/references/visualizations/shah2011_explainer.html,原文件未改动)有三处错误:
  • 示例树的谣言中心性写成 2、12、80、24、24、2、2 及 54.8% 等比例;按该页实际画出的树,正确值为 6、36、90、36、36、6、6,节点 3 占 41.7%。
  • "数学证明即使没有时间记录也能牢牢锁定真凶"不符合论文:正则树上猜中概率不超过 1/2,路径上趋于 0。
  • "PR-SD 的 PageRank 部署与谣言中心性直觉完全相通"属于没有依据的引申,已删除。