公平性准则:群体、个体、反事实 本节摘要:三个家族结构化了公平性文献。群体公平:人口统计平等、均等化赔率、条件使用准确率平等——受保护群体间的平均率相等。个体公平(Dwork 等 2012):相似个体收到相似决策;决策映射上的 Lipschitz 条件。反事实公平(Kusner 等 2017):若一个个体的敏感属性被反事实改变时决策不变,则对其公平。2024 理论结果(NeurIPS 2024):存在固有的「反事实 vs 准确率」权衡;一个模型无关方法可把最优但不公平的预测器转换为反事实公平的,带有限准确率损失。回溯反事实(arXiv:2401.13935,2024 年 1 月):避开对法律保护属性做干预的新范式。
本节摘要:三个家族结构化了公平性文献。群体公平:人口统计平等、均等化赔率、条件使用准确率平等——受保护群体间的平均率相等。个体公平(Dwork 等 2012):相似个体收到相似决策;决策映射上的 Lipschitz 条件。反事实公平(Kusner 等 2017):若一个个体的敏感属性被反事实改变时决策不变,则对其公平。2024 理论结果(NeurIPS 2024):存在固有的「反事实 vs 准确率」权衡;一个模型无关方法可把最优但不公平的预测器转换为反事实公平的,带有限准确率损失。回溯反事实(arXiv:2401.13935,2024 年 1 月):避开对法律保护属性做干预的新范式。哲学调和(ICLR Blogposts 2024):有因果图时,满足某些群体公平度量蕴含反事实公平。
对应原课程:Phase 18 · Lesson 21 ·
fairness-criteria-group-individual-counterfactual(原英文phases/18-ethics-safety-alignment/21-fairness-criteria-group-individual-counterfactual/docs/en.md)。前置:Phase 18 · 20,Phase 02。
阅读完本节,你应当能够:
第 20 节是关于测量偏见,本节是关于定义公平标准——测量应服务的标准。三个家族给出结构不同的标准:一个模型可以群体公平而个体不公平,反事实公平而群体不公平。选择标准是政策决策,没有标准普遍最优。
P(Y=1|A=a) = P(Y=1|A=a'),对所有群组。接受率相等。P(Y=1|Y*=y,A=a) = P(Y=1|Y*=y,A=a'),跨群组 TPR 与 FPR 相等。P(Y*=y|Y=y,A=a) = P(Y*=y|Y=y,A=a'),跨群组预测值相等。不可能定理(Chouldechova、Kleinberg-Mullainathan-Raghavan 2017):在不等基率下,这三者无法同时满足。
Dwork 等 2012。决策映射 f 关于任务特定相似度量 d 是个体公平的,若 |f(x) - f(x')| <= L * d(x, x')(某 Lipschitz 常数 L)。相似个体得相似决策。需要定义 d——这是政策问题,不是统计问题。
Kusner 等 2017。在群体因果模型下,若个体 i 的敏感属性被反事实改变时决策不变,则对 i 反事实公平。需要因果 DAG——DAG 是建模选择,反事实公平的正当性只与 DAG 的正当性相当。
NeurIPS 2024 理论:反事实公平与预测准确率之间存在固有权衡。模型无关方法可把最优但不公平的预测器转换为反事实公平的,代价是有限准确率损失。损失大小取决于最优不公平预测器中敏感属性系数的量级。
arXiv:2401.13935(2024 年 1 月)。传统反事实要求对敏感属性做干预——「若这个人曾是不同性别,决策会变吗」。法律上这有问题:分类法中保护属性不可被干预。回溯反事实翻转方向:不干预属性,而问「个体的实际特征组合的什么搭配会产出反事实结果」。这避开了法律异议。
ICLR Blogposts 2024。手上有因果图时,满足某些群体公平度量蕴含反事实公平。三个家族并非正交——它们是同一底层因果结构的不同面。这不化解不可能定理(不等基率仍阻止同时群体公平),但它表明「群体 vs 个体/反事实」的表面对立,部分是「未对因果模型显式化」的产物。
code/main.py 构造玩具二分类数据集,带敏感属性与不等基率。在简单分类器上算人口统计平等、均等化赔率、条件使用准确率平等。观察三者不一致。对人口统计平等做重加权,观察对另两者的代价。
def group_fairness(y_pred, y_true, A): return { "demographic_parity": P(y_pred==1, given=A==a) equal across a, "equalized_odds": TPR(y_pred,y_true,A) & FPR(...) equal across a, "conditional_use_acc": PPV(y_pred,y_true,A) equal across a, } # 不等基率下三者不可能同时为真(Chouldechova/KMR) def counterfactual_fairness(model, x, sensitive_attr, causal_dag): x_cf = intervene(causal_dag, x, sensitive_attr, flip=True) return model(x) == model(x_cf) # 需因果 DAG
💡 不可能定理的工程含义:你不能「同时」满足三个群体准则——选人口统计平等就牺牲均等化赔率。所以公平性主张必须指明选了哪个准则,以及为什么这个准则对该部署是对的。一个只说「公平」而不指明准则的模型卡,等于一个不指明基准的能力主张。
| 准则 | 形式 | 依赖 | 与其他关系 |
|---|---|---|---|
| 人口统计平等 | 跨群组接受率相等 | 无 | 与均等化赔率冲突(不等基率) |
| 均等化赔率 | 跨群组 TPR/FPR 相等 | 真实标签 | 与人口统计平等冲突 |
| 条件使用准确率 | 跨群组 PPV/NPV 相等 | 真实标签 | 与上两者冲突 |
| 个体公平 | Lipschitz | 相似度量 d | 需主观定义 d |
| 反事实公平 | 属性反事实不变 | 因果 DAG | DAG 是建模选择 |
设计要点:三个家族不是「选最好的」——它们测结构不同的东西。群体公平测平均,个体公平测局部一致性,反事实公平测因果不变性。哲学调和表明,显式化因果模型后,某些群体度量蕴含反事实公平——所以先建因果图,再选准则,而非反过来。
本节产出 outputs/skill-fairness-criterion.md:给它一份公平性主张或政策,识别它在主张哪个准则、模型在所述不等基率下能否满足剩余准则、主张依赖什么因果 DAG。
code/main.py 是独立玩具,二分类可换成真实分类任务,三准则计算 + 重加权代价逻辑不变。
Easy:运行 code/main.py,报告默认数据上三个群体度量。施加针对人口统计平等的重加权,重新报告。
Medium:用非敏感特征上的 L2 实现 Dwork 等 2012 个体公平度量。报告多少对在 L=1 下违反 Lipschitz。
Medium:读 Kusner 等 2017,为简历打分构造一个简单的两特征因果 DAG,识别它蕴含的反事实公平条件。
Hard:2024 回溯反事实论文避免对保护属性做干预。描述一个这对法律合规至关重要的场景。
Hard:ICLR 2024 调和主张群体与反事实公平是同一结构的不同面。选 code/main.py 中三个准则的两个,陈述使它们等价的因果假设。
下一节,我们转向隐私——差分隐私:如何在不泄露个体训练样本的前提下训练 LLM。