Übereinstimmung bei Spans und strukturierten Ausgaben
Warum Cohens und Fleiss' Kappa bei Span-, NER- und strukturierter Annotation versagen und was stattdessen taugt: F1 als Übereinstimmungsmaß, exakte vs. partielle Treffer und Krippendorffs unitisiertes Alpha.
Zufallskorrigierte Maße wie Cohens Kappa setzen voraus, dass alle Annotierenden dieselbe feste Menge an Elementen aus derselben festen Menge an Kategorien labeln. Span-Annotation bricht diese Voraussetzung: Annotierende können sich uneinig sein, wo ein Span beginnt, wo er endet und ob er überhaupt existiert. Für Spans ist das übliche Reliabilitätsmaß der paarweise F1-Wert, nicht Kappa, und du musst vorab festlegen, ob eine teilweise Überlappung der Grenzen als Übereinstimmung zählt. Dieser Leitfaden erklärt, warum die gewohnten Maße hier scheitern und was du stattdessen berichten solltest.
Warum Kappa nicht zu Spans passt
Ein zufallskorrigierter Koeffizient braucht dreierlei: eine feste Liste von Elementen, eine feste Liste von Labels und die Möglichkeit zu berechnen, wie oft Annotierende zufällig übereinstimmen würden. Span-Aufgaben liefern nichts davon sauber. Es gibt keine vorab festgelegte Liste zu labelnder Elemente, denn die Spans entstehen erst beim Lesen, sodass zwei Personen über demselben Dokument unterschiedlich viele Spans erzeugen können. Und es gibt keine sinnvolle negative Klasse: Die von niemandem markierten Elemente sind sämtliche möglichen Teilzeichenketten, eine astronomisch große und unscharf definierte Menge.
Der letzte Punkt ist entscheidend. Hripcsak und Rothschild (2005) zeigten, dass bei einer sehr großen oder undefinierten negativen Klasse, wie im Information Retrieval und bei der Span-Extraktion, die Chance, dass zwei Annotierende zufällig denselben beliebigen Span treffen, praktisch null ist; die Zufallskorrektur ändert also kaum etwas, und die Annahmen hinter Kappa gelten nicht mehr. Ihr Ergebnis ist die übliche Begründung für die sauberere Alternative: Das F-Maß selbst ist die passende Übereinstimmungsstatistik. Behandle die Spans der einen Person als Referenz und die der anderen als Vorhersagen, berechne F1 und mittle über alle Paare. Da F1 symmetrisch ist, spielt die Reihenfolge im Paar keine Rolle.
Exakter oder partieller Treffer: entscheide vor der Messung
Die Zahl, die du berichtest, hängt vollständig davon ab, was als Treffer gilt, und dafür gibt es keine allgemeingültige Antwort. Nenne deine Wahl also.
- Exakter Treffer: Zwei Spans stimmen nur überein, wenn beide Grenzen identisch sind. Streng, und die richtige Wahl, wenn die Grenzen Bedeutung tragen (juristische Fundstellen, chemische Bezeichnungen).
- Partieller Treffer / Überlappung: Zwei Spans stimmen überein, wenn sie sich überhaupt oder ab einem Schwellenwert überlappen. Nachsichtiger und sinnvoll, wenn das Vorhandensein einer Entität mehr zählt als ihre genaue Ausdehnung.
- Grenze vs. Label: Trenne bei typisierten Spans (NER) zwei Fragen, nämlich ob dieselbe Ausdehnung markiert wurde und ob derselbe Typ vergeben wurde. Beides zusammen zu berichten verdeckt, woran die Uneinigkeit tatsächlich liegt.
Artstein und Poesio (2008) ist der Standardüberblick zur Übereinstimmung in der Computerlinguistik und arbeitet dieses Unitisierungsproblem, also die Uneinigkeit darüber, wie der Text in Einheiten zerlegt wird, im Detail durch. Das ist die Referenz, die du zitierst, wenn du eine methodische Entscheidung begründen musst.
Wenn du doch eine zufallskorrigierte Zahl willst
Lässt sich die Aufgabe auf eine feste Menge von Einheiten zurückführen, wird die Zufallskorrektur wieder gültig. Zwei gängige Reduktionen:
- Labeln auf Token-Ebene: Formuliere die Span-Aufgabe als ein Label pro Token um (das BIO-Schema). Jetzt ist jedes Token ein festes Element mit einer kleinen Labelmenge, und Fleiss' Kappa oder Krippendorffs Alpha gelten direkt. Der Haken: Übereinstimmung auf Token-Ebene wirkt aufgebläht, weil die meisten Token in die einfache Außerhalb-Klasse fallen, sodass ein hoher Wert echte Uneinigkeit über Grenzen verdecken kann.
- Unitisiertes Alpha: Krippendorff (2004) entwickelte eine Alpha-Variante genau für den Fall, dass Annotierende ein Kontinuum selbst segmentieren. Das ist die fundierte Option, wenn du eine einzelne zufallskorrigierte Reliabilitätszahl für die Segmentierung willst, um den Preis von mehr Vorbereitung.
Ein praktikabler Mittelweg: Berichte Kappa auf Token-Ebene und F1 auf Span-Ebene gemeinsam. Das erste sagt dir etwas über die Konsistenz der Labels, das zweite über die Konsistenz der Grenzen, und der Abstand dazwischen zeigt, welches Problem zu beheben ist.
Umsetzung in Potato
Potato berechnet Krippendorffs Alpha für kategoriale Schemata automatisch, aber bei einem span-Schema verdeckt die Zahl auf Dokumentebene die Uneinigkeit über Grenzen, miss also auf der Ebene, um die es dir wirklich geht. Verlässlich ist dieses Vorgehen: Lass die Annotierenden sich auf einer gemeinsamen Teilmenge überlappen, exportiere ihre Spans und berechne den paarweisen F1-Wert selbst nach deiner gewählten Trefferregel.
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: 3Der Export behält die Spans jeder annotierenden Person mit Zeichen-Offsets und Labels, und damit hast du alles, um F1 für exakte Treffer oder Überlappung offline zu berechnen und die Übereinstimmung über Grenzen von der über Typen zu trennen. Sind deine Spans typisiert, berechne F1 zweimal, einmal ohne Rücksicht auf den Typ (Grenzübereinstimmung) und einmal mit gefordertem Typgleichstand (vollständige Übereinstimmung).
Weiterführende Lektüre
- Inter-Annotator-Übereinstimmung erklärt, für die zufallskorrigierten Maße, die bei kategorialen Aufgaben sehr wohl greifen.
- Span-Annotation und Named Entity Recognition, zum Entwurf der Aufgabe selbst.
- Koreferenzauflösung, wo die Übereinstimmung eigene spezialisierte Maße hat (MUC, B³, CEAF).
- Annotationen für ML exportieren, um die Spans für die F1-Berechnung herauszubekommen.