Skip to content

標註者間一致性詳解

一份關於標註者間一致性的實用指南,涵蓋百分比一致率、Cohen kappa、Fleiss kappa 與 Krippendorff alpha,說明何時使用各項指標,以及 Potato 如何報告它們。

標註者間一致性(IAA)衡量獨立標註者給出相同標籤的頻率。它是證明標註任務定義清晰、所得標籤可信的標準證據。 一致性偏低通常說明標註指南不夠清晰,而非標註者粗心。

這一主題的總稱是評分者間信度。Potato 會在管理後臺中即時計算一致性,參見品質控制。

為什麼原始百分比一致率還不夠

最簡單的指標是百分比一致率:標註者給出完全相同標籤的條目所佔比例。問題在於,部分一致是偶然發生的。如果兩位標註者都有 90% 的機率選擇"正面",那麼即便隨機標註,他們大多數時候也會一致。經過偶然性校正的指標能解決這一問題。

經過偶然性校正的係數具有如下形式:

text
        P_observed − P_expected
  κ =  ─────────────────────────
            1 − P_expected

其中 P_observed 是實際一致率,P_expected 是偶然情況下預期的一致率。取值為 1 表示完全一致,0 表示與隨機水平相當。

你真正會用到的三種指標

  • Cohen kappa:兩位標註者、分類標籤。成對標註的經典選擇。
  • Fleiss kappa:多於兩位標註者、分類標籤,且不同條目可能由不同評分者判定。
  • Krippendorff alpha:最通用的選擇。它適用於任意數量的標註者,能處理缺失資料,並支援名義、有序、等距和等比資料。這是 Potato 預設報告的指標。

成對的簡單分類任務用 kappa;當標註者較多、重疊不完整,或標籤為有序/連續值(此時"相差一級"應比"相差四級"扣分更少)時,則選用 Krippendorff alpha。

三名標註者時用 Fleiss' kappa 還是 Krippendorff's alpha?

如果三名標註者都標註了每一條資料,且標籤是無序類別,兩種係數都說得過去。如果有任何一條資料缺少標籤,或者標籤是有序的,就用 Krippendorff's alpha。

兩者的差別在於各自的假設:

  • 缺失標籤。 Fleiss' kappa 要求每條資料的評分數相同。如果三名標註者中有一人跳過了某條資料,你就得把這條資料刪掉。Krippendorff's alpha 會用上它拿到的每一個評分。
  • 測量層次。 Fleiss' kappa 把標籤當作無序的,因此在 1–5 分量表上,4 對 5 與 1 對 5 算作同樣的分歧。Krippendorff's alpha 使用距離度量(名義、定序、定距或定比),把相近的差異算作較小的分歧。
  • 小樣本。 Krippendorff's alpha 含有小樣本校正,所以在只有幾十條資料的試標中,即使資料同時適合兩者,兩者的結果也可能拉開。

在完整的名義資料上、資料量足夠時,兩者通常很接近。報告你所在領域慣用的那一個,並在論文中寫明係數和度量,因為"一致性為 0.72"在兩者之下含義不同。

Potato 會同時報告多個係數,而不是讓你事先只選一個。分類型標註方案會並列給出百分比一致率、Cohen's kappa、Fleiss' kappa 和名義 alpha,有序型標註方案則給出線性加權 kappa、二次加權 kappa、Spearman's rho 和定序 alpha。在 2.9 版本之前,帶文字標籤的 Likert 量表在計算定序 alpha 時按字母順序排列文字標籤,實際上成了名義 alpha,所以如果你用更早的版本報告過帶文字標籤量表的定序一致性,請重新計算。你也可以用瀏覽器中的一致性計算器檢查一張標籤表,它會同時計算名義、定序和定距 alpha,以及 Cohen's kappa 和 Fleiss' kappa。

如何解讀這個數值

並不存在通用的判定閾值,但對於 alpha/kappa,常見的粗略參考是:

  • ≥ 0.80:足以信賴。
  • 0.67–0.80:可用於得出初步結論,但需排查分歧。
  • < 0.67:在信任這些標籤之前,先重新審視標註指南。

把這些數值當作進一步排查的提示,而非"通過/不通過"的硬性門檻。務必檢視是哪些條目和哪些標籤導致了分歧。

在 Potato 中進行測量

讓標註者在一個共享子集上重疊標註,然後啟用一致性報告:

yaml
agreement_metrics:
  enabled: true
  min_overlap: 2          # an item counts once this many annotators have answered it
  refresh_interval: 60    # seconds between dashboard updates

對於跨度(span)和結構化任務,應在你關心的層級上測量一致性(精確跨度匹配還是重疊匹配),因為文件級指標會掩蓋邊界上的分歧。

當一致性偏低時

  1. 閱讀存在分歧的條目:是標註指南含糊,還是條目本身確實困難?
  2. 收緊定義,並把疑難案例作為示例補充進去。參見撰寫標註指南。
  3. 重新試標。如果在真正主觀的任務上一致性仍然偏低,可考慮直接記錄分歧本身,而不是強求唯一答案。

常見問題

以下問題涉及 Krippendorff's alpha 的取值範圍、它的計算方法,以及只有兩名標註者時的一致性。

Krippendorff's alpha 會小於 -1 嗎?

不會。當標註者之間的分歧多於偶然情況下的預期時,alpha 會低於 0,並且會趨近 -1 但不會達到 -1。兩名標註者在 N 個條目上全部不一致、且兩個標籤使用頻率相同時,alpha 恰好等於 -1 + 1/N,5 個條目時為 -0.8,20 個條目時為 -0.95。Krippendorff (2011) 給出的與信度相關的取值範圍是 0 到 1,並把低於 0 的值歸因於系統性分歧或抽樣誤差。明顯為負的 alpha 說明存在系統性分歧,例如標註者把量表的方向理解反了,這時應當檢查標註指南,而不是直接報告這個數值。

Krippendorff's alpha 怎麼計算?

alpha 等於 1 減去觀測分歧與偶然預期分歧之比。觀測分歧來自同一條目上所得標籤兩兩組成的配對,預期分歧來自從研究中全部標籤裡抽取的配對,並由距離度量(名義、定序、定距或定比)決定每處不一致計多少分。Potato 在 min_overlap 名標註者標註了同一條目之後,會在管理後臺中按標註方案分別計算 alpha;一致性計算器則在瀏覽器中根據一張標籤表計算名義、定序和定距 alpha。

只有兩名標註者能計算標註者間一致性嗎?

能。Cohen's kappa 正是為恰好兩名標註者、分類標籤的情形設計的,Krippendorff's alpha 在兩名標註者和更多標註者時都適用。兩種係數都要求這兩名標註者獨立標註了相同的條目,而且條目很少時估計值不穩定,所以報告係數時要同時報告條目數。

延伸閱讀