Delen via


Metrische evaluatiegegevens voor conversationele taalkennismodellen

Uw gegevensset wordt gesplitst in twee delen: een set voor training en een set voor testen. De trainingsset wordt gebruikt om het model te trainen, terwijl de testset wordt gebruikt als test voor het model na de training om de prestaties en evaluatie van het model te berekenen. De testset wordt niet via het trainingsproces geïntroduceerd in het model om ervoor te zorgen dat het model wordt getest op nieuwe gegevens.

Modelevaluatie wordt automatisch geactiveerd nadat de training is voltooid. Het evaluatieproces begint met het getrainde model om door de gebruiker gedefinieerde intenties en entiteiten voor uitingen in de testset te voorspellen. Vervolgens vergelijkt het proces deze met de opgegeven tags om een basislijn van waarheid vast te stellen. De resultaten worden geretourneerd, zodat u de prestaties van het model kunt bekijken. Voor evaluatie gebruikt het begrip van gesprekstaal de volgende metrische gegevens:

  • Precisie: meet hoe nauwkeurig of nauwkeurig uw model is. Dit is de verhouding tussen de correct geïdentificeerde positieven (terecht-positieven) en alle geïdentificeerde positieven. De precisiemetrie geeft aan hoeveel van de voorspelde klassen correct zijn gelabeld.

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

  • Relevante overeenkomsten: meet het vermogen van het model om werkelijke positieve klassen te voorspellen. Het is de verhouding tussen de voorspelde terecht-positieven en wat is getagd. De relevante metrische gegevens geven aan hoeveel van de voorspelde klassen juist zijn.

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

  • F1-score: de F1-score is een functie van precisie en relevante overeenkomsten. Het is nodig wanneer u een balans zoekt tussen precisie en relevante overeenkomsten.

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

Precisie, relevante overeenkomsten en de F1-score worden berekend voor:

  • Elke entiteit afzonderlijk (evaluatie op entiteitsniveau).
  • Elke intentie afzonderlijk (evaluatie op intentieniveau).
  • Voor het model gezamenlijk (evaluatie op modelniveau).

De definities van precisie, relevante overeenkomsten en evaluatie zijn hetzelfde voor evaluaties op entiteitsniveau, intentieniveau en modelniveau. De aantallen voor terecht-positieven, fout-positieven en fout-negatieven kunnen echter verschillen. Denk bijvoorbeeld aan de volgende tekst.

Opmerking

  • Maak een antwoord met "hartelijk dank."
  • Antwoord met 'ja'.
  • Controleer mijn e-mail alsjeblieft.
  • E-mail aan Cynthia dat het diner vorige week prachtig was.
  • Stuur een e-mail naar Mike.

De gebruikte intenties zijn Reply, sendEmailen readEmail. De entiteiten zijn contactName en message.

Het model kan de volgende voorspellingen doen:

Uiting Voorspelde intentie Werkelijke intentie Voorspelde entiteit Werkelijke entiteit
Maak een antwoord met "hartelijk dank" Beantwoorden Beantwoorden thank you very much als message thank you very much als message
Antwoord met 'Ja' sendEmail Beantwoorden -- yes als message
Controleer mijn e-mail alstublieft readEmail readEmail -- --
E-mail aan Cynthia dat het diner vorige week geweldig was Beantwoorden sendEmail dinner last week was splendid als message cynthiaals , dinner last week was splendid als contactNamemessage
Een e-mail verzenden naar Mike sendEmail sendEmail mike als message mike als contactName

Evaluatie op intentieniveau voor antwoordintentie

Sleutel Tellen Uitleg
Terecht-positief 1 Utterance 1 was correct voorspeld als Reply.
Fout-positief 1 Utterance 4 werd per ongeluk voorspeld als Reply.
Fout-negatief 1 Utterance 2 werd per ongeluk voorspeld als sendEmail.

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

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

F1-score = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Evaluatie op intentieniveau voor sendEmail-intentie

Sleutel Tellen Uitleg
Terecht-positief 1 Utterance 5 was correct voorspeld als sendEmail.
Fout-positief 1 Utterance 2 werd per ongeluk voorspeld als sendEmail.
Fout-negatief 1 Utterance 4 werd per ongeluk voorspeld als Reply.

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

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

F1-score = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Evaluatie op intentieniveau voor readEmail-intentie

Sleutel Tellen Uitleg
Terecht-positief 1 Utterance 3 was correct voorspeld als readEmail.
Fout-positief 0 --
Fout-negatief 0 --

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

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

F1-score = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 1) / (1 + 1) = 1

Evaluatie op entiteitsniveau voor entiteit ContactName

Sleutel Tellen Uitleg
Terecht-positief 1 cynthia werd correct voorspeld zoals contactName in utterance 4.
Fout-positief 0 --
Fout-negatief 1 mike werd per ongeluk voorspeld zoals message in utterance 5.

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

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

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

