Auswertungsmetriken für CLU-Modelle

Ihr Dataset ist aufgeteilt, nämlich in zwei Sätze, einen Satz für das Training und einen Satz für das Testen. Der Trainingsdatensatz wird zum Trainieren des Modells verwendet, während der Testdatensatz als Test für das Modell nach dem Training genutzt wird, um die Modellleistung zu berechnen und auszuwerten. Der Testdatensatz wird dem Modell beim Training nicht zugeführt, um sicherzustellen, dass das Modell mit neuen Daten getestet wird.

Die Modellauswertung wird automatisch ausgelöst, nachdem das Training erfolgreich abgeschlossen wurde. Beim Auswertungsprozess werden zunächst auf der Grundlage des trainierten Modells benutzerdefinierte Absichten und Entitäten für Äußerungen im Testsatz vorhergesagt und mit den bereitgestellten Tags verglichen, um eine Wahrheitsbaseline zu erhalten. Die Ergebnisse werden zurückgegeben, sodass Sie die Leistung des Modells überprüfen können. Bei der Auswertung werden von Conversational Language Understanding folgende Metriken verwendet:

  • Genauigkeit: Misst, wie präzise/genau Ihr Modell ist. Dies ist das Verhältnis zwischen den richtig identifizierten positiven (True Positives) und allen identifizierten positiven Ergebnissen. Die Genauigkeitsmetrik gibt an, wie viele der vorhergesagten Klassen richtig beschriftet wurden.

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

  • Abruf: Misst die Fähigkeit des Modells, tatsächliche positive Klassen vorherzusagen. Dies ist das Verhältnis zwischen den vorhergesagten True Positives und den tatsächlich markierten Klassen. Die Abrufmetrik gibt an, wie viele der vorhergesagten Klassen richtig sind.

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

  • F1-Bewertung: Die F1-Bewertung ist eine Funktion von Genauigkeit und Abruf. Sie ist erforderlich, wenn Sie ein Gleichgewicht zwischen Genauigkeit und Abruf suchen.

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

Genauigkeit, Abruf und F1-Score werden wie folgt berechnet:

  • Für jede Entität separat (Auswertung auf Entitätsebene)
  • Für jede Absicht separat (Auswertung auf Absichtsebene)
  • Für das Modell im Ganzen (Auswertung auf Modellebene)

Die Definitionen für Genauigkeit, Abruf und Auswertung sind für Auswertungen auf Entitäts-, Absichts- und Modellebene gleich. Die Anzahl von True Positives, False Positives und False Negatives kann aber variieren. Sehen Sie sich beispielsweise den folgenden Text an:

Beispiel

  • Make a response with thank you very much. (Antwort mit „Vielen Dank“ erstellen)
  • reply with saying yes. (Mit „Ja“ antworten)
  • Check my email please. (Meine E-Mails überprüfen)
  • email to cynthia that dinner last week was splendid. (E-Mail an Cynthia: Das Essen letzte Woche war hervorragend.)
  • send email to mike (E-Mail an Mike senden)

Verwendete Absichten: Reply,sendEmail,readEmail. Entitäten: contactName, message.

Das Modell liefert ggf. folgende Vorhersagen:

Äußerung Vorhergesagte Absicht Tatsächliche Absicht Vorhergesagte Entität Tatsächliche Entität
Make a response with thank you very much (Antwort mit „Vielen Dank“ erstellen) Antworten Antworten thank you very much as message thank you very much as message
reply with saying yes (Mit „Ja“ antworten) sendEmail Antworten -- yes as message
Check my email please (Meine E-Mails überprüfen) readEmail readEmail -- --
email to cynthia that dinner last week was splendid (E-Mail an Cynthia: Das Essen letzte Woche war hervorragend.) Antworten sendEmail dinner last week was splendid as message cynthia als contactName, dinner last week was splendid als message
send email to mike (E-Mail an Mike senden) sendEmail sendEmail mike as message mike as contactName

Auswertung auf Absichtsebene für die Absicht Reply

Schlüssel Anzahl Erklärung
Richtig positiv 1 Äußerung 1 wurde korrekt als Reply vorhergesagt.
Falsch positiv 1 Äußerung 4 wurde fälschlicherweise als Reply vorhergesagt.
Falsch negativ 1 Äußerung 2 wurde fälschlicherweise als sendEmail vorhergesagt.

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

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

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

Auswertung auf Absichtsebene für die Absicht sendEmail

Schlüssel Anzahl Erklärung
Richtig positiv 1 Äußerung 5 wurde korrekt als sendEmail vorhergesagt.
Falsch positiv 1 Äußerung 2 wurde fälschlicherweise als sendEmail vorhergesagt.
Falsch negativ 1 Äußerung 4 wurde fälschlicherweise als Reply vorhergesagt.

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

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

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

Auswertung auf Absichtsebene für die Absicht readEmail

Schlüssel Anzahl Erklärung
Richtig positiv 1 Äußerung 3 wurde korrekt als readEmail vorhergesagt.
Falsch positiv 0 --
Falsch negativ 0 --

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

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

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

Auswertung auf Entitätsebene für die Entität contactName

Schlüssel Anzahl Erklärung
Richtig positiv 1 cynthia wurde in Äußerung 4 korrekt als contactName vorhergesagt.
Falsch positiv 0 --
Falsch negativ 1 mike wurde in Äußerung 5 fälschlicherweise als message vorhergesagt.

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

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

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

Auswertung auf Entitätsebene für die Entität message

