基于最优传输的群体盲公平映射:无需敏感属性实现算法去偏
1. 项目概述:当公平性遇上数据隐私的困境
在机器学习模型日益渗透到信贷审批、招聘筛选、司法评估等高风险决策领域的今天,确保算法的公平性已成为一项紧迫的社会与技术挑战。传统的公平性算法,如公平表示学习、后处理校准或基于正则化的方法,其核心前提是能够获取并利用每个数据点的敏感属性(如性别、种族、年龄)来识别和修正群体间的偏见。然而,现实世界往往比实验室假设复杂得多。在许多司法管辖区,例如欧盟的《人工智能法案》框架下,出于严格的隐私保护目的,企业被禁止在模型训练或部署阶段收集或使用个人的敏感属性数据。即便在允许进行算法审计的“监管沙盒”中,这些敏感信息也仅能用于评估,而不能用于训练模型本身。这就形成了一个尖锐的矛盾:我们既需要消除算法偏见以保障社会公平,又无法使用识别偏见所必需的关键信息。
我最近在研究和实现一个项目,正是为了解决这个“无米之炊”的难题。我们提出了一种基于最优传输(Optimal Transport, OT)的“群体盲映射”方法。其核心思想非常巧妙:我们不再纠结于“这个人的性别是什么”,而是转向一个更高层、更宏观的问题——“男性群体和女性群体的收入分布分别是什么样?” 只要我们能从人口普查、历史匿名数据或监管沙盒中获得群体层面的特征分布统计信息(例如,特权群体与非特权群体的收入分布),我们就可以利用最优传输技术,构建一个统一的映射函数。这个函数像一个“公平滤镜”,当它作用在每一个个体的特征上时(无论其属于哪个群体),都能将整个数据集的分布向一个预设的“公平目标分布”对齐。最终,在映射后的数据上,不同群体在特征空间上的分布差异被显著缩小甚至消除,从而使得后续的任何分类器(如一个预训练的随机森林)在做出决策时,能天然地减少由历史数据偏见导致的歧视性结果。
这个方法的技术价值在于其“群体盲”特性:无论是计算映射函数,还是应用该函数对数据进行变换,都完全不需要访问任何个体的敏感属性标签。它仅依赖于公开可得的、不侵犯个人隐私的群体统计信息,完美地平衡了算法公平性与数据隐私保护之间的冲突。接下来,我将深入拆解这个方法的每一个技术环节,从最优传输的基础原理,到群体盲约束的数学构建,再到高效求解的算法实现,并结合我们在Adult Census Income数据集上的实验结果,分享一路走来的实操心得与避坑指南。
2. 核心思路与方案设计:从群体分布差异到公平映射
2.1 问题形式化:我们到底在解决什么?
让我们先抛开数学符号,用学校招生的例子来建立直觉。假设一所大学仅依据考试分数(特征X)进行录取,分数线是固定的。由于历史和社会经济原因,来自群体A(特权群体)的学生分数分布整体偏高(均值高),而群体B(非特权群体)的分数分布整体偏低。即使录取算法本身是“色盲”的(不查看学生性别或种族),这条统一的分数线也会导致群体B的录取率远低于群体A,造成事实上的不公平。
传统公平性修复方案(如Feldman等人或Gordaliza等人的方法)的思路是:既然我知道每个学生属于A组还是B组,那我就分别为两组学生设计不同的分数映射函数,将他们的分数分布都变换到一个共同的“中间分布”(如Wasserstein重心)。这样,在新的分数上,同一分数线对两组的录取率就相等了。
我们的挑战在于:招生办公室被法律禁止询问或记录申请者的群体身份(敏感属性S)。我们拥有的只有所有学生的分数列表(特征X),以及从国家统计局获得的、关于全国范围内群体A和群体B的分数分布报告(P_Xs0 和 P_Xs1)。我们的目标是,设计一个单一的、不依赖S的映射函数T,当它应用于每一个学生的分数时,能够使映射后全体学生的分数分布,在群体A和群体B的子集中,变得相同或极其相似。
2.2 最优传输:分布对齐的“数学搬运工”
最优传输为我们提供了实现上述目标的数学语言和工具。它的核心问题可以形象地理解为:有两个土堆(概率分布),我们需要用最小的“工作量”(成本)将第一个土堆的泥土搬运成第二个土堆的形状。这个“工作量”通常由成本矩阵C定义,例如,C_ij 可以表示将单位质量从位置i移动到位置j的代价。
在离散情况下,源分布P和目标分布Q是定义在N个离散点上的概率向量。一个传输方案(耦合矩阵)γ是一个N×N的非负矩阵,其行和等于P,列和等于Q。矩阵元素γ_ij表示从源分布的第i个点移动到目标分布第j个点的质量。最优传输就是寻找使总成本∑C_ij * γ_ij最小的γ。
为了计算高效和数值稳定,我们通常使用熵正则化的最优传输(Sinkhorn算法),其目标函数变为:min_γ <C, γ> - ε * H(γ), 约束为 γ1 = P, γ^T 1 = Q。 其中H(γ)是γ的熵,ε是正则化参数。熵正则化使问题严格凸,并允许使用迭代缩放算法快速求解,其迭代形式就是著名的Sinkhorn迭代:交替对行和列进行归一化,使其满足边际约束。
注意:熵正则化参数ε的选择至关重要。ε越大,传输计划γ越“模糊”(质量会分散到多个目标点),计算越快,但可能偏离经典OT解;ε越小,传输计划越“稀疏”(倾向于点对点传输),更接近经典解,但计算更不稳定。实践中,我们通常从一个较大的ε(如1.0)开始,逐步减小到一个较小的值(如0.01),进行“热启动”以加速收敛并提高精度。
2.3 群体盲约束的构建:关键向量V
传统OT的约束只要求耦合矩阵γ的行和、列和分别等于源分布P_X和目标分布P_X̃。为了实现群体盲的公平性,我们需要增加额外的约束。
回顾我们的目标:映射后,群体s0的条件分布P_X̃s0应与群体s1的条件分布P_X̃s1相等(完全修复)或接近(部分修复)。根据贝叶斯定理和我们的映射定义,可以推导出一个关键关系:P_X̃s0 - P_X̃s1 = γ^T * V其中,向量V = (P_Xs0 - P_Xs1) / P_X。这里除法是逐元素进行的。
这个推导是整个方法的灵魂:
- V的物理意义:它量化了源数据中,两个群体在每一个特征值i上的“相对差异”。(P_Xs0 - P_Xs1)是绝对差异,除以P_X(总体分布)后,得到了一个归一化的差异度量。V中的元素可正可负,分别表示在某个特征值上,群体s0相对于总体是过代表还是欠代表。
- 群体盲的核心:请注意,计算V只需要三个群体层面的统计量:P_Xs0, P_Xs1 和 P_X。完全不需要每个样本的敏感属性S。P_X可以从我们拥有的全体数据(无标签)中估计,P_Xs0和P_Xs1则来自外部的人口统计信息。这正是“群体盲”得以实现的基础。
- 约束形式:要实现完全修复(P_X̃s0 = P_X̃s1),就需要约束
γ^T * V = 0。这意味着,我们寻找的传输计划γ,必须能够“抵消”掉源数据中固有的群体差异V。要实现部分修复,则约束可以放松为|γ^T * V| ≤ Λ,其中Λ是一个非负向量,控制允许的残留差异上界。
至此,我们将“无需敏感属性的公平性修复”问题,转化为了一个带线性不等式约束的熵正则化最优传输问题。我们���目标是在满足行和、列和约束(标准OT约束)以及新增加的群体公平约束|γ^T * V| ≤ Λ的前提下,最小化传输成本。
3. 算法实现:Dykstra算法求解带约束OT
标准的Sinkhorn算法只能处理等式边际约束(γ1=P, γ^T1=Q)。对于我们的问题中新增的线性不等式约束|γ^T * V| ≤ Λ,Sinkhorn算法不再直接适用。我们需要一个更通用的框架——Dykstra算法。
3.1 Dykstra算法与Bregman投影
Dykstra算法是一种用于计算点到多个凸集合交集的Bregman投影的迭代算法。在我们的语境下,“点”是初始耦合矩阵ξ = exp(-C/ε),“凸集合”就是我们的三个约束集:
- C1: {γ | γ1 = P_X} (行和约束)
- C2: {γ | γ^T1 = P_X̃} (列和约束)
- C3: {γ | -Λ ≤ γ^T V ≤ Λ} (群体公平约束)
Bregman投影是在Bregman散度意义下,找到凸集合中离给定点最近的点。当我们使用Kullback-Leibler (KL) 散度作为Bregman散度时,投影就称为KL投影。
Dykstra算法的流程可以概括为:从一个初始点γ^(0)=ξ开始,依次向三个约束集C1, C2, C3进行KL投影,并在每次投影后更新一个辅助变量以补偿因投影顺序带来的偏差。通过多次迭代,序列会收敛到满足所有约束且KL散度最小的解γ*。
3.2 关键投影的计算
算法的效率取决于我们能否高效计算向每个约束集的KL投影。
向C1和C2的投影(行/列归一化):这与Sinkhorn迭代中的一步完全相同,有闭式解。
Proj_{C1}(γ̄) = diag(P_X / (γ̄1)) * γ̄(按行缩放)Proj_{C2}(γ̄) = γ̄ * diag(P_X̃ / (γ̄^T1))(按列缩放) 这里的除法是逐元素除法。这一步确保了耦合矩阵的行和与列和分别匹配指定的边际分布。
向C3的投影(公平约束):这是算法的核心难点。约束
-Λ ≤ γ^T V ≤ Λ是针对每一列j的线性不等式约束。可以证明,向C3的KL投影具有如下形式:- 对于满足
|(γ̄^T V)_j| ≤ Λ_j的列j,该列保持不变。 - 对于违反约束的列j(即
(γ̄^T V)_j > Λ_j或< -Λ_j),我们需要对该列的所有元素i进行缩放:γ*_ij = γ̄_ij * exp(-V_i * ν_j)。 其中,标量ν_j需要通过求解一个一元方程来获得:∑_i γ̄_ij * V_i * exp(-V_i * ν_j) = sign * Λ_j, sign为1或-1取决于违反约束的方向。 这个方程关于ν_j是单调的,可以使用牛顿法或二分法快速求解。
- 对于满足
实操心得:ν_j的求解优化:在实现中,对于每一列j,我们都需要独立求解一个关于ν_j的方程。由于V_i对于不同的i可能很小,
exp(-V_i * ν_j)可能导致数值下溢。一个实用的技巧是,在迭代求解ν_j时,如果发现exp(-V_i * ν_j)小于机器精度,则将其设为一个极小的正数(如1e-30),并记录对应的i,在求和时忽略该项对梯度的贡献(因其导数也趋近于0)。这能有效避免NaN值的出现。
3.3 完整算法流程
结合以上步骤,我们的群体盲公平映射算法如下:
输入:
- 源分布 P_X, 目标分布 P_X̃, 差异向量 V, 容忍度向量 Λ。
- 成本矩阵 C, 熵正则化参数 ε, 最大迭代次数 K, 数值稳定常数 ε_tol。
算法步骤:
- 初始化:
γ^(0) = exp(-C / ε)。 - 首次三轮投影:依次计算向C1, C2, C3的KL投影,得到
γ^(1), γ^(2), γ^(3)。同时初始化辅助变量q。 - Dykstra主循环(k=4 to K): a. 确定当前约束集 C_k = C_{1 + (k mod 3)}。 b. 更新辅助变量 q。 c. 计算向C_k的KL投影:
γ^(k) = Proj_{C_k}(γ^(k-1) ⊙ q)。其中⊙是逐元素乘法。 d. 检查收敛条件:如果|| (γ^(k))^T V ||_1 < ε_tol,则提前退出循环。 - 输出:收敛后的最优耦合矩阵 γ^(K)。
从耦合到映射:得到γ*后,对于源数据中的每一个样本(特征值为i),我们可以根据w_ij = γ*_ij / P_X_i计算出它被映射到目标值j的权重。这样,一个原始样本(i)就转化为一组加权的目标样本{(j, w_ij)}。在后续的模型推理中,对于这个原始样本的预测,就是对其所有映射结果预测值的加权平均。
4. 目标分布的选择与实验设计
4.1 目标分布P_X̃的抉择:公平与效用的权衡
选择什么样的目标分布P_X̃,直接影响了修复后的数据效用(即下游模型的性能)。主要有两种思路:
重心分布(Barycenter):这是许多公平性OT方法(如Gordaliza et al.)的选择。它定义为使到两个群体分布加权距离之和最小的分布:
P_B = argmin_P [π0 * W(P_Xs0, P) + π1 * W(P_Xs1, P)]。重心分布引起的“数据扭曲”最小,因为它是一个折中的中间点。但在我们的群体盲设定下,我们无法直接计算它,因为计算重心需要明确的P_Xs0和P_Xs1,而我们只有它们的差V。不过,我们可以将其作为一个需要敏感属性的“理想基线”来对比。训练数据分布:一个更实用的选择是直接将P_X̃设为下游预训练模型所用训练集的分布。例如,如果我们有一个在历史数据上训练好的信用评分模型,我们希望修复的新数据在输入这个模型时,能保持较高的预测准确性。那么,让修复后数据的分布P_X̃接近训练数据的分布,就有助于维持模型的性能。在我们的实验中,为了最小化不必要的数据扭曲,我们简单地将P_X̃设置为源数据本身的分布P_X。这意味着我们寻找一个耦合γ,在将P_X映射到自身(即行和列和都是P_X)的同时,满足公平约束
|γ^T V| ≤ Λ。这相当于在数据空间内部进行一个“重排”,以减少群体间差异,而不是将数据移向一个外部分布。
4.2 在Adult数据集上的实验:复现与解析
我们使用经典的Adult Census Income数据集进行验证。该数据集包含年龄、教育程度、每周工作时间、资本收益等特征,以及一个二元敏感属性(性别或种族)和年收入是否超过5万美元的标签。
实验设置:
- 特征选择:我们计算每个数值特征在特权与非特权群体间的总变差(TV)距离。选择TV距离大于0.08的特征作为需要调整的特征X(例如,当S为“性别”时,X包含“每周工作时间”和“年龄”),其余特征作为中性特征U保持不变。
- 流程:
- 随机划分60%数据为训练集,训练一个随机森林分类器M(X, U)。注意:训练时完全不使用敏感属性S。
- 剩余的40%作为测试集。在测试集上计算P_X, P_Xs0, P_Xs1,进而得到V。
- 对测试集应用五种不同的处理:
- Origin: 不做任何处理。
- Baseline: 使用标准OT(无公平约束)将X映射到自身(P_X̃ = P_X)。
- Barycentre: (需要S!)使用Gordaliza等人的方法,分别将两个群体的X映射到它们的Wasserstein重心。
- 1e-2-repair: 使用我们的算法,Λ=1e-2,将X映射到自身。
- 1e-3-repair: 使用我们的算法,Λ=1e-3,将X映射到自身。
- 对于映射后的数据,每个原始样本会分裂成多个加权样本。其最终预测为所有加权样本经过模型M预测后的加权平均。
- 评估指标:
- 公平性:差异影响(Disparate Impact, DI),即两组间正类预测率的比值。理想值为1。
- 性能:宏F1、微F1、加权F1分数。
- 分布对齐度:映射后两组数据分布间的S-wise TV距离。理想值为0。
结果分析(对照原文图5.6):
- Origin:原始模型存在明显的公平性问题(DI偏离1),且两组分布差异(TV距离)最大。
- Baseline:标准OT映射(无公平约束)对公平性几乎没有改善,因为它只保证全局分布不变,不干预群体间差异。
- Barycentre:作为需要敏感属性的强基线,它几乎完全消除了分布差异(TV距离≈0),公平性指标(DI)也显著改善。但是,它的分类性能(F1分数)下降最为严重。这是因为它将数据映射到了与模型训练分布(P_X)不同的重心分布,导致了分布偏移,模型性能自然下降。
- 我们的方法(1e-2/1e-3-repair):这是亮点所在。随着Λ减小(公平约束变强):
- S-wise TV距离显著下降,说明我们的方法有效拉近了两组分布。
- 差异影响(DI)明显向1靠拢,公平性得到实质性提升。
- 最关键的是,分类性能(F1分数)的下降幅度远小于Barycentre方法,与Baseline接近。这是因为我们选择P_X̃ = P_X,最大程度保留了数据的原始形态,只是在其内部进行了“公平化重排”。
这个实验清晰地展示了我们提出的群体盲方法的核心优势:在几乎不牺牲模型预测效用的前提下,显著提升算法的公平性,且完全不需要个体的敏感属性信息。
5. 实操要点、常见问题与扩展思考
5.1 实现中的关键细节与调参经验
- 成本矩阵C的设计:C定义了移动“质量”的成本。对于连续或有序离散特征,常用欧式距离或曼哈顿距离的平方。如果X是多维的,需要为每个维度设置合理的缩放权重ϱ,以平衡不同特征量纲和重要性对总成本的影响。例如,年龄变化1岁和收入变化1万美元的成本显然不同。
- 熵正则化参数ε:如前所述,ε控制传输计划的模糊程度。较大的ε(如1.0)使算法快速收敛,得到的γ更平滑;较小的ε(如0.01)更精确但可能不稳定。可以采用“退火”策略:先用较大的ε得到解,再以其为初值,用较小的ε继续优化。
- 收敛判断:除了检查
||γ^T V||_1,还应监控耦合矩阵γ的迭代变化(如行和、列和约束的满足程度)。当连续多次迭代的变化范数小于阈值时,即可认为收敛。 - 数值稳定性:这是实现中最棘手的问题。KL投影涉及大量指数
exp(-C/ε)和除法P_X / (γ1)。务必使用log-sum-exp技巧来避免数值上溢/下溢。对于exp(-C_ij/ε),可以计算C_ij/ε的最大值M,然后计算exp(-C_ij/ε - M),最后再乘以exp(M)进行校正。
5.2 局限性、挑战与未来方向
- 计算复杂度:算法涉及N×N矩阵的迭代运算,当特征离散化点数N很大时(例如,将连续特征分箱过细),计算和存储开销会变得很大。可以考虑使用小批量OT、低秩近似或卷积OT等加速技术。
- 二元敏感属性假设:当前理论框架和算法主要针对二元敏感属性(如男/女)。扩展到多类别(如多种族)是未来的一个重要方向。一种思路是为每对群体定义一个差异向量V_kl = (P_Xsk - P_Xsl) / P_X,并施加一组约束
|γ^T V_kl| ≤ Λ_kl。但这会增加约束数量和计算复杂度。 - 与下游模型的协同:目前我们的方法是独立于下游模型的“预处理”步骤。一个更有趣的方向是探索“原位修复”,将公平约束以正则项的形式嵌入到模型训练过程中,实现端到端的公平学习,同时保持群体盲的特性。
- 群体分布信息的可靠性:本方法强依赖于外部提供的群体分布P_Xs0和P_Xs1的准确性。如果这些统计信息存在偏差或过时,修复效果会大打折扣。如何评估和缓解这种“元数据”偏差是一个重要的实际问题。
5.3 给实践者的建议
如果你正在一个受隐私法规约束的环境中构建机器学习系统,并担心公平性问题,可以按以下步骤尝试应用此方法:
- 可行性评估:首先确认你是否能合法获得特权与非特权群体的特征分布统计信息(例如,通过公开的人口普查报告、经过脱敏的行业报告或在监管沙盒中审计得到)。
- 数据预处理:将需要调整的连续特征进行合理的离散化(分箱)。分箱的粒度需要在计算效率和保真度之间权衡。
- 基线建立:在原始数据上训练你的模型,评估其公平性指标(如DI, 机会均等差异)和性能指标,建立基线。
- 实施修复:使用我们的算法,设定一个初始的Λ(如1e-2),将P_X̃设为训练集分布或P_X本身,计算公平映射。
- 迭代验证:在修复后的数据上重新评估模型性能。逐步减小Λ,观察公平性提升与性能下降的权衡曲线(Trade-off Curve),根据业务需求确定可接受的Λ值。
- 监控与更新:部署后,需要定期更新群体分布统计信息,并监控模型在修复后数据上的性能与公平性,确保其持续有效。
这个基于最优传输的群体盲公平映射框架,为我们打开了一扇门:在严格遵守数据隐私法规的前提下,我们依然有强有力的数学工具去主动识别和修正算法中的社会偏见。它不是一个完美的终极解决方案,但无疑是迈向可信、负责任人工智能的重要且务实的一步。
