Skip to content

聚合眾包標籤:超越多數投票

如何使用 Dawid-Skene 和 MACE 等標註者模型將大量含噪標註合併為單個標籤,何時該信任它們,以及 Potato 如何估計能力並推斷標籤。

當多人為同一項目打標籤時,多數投票是合併他們答案的顯而易見的方法,而且通常是錯誤的方法。估計每位標註者可靠性的模型能夠還原出更好的標籤、標記出灌水者,並告訴你該有多大把握。但它們無一例外都假設存在唯一的正確答案,因此在主觀任務上,你必須先判斷分歧是應當剔除的誤差,還是應當保留的訊號。 本指南涵蓋主要的聚合模型、它們共享的假設,以及如何在 Potato 中執行其中之一。

多數投票假裝不存在的問題

為一個項目收集三個標籤並取多數。當標註者水平大致相當且大多正確時,它是有效的。可一旦不再如此,它就會失效。多數投票把一位細緻的專家和一個隨機點選的機器人都算作一票,拋棄了投票分佈(2 比 1 的勝出和 3 比 0 的完勝結果相同),也沒有給你任何辦法去區分一個真正困難的項目和一個偷懶的標註者。這就是真值推斷問題:僅憑標籤矩陣,同時還原潛在的真實標籤和每位標註者的可靠性。

混淆矩陣模型:Dawid and Skene

這個奠基性的方法已有近 50 年曆史。Dawid and Skene (1979) 用混淆矩陣為每位標註者建模,即他們把一個真陽性項目標為陽性、陰性等等的機率,並使用期望最大化來聯合估計這些矩陣和真實標籤。一個混淆兩個類別的標註者會得到一個如實反映這一點的混淆矩陣,其在該區分上的投票也會據此被降權。幾乎所有現代聚合模型都是這一思想的後裔。

MACE:能力與灌水檢測

Hovy et al. (2013) 提出了 MACE(Multi-Annotator Competence Estimation),它增加了一個顯式的灌水模型:每位標註者被視為要麼知道答案,要麼在猜測,MACE 會估計他們在每個項目上進行猜測的機率。這就給出每位標註者一個介於 0 和 1 之間的單一能力分數,外加一個逐項目的熵值,用以標記真正模稜兩可的項目。它速度快,擅長揪出隨機點選者,也是 Potato 內建的模型。

貝葉斯模型與綜述證據

這一領域的發展已遠遠超出這兩者。Paun et al. (2018) 在真實資料集上比較了一族貝葉斯標註模型,發現它們持續優於多數投票,尤其在標註者品質差異很大時,同時還給出可向下游傳播的、經過校準的不確定性。在工程層面,Zheng et al. (2017) 對 17 種真值推斷方法做了基準測試,並追問這個問題是否已經解決。簡短的答案是:沒有哪種方法能在所有場景中勝出,但幾乎全部都優於多數投票,而且隨著標籤品質下降,差距會拉大。

所有這些模型共享的假設

上述所有模型都假設存在唯一的真實標籤,而分歧即誤差。對客觀任務而言這沒問題。對主觀任務而言則恰恰相反:在冒犯性、情感或道德判斷上,兩位標註者可能因為確實以不同方式解讀文本而產生分歧,Plank (2022) 認為,這種人類標籤變異往往是訊號,而非噪聲。把它聚合掉,你就丟棄了讓資料變得有趣的那樣東西。(我們在分歧是訊號,而非噪聲中對此有更深入的探討。)

正是在這裡,知道是誰做的標註開始變得重要。NUTMEG (Ivey, Gauch, and Jurgens, 2025) 正是為這種張力而構建的貝葉斯模型:它利用標註者的背景資訊,將正當而系統性的分歧從噪聲中分離出來,在剔除訓練資料中粗心標籤的同時,保留那些反映標註者身份的分歧。而這隻有在你一開始就採集了背景資訊時才行得通。如果你運行了一項研究前的人口統計問卷(參見負責任地採集標註者的人口統計資料以及 Potato 的問卷工具),你就擁有了 NUTMEG 式模型所需的標註者後設資料;沒有它,你只能把每一處分歧都當作全然是誤差或全然是訊號來對待。

在 Potato 中操作

Potato 會對你的多標註者資料執行 MACE,並在管理後臺報告能力和推斷出的標籤。它適用於類別型方案(radiolikertselectmultiselect),並且需要真實的重疊,即每個項目有多位標註者,才有可估計的物件。

yaml
mace:
  enabled: true
  trigger_every_n: 10            # re-estimate after every 10 new annotations
  min_annotations_per_item: 3    # ignore items with fewer than 3 labels
  min_items: 5                   # wait for at least 5 eligible items

執行之後,每位標註者會得到一個能力分數(接近 1.0 表示可靠,低於 0.5 很可能是灌水者),每個項目會得到一個預測標籤外加一個熵值。低熵意味著模型有把握;接近最大值的熵意味著沒有共識,這通常標記的是一個真正困難或界定不清的項目,而非一個糟糕的標註者。完整選項見 MACE 功能參考

兩點實務提示。第一,在你實際採集到的重疊上做聚合;MACE 需要每個項目有多個標籤,所以要在研究之前而非之後就規劃好重疊。第二,MACE 給你的是單個標籤;如果你的任務是主觀的,可考慮改用 soft_label 方案保留分佈,僅在你確實需要單一答案的地方才訴諸裁決。

何時聚合,何時保留分佈

一條粗略的決策規則:

  • 客觀任務,存在真實答案標準 → 聚合為單個標籤。用 MACE 或多數投票,然後繼續前進。
  • 偏客觀,但部分標註者不可靠 → 用能力模型(MACE)而非簡單多數投票來聚合,以免糟糕的評分者左右結果。
  • 主觀任務,分歧有意義 → 保留完整分佈(soft_label),如果你有標註者後設資料,就對分歧建模,而不是刪除它。

延伸閱讀