跳转到内容

Rényi 差分隐私 — 用一把更精确的尺子量隐私损失

待复核

你在超市结账时经常看到”买三件打八折”这种规则——它把多次购买打包成一个更优惠的价格,而不是每次单独算折扣再加起来。Rényi 差分隐私(Rényi Differential Privacy,简称 RDP)做的事情很类似:它用一种更聪明的方式把多次查询的隐私损失”打包计算”,结果比逐次相加更精确、更紧凑。

回顾一下背景。dwork-dp-icalp-2006 定义了 ε-差分隐私:对邻接数据集 D 和 D’(只差一个人的两份数据),算法输出的概率比值被 e^ε 限制。dwork-calibrating-noise-2006 给出了拉普拉斯机制。dwork-our-data-ourselves-2006 引入高斯机制和 (ε,δ)-DP。但这些工具在面对”组合多次查询”时都有一个痛点:隐私预算的追踪不够精确。

经典的顺序组合定理说”做 k 次 ε-DP 的查询,总隐私损失是 kε”。高级组合定理改善到 O(ε√k),但仍然偏松。当你训练一个深度学习模型、每一步梯度都加一次噪声、迭代几万步时,这个”偏松”会导致你要么加过多噪声(模型没用了),要么过早耗尽预算。

Mironov 的核心洞察是:用 Rényi 散度(Rényi divergence)来度量两个分布的”距离”,可以得到比传统 (ε,δ)-DP 更紧的组合界。一个随机算法满足 (α, ε)-RDP,当且仅当对所有邻接数据集 D, D’:D_α(M(D) || M(D’)) ≤ ε。其中 α > 1 是可调参数,α 越大考察的是分布尾部越极端的偏差。

直觉理解:传统 DP 像是用一把”最大偏差”的尺子量隐私——它看的是最坏情况下概率比值的上界。RDP 像是用一组不同精度的尺子(不同的 α)同时量——你可以选最适合当前场景的那把尺子来得到最紧的结论。

不理解 RDP,下面这些工业系统的设计决策都没法解释:

  • 为什么 TensorFlow Privacy 和 PyTorch Opacus 的隐私会计默认用 RDP 而非基础组合定理——因为 RDP 能让同样的隐私预算训练更多步、模型精度更高
  • 为什么 DP-SGD 能在 ε < 10 的预算下训练出可用的 BERT 和 GPT 模型——经典组合定理算出的 ε 会爆炸到几百,只有 RDP 会计才能给出合理的数字
  • 为什么隐私工程师需要在”不同 α 值”下同时追踪隐私损失——因为最终转换为 (ε,δ)-DP 时,最优的 α 取决于你选的 δ
  • 为什么后续出现了 zCDP(零集中差分隐私)和 GDP(高斯差分隐私)等变体——它们都是 RDP 思路的简化或特例

这篇论文是从”基础 DP 定义”到”工业可用的隐私会计系统”之间的关键桥梁。没有它,大规模差分隐私机器学习在实践中几乎不可行。

Rényi 散度——核心数学工具

经典 KL 散度(相对熵)度量两个概率分布 P 和 Q 有多”不同”:KL(P||Q) = E_P[ln(P/Q)]。它是信息论的基础工具,但有一个限制:它只是”平均信息增益”,无法刻画尾部行为。

Rényi 散度是 KL 散度的一族推广:

D_α(P || Q) = 1/(α-1) · ln E_Q[(P/Q)^α]

当 α → 1 时退化为 KL 散度;当 α → ∞ 时变成 max-divergence(即纯 DP 的度量)。中间的 α 给出介于”平均”和”最坏情况”之间的可调折中——这正是 RDP 比传统 DP 更精确的原因。

日常类比:KL 散度像比较两家餐厅的”平均菜品评分差”;max-divergence 像比较”评分差最大的那道菜”;Rényi 散度是”重点看差距大的菜,但不完全忽略差距小的菜”。

组合性——RDP 的杀手锏

如果算法 M₁ 满足 (α, ε₁)-RDP,算法 M₂ 满足 (α, ε₂)-RDP,那么先后执行的组合算法满足 (α, ε₁+ε₂)-RDP。形式上和传统组合一样是加法,但关键区别是:每一步的 ε_i 在 RDP 下通常比在传统 DP 下更小,而且最终转换为 (ε,δ)-DP 时还能选最优 α 进一步优化。

