深入理解横向联邦学习:FedAvg、系统约束与隐私边界
横向联邦学习不只是把分布式训练搬到手机上:本文从 FedAvg 出发,讨论 non-IID、设备异构、通信成本、梯度泄露与安全聚合。

横向联邦学习解决的是这样一类问题:多个参与方拥有相似的特征空间、不同的样本,希望联合训练一个共享模型,但原始数据不能或不应该集中到同一个数据中心。
典型例子是手机输入法。不同设备上的样本都包含“输入上下文—下一个词”这类特征和标签,但每台设备对应不同用户,数据具有隐私性,网络和算力也很不稳定。
McMahan 等人的 FedAvg 论文在 2016 年上传 arXiv,并在 2017 年 AISTATS 发表。更准确地说,这篇工作把“联邦学习”命名并给出了影响深远的工程算法,而不是说此前从未有人研究过去中心化协同学习。
横向、纵向与传统分布式训练
三种设置最容易混淆:
| 设置 | 样本空间 | 特征空间 | 典型场景 |
|---|---|---|---|
| 横向联邦学习 | 重叠少 | 相近 | 多台手机训练同一个输入法模型 |
| 纵向联邦学习 | 重叠多 | 不同 | 银行与电商围绕同一批用户联合建模 |
| 数据中心分布式训练 | 数据由同一方控制 | 任意 | 一个组织把数据切到多个 GPU worker |

它们都可能出现 parameter server、worker 和聚合操作,但权限边界完全不同。数据中心训练可以控制硬件、数据分片和执行时序;跨设备联邦学习面对的是不可信、随时掉线、数据分布未知的外部客户端。
FedAvg 的基本过程
设第 个客户端有 条本地样本,当前全局参数为 。一轮训练可以概括为:
- 服务器从在线设备中采样一部分客户端;
- 下发当前模型 ;
- 每个客户端在自己的数据上执行若干步 SGD,得到 ;
- 服务器按样本量加权聚合:
- 重复多轮直到达到停止条件。
这里上传的是模型更新或参数,而不是原始样本。客户端多做几步本地计算,可以减少昂贵的通信轮数;但本地步数越多,在 non-IID 数据上发生 client drift 的风险也越大。
为什么它不只是“分布式 SGD 换了名字”
横向联邦学习的难点来自系统和统计条件同时失控。
1. 数据不是独立同分布
用户的语言、兴趣、活跃度差异巨大。有的客户端样本很多,有的只有少量数据;某些类别甚至只出现在个别设备上。简单平均会让本地模型朝不同方向漂移,也可能让大客户端支配全局模型。
2. 设备与网络异构
服务器不能假设所有设备同速返回。真实系统通常只选择满足充电、Wi-Fi、空闲等条件的设备,并设置截止时间;慢设备和掉线设备会造成选择偏差。
3. 通信比计算更贵
模型可能包含数百万甚至数十亿参数,而移动网络上行带宽有限。减少通信轮数、压缩更新、稀疏化、量化和分层聚合,常常比单纯优化本地算子更重要。
4. 客户端不可信
恶意参与者可以上传投毒更新、植入后门,或通过大量伪造客户端发动 Sybil 攻击。服务器需要异常检测、鲁棒聚合、身份与速率控制,但这些机制又可能与隐私保护冲突。
数据不出端,不代表数据不会泄露
“只上传梯度”听起来安全,但梯度本身是训练样本的函数。已有研究展示了从单个或小批量梯度重建输入、推断成员身份和敏感属性的攻击。
因此,联邦学习描述的是训练架构,不是完整的隐私方案。常见保护手段各自解决不同威胁:
- Secure Aggregation:服务器只能看到一组客户端更新的聚合结果,看不到单个更新;它不阻止恶意客户端投毒,也不自动提供差分隐私。
- Differential Privacy:裁剪并加噪更新,给出可量化的隐私预算;代价是精度损失,预算还会随训练轮数累积。
- 可信执行环境(TEE):在硬件隔离区内聚合或训练;安全性依赖硬件、远程证明和侧信道假设。
- 同态加密或多方计算:可以减少明文暴露,但计算和通信成本通常更高。
工程设计必须先写清楚威胁模型:我们防服务器、其他客户端、外部监听者,还是同时防投毒者?没有这个前提,“隐私安全”只是无法验证的口号。
联邦学习并非适合所有任务
以下情况尤其需要谨慎:
- 标签必须集中由专家生成,本地没有可用监督信号;
- 每个客户端样本过少,单次更新噪声极大;
- 模型太大,通信和端侧内存无法承受;
- 法规要求的不只是数据驻留,还包括可删除、可解释、可审计;
- 数据或任务分布变化太快,全局模型来不及收敛。
横向联邦学习真正有价值的地方,不是把数据“藏”在客户端,而是在数据治理约束下,把统计优化、分布式系统和安全机制放到同一个设计空间里权衡。