ELAI S.r.l.

Il modello conosce il settore: perché sbaglia quando cambiano le richieste?

Cambiare il tipo di richieste non equivale a cambiare la regola. Un esempio esatto mostra quando la pesatura dei dati corregge la valutazione e quando fallisce.

Il modello conosce il settore: perché sbaglia quando cambiano le richieste?

Conoscere le parole non basta a conoscere il nuovo contesto

Un modello specializzato smista richieste di assistenza tecnica. Usa correttamente il lessico del settore e ha superato il test storico. Dopo un cambiamento nel servizio, però, le priorità assegnate diventano meno affidabili. È arrivato un diverso insieme di richieste, oppure è cambiato ciò che rende urgente una richiesta? Le due spiegazioni suggeriscono interventi diversi. Prima di aggiungere documenti o riaddestrare, conviene capire quale relazione si è spostata.

Abstract. Con due categorie sintetiche di ticket deriviamo la pesatura per importanza, cioè la correzione del peso dei vecchi esempi per rappresentare una nuova popolazione. La correzione funziona se cambia la distribuzione degli ingressi ma resta stabile la relazione tra ingresso e risposta. Costruiamo poi un secondo mondo con gli stessi ingressi e una diversa regola: i pesi sono identici, ma la valutazione e perfino la preferenza tra due classificatori diventano sbagliate. Tutti i risultati sono enumerazioni esatte, non prestazioni misurate di un modello linguistico.

Due distribuzioni, due domande

Indichiamo con x il tipo di ticket, A oppure B, e con y l’etichetta: 1 urgente, 0 non urgente. La probabilità p(x) descrive quanto spesso arriva un tipo. La probabilità condizionata p(y = 1 | x) descrive quante richieste di quel tipo sono urgenti. La barra significa “dato quel tipo”. Sapere che arrivano più ticket B non dice da solo se i ticket B siano diventati più urgenti. La distribuzione congiunta p(x,y) combina entrambe le informazioni: p(x,y) = p(x)p(y|x).

Nel mondo di origine s, l’80% dei ticket è A e il 20% B. Tra gli A il 90% è urgente; tra i B il 60%. Nel mondo di destinazione t, A scende al 20% e B sale all’80%, ma inizialmente le due percentuali condizionate restano 90% e 60%. Questo è il caso chiamato covariate shift: cambia p(x), non p(y|x). Le lettere s e t indicano origine e destinazione, non due misure dello stesso campione.

Un errore storico del 16% diventa il 34%

Prendiamo il classificatore U, che risponde sempre “urgente”. È intenzionalmente semplice: serve a verificare la valutazione, non a proporre un sistema utile. Con perdita zero-uno contiamo un errore quando la risposta differisce dall’etichetta. Per U l’errore entro A è 10%, entro B è 40%. Nel mondo di origine il rischio, cioè l’errore medio sulla popolazione definita, è 0,8 × 0,1 + 0,2 × 0,4 = 0,16. Nel mondo nuovo è 0,2 × 0,1 + 0,8 × 0,4 = 0,34. Il classificatore non è cambiato: sono aumentati i casi su cui sbaglia più spesso.

Possiamo ricostruire il rischio nuovo usando le etichette vecchie? Per ogni tipo moltiplichiamo il suo contributo per il rapporto tra frequenza nuova e vecchia: w(A) = 0,2/0,8 = 0,25 e w(B) = 0,8/0,2 = 4. Gli A devono contare un quarto; i B quattro volte. Non stiamo inventando nuove etichette: stiamo cambiando quanto ciascun vecchio caso rappresenta la popolazione che interessa oggi.

R_t(f) = Σ_x Σ_y p_t(x)p_t(y|x) L(f(x),y) p_t(y|x) = p_s(y|x), w(x) = p_t(x)/p_s(x) R_t(f) = Σ_x Σ_y p_s(x)p_s(y|x) w(x)L(f(x),y)

Qui f è il classificatore, L vale uno per un errore e zero altrimenti; le somme percorrono tipi ed etichette. La seconda riga contiene l’ipotesi decisiva. Sostituendo la distribuzione condizionata di destinazione con quella di origine, possiamo riscrivere la media nuova come una media vecchia pesata. Se quella sostituzione è falsa, l’ultima riga non è il rischio nuovo. La formula richiede inoltre p_s(x) positivo dove p_t(x) è positivo: non possiamo pesare esempi di una categoria mai osservata.

TipoEtichetta yConteggio su 1000Peso
A0800.25
A17200.25
B0804
B11204

La tabella è un insieme sintetico costruito esattamente, non un campione casuale. U sbaglia sugli 80 A non urgenti e sugli 80 B non urgenti: 160 errori su 1000. Dopo la pesatura gli errori diventano 80 × 0,25 + 80 × 4 = 340; il peso totale resta 1000. Il rischio pesato è dunque 0,34, identico al rischio della destinazione nel caso di sola variazione delle frequenze. Il codice usa frazioni razionali e salva tutti i conteggi: nessun seed o addestramento è necessario.

Stessi ingressi, regola diversa: il punto in cui i pesi falliscono

Manteniamo ora nella destinazione il 20% di A e l’80% di B. Cambia però una procedura del servizio: soltanto il 10% degli A è urgente, mentre per B resta il 60%. Non raccontiamo perché sia avvenuto: è una modifica sintetica della relazione tra tipo ed etichetta, sufficiente a isolare il problema. Per U l’errore negli A sale da 10% a 90%. Il nuovo rischio è 0,2 × 0,9 + 0,8 × 0,4 = 0,50. La pesatura dei vecchi dati continua a dare 0,34, perché non contiene alcuna nuova informazione sulle etichette.

