C’è questo detto che se dai lo stesso testo a 10 traduttori diversi, loro forniranno 10 traduzioni diverse ed ugualmente valide. Dopotutto, il linguaggio è altamente soggettivo, quindi nel caso della traduzione non c’è una unica risposta universalmente accettata. E quindi, naturalmente, i linguisti hanno convinzioni molto forti su quale traduzione esprima meglio il significato originale del messaggio.

Poiché siamo alla ricerca della massima qualità della traduzione, questa cosa per noi rappresenta una grande sfida. Lo stesso vale per l’annotazione degli errori di traduzione. Gli annotatori non sempre concordano e non perché un errore di traduzione sia stato erroneamente classificato, ma piuttosto perché lo stesso errore può essere classificato in modo diverso, a seconda dall’angolazione da cui lo si guarda. Quindi, come possiamo sperare di poter formare i nostri modelli quando non riusciamo ad essere d’accordo su cosa sia errato? E questa differenza di opinioni può essere una cosa positiva?

La formazione supervisionata ha bisogno di esempi

Innanzitutto dobbiamo fare un passo indietro: perché siamo interessati a ciò che gli annotatori hanno da dire?

Il motivo è semplice: attualmente quasi tutti i metodi di IA di successo sono metodi supervisionati. Ciò significa che imparano dagli esempi. Per il riconoscimento delle immagini gli esempi sono immagini annotate con riquadri etichettati (questa parte dell’immagine è un gatto, questa parte dell’immagine è un cane e così via), per il riconoscimento vocale gli esempi sono registrazioni vocali con trascrizione del proprio testo e per la traduzione automatica o MT (Machine Translation) sono frasi con traduzioni di esempio.

Alcune task richiedono la classificazione delle parole o di intere frasi in classi fisse — la difficoltà nel riconoscimento dell’entità denominata o NER (Named Entity Recognition) è quella di riconoscere parti della frase che indicano determinate classi di interesse come posizione, nome, data.