Evaluatie op entiteitsniveau voor berichtentiteit

Sleutel Tellen Uitleg
Terecht-positief 2 thank you very much was correct voorspeld zoals message in utterance 1 en dinner last week was splendid werd correct voorspeld zoals message in utterance 4.
Fout-positief 1 mike werd per ongeluk voorspeld zoals message in utterance 5.
Fout-negatief 1 yes werd niet voorspeld als message in utterance 2.

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

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

F1-score = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67

Evaluatie op modelniveau voor het collectieve model

Sleutel Tellen Uitleg
Terecht-positief 6 Som van terecht-positieven voor alle intenties en entiteiten.
Fout-positief 3 Som van fout-positieven voor alle intenties en entiteiten.
Fout-negatief 4 Som van fout-negatieven voor alle intenties en entiteiten.

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

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

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

Verwarringsmatrix

Een verwarringsmatrix is een N x N-matrix die wordt gebruikt voor de evaluatie van modelprestaties, waarbij N het aantal entiteiten of intenties is. De matrix vergelijkt de verwachte labels met de labels die door het model zijn voorspeld. De matrix geeft een holistische weergave van hoe goed het model presteert en welke soorten fouten het maakt.

U kunt de verwarringsmatrix gebruiken om intenties of entiteiten te identificeren die zich te dicht bij elkaar bevinden en vaak verkeerd worden weergegeven (dubbelzinnigheid). In dit geval kunt u overwegen deze intenties of entiteiten samen te voegen. Als samenvoegen niet mogelijk is, kunt u overwegen om meer getagde voorbeelden van beide intenties of entiteiten toe te voegen om het model te helpen onderscheid te maken tussen deze intenties.

De gemarkeerde diagonale in de volgende afbeelding toont de correct voorspelde entiteiten, waarbij de voorspelde tag hetzelfde is als de werkelijke tag.

Schermopname van een voorbeeld van een verwarringsmatrix.

U kunt de metrische gegevens voor evaluatie op intentieniveau of entiteitsniveau en modelniveau berekenen vanuit de verwarringsmatrix:

  • De waarden in de diagonale waarde zijn de terecht positieve waarden van elke intentie of entiteit.
  • De som van de waarden in de intent- of entiteitenrijen (met uitzondering van de diagonale) is het fout-positieve van het model.
  • De som van de waarden in de kolommen met intenties of entiteiten (met uitzondering van de diagonale) is de fout-negatieve waarde van het model.

Ook:

  • Het terecht-positieve van het model is de som van terecht-positieven voor alle intenties of entiteiten.
  • Het fout-positieve van het model is de som van fout-positieven voor alle intenties of entiteiten.
  • Het fout-negatieve van het model is de som van fout-negatieven voor alle intenties of entiteiten.

Richtlijn

Nadat u uw model hebt getraind, ziet u enkele richtlijnen en aanbevelingen voor het verbeteren van het model. U wordt aangeraden een model te hebben dat elk punt in de richtlijnensectie beslaat.

  • Trainingsset heeft voldoende gegevens: wanneer een intentie of entiteit minder dan 15 gelabelde exemplaren in de trainingsgegevens heeft, kan dit leiden tot lagere nauwkeurigheid omdat het model niet voldoende is getraind voor die intentie. In dit geval kunt u meer gelabelde gegevens toevoegen in de trainingsset. Overweeg alleen om meer gelabelde gegevens toe te voegen aan uw entiteit als uw entiteit een geleerd onderdeel heeft. Als uw entiteit alleen is gedefinieerd door lijst-, vooraf gemaakte en regex-onderdelen, is deze aanbeveling niet van toepassing.
  • Alle intenties of entiteiten zijn aanwezig in een testset: wanneer de testgegevens gelabelde exemplaren voor een intentie of entiteit ontbreken, is de modelevaluatie minder uitgebreid vanwege niet-geteste scenario's. Overweeg om testgegevens voor elke intentie en entiteit in uw model te hebben om ervoor te zorgen dat alles wordt getest.
  • Onduidelijk onderscheid tussen intenties of entiteiten: wanneer gegevens vergelijkbaar zijn voor verschillende intenties of entiteiten, kan dit tot lagere nauwkeurigheid leiden omdat ze vaak verkeerd worden geclassificeerd als elkaar. Bekijk de volgende intenties en entiteiten en overweeg ze samen te voegen als ze vergelijkbaar zijn. Voeg anders meer voorbeelden toe om ze beter van elkaar te onderscheiden. U kunt het tabblad Verwarringsmatrix controleren voor meer richtlijnen. Als u twee entiteiten ziet die voortdurend worden voorspeld voor dezelfde periodes, omdat ze dezelfde lijst, vooraf gedefinieerde of regex-onderdelen delen, moet u ervoor zorgen dat u een geleerd onderdeel voor elke entiteit toevoegt en dit vereist maakt. Meer informatie over entiteitsonderdelen.