设想一份简历,从招聘页面直接投递时进入下一轮,经过另一个渠道转投却被系统拦下。招聘方未必故意设置差别,差异可能藏在特征、阈值和训练样本里。这时谈算法公平,不能只问模型有没有“偏见”,还要问差异从哪一步进入系统。
公平不是一个开关
算法公平常被当成模型上线前的检查项,像给系统打一个合格标记。实际落地时,它更像一组取舍。以招聘筛选为例,系统可能为了减少人工筛选的随意性,引入统一评分;但统一评分若依赖历史录用偏好,就可能把旧有偏差固化成稳定规则。问题在于,历史数据不是中立的记录,它会带着组织过去的习惯。
更难的是,公平的定义并不总是同向。有人关心不同群体通过率接近,有人关心个体获得解释和申诉的机会,也有人关心预测结果是否与岗位能力真实相关。这些目标在同一个模型里可能互相拉扯。把某一项指标推到极端,未必让招聘过程更可信。因此,算法公平需要被拆成可讨论的问题:数据如何采集,标签如何定义,代理变量是否混入,阈值调整后谁承担代价。
解释不等于免责
现在不少系统会给出“未通过原因”,比如经验不匹配、技能关键词缺失。解释本身有价值,但它不等于免责。如果解释只复述模型输出,没有说明规则来源和可改变空间,受影响的人仍然无法行动。更实际的做法,是把解释、复核和申诉放在同一条流程里:让候选人知道哪些信息被使用,哪些可以补充,人工复核在什么条件下触发。
内容推荐也有类似问题。推荐页面看似只是分发信息,但排序会改变注意力的落点。若只追求短期互动,系统可能不断放大容易引发情绪的内容,进而改变下一轮训练数据。这里的算法公平不只是群体比例问题,还包括机会是否集中、反馈是否被少数行为主导、用户能否调整推荐偏好。
- 记录关键特征和阈值变更,避免公平检查只停留在上线前。
- 为代理变量设置审查环节,特别是与身份、地域、年龄相关但被包装成能力指标的字段。
- 保留人工复核入口,并让申诉结果回流到规则维护中。
我倾向于把算法公平看作一项持续的组织工作,而不是一次性的技术修补。模型会更新,业务目标会变化,受影响的人也在变化。真正需要被固定下来的,是问题暴露的通道、责任归属和可复核的记录。没有这些,公平指标再漂亮,也很难解释给一个被系统挡住的人听。