对比经典方法理解优势:基础组合 kε₀ 线性爆炸;高级组合 O(ε₀√k) 根号级增长但仍偏松;RDP 在每个 α 下分别加 ε_i 再选最优 α 转换,多了”选 α”这个自由度,结果往往比高级组合更紧。

高斯机制的精确分析

高斯机制是 RDP 分析最干净、工业应用最广的场景。设查询函数的 L2 敏感度为 Δ₂(换一个人,查询结果最多能偏多少,用欧氏距离量),加标准差为 σ 的高斯噪声,则该机制满足 (α, α·Δ₂²/(2σ²))-RDP,对所有 α > 1 同时成立——闭式解,无需数值近似。

组合 k 步后对一组 α 网格逐个计算 ε = k·α·Δ₂²/(2σ²) + ln(1/δ)/(α-1),取 min 即得最紧的 (ε,δ)-DP 保证。实际代码里对 α 的网格(如 [1.5, 2, 3, …, 256])逐个计算取 min,计算量极小(几十次浮点运算)但精度提升巨大。

子采样放大——训练能跑那么多步的秘密

深度学习训练每步只用随机 mini-batch(采样率 q),隐私损失大约缩小 q² 倍。DP-SGD 每步用全数据 1%(q=0.01)时损失缩小万倍。加上 RDP 紧组合,几万步训练的总预算才变得可接受。如果用经典组合 + 不考虑子采样放大:10000 步 × ε₀ 直接爆炸;RDP + 子采样能压到 ε < 10 的合理范围。

隐私定义光谱

RDP 处于隐私定义的”光谱”上:纯 DP(ε-DP,等价 α=∞ 的 RDP,组合最松)→ RDP(可调 α,组合紧)→ (ε,δ)-DP(最终输出格式)。zCDP(Bun & Steinke 2016)用线性族 ε(α)=ρα 约束整条 RDP 曲线,是更简单但更少自由度的特例;GDP(Dong et al. 2019)用假设检验视角对高斯机制渐近最优。

案例 1:TensorFlow Privacy 的隐私会计

Google 的 TF Privacy 库训练隐私模型时,核心流程:用户指定噪声乘数 σ/C(C 是梯度裁剪范数)、采样率 q、训练步数 T。隐私会计模块对一组 α 值(默认 [1+1/1024, 2, 3, …, 256, 512])分别计算单步 RDP(用子采样高斯精确公式),乘 T 做组合,再对每个 α 转换为 (ε,δ) 取 min。用户只需调三个旋钮,RDP 会计在后台自动给出最紧的隐私界。

案例 2:Opacus 训练 GPT-2

Meta 的 Opacus 库用 RDP 会计训练了带隐私保证的 GPT-2。关键参数:采样率 q=512/数据集大小,噪声乘数 0.8,梯度裁剪 1.0。数万步训练后 RDP 会计报告 ε≈6.7(δ=10⁻⁵)。如果用基础组合定理,同样参数下 ε 会超过 1000——模型完全不可用。RDP 让”可用模型 + 合理隐私”成为可能。

核心代码(简化版 RDP 会计逻辑):

import numpy as np
def gaussian_rdp(alpha, sigma):
"""单步高斯机制的 RDP epsilon(L2 敏感度=1)"""
return alpha / (2 * sigma**2)
def rdp_to_dp(alphas, rdp_epsilons, delta):
"""从 RDP 转换为 (epsilon, delta)-DP,取最优 alpha"""
dp_epsilons = rdp_epsilons + np.log(1/delta) / (alphas - 1)
best_idx = np.argmin(dp_epsilons)
return dp_epsilons[best_idx], alphas[best_idx]
# 参数:噪声乘数=1.0,训练 1000 步,采样率 0.01
sigma, steps, q, delta = 1.0, 1000, 0.01, 1e-5
alphas = np.linspace(1.01, 256, 1000)
# 子采样放大后的单步 RDP(简化公式)
single_step = np.array([q**2 * gaussian_rdp(a, sigma) for a in alphas])
total_rdp = steps * single_step # 组合 T 步
eps, best_alpha = rdp_to_dp(alphas, total_rdp, delta)
print(f"最终隐私保证: ε={eps:.2f}, δ={delta}, 最优α={best_alpha:.1f}")

