Metriche di valutazione per i modelli di comprensione del linguaggio di conversazione

Il set di dati è suddiviso in due parti: un set per il training e un set per i test. Il set di training viene usato per eseguire il training del modello, mentre il set di test viene usato come test per il modello dopo il training per calcolare le prestazioni e la valutazione del modello. Il set di test non viene introdotto nel modello tramite il processo di training per assicurarsi che il modello venga testato sui nuovi dati.

La valutazione del modello viene attivata automaticamente dopo il completamento del training. Il processo di valutazione inizia usando il modello sottoposto a training per stimare le finalità e le entità definite dall'utente per le espressioni nel set di test e le confronta con i tag forniti (che stabilisce una linea di base di verità). I risultati vengono restituiti in modo da poter esaminare le prestazioni del modello. Per la valutazione, la comprensione del linguaggio conversazionale usa le metriche seguenti:

  • Precisione: misura la precisione e l'accuratezza del modello. È il rapporto tra i positivi identificati correttamente (veri positivi) e tutti i positivi identificati. La metrica di precisione mostra quante classi stimate sono etichettate correttamente.

    Precision = #True_Positive / (#True_Positive + #False_Positive)

  • Richiamo: misura la capacità del modello di stimare le classi positive effettive. È il rapporto tra i veri positivi stimati e ciò che è stato effettivamente contrassegnato. La metrica di richiamo mostra quante classi stimate sono corrette.

    Recall = #True_Positive / (#True_Positive + #False_Negatives)

  • Punteggio F1: il punteggio F1 è una funzione di precisione e richiamo. È necessario quando si cerca un equilibrio tra precisione e richiamo.

    F1 Score = 2 * Precision * Recall / (Precision + Recall)

La precisione, il richiamo e il punteggio F1 vengono calcolati per:

  • Ogni entità separatamente (valutazione a livello di entità)
  • Ogni finalità separatamente (valutazione a livello di finalità)
  • Per il modello collettivamente (valutazione a livello di modello).

Le definizioni di precisione, richiamo e valutazione sono le stesse per le valutazioni a livello di entità, a livello di finalità e a livello di modello. Tuttavia, i conteggi per i veri positivi, i falsi positivi e i falsi negativi possono differire . Si consideri ad esempio il testo seguente.

Esempio

  • Fate una risposta con vi ringrazio molto.
  • rispondere dicendo sì.
  • Controlla il mio messaggio di posta elettronica per favore.
  • e-mail a cynthia che la cena la scorsa settimana è stata splendida.
  • inviare un messaggio di posta elettronica a Mike

Queste sono le finalità usate: Reply,sendEmail,readEmail. Queste sono le entità: contactName, message.

Il modello potrebbe eseguire le stime seguenti:

Espressione Finalità stimata Finalità effettiva Entità stimata Entità effettiva
Fare una risposta con grazie molto Rispondi Rispondi thank you very much Come message thank you very much Come message
rispondere con dicendo sì sendEmail Rispondi -- yes Come message
Controlla il mio messaggio di posta elettronica per favore readEmail readEmail -- --
e-mail a cynthia che cena la scorsa settimana è stato splendido Rispondi sendEmail dinner last week was splendid Come message cynthia come contactName, dinner last week was splendid come message
inviare un messaggio di posta elettronica a Mike sendEmail sendEmail mike Come message mike Come contactName

Valutazione a livello di finalità per la finalità Reply

Chiave Conteggio Spiegazione
Veri positivi 1 L'espressione 1 è stata stimata correttamente come Risposta.
Falsi positivi 1 L'espressione 4 è stata erroneamente stimata come Risposta.
Falsi negativi 1 L'espressione 2 è stata erroneamente stimata come sendEmail.

Precisione = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

Ricordare = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Punteggio F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Valutazione a livello di finalità per la finalità sendEmail

Chiave Conteggio Spiegazione
Veri positivi 1 L'espressione 5 è stata stimata correttamente come sendEmail
Falsi positivi 1 L'espressione 2 è stata erroneamente stimata come sendEmail.
Falsi negativi 1 L'espressione 4 è stata erroneamente stimata come Risposta.

Precisione = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

Ricordare = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Punteggio F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Valutazione a livello di finalità per la finalità readEmail

Chiave Conteggio Spiegazione
Veri positivi 1 L'espressione 3 è stata stimata correttamente come readEmail.
Falsi positivi 0 --
Falsi negativi 0 --

Precisione = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Ricordare = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 0) = 1

Punteggio F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 1) / (1 + 1) = 1

Valutazione a livello di entità per l'entità contactName

Chiave Conteggio Spiegazione
Veri positivi 1 cynthia è stato stimato correttamente come contactName nell'espressione 4
Falsi positivi 0 --
Falsi negativi 1 mike è stato erroneamente stimato come message nell'espressione 5

