找不到一个可以吵的人
一所小学开学前分班,往年是教务处几位老师关起门来排,排完总有家长来吵——为什么我家孩子和他最好的朋友分开了,为什么某某班的老师是新来的。今年学校用了一套分班算法:输入每个孩子的成绩、性别、性格测评、家庭住址、既往同班关系,算法给出六个班,每个班的平均分、男女比、性格分布几乎完全一样,附一份"公平性报告",各项指标全部达标。
家长会上没有人吵。不是没有人不满——一位母亲的孩子和最好的朋友分开了,她去问班主任,班主任说这是算法排的,全校最均衡;她去问教务处,教务处说算法是教育局推荐的,指标都过了;她去问校长,校长说:你看这份报告,哪一项不公平?她看了半天,说不出哪一项。她回家的路上说了一句话:以前至少有个人可以吵。
这本书是为这句话写的:当一套系统可以算出比任何人排的都更均衡、更"公平"的分配,公平还是不是一个可以算出来的东西?如果不是,它是什么?
五十年的账:正义即公平
政治哲学对"什么是公平"有一部奠基之作。罗尔斯一九七一年的《正义论》用一个思想实验——无知之幕——推出两条原则:每个人享有平等的基本自由;社会与经济的不平等只有在有利于最不利者时才可接受。五十年来,关于分配的几乎所有争论都在这个框架里。它背后有一个从来没被认真检查过的假设:存在一个正确的分配,它可以被推出来、算出来;公平就是那个分配被实现的状态。"公平性指标""均衡""达标",每一个词都在说:那个正确答案已经在那里了,问题只是找到它。
对这个假设,算法研究自己给出了一个尴尬的证明。二〇一六年前后,几组研究者各自独立证明了一件事:人们对"算法公平"提出的几种直觉上都合理的指标——不同群体的错误率相等、预测校准相等、结果分布相等——在多数真实情况下不可能同时满足;满足了一种,就必然违反另一种。这个结果被叫作公平的不可能性定理。它说的不是算法不够好,是"公平"本身不是一个可以被一次算出来的东西:选哪一种指标,本身就是一次分配。
那一层已经被占了
先看能核的事件,不给未核的数字。
二〇二一年一月,荷兰内阁因一桩持续多年的儿童保育补贴丑闻集体辞职。事情是:税务机关用一套自动化的风险评估系统识别"可疑"的补贴申领者,系统把数万个家庭标记为欺诈嫌疑并要求全额退还多年补贴,其中大量家庭其实并无过错,许多因此破产、失业、家庭破裂;受影响的家庭中,有双重国籍者被系统性地过度标记。议会调查报告的结论之一是:受害者几乎没有任何有效的申诉渠道——系统的判定被当作定论,追问得到的回答是"系统标记的"。
这个案子本书第二卷会完整读。这里只取一件事:在"给出一个看起来均衡、合规、指标达标的分配"这一层,系统已经比任何一位人工审核者做得更快、更一致;而当它错了,被它错待的人找不到一个可以吵的人。这一层被占了,而且它占的那一层,恰恰把另一层挤没了。
为什么是现在
分配不是第一次遇到规则化。摇号、积分、按年限排队,每一种都在把"谁该得到"从人的判断变成规则的输出,公平的观念每一次都调整,然后稳定下来。这一次为什么不一样?
第一,均衡不再稀缺。一份各项指标全部达标的分配方案,成本趋近于零,且比任何人排的都均衡。围绕"谁能排得公平"设计的一切——委员会、公示、人工复核——都失去了定价对象。
第二,价值结算的地方挪了。从前一项分配的价值在"结果公不公平"这一格结算,吵的就是这一格;现在这一格系统填得比人满,价值只能往别处走——往"分错了能不能改、向谁提、提了谁认"那一格走。制度还在按指标考核公平,被分错的人已经在按有没有一个可以吵的人判断这个地方公不公平。
第三,工具从条件变成了变量。摇号是条件,人人看得懂,比的是运气;算法是变量,选哪几项指标、权重怎么定、用哪一版,出来的分配不一样,且不可能同时满足所有指标。当"公平"的定义本身成了一个可以被选择的参数,"指标达标"就不再能说明什么。
三条合起来:不是工具更公平了,是它把"算出一个均衡的分配"整个从人手里拿走了,而制度还在把这件事当作公平的全部。
死的是什么,没死的是什么
死的不是公平,不是分配,是一个位置:"我算出了最公平的方案"这个位置。
这一死不冤。算法排出那六个班时,它做的不是从某处把"公平的分配"取出来——那个分配不在任何地方等着,它是在选定了那几项指标、那几个权重之后当场算出来的,换一组指标就是另一个"最公平"。不可能性定理已经证明了这件事:没有一个分配同时满足所有的公平,每一个"最公平"都是一次选择。教务处几位老师从前关起门排班,做的说到底也是这件事——在几种说得过去的排法里选一种,只是他们把这叫作"排得公平"。算法让学校看清了:公平从来是裁出来的,不是算出来的。
那么没死的是什么?是算法没做、也做不了的那一件:接住那位母亲。她不是要一个更均衡的方案,她是要一个地方可以说"这样不行",要一个人听了之后说"我来看看能不能改",要一个改了或者没改的理由。这三样合起来叫异议的受理。算法可以生成无数个达标的方案,它不能受理任何一次异议,因为受理的前提是有人为改或不改负责,而系统只为指标负责。
有一门行当把这件事立成了原则。行政法有一条古老的规则,拉丁文叫"听取另一方":任何影响一个人权益的决定,作出之前必须给他陈述与申辩的机会;未经听取的决定,即使结果正确,程序上也无效。行政法早就知道,一项决定公不公平,不只看结果,看被决定的人有没有说话的机会、说了有没有人听。分配在这一点上落后于行政法:分班算法的"公平性报告"里,没有一项是"异议被听取的比例"。
最强的反方
本书必须正面回答一个反方,它有整个算法公平研究领域撑着。
公平指标论说:人的判断充满偏见——种族、性别、关系、情绪——算法虽然不能同时满足所有指标,但可以被审计、被校正、被透明化;只要选定一组指标并公开,算法分配就比人的分配更公平、更可问责;反对算法分配,是在为人的偏见辩护。
这个反方对本书的一半是对的:人的分配确实充满偏见,算法确实可以被审计,本书从头到尾不主张回到关起门的教务处。它错在另一半:它以为公开了指标,问题就解决了。荷兰的系统是有指标的、可审计的、事后也确实被审计了——审计的结论是它错了,可在它错的那几年里,数万个家庭找不到一个可以吵的人。指标的透明不等于异议的入口。本书的赌注在这里:如果算法分配在五年内的申诉率低于人工分配,且被分配者的满意度不降,本书第三卷作废。
往上走的四级台阶
本书把分配工作分成四层。
第零层:算分配。按指标排。这一层已经被系统占了,占得比人均衡。谁把公平放在这一层,谁就在等下一个找不到人吵的母亲。
第一层:审算法。审计指标,校正偏差。这一层正在跟着死:审计本身可以自动化,而审计仍是在同一组指标里打转,它不生产任何一次异议的受理——审计能发现系统错了,不能让错待的人在错的当时有地方说话。
第二层:判断异议向谁提、提了改不改。分班之后,那位母亲去哪里说?谁听?听了之后是否有权改?改与不改的理由由谁给?这一层的活是粗粒度的:不再管每一项指标怎么算,管的是这一整套分配落地之后,异议落到谁名下。系统给方案、给指标、给"如果调整会破坏哪项均衡",但"这次异议我来接、改不改我来定"由人定——不是系统能力不够,是它不在这个位置上:它不需要在家长会上面对那位母亲。
第三层:回改,并把回改记录公开。这一层的人不再回答"这个分配公不公平",而是回答"这个分配的异议由我接,接了多少,改了多少,没改的理由在这里,下一次分配之前这些理由公开"。这是分配者能站的最高一层,也是系统绝对到不了的一层,因为它需要一个会被家长指着鼻子、会为没改的那几例难堪、会在下一次分配时被追问上一次的人。
在第二、三层上,系统是必要的:没有它把第零层穷尽——把所有指标都算到达标——第二层不存在:正因为结果已经均衡到挑不出毛病,"还有什么可吵的"才显出来是另一个问题;从前家长吵的是结果,因为结果确实排得不均衡,异议的入口被结果的问题遮住了。人也是必要的:没有人接,异议就是家长会上的沉默。少一样都不成。本书把分配者与系统在第二、三层上的搭配叫作人机协同的申辩单元——在第零层系统只是排班表,到第二层它是这个单元不可拆的一半:正是它把结果排均衡了,异议才第一次只剩异议。
回到那所学校。校长后来做的事是这样的:分班算法照用。但每一次分班之后,设两周的异议期,异议向一位指定的副校长提,副校长必须在一周内给每一条异议一个书面回复——改了怎么改的,没改为什么;所有回复去掉姓名后在下一次分班前公示。第一年收到十九条异议,改了四条,没改的十五条各有一段理由;那位母亲的孩子没有换班,但她拿到了一段理由,并且知道明年分班前这十九条会被再看一遍。她说:这次至少有人看了。这两步,就是第二层和第三层。
一把尺:异议里有几成得到了实质回应
主张说完了,得给一把尺。
本书提出的尺叫申辩回应率:一项分配决定作出后,被提出的异议里,得到实质回应——改了,或没改但给了可核的理由——的比例,以及回应落到具体哪个人名下。它是行政复议里"复议改变率"的扩展版,区别在于本书不只计改变,也计有理由的不改;只计具体的人回应,"系统已复核"不计。取值材料是分配记录、异议记录与回复记录,一次取值约一个月。
有了尺,就能写下这本书什么时候算错。如果算法分配在五年内的申诉率低于人工分配,且被分配者的满意度不降,那么本书第三卷作废。
还有一个更硬的检验,本书没做,但把设计写出来了:同一项分配决定,三个组各自处理异议——第一组只有系统,第二组只有人工审核且不用系统,第三组是申辩单元、系统分配而人接异议——追踪异议得到实质回应的比例与一年后的满意度。本书的主张成立,当且仅当前两组都不如第三组。它还没有被任何人做过,本书作者在内。全书的尺都是取法与设计,没有一个是取过的值。
举一个数法。两所学校,同一套分班算法。甲校:收到异议十九条,实质回应十九条——改四条,十五条附书面理由——回应人为一位副校长,记名;申辩回应率记百分之百,回应主体记"个人"。乙校:收到异议二十三条,回复均为"分班结果由算法生成,各项指标达标,不予调整",无理由,无署名;申辩回应率记零,回应主体记"系统"。两校的公平性报告各项指标相近。本书要问的是:把一批学校排开,申辩回应率与一年后家长的满意度、转学率是不是一起动。这个问题此前没有人这样问过,因为此前"公平"只在分配结果上量,没有人量分配之后异议去了哪里。
这把尺会怎样被做假
申辩回应率一旦进了考核,学校会做什么,不难预见:设一个申诉邮箱,每条异议自动回复一段套话,率记百分之百,一条也没改,一条也没有理由。本书事先写了升级条款:只计有实质回改或有可核理由的回应,套话不计;回应人必须是具体的人。若在这个口径下回应率与满意度无关,这把尺已被驯化,尺子那一节须重写。
一本主张"公平是异议被接住的过程而非算出的状态"的书,若自己立的尺被人用一个自动回复邮箱填上了,它就把自己批评的病带回了家。
本书不做什么
本书不讲治理的一般理论——本社此前有专书。本书不讲裁判:本丛书另有一本《司法》,管裁判席,本书管分配;两本共用"异议",各在第一卷写死定义——那本的异议是上诉,本书的异议是申辩。本书不讲决策过程:那本《公务员》管政策怎样改写实情,本书管分配之后异议去哪。本书也不讲算法公平的技术,它只需要一个已经被证明的事实:几种公平不可能同时满足,所以每一次"最公平"都是一次选择。
各卷概览
第一卷 列一张表:无知之幕、均衡、指标、达标、公平性报告——分配观念史上历代被当作"算出来的公平"的东西,逐条写明它算出来的公平是怎样在选定指标时被当场裁出来过一次。
第二卷 是实证:荷兰补贴案的完整读法,不可能性定理及其含义,"听取另一方"原则的历史,算法审计能做什么、不能做什么。
第三卷 写四级台阶与申辩单元:异议向谁提、谁听、改不改、理由怎么给,机器供什么、人供什么。
第四卷 写制度:每一个自动化分配决定必须配一个可以吵的人——有受理人、有异议入口、有回改记录;公平的度量从结果分布转向异议通道;附分班、招聘、司法辅助三个场景的申辩设计。
第五卷 写尺与判据:申辩回应率的取法、三组对照的设计、作废条件。
第六卷 写这本书自己的死法。
给读者的话
有三种人该读这本书。第一种是那位母亲,她需要知道她说不出"哪一项不公平"不是她的失败——报告里本来就没有她要的那一项。第二种是设计分配制度的人——教育、招聘、社会保障——他们手里握着"公平怎么量"的定义,第四卷为他们而写:在指标旁边加一项"异议去哪了"。第三种是正在做分配算法与公平审计的人,他们需要知道自己的产品在第零层是真正的进步——它确实比关起门的教务处均衡——在第二层是必要件——正是它把结果排均衡了,异议才第一次只剩异议——而第三层与它无关:那一层没有算法,只有一位一周内必须回信的副校长。
作者对本书的态度写在第五卷:它可能是错的,错的条件已经写明。若有一天五年的数据告诉我,算法分配的申诉更少而满意度不降,那一天本书的使命就到头了——它被一套真正无需申辩的分配推翻了,而在那之前,那位副校长得一直在。