注意:实际子采样 RDP 公式比 q²·ε 更复杂,这里只展示核心思路。生产代码请用 dp_accounting(Google)或 opacus.accountants(Meta)。

  1. α 选择范围不对导致结果偏松:有些实现只检查少量整数 α 值(如 2, 4, 8, 16),错过了最优点。实际最优 α 可能是 23.7 这样的非整数——但 RDP 对非整数 α 也成立。建议用密集网格(或对数网格 + 二分搜索)覆盖 [1.01, 1000] 范围。

  2. 混淆 RDP 的 ε 和传统 DP 的 ε:(α=2, ε=0.5)-RDP 转换为 (ε,δ)-DP 后 ε 可能远大于 0.5。新手容易看到 RDP 的 ε 很小就以为万事大吉——必须做最终转换才能得到有意义的隐私保证。

  3. 忘记子采样放大的前提条件:子采样放大要求采样是均匀随机的(泊松采样或无放回采样)。如果训练代码用的是固定 shuffle + 固定 batch 大小,数学上不完全等同于泊松采样,需要额外处理或使用修正公式。

  4. 自适应组合需谨慎:后续查询依赖前面结果时,RDP 加法组合仍成立,但子采样放大的精确公式需要额外条件。盲目套用子采样公式会低估实际隐私损失。

适用:多次组合查询或训练步数多的场景(DP-SGD 几万步)、高斯机制为主的系统、需要精确隐私会计的工业部署(TF Privacy / Opacus)、需在不同 δ 下灵活报告 ε 的场景。

不适用:单次查询无需组合的简单场景(直接用 ε-DP 更直观)、非高斯噪声机制(如指数机制、拉普拉斯机制,RDP 分析不一定更紧)、对隐私定义透明度要求极高的法规场景((ε,δ)-DP 更易向非技术人员解释)、数据量极小不做子采样的场景(放大效果消失,RDP 优势不明显)。

Rényi 散度以匈牙利数学家 Alfréd Rényi 命名,他在 1961 年提出这个概念时主要关注信息论,完全没有想到隐私保护。半个世纪后,Google 研究员 Ilya Mironov 发现它恰好解决了差分隐私组合的痛点——一个纯数学工具跨越 56 年找到了最佳应用场景。Mironov 的论文动机直接来自 DP-SGD 训练深度学习模型时隐私预算”算不过来”的工程痛苦:经典组合定理给出的 ε 大到没有实际意义。从痛点到论文发表(CSF 2017)到 TF Privacy 库上线,整个链条不到两年,是理论驱动工程的典型案例。

  1. 度量工具的精度决定系统能力——数学上的”更紧”直接翻译为工程上的”能多训 10 倍步数”
  2. 参数化定义比单一定义更灵活——RDP 的 α ∈ (1,∞) 给了你无穷多把隐私尺子,最后挑最好的
  3. 好的抽象对常见场景给闭式解——高斯机制在 RDP 下有精确公式,让工业部署可计算
  4. 子采样是免费的隐私放大器——不是新技术,但 RDP 让放大效果可精确追踪
  5. 理论与工程的距离可以很近——论文直接导致 TF Privacy 和 Opacus 的核心模块
  6. 隐私定义的”光谱”思维——纯 DP / RDP / zCDP / (ε,δ)-DP 是不同精度/便利性的 trade-off
  • Abadi et al., “Deep Learning with Differential Privacy” (CCS 2016)——首次将 moments accountant(RDP 的前身)用于 DP-SGD
  • Balle et al., “Hypothesis Testing Interpretations and Renyi Differential Privacy” (AISTATS 2020)——更紧的子采样界
  • Google dp-accounting 库 / Meta Opacus——生产级 RDP 会计实现
  • Bun & Steinke, “Concentrated Differential Privacy” (2016)——zCDP,用 ε(α)=ρα 简化 RDP 曲线
  • Dong, Roth & Su, “Gaussian Differential Privacy” (JRSS-B 2022)——渐近最优刻画