Skip to content

Truth Serum

把意外流行打分用到标注上。每个标签后面多问一个小问题,就能让 Potato 在难题上胜过多数投票,全程不需要任何黄金标签。

v2.7.0 新增

多数投票偏偏在标注最难的地方失效:一群人自信地答错,而知情的少数人是对的。Truth Serum 在每次给出标签之后追加一个小问题。

你选的是 Sarcastic。你觉得有多大比例的其他标注者会和你选一样的标签?

同伴预测打分:“有多大比例的其他标注者会选同一个标签?”

一个滑块,一次点击。这些预测支撑起意外流行(surprisingly popular)原则(Prelec 2004Prelec、Seung 与 McCoy 2017Nature):实际流行度超出预测流行度最多的那个标签,就是当前能拿到的对真相的最佳估计,而且计算它不需要任何黄金标签。

背后的直觉是,持有正确少数派观点的人通常知道自己是少数派,所以他们的答案最后会比所有人预测的都更流行。

据我们所知,Potato 是第一个提供同伴预测打分的标注工具。

你能得到什么

  1. 在难题上胜过多数投票的条目判定。 仪表板上的“多数可能出错的地方”队列会列出所有意外流行标签与多数标签不一致的实例。优先审这些,或者把它们送去裁定
  2. 标注者校准分数。 每位标注者预测的一致度,和他们实际从同伴那里得到的一致度差了多远。过度自信和校准不良的标注者不需要任何黄金题目就会浮出水面。
  3. SP 对齐度。 每位标注者的标签与意外流行判定一致的频率,这是“是否真的知情”而非“是否只是随大流”的一个代理指标。

配置

yaml
truth_serum:
  enabled: true
  schema: sarcasm            # scheme to collect predictions for (default: first radio)
  min_annotators: 3          # predictions per item before a verdict is computed
  # question: "What percentage of other annotators will choose the same label as you?"
选项默认值说明
enabledfalse总开关。
schema第一个 radio 方案哪个方案的标签会被要求预测流行度。
question见上显示在滑块上方的提问。
min_annotators3计算判定前每个条目所需的最少预测数(下限为 2)。

方法说明

在论文里引用 Truth Serum 之前,请先读这几条。

  • 这是简化的自答预测变体。每位标注者只预测自己所选标签的流行度,而不是给出所有标签上的完整分布。一个标签的预测流行度是其支持者预测值的均值,它的意外度是 actual % − predicted %,SP 判定就是被投过票的标签中意外度最高的那个。
  • 只有在预测数达到 min_annotators 或以上时才会算判定。小样本的判定噪声很大;3 是下限而不是推荐值,5 以上更好。
  • 校准误差是拿每个预测去比对该条目上其他标注者之间的一致度,把标注者自己排除在外。
  • 标注者可以改。每个实例上最后一对 (标签, 预测) 生效。

数据与 API

预测持久化到 {output_annotation_dir}/truth_serum/predictions.jsonl(只追加;每位标注者在每个实例上以最后一条记录为准)。

端点方法鉴权用途
/truth_serum/api/predictPOSTsession记录标签 + 预测百分比
/truth_serum/api/mineGETsession该标注者的预测(用于恢复控件状态)
/truth_serum/dashboardGETadmin判定 + 校准仪表板
/truth_serum/api/statsGETadmin仪表板聚合数据
/truth_serum/api/exportGETadmin完整 JSON 导出(判定 + 原始预测)

延伸阅读