Skip to content

L'accord inter-annotateurs expliqué

Un guide pratique de l'accord inter-annotateurs : accord en pourcentage, kappa de Cohen et de Fleiss, alpha de Krippendorff, quand utiliser chaque mesure et comment Potato les rapporte.

L'accord inter-annotateurs (IAA) mesure la fréquence à laquelle des annotateurs indépendants attribuent la même étiquette. C'est la preuve standard qu'une tâche d'annotation est bien définie et que les étiquettes obtenues sont fiables. Un accord faible signifie généralement que les consignes manquent de clarté, et non que les annotateurs sont négligents.

Le sujet général est la fidélité inter-juges. Potato calcule l'accord en direct dans le tableau de bord d'administration, voir Contrôle qualité.

Pourquoi l'accord brut en pourcentage ne suffit pas

La mesure la plus simple est l'accord en pourcentage : la proportion d'éléments que les annotateurs ont étiquetés de façon identique. Le problème, c'est qu'une partie de l'accord se produit par hasard. Si deux annotateurs choisissent tous deux « positif » 90 % du temps, ils seront d'accord la plupart du temps, même en étiquetant au hasard. Les mesures corrigées du hasard règlent ce problème.

Un coefficient corrigé du hasard a la forme suivante :

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

où P_observed est l'accord réel et P_expected l'accord attendu par hasard. Une valeur de 1 correspond à un accord parfait ; 0 au niveau du hasard.

Les trois que vous utiliserez vraiment

  • Kappa de Cohen : deux annotateurs, étiquettes catégorielles. Le choix classique pour une paire.
  • Kappa de Fleiss : plus de deux annotateurs, étiquettes catégorielles, lorsque des éléments différents peuvent être jugés par des évaluateurs différents.
  • Alpha de Krippendorff : l'option la plus générale. Elle fonctionne avec n'importe quel nombre d'annotateurs, gère les données manquantes et prend en charge les données nominales, ordinales, d'intervalle et de rapport. C'est ce que Potato rapporte par défaut.

Utilisez le kappa pour les paires catégorielles simples ; tournez-vous vers l'alpha de Krippendorff lorsque vous avez de nombreux annotateurs, un chevauchement incomplet, ou des étiquettes ordonnées/continues (où « se tromper d'un cran » devrait compter moins que « se tromper de quatre crans »).

Kappa de Fleiss ou alpha de Krippendorff avec trois annotateurs ?

Si les trois annotateurs ont étiqueté chaque item et que les étiquettes sont des catégories non ordonnées, les deux coefficients se défendent. S'il manque une étiquette sur un item, ou si les étiquettes sont ordonnées, utilisez l'alpha de Krippendorff.

