Skip to content
Guides7 min read

Etichette con barre di errore: item response theory per l'annotazione

Il voto di maggioranza butta via quasi tutto quello che i tuoi annotatori ti hanno detto. L'item response theory dà a ogni etichetta una probabilità a posteriori e un intervallo di confidenza, stima l'abilità degli annotatori e la difficoltà degli elementi e trova le voci rotte del codebook, senza etichette gold e senza alcun LLM.

Potato Team

Il voto di maggioranza tratta ogni annotatore come ugualmente affidabile e ogni elemento come ugualmente difficile, e riporta un conteggio invece di una probabilità. L'item response theory (IRT) lascia cadere entrambe le assunzioni: stima l'abilità di ogni annotatore e la difficoltà di ogni elemento dal solo schema dell'accordo, poi riporta ogni etichetta come probabilità a posteriori con un intervallo di confidenza. Non servono etichette gold e non serve alcun LLM. In Potato questo è il motore psicometrico, e gira dal vivo man mano che le annotazioni arrivano.

Tre annotatori etichettano un elemento. Due dicono sarcastic, uno dice sincere. Il voto di maggioranza lo dichiara sarcastic e passa oltre, e il tuo dataset lo registra con esattamente la stessa confidenza di un elemento su cui tutti e tre erano d'accordo.

Così si butta via informazione. Chi dissente potrebbe essere il tuo annotatore più affidabile. L'elemento potrebbe essere uno di quelli che tutti trovano difficili. Nessuno dei due fatti sopravvive al conteggio.

L'abilità degli annotatori stimata dal vivo, con intervalli di confidenza, così ogni etichetta riceve una distribuzione a posteriori invece di un semplice votoAbilità degli annotatori con intervalli di confidenza

Che cos'è l'item response theory?

L'item response theory viene dalla psicometria, dove è nata per assegnare punteggi ai test standardizzati. L'intuizione è che un test dice due cose insieme: quanto è abile chi lo sostiene e quanto è difficile ogni domanda. Puoi stimarle entrambe congiuntamente, a partire dal solo schema delle risposte, perché si vincolano a vicenda. Una domanda che gli studenti abili sbagliano è una domanda difficile. Uno studente che risponde bene alle domande difficili è uno studente abile.

L'annotazione ha la stessa forma. Gli annotatori sono chi sostiene il test, gli elementi sono le domande, e nessuno ha la griglia delle risposte.

Potato adatta una generalizzazione multiclasse di GLAD (Whitehill et al. 2009), che stima tre cose insieme:

  • l'etichetta vera di ogni elemento, come distribuzione di probabilità
  • l'abilità (θ) di ogni annotatore, con un errore standard
  • la difficoltà di ogni elemento, e una diagnostica di discriminazione per elemento

L'adattamento è deterministico e richiede millisecondi alla scala di uno studio di annotazione, quindi può girare di continuo invece che come lavoro batch a posteriori.

Come attivarlo

yaml
psychometrics:
  enabled: true
  schema: sarcasm
  confidence_threshold: 0.95
  min_annotators_per_item: 2

Solo con questo ottieni il livello di analisi. La tua esportazione passa da questo:

text
sarcastic    (2 of 3 votes)

a questo:

text
sarcastic    p = 0.94 [0.88 – 0.97]

La probabilità è la distribuzione a posteriori del modello, che pesa chi ha votato e non soltanto quanti. L'intervallo è una banda di sensibilità sulle stime di abilità.

A valle, quel numero vale la pena di averlo. Puoi addestrare su etichette soft, filtrare un insieme di valutazione tenendo solo gli elementi sopra una soglia di confidenza, oppure trattare gli elementi a bassa probabilità come genuinamente ambigui invece che silenziosamente sbagliati. Il disaccordo smette di essere rumore da mediare via, un punto che conviene leggere insieme a il disaccordo è segnale, non rumore.

L'abilità degli annotatori, presentata onestamente

L'abilità viene stimata dagli schemi di accordo. Un valore di 1.0 è il prior per un annotatore nuovo, 0 significa che le sue etichette non portano informazione e i valori negativi significano che sbaglia in modo sistematico.

Ogni stima arriva con un errore standard, e questo conta più della stima puntuale. Un annotatore con dodici etichette ha un baffo largo, e la dashboard lo disegna largo. Non prendere decisioni sul personale a partire da un baffo largo. Gli errori standard sono approssimati (informazione di Fisher al modo) e per costruzione lievemente ottimistici. Servono a impedirti di leggere troppo dentro un numero, non ad autorizzarti a licenziare qualcuno.

