AI 偏见与公平性:识别、度量与缓解方法
随着机器学习系统进入招聘、信贷、医疗、刑事司法等高风险决策场景,模型输出的「公平性」已从伦理议题变成工程与合规的硬约束。一个在高准确率下表现优异的模型,仍可能对某些受保护群体(如特定性别、种族、年龄)产生系统性不利。本教程系统梳理偏见的来源、公平性度量指标、缓解技术,以及工程实践中必须面对的权衡,帮助你在真实项目中识别并降低歧视性风险。
为什么公平性重要:真实案例
公平性之所以重要,是因为模型决策会直接影响人的机会与权利。以下三起被广泛报道的案例,说明了偏见如何在生产中造成真实伤害。
招聘场景中的性别偏见
2018 年路透社报道,Amazon 曾内部开发一套简历自动筛选系统,用于给求职者打分。由于历史训练数据主要来自公司过去以男性为主的工程招聘记录,模型学习到「男性」相关词汇(如男子校队运动)对应更高分,并系统性压低包含「女性」相关词汇(如女子象棋俱乐部)的简历。该系统最终因对女性求职者存在歧视倾向而被弃用。它揭示了一个典型问题:当历史数据本身包含社会偏见时,模型会把偏见「固化」并自动放大。
信贷场景中的性别差异
2019 年,Apple Card(由 Goldman Sachs 承保)被曝出存在明显的性别差异:即使是收入、信用状况相近的夫妻,妻子获得的授信额度也可能远低于丈夫。此事引发纽约金融服务部调查。尽管发卡方否认算法使用性别字段,但模型使用的proxy(代理)特征(消费行为、地理位置等)可能与性别高度相关,从而产生 disparate impact(差异影响)。
刑事风险评估中的种族偏见
这是最常被引用的公平性案例。ProPublica 在 2016 年发布调查报道「Machine Bias」,分析了 Florida 州 Broward County 超过 7000 名被告的 COMPAS 累犯风险评估分数。COMPAS 由 Northpointe 公司开发,用于辅助法官判断保释与量刑。ProPublica 发现:
- 在「被标为高风险但实际未再犯」的人群中,黑人被告占比 44.9%,白人被告仅 23.5%。
- 在「被标为低风险但实际再犯」的人群中,白人被告占比 47.7%,黑人被告为 28.0%。
也就是说,算法对黑人被告更容易「误报」为高风险,对白人被告更容易「漏报」再犯风险。即便模型整体准确率相近,错误方向却沿着种族清晰分裂。这一发现引发了关于「公平性应如何定义」的长期学术争论(详见后文 Equalized Odds 与 Equal Opportunity 的冲突)。
偏见的来源
要缓解偏见,先要理解它从哪里来。偏见并非只出现在「数据」里,而是贯穿整个机器学习生命周期。
数据偏差(Data Bias)
- 历史偏见(Historical bias):社会既有的不平等被记录进数据。例如过去招聘中存在的性别失衡,会让监督学习重复该模式。
- 代表性偏差(Representation bias):训练样本未覆盖某些群体。例如面部识别系统在深肤色、女性群体上错误率更高,常因为训练集以浅肤色男性为主。
- 测量偏差(Measurement bias):用于训练的特征并不能准确衡量真实目标,且测量误差在不同群体间分布不均。
标注偏差(Annotation Bias)
标签来自人工标注时,标注者的主观判断会带入偏见。例如内容审核的标注指南模糊,不同背景的标注者对「有害内容」的判定标准不一致;在医疗数据中,不同医院、不同地区的诊断标准差异会形成群体间的系统性偏差。当标注本身带有群体相关的噪声,模型学到的就是被污染的「真相」。
反馈循环(Feedback Loop)
部署后的模型会反过来改变世界,使后续收集的数据进一步偏离。典型例子是警务预测系统:模型把警力集中派往某些社区,导致这些社区被记录更多「犯罪事件」,下一轮训练数据又强化「该社区更危险」的结论,形成自我实现的偏见循环(有时也称 selective label bias,即只有被系统关注到的行为才进入标签)。
公平性的定义与度量
公平性没有单一「正确答案」。不同定义在数学上往往彼此冲突,因此必须先明确业务场景到底要保护谁、保护什么。
Demographic Parity(人口均等 / 统计均等)
要求各受保护群体获得「正向预测」(如被批准贷款、被预测为低风险)的比例相等。形式化表示为:
P(Ŷ = 1 | A = 0) = P(Ŷ = 1 | A = 1)
其中 A 为受保护属性(如性别),Ŷ 为预测结果。Demographic Parity 不关心预测是否准确,只看结果分布是否均衡。它适合「机会分配」类场景,但会强制改变原本合理的差异。
Equalized Odds(均衡几率)
要求在每个真实标签 Y 下,不同群体的预测错误率一致。即同时满足:
P(Ŷ = 1 | Y = 1, A = 0) = P(Ŷ = 1 | Y = 1, A = 1)
P(Ŷ = 0 | Y = 0, A = 0) = P(Ŷ = 0 | Y = 0, A = 1)
也就是说,真阳性率与假阳性率在群体间相等。它保证了模型对不同群体的「能力判别」质量一致,是高风险场景(如刑事评估)更受推崇的定义。
Equal Opportunity(机会均等)
是 Equalized Odds 的宽松版本,只要求真阳性率相等:
P(Ŷ = 1 | Y = 1, A = 0) = P(Ŷ = 1 | Y = 1, A = 1)
它只关心「本应被正向预测的人」是否被公平对待,不约束假阳性率。对「漏掉真正有风险者」后果严重的场景(如疾病筛查)更适用。
一个关键冲突
Kleinberg、Mullainathan 与 Chouldechova 等人的研究指出:当不同群体的基础率(base rate)本身存在差异时,Equalized Odds、Demographic Parity 与校准(Calibration)三者无法同时成立。这被称为「公平性不可能定理」。因此工程中必须做选择,而非追求一个万能指标。
缓解方法
按干预发生的阶段,缓解技术分为预处理、训练中、后处理三类。
预处理:重加权与特征变换
在训练前调整数据,使偏见被削弱。
- 重加权(Reweighting):为不同群体的样本分配权重,抵消历史偏差。
- 差异影响去除(Disparate Impact Removal):对特征做线性变换,在尽量保留信息的同时降低其与受保护属性的相关性。
from aif360.sklearn.preprocessing import Reweighing
# 以受保护属性 priv 对训练集做重加权
rw = Reweighing(privileged_groups=[{"gender": 1}],
unprivileged_groups=[{"gender": 0}])
X_train_rw, W_sample = rw.fit_transform(X_train, y_train)
训练中:约束与对抗去偏
在目标函数中加入公平性约束,或通过对抗训练剥离敏感信息。
- 约束优化(Constrained optimization):在准确率损失可接受范围内,最小化公平性违背。Fairlearn 的
ExponentiatedGradient即此类方法。 - 对抗去偏(Adversarial Debiasing):训练一个对手网络,试图从预测中还原受保护属性;主模型则尽量让对手失败,从而隐式去除敏感信息。
from fairlearn.reductions import ExponentiatedGradient, DemographicParity
# 以人口均等为约束,训练一个尽量公平的模型
mitigator = ExponentiatedGradient(estimator=base_clf,
constraints=DemographicParity())
mitigator.fit(X_train, y_train, sensitive_features=X_train["gender"])
后处理:阈值调整
训练完成后,为每个群体单独调整决策阈值,使某个公平性指标达标。典型方法是「均衡几率后处理」(Equalized Odds Postprocessing),在验证集上搜索能最小化误差且最接近 Equalized Odds 的群体专属阈值。它的优点是无需重训模型,便于在已上线系统上快速干预。
from fairlearn.postprocessing import ThresholdOptimizer
# 以均衡几率为目标,做群体专属阈值优化
post = ThresholdOptimizer(estimator=base_clf,
constraints="equalized_odds")
post.fit(X_train, y_train, sensitive_features=X_train["gender"])
公平性-准确性权衡
缓解偏见几乎总要付出代价。强制 Demographic Parity 往往会使整体准确率下降,因为模型被要求忽略与标签真实相关的群体差异。在 COMPAS 案例中,Northpointe 与 ProPublica 的核心分歧之一,就是应优先保证「群体误报率相等」(Equalized Odds 视角)还是「预测概率校准一致」(Calibration 视角),而二者在数学上不可兼得。
工程上应把权衡显式化:
- 明确受影响的利益相关者与潜在的危害类型(分配危害 vs 表征危害)。
- 选择与该场景匹配的一个或少数公平性指标,而非追求全部。
- 用「公平-准确」权衡曲线(Pareto 前沿)向业务方展示不同阈值下的取舍,由人做最终决策。
- 记录所选定义与理由,满足审计与合规要求。
工具与实践
把公平性纳入工作流,应优先使用成熟的开源工具,而非手工实现指标。
AI Fairness 360(AIF360)
由 IBM 推出的开源工具包,提供 70 余种公平性度量与 10 余种缓解算法(含重加权、对抗去偏、均衡几率后处理等),同时支持 Python 与 R。适合在研究与生产中对数据集与模型做端到端审计。
Fairlearn
由 Microsoft 主导的社区驱动开源项目,强调「公平是 socio-technical(社会技术)问题」。它提供度量 API(如 MetricFrame)与缓解算法(如 ExponentiatedGradient、ThresholdOptimizer),并配套使用案例(如信用卡违约模型中的性别差异评估)。
Google What-If Tool
Google PAIR 推出的可视化探针工具,可在极少编码下检查模型行为,支持切换假想情境、分析特征重要性、按群体切片查看多种公平性指标,并与 TensorBoard、Jupyter 集成,适合做交互式公平性探索。
推荐实践流程
- 定义:与业务、法务共同确定受保护属性与 fairness 目标。
- 度量:用 AIF360 或 Fairlearn 计算 Demographic Parity、Equalized Odds 等指标基线。
- 缓解:按场景选择预处理、训练中或后处理方法并对比。
- 监控:上线后持续监测群体指标漂移,避免反馈循环放大偏见。
- 记录:留存度量、决策阈值与选择理由,便于审计。
小结
AI 公平性不是模型训练完成后的「补丁」,而是贯穿数据、标注、训练、部署、监控全生命周期的系统工程。偏见既来自历史数据,也来自标注主观性与部署后的反馈循环;而公平性定义(Demographic Parity、Equalized Odds、Equal Opportunity)之间存在数学上的不可能同时成立,必须结合场景取舍。实践中应借助 AIF360、Fairlearn、What-If Tool 等成熟工具把度量与缓解标准化,并把「公平-准确」的权衡显式呈现给决策者,而非藏在模型内部。
参考与延伸阅读
- Julia Angwin 等,ProPublica,https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencing(2016)。对 COMPAS 累犯评估工具种族偏见的调查报道「Machine Bias」,本教程核心案例来源。
- Rachel K. E. Bellamy 等,AI Fairness 360: An Extensible Toolkit for Detecting, Understanding, and Mitigating Unwanted Algorithmic Bias,arXiv:1810.01943。IBM AIF360 工具包论文与官方仓库 https://github.com/Trusted-AI/AIF360。
- Fairlearn 官方文档与网站,https://fairlearn.org/。Microsoft 主导的开源公平性度量与缓解工具包。
- Google PAIR,What-If Tool,https://pair-code.github.io/what-if-tool/。用于模型行为探查与公平性可视化的开源工具。
- Alexandra Chouldechova,Fair prediction with disparate impact: A study of bias in recidivism prediction instruments,Big Data 第 5 卷(2017)。论证 Equalized Odds 与校准不可兼得的经典论文。
- Jon Kleinberg、Sendhil Mullainathan、Manish Raghavan,Inherent Trade-Offs in the Fair Determination of Risk Scores,2017。公平性不可能定理的形式化研究。