Schlüssel Anzahl Erklärung
Richtig positiv 2 thank you very much wurde in Äußerung 1 korrekt als message vorhergesagt, und dinner last week was splendid wurde in Äußerung 4 korrekt als message vorhergesagt.
Falsch positiv 1 mike wurde in Äußerung 5 fälschlicherweise als message vorhergesagt.
Falsch negativ 1 yes wurde in Äußerung 2 nicht als message vorhergesagt.

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

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

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

Auswertung auf Modellebene für das gemeinsame Modell

Schlüssel Anzahl Erklärung
Richtig positiv 6 TP-Summe für alle Absichten und Entitäten
Falsch positiv 3 FP-Summe für alle Absichten und Entitäten
Falsch negativ 4 FN-Summe für alle Absichten und Entitäten

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

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

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

Konfusionsmatrix

Eine Konfusionsmatrix ist eine n × n-Matrix, die für die Auswertung der Modellleistung verwendet wird, wobei „n“ die Anzahl von Entitäten oder Absichten ist. Die Matrix vergleicht die erwarteten Bezeichnungen mit den vom Modell vorhergesagten Bezeichnungen. Dadurch erhalten Sie einen ganzheitlichen Überblick darüber, wie gut das Modell funktioniert und welche Arten von Fehlern es macht.

Sie können die Konfusionsmatrix verwenden, um Absichten oder Entitäten zu identifizieren, die zu nah beieinander liegen und häufig verwechselt werden (Mehrdeutigkeit). Erwägen Sie in diesem Fall, die betreffenden Absichten oder Entitäten zusammenzuführen. Wenn dies nicht möglich ist, sollten Sie erwägen, weitere Beispiele mit Tags für beide Absichten oder Entitäten hinzuzufügen. So können Sie es für das Modell einfacher machen, dazwischen zu unterscheiden.

Die hervorgehobene Diagonale in der Abbildung steht für die richtig vorhergesagten Entitäten, wobei das vorhergesagte Tag mit dem tatsächlichen Tag identisch ist.

Screenshot: Beispiel für Konfusionsmatrix

Anhand der Konfusionsmatrix können Sie die Auswertungsmetriken auf Absichts- oder Entitätsebene und auf Modellebene berechnen:

  • Die Werte auf der Diagonalen sind die True Positive-Werte der einzelnen Absichten oder Entitäten.
  • Die Summe der Werte in den Absichts- oder Entitätenzeilen (ausschließlich der Diagonalen) sind die False Positive-Werte des Modells.
  • Die Summe der Werte in den Absichts- oder Entitätenspalten (ausschließlich der Diagonalen) sind die False Negative-Werte des Modells.

Ebenso gilt:

  • Der True Positive-Wert des Modells ist die Summe der True Positives für alle Absichten oder Entitäten.
  • Der False Positive-Wert des Modells ist die Summe der False Positives für alle Absichten oder Entitäten.
  • Der False Negative-Wert des Modells ist die Summe der False Negatives für alle Absichten oder Entitäten.

Anleitungen

Nachdem Sie Ihr Modell trainiert haben, werden Ihnen einige Anleitungen und Empfehlungen zur Verbesserung des Modells angezeigt. Es wird empfohlen, ein Modell zu haben, das jeden Punkt im Abschnitt des Leitfadens abdeckt.

  • Der Trainingssatz umfasst genügend Daten: Wenn eine Absicht oder Entität weniger als 15 beschriftete Instanzen in den Trainingsdaten aufweist, kann dies zu einer geringeren Genauigkeit führen, da das Modell in diesen Fällen nicht angemessen für diese Absicht trainiert wird. In diesem Fall sollten Sie dem Trainingssatz weitere beschriftete Daten hinzufügen. Sie sollten ihrer Entität nur dann weitere beschriftete Daten hinzufügen, wenn Ihre Entität über eine gelernte Komponente verfügt. Wenn Ihre Entität nur durch Listen-, vordefinierte und RegEx-Komponenten definiert ist, dann gilt diese Empfehlung nicht.

  • Alle Absichten oder Entitäten sind im Testsatz enthalten: Wenn für die Testdaten beschriftete Instanzen für eine Absicht oder eine Entität fehlen, ist die Modellauswertung aufgrund von nicht getesteten Szenarien weniger umfassend. Erwägen Sie, Testdaten für alle Absichten und Entitäten in Ihrem Modell zu verwenden, um sicherzustellen, dass alles getestet wird.

  • Unklare Unterscheidung zwischen Absichten oder Entitäten: Wenn Daten für unterschiedliche Absichten oder Entitäten ähnlich sind, kann dies zu einer geringeren Genauigkeit führen, da sie häufig gegenseitig falsch klassifiziert werden. Überprüfen Sie die folgenden Absichten und Entitäten, und erwägen Sie deren Zusammenführung, wenn sie ähnlich sind. Fügen Sie andernfalls weitere Beispiele hinzu, um sie besser voneinander zu unterscheiden. Sie können die Registerkarte Konfusionsmatrix überprüfen, um weitere Anleitungen zu erhalten. Wenn zwei Entitäten ständig für die gleichen Spannen vorhergesagt werden, da sie die gleichen Listen-, vordefinierten oder RegEx-Komponenten verwenden, dann fügen Sie jeder Entität eine gelernte Komponente hinzu, und machen diese erforderlich. Weitere Informationen über Entitätskomponenten.

Nächste Schritte

Trainieren eines Modells in Language Studio