「模块度有分辨率下限」:为什么“我们发现了7个社群”是网络规模的函数,而不是世界的性质
【锚点】模块度最大化能看见的最小社群,由网络总边数 m 决定,不由现象本身决定:内部连边少于 √(2m) 的社群会被系统性地合并掉。所以任何“我们识别出 K 个社群”的结论,缺了 (K, γ, m) 这个三元组就是不可解释的。
【显式·可查的推导】Fortunato & Barthélemy, PNAS 2007, 104(1):36–41。取两个相邻模块,各含 l_s 条内部边,模块间 1 条边,全网 m 条边。模块度 Q = Σ_c [l_c/m − (d_c/2m)²]。合并前后这两项分别是: Q_before = 2[l_s/m − (l_s/m)²] Q_after = (2l_s+1)/m − (4l_s/2m)² ΔQ = 1/m − 2(l_s/m)² 合并被偏好 ⟺ ΔQ > 0 ⟺ l_s < √(m/2)。这就是分辨率下限。
【流程节点链路】全网边数 m → 配置模型零模型下模块 c 的期望内部边数 d_c²/4m → 模块变大时惩罚项按 (d_c/2m)² 二次增长、慢于线性收益 l_c/m → 合并两个小模块的 ΔQ 转正 → 分辨率下限 l_s* = √(m/2) → 小于该值的社群不可检测。中间节点“惩罚项二次增长慢于线性收益”是关键,省掉它,只能记住一个公式,无法解释为什么下限随规模上升。
【隐式·一步推理】环形 n 个团、每团 k 个点:m ≈ n·k(k−1)/2,代入 l_s < √(m/2) 得 k ≲ √n。也就是说:网络规模翻四倍,能看见的最小社群边长翻一倍。具体数字:m = 10⁶ 条边的网络,分辨率下限 ≈ √(2×10⁶) ≈ 1414 条内部边。一个 50 人、人均 10 条内部关系的紧密团队大约只有 250 条边——它在模块度眼里根本不构成一个社群,会被并进邻近的大块。
【细微·比对多处才看得见】Louvain 和 Leiden 都在优化同一个 Q,所以都继承这个下限;换算法不解决问题,换目标函数才解决。三条出路各有代价:多分辨率模块度加参数 γ(Lambiotte, Delvenne & Barahona 2008)——但 γ 是自由参数,等于把“分辨率”从算法里挪到了研究者手里;随机块模型 + MDL(Peixoto 2014)——分辨率由数据自己定,代价是计算与模型选择;Lancichinetti & Fortunato 2011 (PRE 84:066122) 干脆论证模块度不该被当作社群检测的目标函数。
【极难发现·底层原因】为什么偏偏是 √m?Newman 2016 (PRE 94:052315) 证明模块度最大化等价于一个特定生成模型的最大似然——一个只有单一全局参数(任意两点相连的基础概率)的 planted-partition 模型。全局参数意味着全局尺度:那个模型里不存在“局部密度可以不同”这回事,所以它无法在不同尺度上同时成立。分辨率下限不是实现缺陷,是零模型的自由度不够。任何形如“内部密度 − 全局期望密度”的目标函数,都会继承这个病。
【管理学引申,可检验】用同一个目标函数衡量组织里的团队模块化(团队内互动 vs 全公司期望互动),会得到一个可检验的预测:同样的团队结构,在 500 人的公司和 50000 人的公司里被测出的“团队数”不同,且方向是规模越大、测出的团队越少越粗。如果这个预测成立,所有跨公司比较“组织模块化程度”的研究,都在暗中比较公司规模。这是我目前最想找人一起做的检验。
【结尾问题】如果分辨率下限是 √(2m),那么“人类社交网络大约有 5 个社群层级”这类结论,有多少是关于世界的,有多少是关于我们采样了多少条边的?我的立场:每个社群划分都该像报 p 值一样报 (γ, m),否则 K 这个数字不携带信息。反方会说:γ 一报,所有结论都变成“取决于参数”——那正是我想听的辩论。







0 评论