三个裁判一个偏心眼:Moral Entropy 用贝叶斯审计道德标签里的系统性偏见
来源:Moral Entropy: Auditing Bias and Uncertainty in Moral Judgment, arXiv:2609.21992 作者:Maciej Skorski(卢森堡大学) 代码:https://github.com/maciejskorski/moral-entropy
三个裁判,一个偏心眼:Moral Entropy 用贝叶斯审计道德标签里的"系统性偏见"
来源:Moral Entropy: Auditing Bias and Uncertainty in Moral Judgment, arXiv:2609.21992
作者:Maciej Skorski(卢森堡大学)
代码:https://github.com/maciejskorski/moral-entropy
一、引子:一场被裁判毁掉的跳水比赛
想象一场跳水比赛,三个裁判给同一个动作打分。其中一位裁判——我们叫他老王——有个毛病:他特别爱给高分,几乎从不给低分。
现在有两种计分规则:
规则 A(any-annotator):只要有任何一个裁判给了高分,就算高分。 规则 B(majority):两个以上裁判给高分,才算高分。
听起来规则 B 更严格、更靠谱?但数据告诉你一个反直觉的结果:规则 A 把老王的高分偏见放大到整个评分体系,而规则 B 虽然过滤掉了老王的高分,却把另外两个裁判偶尔给的合理高分也一起干掉了。
这篇论文做的事情,就是用贝叶斯框架把"老王偏心眼"这件事量化出来,然后告诉你:当前所有主流的道德标签聚合规则,都有系统性偏见,而且方向还不一样。
二、问题背景:道德标签是怎么来的
1. 道德基础理论(Moral Foundations Theory)
心理学里有个著名的理论叫"道德基础理论",把人类的道德判断分成五个维度:
- Care(关怀):避免他人受苦
- Fairness(公平):平等对待
- Loyalty(忠诚):对内群体的忠诚
- Authority(权威):尊重传统和权威
- Sanctity(神圣):纯洁性
2. 标注的现实
道德语料库的标注过程是这样的:给一群标注者看文本,每个人独立判断"这段话触发了哪些道德维度"。然后把这些标注聚合成一个"最终标签"。
问题出在聚合这一步。标注者之间天然会有分歧——同一段话,不同人看到的道德维度不一样。这种分歧有时候是真实的道德分歧(不同意识形态的人确实会看到不同的东西),有时候是标注者的个人偏见(有人就是爱标 Care)。
3. 现有规则的问题
当前主流的聚合规则有两种:
- any-annotator(任意标注者规则):只要有任何一个人标了某个维度,就算这个维度存在。逻辑 OR。
- majority(多数投票):超过半数标注者标了才算存在。
三、Moral Entropy:贝叶斯审计框架
1. 核心思想:保留完整后验
标准做法是把标注分歧当作"噪音",投票投掉。Moral Entropy 的核心思想是:分歧本身是信号,不应该被投票掉。
具体做法:对每个文本的每个道德维度,维护一个完整的后验分布 P(标签=True | 标注数据),而不是一个硬性的 0/1 标签。这个后验分布告诉你:"这段话触发 Care 维度的概率是 0.15,Fairness 是 0.78,Loyalty 是 0.58"。
2. 熵分解:aleatoric vs epistemic
Moral Entropy 把后验分布的熵(不确定性)分解成两部分:
- Aleatoric uncertainty(偶然不确定性):不可约减的分歧。这段话本身就模糊,不同人合理地看到不同东西。这是数据的内在属性。
- Epistemic uncertainty(认知不确定性):可以约减的分歧。来自标注者偏见、标注不足、噪音。这是标注过程的缺陷。
3. 每个标注者的"偏见画像"
框架会为每个标注者 j 学习一个混淆矩阵 θ_j,记录他们在每个道德维度上的标注可靠性。老王可能在 Care 维度上特别不靠谱(总是过度标注),但在 Fairness 维度上很准。
当老王标了某段话的 Care 维度时,框架不会直接相信他,而是根据他在 Care 维度上的历史可靠性来打折。如果老王的 Care 标注历史假阳性率很高,那他这次标的 Care 就被大幅折扣。
4. 审计现有规则
有了贝叶斯后验作为"校准的真值",就可以审计现有聚合规则了。用交叉熵、KL 散度、Brier 分数、期望校准误差(ECE)这些熵方法,衡量每个规则和后验分布的偏差。
四、实验结果:触目惊心的偏见
1. 数据规模
三个语料库,106,627 条文本,超过 250,000 条标注,覆盖 15 个话语领域。包括 Moral Foundations Twitter Corpus (MFTC)、Moral Foundations Reddit Corpus (MFRC)、以及一个扩展语料库。
2. any-annotator 规则:30% 的项目和后验不一致
any-annotator 规则在约 30% 的项目上和贝叶斯后验不一致。更关键的是不一致的方向:
- 在整体数据集层面,几乎全部是假阳性——any-annotator 标了,但后验认为不应该标
- 但在基础层面(foundation level),错误反转了:在 MFTC 上,假阳性率 19.9%,假阴性率 38.9%
3. majority 规则:漏掉 63-83% 的真阳性
majority 和更严格的 two-vote 规则走向另一个极端:
- 几乎消除了假阳性(MFTC 上 3.5% 和 4.2%,MFRC 上低于 1%)
- 但漏掉了 63-83% 的真阳性(MFTC 上平均 FNR 63-65%,MFRC 上约 83%)
4. 错误方向取决于规则
这是论文最漂亮的发现之一:偏见不是单方向的。
- any-annotator 偏向"过度标注"(高假阳性)
- majority/two-vote 偏向"漏标注"(高假阴性)
5. 软标签训练:2-3% 准确率提升
用校准后的后验分布作为软标签训练分类器,比用硬标签训练准确率高 2-3%。这个数字看起来不大,但考虑到这只是换了训练标签、没动模型架构,已经是"免费"的提升。
五、为什么这件事重要
1. "投票掉分歧"是信息毁灭
当前几乎所有道德语料库的标注流程都默认"分歧是噪音"。这篇论文指出:分歧有时候是信号。道德基础理论本身就预测不同意识形态的人会看到不同的道德维度——把这种分歧投票掉,等于把最有价值的信息扔了。
2. 代理目标陷阱的完美例证
"标注者分歧"是真实目标(理解道德判断的多样性),"单一标签"是代理目标(方便训练分类器)。现有流程优化代理目标(投票得到单一标签),却牺牲了真实目标(保留分歧信息)。
这和之前讨论的"毒性分类器对 harm laundering 假阳性"是同一类问题:代理指标改善了不等于真实属性改善了。any-annotator 的召回率看起来很高,但里面混了大量假阳性;majority 的精确率看起来很高,但漏掉了大部分真阳性。
3. "基数差距论证"的实践版
每个标注者的偏见是多维的——老王在 Care 上不靠谱,但在 Fairness 上可能很准。把标注者简化成"靠谱/不靠谱"的二元标签,会丢失这个多维结构。
这和嵌入模型的状态空间 K^N >> 人类概念库 10^8 是同一种"基数差距"——真实的信息空间比我们用来描述它的标签空间大得多。贝叶斯框架保留了完整后验,而不是压缩成 0/1,本质上就是尊重这种基数差距。
4. 适用于所有"多标注者"场景
虽然论文聚焦道德判断,但框架本身适用于所有多人标注的场景:
- 内容审核(不同审核员对"违规"的判断不同)
- 医疗影像诊断(不同医生对同一张片子的判断不同)
- 情感分析(不同人对同一段文字的情感感受不同)
六、局限与诚实评价
1. 贝叶斯后验本身依赖先验假设:如果先验选得不好,后验可能也有偏见。论文用的是 Beta-Binomial 共轭先验,相对稳健,但不是无假设的 2. 标注者混淆矩阵需要足够数据估计:如果某个标注者只标了少量样本,θ_j 的估计就不稳定。论文没有详细讨论小样本标注者的处理 3. "校准的真值"本身需要验证:论文用 eMFD 的专家金标签做了独立验证,但专家金标签本身也可能有偏见
但核心贡献——"聚合规则的偏见可以被系统性审计"——是成立的。以前我们只知道"投票有损失",现在能精确量化"损失在哪个方向、有多大"。
七、结语
这篇论文最让我喜欢的一点是它的姿态:不是提出一个更好的聚合规则,而是提出一个审计所有规则的框架。
不告诉你该用 any-annotator 还是 majority,而是告诉你:你用的任何规则,在哪个方向上偏了多远。这比"我的规则比你的好"成熟得多——因为没有没有偏见的规则,只有被审计过的偏见。
道德判断本身就是模糊的、有争议的、因人而异的。把这种模糊性保留下来、建模出来,比假装它不存在然后投票掉它,更诚实,也更有用。
论文链接:https://arxiv.org/abs/2609.21992 HTML 版本:https://arxiv.org/html/2609.21992v1 代码:https://github.com/maciejskorski/moral-entropy