Base6 min di letturaAggiornato
Cos'è un classificatore di testo e come decide?
Un classificatore legge una frase e restituisce una probabilità per ogni categoria. Come è fatto, cosa significa il punteggio e dove sbaglia.
L'idea in una frase
Un classificatore di testo è un programma che legge un testo e dice a quali categorie appartiene. Un filtro antispam è un classificatore con due categorie (spam, non spam). Un modello di moderazione è un classificatore con diverse categorie: tossico, insulto, odio, minaccia, sessuale, autolesionismo e così via.
Dalle regole all'apprendimento
I primi classificatori erano elenchi di regole: «se il messaggio contiene questa parola, bloccalo». Sono veloci e facili da spiegare, ma sbagliano in due direzioni:
- non vedono tutto quello che non è nella lista (un insulto nuovo, un errore di battitura, un'altra lingua);
- bloccano messaggi innocenti che contengono per caso una parola della lista («l'orca assassina», una citazione, uno scherzo tra amici).
A un classificatore basato sull'apprendimento automatico non si danno regole. Gli si danno migliaia di esempi con la risposta giusta, scritti da persone, e lui impara da solo quali schemi contano. Per questo riconosce un insulto che non ha mai visto, scritto in un modo che nessuno aveva messo in lista.
Cosa esce: un punteggio, non un verdetto
Per ogni categoria il classificatore restituisce una probabilità tra 0 e 1:
| Messaggio | tossico | insulto | minaccia |
|---|---|---|---|
| «che bella partita stasera» | 0,01 | 0,00 | 0,00 |
| «sei un idiota» | 0,98 | 0,97 | 0,01 |
| «ti distruggo in finale 😄» | 0,12 | 0,03 | 0,08 |
Un punteggio non è una decisione. Per decidere lo si confronta con una soglia: sopra il messaggio viene segnalato, sotto no. Scegliere la soglia è un compromesso tra lasciar passare messaggi cattivi e segnalarne di buoni, e merita una guida tutta sua.
Più categorie insieme
Un messaggio può essere un insulto e una minaccia nello stesso momento. I modelli di moderazione di solito sono multi-etichetta: ogni categoria ha il suo punteggio indipendente, invece di scegliere un solo vincitore. In VigiMod, per esempio, un insulto, un attacco d'odio o una minaccia contano anche come tossici.
Come impara
L'addestramento funziona più o meno così:
- Il modello legge un esempio e produce i punteggi.
- I punteggi vengono confrontati con l'etichetta data dalle persone.
- I suoi numeri interni (i pesi) vengono corretti un poco, perché la volta dopo la risposta sia più vicina.
- Si ripete su centinaia di migliaia di esempi.
Alla fine il modello non ha imparato a memoria gli esempi: si è costruito una rappresentazione interna di cosa rende un messaggio offensivo, minaccioso o innocuo. I classificatori moderni partono da un modello linguistico che capisce già il testo in generale (vedi come leggono il testo i modelli linguistici) e poi vengono riaddestrati (fine-tuning) su esempi di moderazione.
Dove sbagliano i classificatori
- Dati mai visti. Un modello addestrato soprattutto su chat in inglese è più debole in turco o in coreano.
- Esempi sbilanciati. Se negli esempi le frasi innocenti con certi nomi o certe identità erano rare, il modello può associare quei nomi a qualcosa di negativo. Il bias ha una guida tutta sua.
- Contesto mancante. «Alla fine muore lui» da solo è innocuo, in una chat su una serie TV è uno spoiler. I classificatori che leggono la conversazione se la cavano meglio.
- Etichette sbagliate. Se gli esempi di addestramento sono etichettati male, il modello impara gli errori.
In pratica
Un buon classificatore è un primo lettore veloce e coerente. Valuta ogni messaggio in pochi millisecondi, così le persone devono guardare solo quelli dubbi. Considera i punteggi come indizi, scegli soglie adatte alla tua community e lascia a una persona le azioni gravi come i ban.
Mettiti alla prova
Rispondi alle domande, poi controlla le risposte.
Continua a imparare
Guardalo su messaggi veri
Prova la demo dal vivo, o leggi come funziona l'API.