Confrontiamo U con V, che risponde non urgente agli A e urgente ai B. Nel primo mondo di destinazione V sbaglia il 90% degli A e il 40% dei B: rischio 0,50, peggiore di U. Dopo il cambiamento della regola sbaglia solo il 10% degli A: rischio 0,34, migliore di U. I vecchi dati pesati mantengono invece la graduatoria precedente. Non è un piccolo errore di calibrazione del punteggio; può invertire la scelta del modello. I due classificatori sono regole fissate a mano, non modelli addestrati usando il test.

Errori esatti delle due regole U e V. La colonna pesata coincide con la destinazione quando cambiano solo le frequenze; dopo il cambio della regola le preferenze si invertono. Dati interamente sintetici.
Errori esatti delle due regole U e V. La colonna pesata coincide con la destinazione quando cambiano solo le frequenze; dopo il cambio della regola le preferenze si invertono. Dati interamente sintetici.

Un controllo che osservi soltanto p(x) non può distinguere i due mondi di destinazione: entrambi hanno 20% A e 80% B. Questo è un limite informativo, non un difetto risolvibile scegliendo un rilevatore più sofisticato sugli stessi soli ingressi. Occorrono nuove etichette, esiti verificabili o informazioni affidabili sul cambiamento della procedura. Se le etichette arrivano in ritardo, la valutazione avrà quel ritardo; se vengono raccolte soltanto sui casi contestati, rappresenteranno una selezione da modellare, non automaticamente tutti i ticket.

Anche nel caso favorevole, pochi esempi possono pesare troppo

I pesi 0,25 e 4 sono noti esattamente perché abbiamo costruito le distribuzioni. In un’applicazione vanno stimati, e categorie rare nell’origine possono ricevere pesi molto grandi. Un errore di etichetta su uno di quei casi viene amplificato. Una misura descrittiva della concentrazione dei pesi è n_eff = (Σ_i w_i)² / Σ_i w_i². Con 800 pesi da 0,25 e 200 da 4 otteniamo 1000² / 3250 ≈ 307,69. Non significa che abbiamo cancellato 692 ticket né fornisce da sola un intervallo di confidenza: segnala che il peso non è distribuito uniformemente.

Limitare i pesi può ridurre l’instabilità, ma interrompe l’identità esatta che abbiamo derivato. È un compromesso da valutare, non un’aggiunta gratuita. Analogamente, migliorare la rappresentazione del lessico può aiutare un modello verticale a distinguere categorie prima confuse, ma non dimostra che le regole aziendali siano rimaste ferme. Un aggiornamento dei documenti, una revisione delle etichette e una correzione della popolazione sono interventi su componenti differenti. Confonderli rende difficile capire perché una modifica abbia funzionato o fallito.

Il risultato da portare in un progetto verticale

Prima di dichiarare che un modello “si è adattato al dominio”, specifichiamo che cosa è cambiato e che cosa abbiamo verificato. Nel nostro caso la pesatura corregge esattamente 16% in 34% soltanto sotto stabilità condizionata; quando cambia la regola, il vero errore è 50% e servono informazioni nuove. La familiarità con i termini del settore non sostituisce questa diagnosi. Una valutazione utile accompagna il punteggio con popolazione, periodo, definizione delle etichette e ipotesi di trasferimento. Non abbiamo misurato la qualità di un modello EL-AI: abbiamo reso controllabile una condizione che qualsiasi progetto di specializzazione dovrebbe esplicitare.

Fonti e confini dell’esperimento

Sugiyama, Krauledat, Müller (2007), Covariate Shift Adaptation by Importance Weighted Cross Validation, JMLR 8:985–1005, sections 2–4.1.

Il lavoro pubblicato nel 2007 studia la validazione incrociata pesata assumendo stabile la distribuzione condizionata e, nella teoria, noto il rapporto delle densità. Nell’esperimento di regressione della sezione 4.1 usa un modello lineare su un bersaglio sinc, 150 esempi, validazione a dieci parti e 1000 ripetizioni. Gli autori osservano una migliore stima del rischio rispetto alla validazione non pesata in quel protocollo. Non abbiamo riprodotto quell’esperimento: il nostro esempio discreto verifica l’identità per due classificatori fissi e costruisce un caso in cui l’ipotesi viene violata. Non è una nuova ricerca né una prova generale sulle reti linguistiche.

Il frammento calcola i tre errori di U; l’archivio aggiunge V, la tabella congiunta, il peso totale, la concentrazione dei pesi e le asserzioni. Il costo del calcolo cresce con il numero di celle tipo-etichetta, senza ottimizzazione numerica. Una futura prova su ticket reali dovrebbe definire le etichette operative, separare la scelta del modello dalla valutazione e verificare la copertura dei nuovi casi. Questa prova non è stata eseguita qui.

from fractions import Fraction as F
source = [F(4,5), F(1,5)]
target = [F(1,5), F(4,5)]
old_error = [F(1,10), F(2,5)]
new_error = [F(9,10), F(2,5)]
weights = [t/s for t,s in zip(target,source)]
print('source', float(sum(s*e for s,e in zip(source,old_error))))
print('weighted', float(sum(s*w*e for s,w,e in zip(source,weights,old_error))))
print('changed rule', float(sum(t*e for t,e in zip(target,new_error))))

Codice, dati e istruzioni · JSON. Calcoli didattici eseguiti con Python 3.14.0; figure con Matplotlib 3.11.2. Analisi con assistenza AI, senza dichiarare peer review o revisione umana. Copertina originale ImageGen, illustrativa: non documenta persone, sedi o installazioni EL-AI. Fonti consultate il 29 settembre 2026.