Confidenza dei bot: capire e impostare le soglie

Aspetto chiave dell’intelligenza artificiale (AI), la comprensione del linguaggio naturale (NLU) colma il divario tra il modo in cui le persone parlano e ciò che i computer capiscono. I bot che comprendono il linguaggio naturale hanno compiuto notevoli passi avanti nelle strategie dedicate alla Customer Experience. La prima cosa che un bot deve cogliere è l’intento del cliente. Se il bot lo comprende correttamente, avvicina il cliente alla risoluzione del problema in modalità self-service. Tuttavia, a volte succede che il sistema NLU non sia molto certo dell’intento rilevato. È allora che all’utente viene chiesto di confermare ciò che il bot ha individuato o di riformularlo. Esaminiamo quindi l’utilizzo delle soglie di confidenza e le insidie legate al loro utilizzo in assenza di una corretta comprensione del loro impatto sull’efficacia del bot. Di fatto, quando un modello NLU restituisce un’ipotesi per l’intento di un enunciato, ad essa viene associato un punteggio di confidenza. Analizziamone il significato.

1. Che cosa è un punteggio di confidenza

Quando un sistema di intelligenza artificiale conversazionale attribuisce un valore di “confidenza” alla sua risposta, il termine è utilizzato nella sua accezione comune. Si tratta semplicemente di una misura del livello di confidenza del sistema rispetto a tale ipotesi. Il valore potrebbe essere simile a uno di probabilità, ma la somma dei valori di confidenza per un insieme di ipotesi non corrisponde probabilmente a 1.

2. Che cosa non è un punteggio di confidenza

Non confondere il termine “punteggio di confidenza” con il termine “confidenza” utilizzato in statistica quando si descrivono i risultati osservati in una serie di test. In statistica, un intervallo di confidenza del 95% è l’intervallo in cui rientra il 95% dei valori di output. Ma il nostro significato del termine “confidenza” è diverso. Un punteggio di confidenza potrebbe anche essere confuso con la “probabilità” che un’ipotesi sia corretta, poiché la maggior parte dei motori NLU producono valori di confidenza compresi tra 0,0 e 1,0. Ma non si tratta nemmeno di probabilità.

3. Che cosa possono rivelare i punteggi di confidenza

Un valido modo per caratterizzare le prestazioni di un sistema di intelligenza artificiale è osservane le prestazioni rispetto a varie soglie di confidenza. Una soglia di confidenza impostata su 0 significa che accetterà tutte le ipotesi, corrette o non corrette, indipendentemente dal loro punteggio di confidenza. Se impostata su 1 significa che rifiuterà tutte le ipotesi (a meno che il motore non restituisca a volte un punteggio di confidenza pari a 1). Una soglia di confidenza ideale elimina il maggior numero possibile di ipotesi non corrette, senza eliminare tante ipotesi corrette. Un metodo per trovare tale punto consiste nel disegnare una curva ROC (Receiver Operating Characteristic) che rappresenti graficamente i veri positivi rispetto ai falsi positivi rispetto a varie soglie di confidenza, come mostrato in questa figura.

Bot confidence graph 1

Nell’angolo in basso a sinistra di questo grafico, con 0 veri positivi e 0 falsi positivi, si trova la soglia di confidenza più alta. L’angolo in alto a destra indica la soglia più bassa. Il punto ottimale in cui i veri positivi sono massimizzati e i falsi positivi sono ridotti al minimo si trova tra questi due estremi. Le curve ROC, come quella riportata sopra, sono utili per i sistemi classificatori binari. Ma un motore NLU che predice l’intento di un enunciato è un sistema multiclasse. Inoltre, per complicare ulteriormente le cose, il sistema deve essere valutato in base alla sua capacità di gestire correttamente l’input fuori dominio, ovvero i “veri negativi”. Per ottenere queste informazioni, dobbiamo visualizzare i risultati in modo diverso, così da essere adatti al tipo specifico di soglia di confidenza che vogliamo utilizzare.

4. Tipi di soglie di confidenza

Quando segnala le ipotesi un motore NLU può utilizzare due tipi di soglie di confidenza: Soglia di conferma: se il punteggio di confidenza dell’ipotesi di intento principale è inferiore a questo livello, il bot chiede all’utente di confermare che l’ipotesi è corretta. Soglia di rifiuto: se il punteggio di confidenza è inferiore a questo livello, il bot chiede all’utente di riformulare l’input. Un terzo utilizzo dei punteggi di confidenza consiste nel rilevare se l’ipotesi principale è di poco superiore a quella al 2° posto, nel qual caso il bot può chiedere all’utente di scegliere fra le due.

5. Selezione di una soglia efficace

Il modo migliore per trovare una valida soglia per un bot consiste nel fornire ad esso un insieme di dati di test che sono stati annotati con valori di ground truth e quindi esaminare l’output con la soglia di confidenza impostata a livelli diversi. Poiché le soglie di conferma e le soglie di rifiuto hanno finalità diverse, devi valutarle separatamente.

Soglie di conferma