Se vuoi una lettura più semplice della competenza su qualsiasi schema categorico, MACE è il cugino più anziano ed è ancora un buon strumento. La differenza è che MACE gira come analisi in batch, mentre la psicometria sta dentro il ciclo di assegnazione e agisce sullo studio mentre è in corso.

Il rilevatore di errori nel codebook

È la parte che sorprende le persone.

Insieme alla difficoltà, il modello stima la discriminazione: su un dato elemento, l'abilità dell'annotatore correla con l'essere d'accordo con il consenso? Di norma sì. Gli annotatori abili concordano più spesso con la risposta che alla fine prevale, che è più o meno cosa significa «abile».

Quando la discriminazione diventa fortemente negativa, qualcosa non va. I tuoi annotatori migliori si discostano sistematicamente dalla folla su quell'elemento. La spiegazione più probabile non è che i tuoi annotatori migliori siano diventati improvvisamente scarsi. È che la linea guida è ambigua o sbagliata per quel caso, e sono gli annotatori attenti ad accorgersene.

Potato li raccoglie sotto «Probabili errori di codebook». Di solito sono gli elementi di maggior valore dell'intero studio, perché ciascuno è un difetto dello strumento di misura e non di una persona. Correggi la linea guida, poi riannota. Una stanza di norming è un buon posto per affrontarli insieme al team.

Spendere il budget di annotazione dove compra qualcosa

La ridondanza fissa, la regola «tre annotatori per elemento, sempre», spende la stessa cifra su un elemento su cui tutti sono d'accordo e su un elemento che spacca il team a metà. È il contrario di quello che vorresti.

yaml
assignment_strategy: psychometric
num_annotators_per_item: 4
psychometrics:
  enabled: true
  confidence_threshold: 0.95
  cost_per_judgment: 0.08

Con questo, quando un annotatore chiede del lavoro, Potato ordina gli elementi rimanenti secondo il guadagno di informazione atteso che si otterrebbe se quell'annotatore etichettasse quell'elemento. Gli elementi la cui distribuzione a posteriori supera già confidence_threshold smettono del tutto di essere serviti. La dashboard conta i giudizi che non hai dovuto comprare, e li quota se imposti cost_per_judgment.

Due avvertenze da conoscere prima di attivarlo:

  • Avvio a freddo. Finché non esistono abbastanza etichette, l'assegnazione ripiega sul caso. Il modello non può separare l'abilità dalla difficoltà senza annotatori sovrapposti, e non finge il contrario. Al suo posto la dashboard mostra un indicatore di riscaldamento.
  • Batch. L'ordinamento è più fresco quando le code sono corte. Consegnare a ogni annotatore un batch di 200 elementi diluisce l'adattività, perché l'ordinamento è stato calcolato prima che la maggior parte di quelle etichette esistesse.

Decidere la ridondanza prima di spendere

La domanda su cui ogni progetto tira a indovinare è quanti annotatori per elemento servano. Il progettista dello studio risponde invece con una simulazione Monte Carlo:

bash
python -m potato.psychometrics.design --items 500 --accuracy 0.75 \
    --classes 3 --target-ci 0.10 --cost 0.08
text
ann/item   alpha     95% interval   width  majority acc  judgments       cost
       2   0.392 [ 0.330,  0.439]   0.109         0.751       1000      80.00
       3   0.388 [ 0.338,  0.431]   0.093         0.864       1500     120.00  <- recommended

La raccomandazione è la ridondanza più economica il cui intervallo al 95% sull'α di Krippendorff resta più stretto del tuo obiettivo. L'input --accuracy è quello che dovresti misurare con un piccolo pilota invece di indovinare.

Lo stesso calcolo gira nel tuo browser, se preferisci non installare niente per rispondere alla domanda.

Che cosa non fa

L'IRT non è magia. Qualche limite dichiarato:

  • Modella gli schemi categorici a scelta singola, radio e likert. La scelta multipla non viene modellata.
  • Ha bisogno di annotatori sovrapposti. Se ogni elemento è etichettato da una persona diversa, non c'è alcuna struttura di accordo da cui imparare, e il modello ti dirà che si sta ancora riscaldando.
  • Con un solo annotatore, o con etichette unanimi ovunque, l'adattamento è degenere per costruzione. È il comportamento giusto, non un bug.

In cambio ti dà un dataset in cui ogni etichetta porta con sé la propria incertezza, un gruppo di annotatori che capisci e un elenco dei punti in cui il tuo codebook è rotto.

Ulteriori letture