Warum Micro F1=0,94 einen nutzlosen Klassifikator verbergen kann: Eine Aufschlüsselung des Multi-Label-Problems
DeepPavlov
Am Beispiel der KI-Moderation für Discord zeigt der Artikel, dass der aggregierte Micro-F1-Wert Fehler bei seltenen, aber kritischen Klassen überdecken kann. Der Autor warnt davor, das KISS-Prinzip („Keep It Simple, Stupid“) bei Multi-Label-Aufgaben blind zu befolgen, und erklärt, wie sich Klassenungleichgewicht, die Wahl der Verlustfunktion und Metriken zur Checkpoint-Auswahl auf die tatsächliche Modellqualität auswirken.
Der Autor entwickelt eine KI-Moderation für Discord auf Basis eines ruBERT-tiny2-Modells, das für die Multi-Label-Klassifikation mit 15 Labels (SAFE, TOXIC, ADVERTISEMENT, SPAM, SCAM, THREAT, EVASION, FLOOD und andere) feinabgestimmt wurde. Der Datensatz enthält etwa 1 Million beschriftete Beispiele. Nach dem Training erreichte das Modell einen Test-Micro-F1 von 0,9358 und einen Macro-F1 von 0,8396 – eine Differenz von fast 0,1 signalisierte die Notwendigkeit, die Metriken für jede Klasse einzeln zu überprüfen. Es stellte sich heraus, dass seltene Klassen (z. B. EVASION mit 35.000 Beispielen) in der Masse der häufigen Klassen (z. B. SAFE mit 400.000) untergehen und der Micro-F1 Fehler auf diesen nicht widerspiegelt. Um das Ungleichgewicht zu bekämpfen, wurde pos_weight in BCEWithLogitsLoss verwendet. Eine detaillierte Analyse ergab, dass TOXIC einen Recall von etwa 0,78 hat, was bedeutet, dass das Modell einen erheblichen Teil toxischer Nachrichten übersieht. Die Klassen FLOOD und IMAGE_SCAM sind im Test-Split fast nicht vorhanden, aber ihre Verarbeitung wird anderen Systemkomponenten überlassen, nicht dem Textklassifikator. Der Autor stellt außerdem fest, dass die Auswahl des besten Checkpoints basierend auf dem Trainingsverlust zu Overfitting führt: Die optimale Variante wurde mit Macro-F1 gefunden, nicht mit dem Verlust. Die wichtigste Erkenntnis: Das KISS-Prinzip gilt für die Implementierung, aber nicht für die Aufgabe – Klassenungleichgewicht, Metrikunterschiede, getrennte Präzision/Recall für jede Klasse und Fehlerkosten können nicht ignoriert werden. Der nächste Schritt ist die Kalibrierung der Schwellenwerte für jede Klasse individuell.
Quelle: Habr — хаб NLP —
Original