Un esempio del tipo di dati utilizzati nella NER: LOC è posizione, ORG è organizzazione e GPE è entità geopolitica. Si noti che un’entità può essere composta da più parole. (Immagine di Huggingface, presa da https://twitter.com/huggingface/status/1230870653194121216)

Questi dati etichettati sono alla base di qualsiasi applicazione di apprendimento automatico che ha successo nel mondo reale, perché questi esempi non solo formano i modelli — valutano anche se i modelli hanno davvero appreso il compito in questione. Dopotutto, non vogliamo che copino semplicemente gli esempi mostrati, vogliamo che li generalizzino ai casi mai visti. Per questo motivo teniamo sempre da parte un certo numero di esempi, che vengono usati per testare i modelli nelle fasi successive.

La cosa importante da ricordare è che questi esempi sono forniti da noi umani! Creiamo con attenzione le traduzioni di esempio, decidiamo le categorie per le immagini, scegliamo la tassonomia delle classi da inserire nel sistema NER. Possiamo chiamare questo lavoro, il processo di creazione di esempi con etichette, annotazione e la persona che lo svolge, annotatore.

Qui ad Unbabel utilizziamo la struttura delle metriche di qualità multidimensionale o MQM ( Multidimensional Quality Metrics ), per valutare la qualità delle nostre traduzioni. Gli annotatori sono una parte importante del processo — tracciano l’annotazione dell’errore, un processo che comporta l’evidenziare l’intervallo dell’errore per ogni errore di traduzione riscontrato; classificandolo dall’elenco dei problemi ed infine assegnandogli una gravità (minore, maggiore e critica). Si tratta di un lavoro per bilingue — l’annotatore deve avere competenza in entrambe le lingue.

Il loro lavoro viene svolto a diversi livelli: una parte riguarda l’annotazione raffinata degli errori, come quando valutano se le parole sono tradotte in modo errato o troppo letterale. Ma a volte l’annotazione degli errori esiste ad un livello più alto, ad esempio quando giudicano se questa frase è una traduzione migliore di quest’altra frase (classifica) o se questa frase è una 9/10 e quest’altra è invece una 3/10 (valutazione diretta). In alcuni casi, specialmente quando si tratta di situazioni in cui hanno effettuato una valutazione diretta, potrebbe essere difficile capire cosa abbia guidato il giudizio dell’annotatore.

Perché il fatto è questo: gli annotatori non sono sempre d’accordo. Quando assumiamo nuovi annotatori non è raro vedere disaccordi, in qualche caso un annotatore afferma che si tratta di un errore minore, uno afferma essere maggiore ed uno afferma essere critico! E questi annotatori sono già altamente qualificati, è solo che non è un compito facile.

Il disaccordo si verifica per diversi motivi. Prima di tutto, il lavoro di annotazione è per natura soggettivo. Gli annotatori possono semplicemente avere preferenze diverse: alcuni preferiscono traduzioni che mostrino una maggiore scorrevolezza grammaticale, mentre altri danno maggiore importanza alla conservazione del significato nella traduzione.

Ma ci sono anche altri motivi. Nonostante il massimo impegno e la costante messa a punto, le istruzioni non sono sempre cristalline — non possiamo prevedere tutti i casi in cui una particolare etichetta dovrebbe essere usata e ancora, il linguaggio è ambiguo e presenta delle difficoltà quando si prova a classificarlo.

In più, gli uomini commettono errori. Un sacco. Sono anche notoriamente pieni di pregiudizi, sia a livello individuale (per esempio preferiscono costantemente una lettura/interpretazione ad un’altra) che a livello di gruppo, nel senso più socioculturale del termine.

Infine, anche la qualità di un annotatore competente può variare — basta che provi a fare un test linguistico nella tua propria lingua madre mentre sei stanco o distratto.

Ma anche se il disaccordo è diciamo normale, può certamente diventare un problema. Se loro non concordano sulla gravità di un errore, come facciamo a sapere di cosa si tratta?

Misurare (dis)accordi

Per cominciare, potremmo usare le funzionalità del processo di annotazione per misurare la qualità. Ma può risultare problematico. Prendiamo ad esempio il tempo impiegato dall’annotatore per completare la task — una quantità molto semplice da ottenere. Supponiamo che un annotatore veloce sia probabilmente frettoloso e quindi soggetto a commettere errori, mentre un annotatore che impiega un po’ più di tempo sia soltanto scrupoloso. Ma potrebbe anche essere il caso in cui l’annotatore veloce sia solo esperto ed efficiente, mentre l’annotatore lento si stia solo dilungando.

È molto difficile distinguere gli annotatori dalle singole semplici caratteristiche. Quando però i metadati sono più significativi della task, come il comportamento nella digitazione di un editor, allora questi possono diventare molto predittivi della qualità, come dimostrato dal Translator2Vec, un modello sviluppato da Unbabel.

Invece di guardare i dati comportamentali, possiamo guardare le previsioni stesse. Se raccogliamo più giudizi sullo stesso elemento, possiamo fare qualcosa di più che caratterizzare — possiamo confrontare! Ed è qui che entra in gioco l’accordo di inter-annotazione o IAA (Inter-Annotation Agreement). L’accordo di inter-annotazione è in genere misurato con statistiche che riassumono — in un singolo numero — il grado di accordo tra diversi annotatori. Prendiamo un accordo grezzo, ovvero il numero di volte che gli annotatori concordano sul proprio giudizio. Questo presenta un problema: se le persone scelgono abbastanza spesso etichette casuali, ad un certo punto finiscono per concordare. E noi non vogliamo contare su questo. Proprio per questo il Kappa di Cohen gode di molta più popolarità: corregge questi accordi casuali.

Questa idea può essere ulteriormente estesa per misurare la coerenza di un annotatore o in altre parole, l ‘accordo tra gli annotatori. Se ci sono più giudizi della stessa persona sullo stesso elemento — preferibilmente con intervalli di tempo in mezzo — allora le stesse metriche di cui sopra possono essere utilizzate per misurare gli annotatori rispetto a se stessi.

Alla fine, queste metriche possono aiutarti ad avere un controllo sulla qualità dei tuoi dati. Ti forniscono una metrica che può guidare il processo decisionale: devi declassare determinati annotatori? Devi scartare determinati esempi? Ma non farti ingannare: tutte le metriche hanno delle falle ed il Kappa di Cohen non fa eccezione.

Concordi al disaccordo?

Dovremmo sempre penalizzare la differenza di giudizio? Alcune attività di etichettatura dei dati sono per natura ambigue e in quelle il disaccordo potrebbe dirci qualcosa. Considera questo esempio:

Esempio di annotazioni MQM di Unbabel su inglese-tedesco da due diversi annotatori. Il giallo è un errore minore , il rosso è critico . L’esempio proviene da un test-batch utilizzato internamente per formare e valutare gli annotatori. (La visualizzazione è stata creata usando un adattamento di Displacy.)

La frase originale è “Could you also give me the new email address you would like me to attach to your account.” La MQM della prima annotazione è 40, mentre la MQM della seconda frase è 70. È chiaro che gli annotatori hanno approcci diversi, con un chiaro punto di accordo (la parola neuen) e un grande disaccordo: l’ultima parte della frase.

In questo esempio, noi preferiamo la seconda annotazione. Il primo annotatore afferma che l’ultimo pezzo della frase sia incomprensibile, il che significa, in base alle linee guida MQM, che la natura esatta dell’errore non può essere determinata, ma causa una grave crollo della scorrevolezza. Questo è un errore che dovresti applicare ad una sequenza confusa di caratteri e numeri come “The brake from whe this કુતારો િસ S149235 part numbr,,.”, che non è per forza ciò che accade nella frase di cui sopra.

Ma potremmo sostenere che qui ci sia una questione interessante. Se l’ultima sezione della traduzione contiene così tanti errori che diventa quasi impossibile da capire, questo non costituisce un “grave crollo della scorrevolezza nella scorrevolezza”?

Questo esempio è tratto da un esperimento col quale confrontiamo e formiamo gli annotatori. Poiché entrambi gli annotatori sono competenti e la fonte del disaccordo può essere compresa, il passaggio successivo all’osservazione di cui sopra è quello della calibrazione: assicurarsi che tutti gli annotatori siano sulla stessa pagina — insieme a noi ed agli altri.

Accettare il caos

Quando si ha a che fare con questo tipo di disaccordo, ci sono sempre alcune cose che possiamo fare per mitigarlo. A volte puoi ridurre il disaccordo semplicemente fornendo maggiori indicazioni. Si tratta di investire più ore di lavoro umano, capire quali etichette e quali attività causano il disaccordo e la soluzione può includere il ripensare etichette, strumenti, incentivi ed interfacce. Questo è un approccio testato ed attendibile qui ad Unbabel.

Oppure puoi chiedere ad altri esperti di aggiustare i tuoi dati. Quando questo è stato fatto recentemente per un classico ed usando ancora il dataset NER, i ricercatori hanno riscontrato errori di etichetta in più del 5 percento della frase di prova. Potrebbe non sembrare molto significativo, ma è un numero piuttosto grande per un dataset in cui lo stato dei metodi automatici raggiunge prestazioni di oltre il 93 percento!

Un approccio interessante è fondere i giudizi — se puoi ottenere più annotazioni sullo stesso elemento di dati, perché non provare a combinarle in una sola?

Tendiamo ad affidarci agli esperti perché riteniamo che siano più precisi, approfonditi, in definitiva, affidabili. Poiché le annotazioni che utilizziamo hanno a che fare con una tassonomia specializzata di errori e richiedono un livello elevato di comprensione del linguaggio per poter essere utilizzate correttamente, ci affidiamo ad annotatori altamente qualificati.

Ma ecco la cosa affascinante: per alcune task che non usano una tipologia molto specializzata o che non richiedono un tipo di conoscenza specializzata, il giudizio complessivo di diversi non esperti è affidabile come quello di un esperto. In altre parole: un numero sufficiente di non esperti arriva alla media di un esperto. Ed il numero di non esperti necessario perché questo accada è sorprendentemente basso. È questo tipo di conoscenza collettiva che ha dato vita a Wikipedia, per esempio.

Assumere il compito del riconoscimento del coinvolgimento testuale o RTE (Recognizing Textual Entailment). Il coinvolgimento testuale o TE (Textual Entailment) è una relazione logica tra due frammenti di testo — la relazione vale ogni volta che la verità di una frase segue quella di un’altra. Ad esempio: “Crollo dei prezzi del greggio” comportail “Calo dei prezzi del petrolio”; non comporta che “Il governo alzerà i prezzi del petrolio” (adattato da Snow et al. 2018)

Aggregare i giudizi di più non esperti alla qualità del giudizio di un singolo esperto (adattato da Snow et al. 2008)

Qui vediamo come l’aggregazione del giudizio di questi non esperti riesca a migliorare la precisione delle annotazioni (linea nera). E possiamo potenziarlo ancora ulteriormente soppesando ogni giudizio di un non esperto con un punteggio determinato automaticamente che può essere calcolato dal loro concordare con un esperto, correggendo efficacemente i loro pregiudizi, come mostra la linea blu.

Invece di soppesare i tuoi annotatori in base alla fiducia, puoi anche provare a soppesare i tuoi esempi in base alla loro difficoltà. Ad esempio, assegnando un’importanza minore agli esempi semplici — o ancora più rigorosamente: rimuovendoli completamente. Il bello di entrambi questi approcci è che gli stessi modelli possono essere utilizzati per identificare questi candidati.

Tutto sommato, è difficile rimuovere tutte le ambiguità. Prendiamo le traduzioni: per una singola frase ci sono molteplici (probabilmente una grande quantità) di traduzioni valide, magari ognuna dà la priorità ad un aspetto diverso della qualità della traduzione — pensiamo solo alle varie traduzioni di un romanzo fatte da diversi traduttori o anche fatte nel corso di decenni. Questa cosa viene presa in considerazione in maniera esplicita nella valutazione dei sistemi di traduzione, dove la miglior pratica è considerata quella di tenere sempre conto di più traduzioni di riferimento valide quando si utilizza una metrica automatica. Nella formazione dei modelli di traduzione automatica, d’altra parte, rimane una domanda aperta su come promuovere la diversità, in termini più ampi: come affrontare l’incertezza di fondo nel compito di traduzione.

A quanto pare, neanche l’eccesso di accordo va bene per i tuoi modelli. Quando ciò accade, gli annotatori potrebbero cominciare a lasciarsi dietro facili schemi, i cosiddetti “artefatti degli annotatori”, che saranno facilmente selezionati dai modelli. Il problema è causato dalle caratteristiche nell’esempio di input che sono fortemente correlate all’etichetta di output, ma che non catturano nulla di essenziale in merito alla task. Ad esempio, se tutte le foto dei lupi nella formazione mostrano la neve e tutte le foto degli husky no, allora risulta molto facile fare questa scelta — ed altrettanto facile ingannarsi. I modelli falliscono, supponendo che l’assenza di neve sia ciò che caratterizza un husky. In pratica, l’apprendimento di questo tipo di relazione impedirà la generalizzazione ad esempi che non mostrano questa correlazione. E questa generalizzazione è esattamente ciò che stiamo cercando.

Ad un certo punto, dovrai accettare il caos. La diversità dei dati è una buona cosa e dovremmo apprezzarla. Da questo punto di vista il disaccordo tra gli annotatori è un segnale che non disturba. Potremmo persino rendere l’ambiguità una caratteristica esplicita dei nostri modelli — un approccio che è stato applicato con successo nella stima della qualità dei sistemi di traduzione automatica.

Facendo un ulteriore passo avanti, puoi decidere di creare un set di dati che di proposito contenga ambiguità. Invece di fornire una singola etichetta per punti-dati, agli annotatori è consentito fornire più etichette e invece di un singolo annotatore per elemento, essi richiedono giudizi da più annotatori. Questa moltitudine di giudizi ti consente di creare un set di dati con più risposte corrette, ciascuna pesata da punteggi di disaccordo che indichino la fiducia in quell’etichetta.

Prendi l’esempio sopra che mostra i risultati di tale lavoro. Il compito è quello di riconoscere i molteplici plausibili sensi della parola (“frames”), ottenendo un senso di incertezza che circonda ogni elemento. Questa incertezza è espressa dai pesi assegnati alle classi ed alle frasi (Dumitrache et al. 2019). Il punteggio dell’etichetta è il grado con cui gli annotatori concordano su quella singola etichetta ponderata dalla qualità dell’annotatore ed il punteggio della frase è il grado con cui tutti gli annotatori concordano su tutte le etichette nella frase.

Nella loro ricerca, Anca Dumitrache ed i suoi colleghi “hanno trovato molti esempi in cui la semantica dei singoli frame si sovrappone sufficientemente per renderli alternative accettabili per l’interpretazione di una frase”. Lei sostiene che ignorare questa ambiguità crei un obiettivo eccessivamente arbitrario per la formazione e la valutazione dei sistemi di elaborazione del linguaggio naturale: “se gli umani non riescono ad essere d’accordo, perché dovremmo aspettarci che la risposta di una macchina sia diversa?”

Infatti la nostra ricerca si evolve costantemente in questa direzione. Questa diversità di annotazioni ci sta effettivamente aiutando a costruire etichette migliori, strumenti migliori e in definitiva, modelli di apprendimento automatico migliori. E mentre qualcuno piuttosto organizzato normalmente non lo ammetterebbe, a volte devi solo smettere di preoccuparti ed imparare ad accettare il caos.

Fonti

  • Lora Aroyo, Chris Welty, 2015, “Truth Is a Lie: Crowd Truth and the Seven Myths of Human Annotation”, Association for the Advancement of Artificial Intelligence, https://www.aaai.org/ojs/index.php/aimagazine/article/view/2564
  • Trevor Cohn, Lucia Specia, 2013, “Modelling Annotator Bias with Multi-task Gaussian Processes: An Application to Machine Translation Quality Estimation”, Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), https://www.aclweb.org/anthology/P13-1004
  • Anca Dumitrache, Lora Aroyo, Chris Welty, 2019, “A Crowdsourced Frame Disambiguation Corpus with Ambiguity”, https://arxiv.org/pdf/1904.06101.pdf
  • Mor Geva, Yoav Goldberg, Jonathan Berant, 2019, “Are We Modeling the Task or the Annotator? An Investigation of Annotator Bias in Natural Language Understanding Datasets”, Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing, https://www.aclweb.org/anthology/D19-1107.pdf
  • Suchin Gururangan, Swabha Swayamdipta, Omer Levy, Roy Schwartz, Samuel R. Bowman, Noah A. Smith, 2018, “Annotation Artifacts in Natural Language Inference Data”, Proceedings of NAACL-HLT 2018, https://www.aclweb.org/anthology/N18-2017.pdf
  • Emily K. Jamison and Iryna Gurevych, 2015, “Noise or additional information? Leveraging crowdsource annotation item agreement for natural language tasks.”, Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, https://www.aclweb.org/anthology/D15-1035.pdf
  • Rabeeh Karimi Mahabadi, James Henderson, 2019, “Simple but Effective Techniques to Reduce Dataset Biases”, https://arxiv.org/pdf/1909.06321.pdf
  • Ronan Le Bras, Swabha Swayamdipta, Chandra Bhagavatula, Rowan Zellers, Matthew E. Peters, Ashish Sabharwal, Yejin Choi, 2020, “Adversarial Filters of Dataset Biases”, https://arxiv.org/pdf/2002.04108.pdf
  • Rion Snow, Brendan O’Connor, Daniel Jurafsky, Andrew Ng, 2008, “Cheap and Fast – But is it Good? Evaluating Non-Expert Annotations for Natural Language Tasks”, Proceedings of the 2008 Conference on Empirical Methods in Natural Language Processing, https://www.aclweb.org/anthology/D08-1027.pdf
  • Zihan Wang, Jingbo Shang, Liyuan Liu, Lihao Lu, Jiacheng Liu, Jiawei Han, 2019, “CrossWeigh: Training Named Entity Tagger from Imperfect Annotations”, Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing, https://www.aclweb.org/anthology/D19-1519.pdf