Precisione = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Ricordare = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Punteggio F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.5) / (1 + 0.5) = 0.67

Valutazione a livello di entità per l'entità messaggio

Chiave Conteggio Spiegazione
Veri positivi 2 thank you very much è stata stimata correttamente come message nell'espressione 1 ed dinner last week was splendid è stata stimata correttamente come message nell'espressione 4
Falsi positivi 1 mike è stato erroneamente stimato come message nell'espressione 5
Falsi negativi 1 yes non è stato stimato come message nell'espressione 2

Precisione = #True_Positive / (#True_Positive + #False_Positive) = 2 / (2 + 1) = 0.67

Ricordare = #True_Positive / (#True_Positive + #False_Negatives) = 2 / (2 + 1) = 0.67

Punteggio F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67

Valutazione a livello di modello per il modello collettivo

Chiave Conteggio Spiegazione
Veri positivi 6 Somma del tp per tutte le finalità ed entità
Falsi positivi 3 Somma di FP per tutte le finalità ed entità
Falsi negativi 4 Somma di FN per tutte le finalità ed entità

Precisione = #True_Positive / (#True_Positive + #False_Positive) = 6 / (6 + 3) = 0.67

Ricordare = #True_Positive / (#True_Positive + #False_Negatives) = 6 / (6 + 4) = 0.60

Punteggio F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.60) / (0.67 + 0.60) = 0.63

Matrice di confusione

Una matrice di confusione è una matrice N x N usata per la valutazione delle prestazioni del modello, dove N è il numero di entità o finalità. La matrice confronta le etichette previste con quelle stimate dal modello. In questo modo si ottiene una visione olistica delle prestazioni del modello e dei tipi di errori che sta creando.

È possibile usare la matrice confusione per identificare finalità o entità troppo vicine tra loro e spesso si sbagliano (ambiguità). In questo caso è consigliabile unire queste finalità o entità. Se ciò non è possibile, prendere in considerazione l'aggiunta di altri esempi con tag di finalità o entità per consentire al modello di distinguere tra di essi.

La diagonale evidenziata nell'immagine seguente corrisponde alle entità stimate correttamente, in cui il tag stimato corrisponde al tag effettivo.

Screenshot di una matrice di confusione di esempio

È possibile calcolare le metriche di valutazione a livello di finalità o a livello di entità e a livello di modello dalla matrice di confusione:

  • I valori nella diagonale sono i valori True Positive di ogni finalità o entità.
  • La somma dei valori nella finalità o nelle righe delle entità (esclusa la diagonale) è il falso positivo del modello.
  • La somma dei valori nelle colonne finalità o entità (esclusa la diagonale) è il valore False Negative del modello.

Analogamente,

  • Il vero positivo del modello è la somma di veri positivi per tutte le finalità o entità.
  • Il falso positivo del modello è la somma di falsi positivi per tutte le finalità o entità.
  • Il valore false Negativo del modello è la somma di falsi negativi per tutte le finalità o entità.

Indicazioni

Dopo aver eseguito il training del modello, verranno visualizzate alcune indicazioni e consigli su come migliorare il modello. È consigliabile avere un modello che copre ogni punto nella sezione delle linee guida.

  • Il set di training dispone di dati sufficienti: quando una finalità o un'entità ha meno di 15 istanze etichettate nei dati di training, può causare una minore accuratezza a causa del mancato training del modello su tale finalità. In questo caso, prendere in considerazione l'aggiunta di altri dati etichettati nel set di training. È consigliabile aggiungere più dati etichettati all'entità solo se l'entità ha un componente appreso. Se l'entità è definita solo dai componenti list, precompilt e regex, questa raccomandazione non è applicabile.

  • Tutte le finalità o le entità sono presenti nel set di test: quando i dati di test non dispongono di istanze etichettate per una finalità o un'entità, la valutazione del modello è meno completa a causa di scenari non verificati. Valutare la possibilità di avere dati di test per ogni finalità ed entità nel modello per assicurarsi che tutto venga testato.

  • Distinzione non chiara tra finalità o entità: quando i dati sono simili per finalità o entità diverse, può comportare una minore accuratezza perché possono essere spesso classificati erroneamente tra loro. Esaminare le finalità e le entità seguenti e valutare la possibilità di unirle se sono simili. In caso contrario, aggiungere altri esempi per distinguerli meglio l'uno dall'altro. Per altre indicazioni, vedere la scheda matrice di confusione . Se vengono visualizzate due entità costantemente stimate per gli stessi intervalli perché condividono lo stesso elenco, componenti predefiniti o regex, assicurarsi di aggiungere un componente appreso per ogni entità e renderlo obbligatorio. Altre informazioni sui componenti di entità.

Passaggi successivi

Eseguire il training di un modello in Language Studio