Skip to content

Accord pour les empans et les sorties structurées

Pourquoi les kappas de Cohen et de Fleiss échouent pour l'annotation d'empans, de NER et de structures, et quoi utiliser à la place : la F1 comme accord, la correspondance exacte ou partielle, et l'alpha unitisé de Krippendorff.

L'accord corrigé du hasard, comme le kappa de Cohen, suppose que chaque annotateur étiquette le même ensemble fixe d'éléments à partir du même ensemble fixe de catégories. L'annotation d'empans brise cette hypothèse : les annotateurs peuvent être en désaccord sur l'endroit où un empan commence, où il finit, et sur son existence même. Pour les empans, la mesure de fiabilité standard est la F1 par paires, et non le kappa, et il faut décider d'emblée si un chevauchement partiel des limites compte comme un accord. Ce guide explique pourquoi les mesures habituelles échouent ici et ce qu'il faut rapporter à la place.

Pourquoi le kappa ne convient pas aux empans

Un coefficient corrigé du hasard a besoin de trois choses : une liste fixe d'éléments, une liste fixe d'étiquettes et la possibilité de calculer à quelle fréquence les annotateurs s'accorderaient par hasard. Les tâches d'empans n'en fournissent proprement aucune. Il n'y a pas de liste prédéterminée d'« éléments » à étiqueter : l'annotateur invente les empans au fil de sa lecture, de sorte que deux personnes peuvent produire un nombre différent d'empans sur le même document. Et il n'existe pas de classe négative pertinente : les « éléments que personne n'a marqués » sont toutes les sous-chaînes possibles, un ensemble d'une taille astronomique et mal défini.

C'est ce dernier point qui est décisif. Hripcsak and Rothschild (2005) ont montré que, lorsque la classe négative est très grande ou indéfinie, comme en recherche d'information et en extraction d'empans, la probabilité que deux annotateurs s'accordent sur le même empan arbitraire est pratiquement nulle : la correction du hasard ne change donc presque rien et les hypothèses sous-jacentes au kappa ne tiennent plus. Leur résultat est la justification standard d'une solution plus propre : la mesure F est elle-même la statistique d'accord appropriée. Traitez les empans d'un annotateur comme la référence et ceux de l'autre comme des prédictions, calculez la F1 et faites la moyenne sur toutes les paires d'annotateurs. Comme la F1 est symétrique, l'ordre de la paire n'a pas d'importance.

Correspondance exacte ou partielle : décidez avant de mesurer

Le nombre que vous rapportez dépend entièrement de ce qui compte comme une réussite, et il n'y a pas de réponse universelle : énoncez donc votre choix.

  • Correspondance exacte : deux empans s'accordent seulement si leurs deux limites sont identiques. Strict, et le bon choix quand les limites portent du sens (citations juridiques, noms chimiques).
  • Correspondance partielle / par chevauchement : deux empans s'accordent s'ils se chevauchent tant soit peu, ou au-delà d'un certain seuil. Plus tolérant, et raisonnable quand la présence d'une entité importe plus que son étendue exacte.
  • Limite ou étiquette : pour les empans typés (NER), séparez deux questions : les annotateurs ont-ils marqué la même étendue, et lui ont-ils donné le même type ? Les rapporter ensemble masque celle qui provoque réellement votre désaccord.

Artstein and Poesio (2008) est l'étude de référence sur l'accord en linguistique computationnelle et traite en détail ce problème d'« unitisation », le désaccord sur la manière de segmenter le texte en unités. C'est la référence à citer lorsque vous devez défendre un choix méthodologique.

Quand vous voulez malgré tout un nombre corrigé du hasard

Si vous pouvez réduire la tâche à un ensemble fixe d'unités, la correction du hasard redevient valable. Deux réductions courantes :

  • Étiquetage au niveau du token : reformulez la tâche d'empans comme une étiquette par token (le schéma BIO). Chaque token devient alors un élément fixe doté d'un petit ensemble d'étiquettes, et le kappa de Fleiss ou l'alpha de Krippendorff s'appliquent directement. Le hic, c'est que l'accord au niveau du token paraît gonflé : la plupart des tokens relèvent de la classe facile « extérieur », de sorte qu'un nombre élevé peut masquer un vrai désaccord sur les limites.
  • Alpha unitisé : Krippendorff (2004) a développé une variante de l'alpha précisément pour le cas où les annotateurs segmentent eux-mêmes un continuum. C'est l'option de principe lorsque vous voulez un chiffre unique de fiabilité corrigé du hasard pour la segmentation, au prix d'une préparation plus lourde.

Une voie médiane pratique : rapportez ensemble le kappa au niveau du token et la F1 au niveau de l'empan. Le premier vous renseigne sur la cohérence des étiquettes, la seconde sur la cohérence des limites, et l'écart entre les deux vous indique quel problème corriger.

Le faire dans Potato

Potato calcule automatiquement l'alpha de Krippendorff pour les schémas catégoriels, mais pour un schéma span, le nombre au niveau du document masque le désaccord sur les limites : mesurez donc au niveau qui vous importe vraiment. La recette fiable consiste à faire chevaucher les annotateurs sur un sous-ensemble partagé, à exporter leurs empans et à calculer vous-même la F1 par paires selon la règle de correspondance que vous avez choisie.

yaml
annotation_schemes:
  - name: pii_spans
    annotation_type: span
    description: "Highlight every span that reveals personal information."
    labels:
      - name: person
      - name: location
      - name: org
 
# Overlap a subset so agreement is measurable
automatic_assignment:
  on: true
  instance_per_annotator: 100
  labels_per_instance: 3

L'export conserve les empans de chaque annotateur avec leurs décalages de caractères et leurs étiquettes, soit tout ce dont vous avez besoin pour calculer hors ligne la F1 en correspondance exacte ou par chevauchement, et pour dissocier l'accord sur les limites de l'accord sur les types. Si vos empans sont typés, exécutez la F1 deux fois : une fois en ignorant le type (accord sur les limites) et une fois en exigeant la correspondance du type (accord complet).

Pour aller plus loin