Skip to content

Agréger les étiquettes de la foule : au-delà du vote majoritaire

Comment combiner de nombreuses annotations bruitées en une seule étiquette à l'aide de modèles d'annotateurs comme Dawid-Skene et MACE, quand leur faire confiance, et comment Potato estime la compétence et infère les étiquettes.

Lorsque plusieurs personnes étiquettent le même élément, le vote majoritaire est la façon évidente de combiner leurs réponses, et le plus souvent la mauvaise. Les modèles qui estiment la fiabilité de chaque annotateur récupèrent de meilleures étiquettes, repèrent les spammeurs et vous indiquent le degré de confiance à accorder. Mais chacun d'eux suppose qu'il existe une seule bonne réponse ; sur les tâches subjectives, vous devez donc d'abord décider si le désaccord est une erreur à supprimer ou un signal à conserver. Ce guide couvre les principaux modèles d'agrégation, l'hypothèse qu'ils partagent et comment en exécuter un dans Potato.

Le problème dont le vote majoritaire feint l'inexistence

Recueillez trois étiquettes pour un élément et prenez la majorité. Cela fonctionne quand les annotateurs sont à peu près égaux et ont raison la plupart du temps. Cela s'effondre dès qu'ils ne le sont plus. Le vote majoritaire compte un expert soigneux et un bot qui clique au hasard chacun pour une voix, jette la répartition des votes (une victoire de 2 contre 1 et un balayage de 3 contre 0 donnent le même résultat) et ne vous donne aucun moyen de distinguer un élément véritablement difficile d'un annotateur paresseux. C'est le problème de l'inférence de la vérité : récupérer l'étiquette vraie latente et la fiabilité de chaque annotateur en même temps, à partir de rien d'autre que la matrice d'étiquettes.

Modèles à matrice de confusion : Dawid and Skene

La méthode fondatrice a près de 50 ans. Dawid and Skene (1979) ont modélisé chaque annotateur par une matrice de confusion, les probabilités qu'il étiquette un élément vrai positif comme positif, négatif, etc., et ont utilisé la maximisation de l'espérance pour estimer conjointement ces matrices et les vraies étiquettes. Un annotateur qui confond deux catégories obtient une matrice de confusion qui le reflète, et son vote sur cette distinction est pondéré à la baisse en conséquence. Presque tous les modèles d'agrégation modernes descendent de cette idée.

MACE : compétence et détection du spam

Hovy et al. (2013) ont introduit MACE (Multi-Annotator Competence Estimation), qui ajoute un modèle explicite de spam : chaque annotateur est considéré comme connaissant la réponse ou devinant, et MACE estime la probabilité qu'il ait deviné sur chaque élément. Cela vous donne un score de compétence unique par annotateur entre 0 et 1, ainsi qu'une entropie par élément qui signale les éléments véritablement ambigus. C'est rapide, c'est efficace pour attraper les cliqueurs aléatoires, et c'est le modèle livré avec Potato.

Modèles bayésiens et les enseignements des études comparatives

Le domaine s'est développé bien au-delà de ces deux modèles. Paun et al. (2018) ont comparé une famille de modèles bayésiens d'annotation sur des jeux de données réels et ont constaté qu'ils battent systématiquement le vote majoritaire, surtout lorsque la qualité des annotateurs varie beaucoup, tout en fournissant une incertitude calibrée que vous pouvez propager en aval. Du côté de l'ingénierie, Zheng et al. (2017) ont évalué 17 méthodes d'inférence de la vérité et se sont demandé si le problème était résolu. La réponse courte : aucune méthode ne l'emporte partout, mais presque toutes battent le vote majoritaire, et l'écart se creuse à mesure que la qualité des étiquettes baisse.

L'hypothèse que tous partagent

Tous les modèles ci-dessus supposent qu'il existe une seule étiquette vraie et que le désaccord est une erreur. Pour les tâches objectives, c'est très bien. Pour les tâches subjectives, c'est exactement faux : sur le caractère offensant, l'émotion ou le jugement moral, deux annotateurs peuvent être en désaccord parce qu'ils lisent véritablement le texte différemment, et Plank (2022) soutient que cette variation humaine des étiquettes est souvent un signal, pas du bruit. Agrégez-la pour la faire disparaître, et vous avez jeté ce qui rendait les données intéressantes. (Nous approfondissons ce point dans Le désaccord est un signal, pas du bruit.)

C'est là que savoir qui a annoté commence à compter. NUTMEG (Ivey, Gauch, and Jurgens, 2025) est un modèle bayésien conçu précisément pour cette tension : il utilise les informations de contexte de l'annotateur pour séparer le désaccord légitime et systématique du bruit, en retirant les étiquettes négligées des données d'entraînement tout en préservant le désaccord qui reflète qui est l'annotateur. Cela ne fonctionne que si vous avez recueilli ce contexte dès le départ. Si vous menez une enquête démographique préalable à l'étude (voir recueillir les données démographiques des annotateurs de manière responsable et les instruments d'enquête de Potato), vous disposez des métadonnées d'annotateur dont un modèle de type NUTMEG a besoin ; sans elles, vous êtes contraint de traiter chaque désaccord soit comme entièrement une erreur, soit comme entièrement un signal.

Le faire dans Potato

Potato exécute MACE sur vos données multi-annotateurs et rapporte la compétence et les étiquettes inférées dans le tableau de bord d'administration. Il fonctionne sur les schémas catégoriels (radio, likert, select, multiselect) et a besoin d'un vrai recouvrement, plusieurs annotateurs par élément, pour avoir quoi que ce soit à estimer.

yaml
mace:
  enabled: true
  trigger_every_n: 10            # re-estimate after every 10 new annotations
  min_annotations_per_item: 3    # ignore items with fewer than 3 labels
  min_items: 5                   # wait for at least 5 eligible items

Une fois qu'il a tourné, chaque annotateur reçoit un score de compétence (près de 1.0 est fiable, en dessous de 0.5 est probablement un spammeur) et chaque élément reçoit une étiquette prédite ainsi qu'une valeur d'entropie. Une entropie faible signifie que le modèle est confiant ; une entropie proche de son maximum signifie qu'il n'y a pas de consensus, ce qui signale généralement un élément véritablement difficile ou sous-spécifié plutôt qu'un mauvais annotateur. Toutes les options figurent dans la référence de la fonctionnalité MACE.

Deux remarques pratiques. Premièrement, agrégez sur le recouvrement que vous avez réellement recueilli ; MACE a besoin de plusieurs étiquettes par élément, alors planifiez le recouvrement avant l'étude, pas après. Deuxièmement, MACE vous donne une seule étiquette ; si votre tâche est subjective, envisagez de conserver plutôt la distribution avec un schéma soft_label, et ne recourez à l'arbitrage que là où vous avez vraiment besoin d'une seule réponse.

Quand agréger et quand conserver la dispersion

Une règle de décision approximative :

  • Tâche objective, une clé de réponses réelle existe → agrégez en une seule étiquette. Utilisez MACE ou le vote majoritaire et passez à la suite.
  • Presque objective, mais certains annotateurs ne sont pas fiables → agrégez avec un modèle de compétence (MACE), pas avec le simple vote majoritaire, pour que les mauvais évaluateurs ne faussent pas le résultat.
  • Tâche subjective, le désaccord est significatif → conservez la distribution complète (soft_label), et si vous disposez de métadonnées d'annotateur, modélisez le désaccord au lieu de le supprimer.

Pour aller plus loin