公平判据 —— 群体、个体、反事实
三个家族构成了公平文献的骨架。群体公平:人口均等、均等几率、条件使用准确率相等——平均而言在各受保护群体上速率相等。个体公平(Dwork et al. 2012):相似的个体得到相似的决策;决策映射上的 Lipschitz 条件。反事实公平(Kusner et al. 2017):如果在反事实地改变敏感属性时一个决策保持不变,那它对该个体就是公平的。2024 年的理论结果(NeurIPS 2024):存在一个内在的「反事实 vs 准确率」权衡;一个模型无关的方法能把一个「最优但不公平」的预测器转换成反事实公平的,准确率损失有界。回溯反事实(arXiv:2401.13935, 2024 年 1 月):一个新范式,避免了对受法律保护属性做干预。哲学层面的调和(ICLR Blogposts 2024):有了因果图,满足某些群体公平度量就蕴含反事实公平。
类型: Learn 语言: Python(标准库,三判据对比) 前置要求: 阶段 18 · 20(偏见)、阶段 02(经典 ML) 预计时间: ~60 分钟
学习目标
- 说出三个群体公平判据(人口均等、均等几率、条件使用准确率相等)和一个不可能性结果。
- 经由 Dwork et al. 2012 的 Lipschitz 表述描述个体公平。
- 描述反事实公平及其对因果图的依赖。
- 解释回溯反事实,以及为什么它绕开了「对受保护属性做干预」的问题。
问题背景
第 20 课讲的是测量偏见。第 21 课讲的是定义测量该服务的那个公平标准。三个家族给出结构上不同的标准——一个模型可以是群体公平、个体不公平,也可以反事实公平、群体不公平。选一个标准是一项政策决策;没有标准是普遍最优的。
核心概念
群体公平
- 人口均等(Demographic parity)。 对所有群体 P(Y=1 | A=a) = P(Y=1 | A=a')。接受率相等。
- 均等几率(Equalized odds)。 P(Y=1 | Y*=y, A=a) = P(Y=1 | Y*=y, A=a')。各群体 TPR 和 FPR 相等。
- 条件使用准确率相等(Conditional use accuracy equality)。 P(Y*=y | Y=y, A=a) = P(Y*=y | Y=y, A=a')。各群体预测值相等。
不可能性(Chouldechova, Kleinberg-Mullainathan-Raghavan 2017):在基础率不相等的情况下,这三者无法同时满足。
个体公平
Dwork et al. 2012。如果一个决策映射 f 相对于某个任务特定的相似度度量 d 满足 |f(x) - f(x')| <= L * d(x, x')(L 为某个 Lipschitz 常数),那它就是个体公平的。相似的个体得到相似的决策。
需要定义 d。这是政策问题,不是统计问题。
反事实公平
Kusner et al. 2017。如果在某个总体的因果模型下,当个体 i 的敏感属性被反事实地改变时决策保持不变,那这个决策对 i 就是反事实公平的。
需要一张因果 DAG。这张 DAG 是一个建模选择。反事实公平的正当性,只取决于那张 DAG 的正当性。
反事实 vs 准确率的权衡
NeurIPS 2024 理论:反事实公平与预测准确率之间存在内在权衡。一个模型无关的方法能把一个「最优但不公平」的预测器转换成反事实公平的,准确率代价有界。这个准确率代价取决于「最优不公平预测器」里敏感属性系数的大小。
回溯反事实
arXiv:2401.13935(2024 年 1 月)。传统反事实需要对敏感属性做干预——「如果这个人是另一种性别,决策会变吗」。在法律上这有问题:分类法律不允许对受保护属性做干预。
回溯反事实把方向翻过来:不去干预属性,而是问该个体的实际特征的哪种组合,本会产生那个反事实结果。这绕开了法律上的反对意见。
哲学层面的调和
ICLR Blogposts 2024。手里有一张因果图时,满足某些群体公平度量就蕴含反事实公平。三个家族并不正交;它们是同一个底层因果结构的不同侧面。
这并没有解决不可能性定理(基础率不等仍然阻止群体公平同时成立)。但它表明,「群体」与「个体 / 反事实」之间表面上的对立,部分是「没有把因果模型说清楚」造成的假象。
这在阶段 18 里的位置
第 20 课是偏见测量。第 21 课是公平定义。第 22 课是隐私(差分隐私)。第 23 课是水印。这些是与分配相邻的课,与第 7-11 课「与欺骗相邻」的内容互补。
an-fairness-trilemma实际使用
code/main.py 造了一个带敏感属性和不等基础率的玩具二分类数据集。在一个简单分类器上计算人口均等、均等几率、条件使用准确率相等。观察这三个指标互相打架。施加一个针对人口均等的重新加权,观察它在另两个指标上的代价。
拿去用
本课产出 outputs/skill-fairness-criterion.md。给定一个公平宣称或政策,它识别出在宣称哪个判据、在所宣称的不等基础率下模型能否满足其余判据、以及这个宣称依赖于哪张因果 DAG。
练习
运行
code/main.py。报告默认数据上的三个群体指标。施加针对人口均等的重新加权,再报告一次。用非敏感特征上的 L2 实现 Dwork et al. 2012 的个体公平度量。报告在常数 L=1 下有多少对违反 Lipschitz。
读 Kusner et al. 2017。为简历评分构造一张简单的双特征因果 DAG,并指出它蕴含的反事实公平条件。
2024 年的回溯反事实论文避免了对受保护属性的干预。描述一个这件事对法律合规很重要的场景。
ICLR 2024 的调和主张群体公平与反事实公平是同一结构的侧面。在
code/main.py里挑两个判据,说出能让它们等价的那个因果假设。
关键术语
| 术语 | 大家嘴上怎么说 | 它实际是什么 |
|---|---|---|
| 人口均等 | 「速率相等」 | P(Y=1 |
| 均等几率 | 「TPR/FPR 相等」 | 各群体真阳性率和假阳性率相等 |
| 条件使用准确率 | 「PPV/NPV 相等」 | 各群体预测值相等 |
| 个体公平 | 「Lipschitz 条件」 | 相似的个体得到相似的决策 |
| 反事实公平 | 「对因果改变不变」 | 在反事实地改变属性时决策保持不变 |
| 回溯反事实 | 「用实际值来解释」 | 从结果往回推、而非从属性往前推的反事实 |
| 不可能性定理 | 「三者冲突」 | Chouldechova / KMR 2017:基础率不等时群体判据互斥 |