Les deux diffèrent par leurs hypothèses :

  • Étiquettes manquantes. Le kappa de Fleiss suppose le même nombre d'évaluations pour chaque item. Si l'un des trois annotateurs a sauté un item, il faut écarter cet item. L'alpha de Krippendorff utilise toutes les évaluations disponibles.
  • Niveau de mesure. Le kappa de Fleiss traite les étiquettes comme non ordonnées : sur une échelle de 1 à 5, un 4 contre un 5 compte comme le même désaccord qu'un 1 contre un 5. L'alpha de Krippendorff prend une métrique de distance (nominale, ordinale, d'intervalle ou de rapport) et compte les écarts proches comme des désaccords plus faibles.
  • Petits échantillons. L'alpha de Krippendorff inclut une correction pour les petits échantillons, si bien que sur un pilote de quelques dizaines d'items les deux peuvent s'écarter même quand les données conviennent aux deux.

Sur des données nominales complètes et un nombre raisonnable d'items, les deux sont en général proches. Rapportez celui qu'attend votre discipline, et nommez le coefficient et la métrique dans l'article, car « l'accord était de 0,72 » ne veut pas dire la même chose selon le coefficient.

Potato rapporte plusieurs coefficients à la fois au lieu de vous obliger à en choisir un d'avance. Un schéma catégoriel reçoit côte à côte l'accord en pourcentage, le kappa de Cohen, le kappa de Fleiss et l'alpha nominal, et un schéma ordonné reçoit les kappas pondérés linéairement et quadratiquement, le rho de Spearman et l'alpha ordinal. Avant la version 2.9, l'alpha ordinal d'une échelle de Likert à étiquettes textuelles classait ces étiquettes par ordre alphabétique, ce qui le rendait en pratique nominal, donc recalculez l'accord ordinal sur les échelles à étiquettes textuelles si vous l'avez rapporté avec une version antérieure. Jusqu'à la version 2.10.1, l'alpha ordinal pondérait un désaccord par la simple différence entre les rangs, ce qui n'est pas la métrique ordinale de Krippendorff. Depuis la 2.10.2, il concorde avec l'alpha ordinal du calculateur : recalculez donc tout alpha ordinal rapporté avec une version antérieure. Vous pouvez aussi vérifier un tableau d'étiquettes dans le navigateur avec le calculateur d'accord, qui calcule l'alpha nominal, ordinal et d'intervalle ainsi que les kappas de Cohen et de Fleiss.

Interpréter le chiffre

Il n'existe pas de seuil universel, mais un repère approximatif courant pour l'alpha/kappa est le suivant :

  • ≥ 0,80 : suffisant pour s'y fier.
  • 0,67–0,80 : utilisable pour des conclusions provisoires ; examinez les désaccords.
  • < 0,67 : revoyez les consignes avant de faire confiance aux étiquettes.

Traitez ces valeurs comme une incitation à investiguer, et non comme une barrière de réussite/échec. Regardez toujours quels éléments et quelles étiquettes sont à l'origine du désaccord.

La mesurer dans Potato

Faites en sorte que les annotateurs se chevauchent sur un sous-ensemble partagé, puis activez le rapport d'accord :

yaml
agreement_metrics:
  enabled: true
  # Krippendorff's alpha is reported in the admin dashboard.

Pour les tâches de segments (span) et structurées, mesurez l'accord au niveau qui vous intéresse, car les mesures au niveau du document masquent les désaccords sur les limites. Pour les schémas de segments, Potato rapporte le kappa au niveau du token, la F1 des segments en correspondance exacte et partielle, l'alpha de Krippendorff sur les étiquettes par caractère et une forme simplifiée du gamma de Mathet, ce qui permet de distinguer un désaccord sur l'étiquette d'un désaccord sur l'endroit où commence le segment.

Quand l'accord est faible

  1. Lisez les éléments en désaccord : la consigne est-elle ambiguë ou l'élément est-il réellement difficile ?
  2. Resserrez les définitions et ajoutez les cas difficiles comme exemples. Voir Rédiger des consignes d'annotation.
  3. Refaites un test pilote. Si l'accord reste faible sur des tâches véritablement subjectives, envisagez de consigner le désaccord lui-même plutôt que d'imposer une réponse unique.

Foire aux questions

Les questions ci-dessous portent sur la plage de l'alpha de Krippendorff, sur son calcul et sur l'accord avec seulement deux annotateurs.

L'alpha de Krippendorff peut-il être inférieur à -1 ?

Non. L'alpha passe sous 0 lorsque les annotateurs sont en désaccord plus souvent que ne le prévoit le hasard, et il s'approche de -1 sans jamais l'atteindre. Deux annotateurs en désaccord sur chacun de N items, qui utilisent deux étiquettes aussi souvent l'une que l'autre, donnent un alpha d'exactement -1 + 1/N, soit -0,8 pour 5 items et -0,95 pour 20. Krippendorff (2011) fixe à 0 à 1 la plage qui compte pour la fidélité et attribue les valeurs inférieures à 0 à un désaccord systématique ou à une erreur d'échantillonnage. Un alpha nettement négatif signale un désaccord systématique, par exemple des annotateurs qui lisent une échelle dans des sens opposés, et appelle à revoir les consignes plutôt qu'à rapporter le chiffre.

Comment calculer l'alpha de Krippendorff ?

L'alpha vaut 1 moins le rapport entre le désaccord observé et le désaccord attendu par hasard. Le désaccord observé provient des paires d'étiquettes attribuées au même item, et le désaccord attendu provient de paires tirées de toutes les étiquettes de l'étude, une métrique de distance (nominale, ordinale, d'intervalle ou de rapport) déterminant le poids de chaque écart. Potato le calcule par schéma d'annotation dans le tableau de bord d'administration dès que min_overlap annotateurs ont étiqueté le même item, et le calculateur d'accord calcule dans le navigateur l'alpha nominal, ordinal et d'intervalle à partir d'un tableau d'étiquettes.

Peut-on calculer l'accord inter-annotateurs avec seulement deux annotateurs ?

Oui. Le kappa de Cohen est conçu pour exactement deux annotateurs et des étiquettes catégorielles, et l'alpha de Krippendorff fonctionne aussi bien avec deux annotateurs qu'avec davantage. Les deux coefficients exigent que les deux annotateurs aient étiqueté les mêmes items de façon indépendante, et avec peu d'items l'estimation est instable, donc rapportez le nombre d'items à côté du coefficient.

Pour aller plus loin