Per una soglia di conferma sono pertinenti queste quattro categorie di ipotesi:

  1. Ipotesi nel dominio, corretta e accettata senza richiesta (ID-CA)
  2. Ipotesi nel dominio, corretta e confermata dall’utente dopo richiesta (ID-CC)
  3. Ipotesi nel dominio, falsa e accettata senza richiesta (ID-FA)
  4. Ipotesi nel dominio, falsa e rifiutata dall’utente dopo richiesta (ID-FR)

Nota: di questi gruppi di ipotesi, il n. 1 è il caso migliore; il n. 3 è il peggiore; il 2 e il 4 sono tra i due estremi. Questo perché potrebbe essere fastidioso per l’utente dover costantemente rispondere alle richieste di conferma, ma comunque preferibile rispetto all’accettazione di una risposta non corretta. Il grafico seguente mostra questi quattro valori per un set di dati di esempio a ogni incremento di 0,1 tra i valori di confidenza 0 e 1,0.

Engine a confirmation

Il grafico mostra che, se la soglia di conferma è impostata su 0, le accettazioni di ipotesi corrette (caso migliore) e le accettazioni di ipotesi false (caso peggiore) saranno entrambe massimizzate. Se la soglia di conferma viene portata a 0,8, non ci saranno quasi errori (accettazioni di ipotesi false), ma all’utente verrà domandato di rispondere alle richieste di conferma per oltre la metà del tempo. L’impostazione ideale di questa soglia potrebbe essere intorno a 0,25, dove il gruppo ID-FA si è notevolmente ridotto ma quello ID-CA non è ancora troppo calato. In definitiva, la decisione potrebbe essere specifica dell’applicazione: quanto siano deleterie le accettazioni di ipotesi false, rispetto a quanto sia deleterio obbligare l’utente a rispondere a un’altra domanda.

Soglie di rifiuto

Sono le categorie di ipotesi pertinenti per decidere una soglia se ogni ipotesi al di sotto di essa viene rifiutata:

  1. Ipotesi nel dominio, corretta e accettata (ID-CA)
  2. Ipotesi nel dominio, falsa e accettata (ID-FA)
  3. Ipotesi fuori dominio, rifiutata correttamente (OOD-CR)
  4. Ipotesi fuori dominio, rifiutata erroneamente, ovvero l’intento avrebbe dovuto essere ipotizzato (OOD-FR)

Di questi gruppi di ipotesi, il n. 1 e il n. 3 sono corretti; il n. 2 e il n. 4 non sono corretti. Il grafico seguente mostra questi quattro valori per lo stesso set di dati.

Engine a rejection

Se la soglia di rifiuto è impostata su 0, sia le accettazioni di ipotesi corrette che le accettazioni di ipotesi false saranno massimizzate, mentre i rifiuti corretti ed erronei saranno ridotti al minimo. L’aumento della soglia di rifiuto a 0,1 o 0,2 ridurrebbe le accettazioni di ipotesi false prima della discesa più ripida delle accettazioni di ipotesi corrette.

6. Le soglie di confidenza ottimali variano a seconda dei motori

I motori di intelligenza artificiale conversazionale calcolano i punteggi di confidenza in modo diverso. Alcuni, come il motore A, tendono a produrre ipotesi con valori di confidenza distribuiti abbastanza uniformemente tra 0 e 1. Per altri, i punteggi di confidenza sono per lo più raggruppati all’interno di un certo intervallo, modificando la forma dei loro grafici di soglia. Il grafico seguente mostra la soglia di rifiuto per un altro motore.

Engine b rejection

Chiaramente, l’utilizzo della soglia di rifiuto del motore A (0,2) non funzionerebbe per il motore B, poiché quest’ultimo presenta falsi positivi (ID-FA) che sono ancora piuttosto alti a tale punto. In questo caso, 0,6 sarebbe una soglia di rifiuto ragionevole, consentendo alle ipotesi ID-FA di diminuire senza troppo sacrificare le ipotesi ID-CA. Per facilitare il confronto, di seguito sono riportati gli stessi grafici sovrapposti.

7. Le soglie di confidenza ottimali possono cambiare nel tempo

Le modifiche apportate a un motore di intelligenza artificiale conversazionale possono influire sul modo in cui i suoi punteggi di confidenza vengono distribuiti tra i casi di test. Tieni presente questa possibilità ed esegui nuovamente questo tipo di test di soglia per determinare se occorre regolare le soglie di confidenza.

8. Un valore di soglia non è adatto a tutte le situazioni

Alcuni framework di bot sono progettati per funzionare con più motori NLU, il che potrebbe far sembrare ingannevolmente facile passare da un motore all’altro. Prima di un cambio di motore, testa le tue soglie di confidenza. Per ottenere le migliori prestazioni possibili, consigliamo di testare le soglie di confidenza dopo la creazione di un nuovo bot, anche se non cambi i motori NLU. Bot diversi che utilizzano lo stesso motore possono avere soglie ottimali diverse. Leggi la “Guida pratica al governo dei bot” per sapere di più sulle best practice per la creazione di bot e per assicurarti che i tuoi bot non conducano i clienti in vicoli ciechi.

Condividi:

Genesys ChatQuick links
Close Widget

Come possiamo aiutarvi oggi?

Genesys ChatAssistenza dal vivo