Metryki oceny dla modeli interpretacji języka konwersacyjnego

Zestaw danych jest podzielony na dwie części: zestaw do trenowania i zestaw do testowania. Zestaw trenowania służy do trenowania modelu, podczas gdy zestaw testów jest używany jako test dla modelu po trenowaniu w celu obliczenia wydajności i oceny modelu. Zestaw testów nie jest wprowadzany do modelu przez proces trenowania, aby upewnić się, że model jest testowany na nowych danych.

Ocena modelu jest wyzwalana automatycznie po pomyślnym zakończeniu trenowania. Proces oceny rozpoczyna się od użycia wytrenowanego modelu do przewidywania intencji i jednostek zdefiniowanych przez użytkownika dla wypowiedzi w zestawie testowym i porównuje je z podanymi tagami (co ustanawia punkt odniesienia prawdy). Wyniki są zwracane, aby można było przejrzeć wydajność modelu. Do oceny język konwersacyjny używa następujących metryk:

  • Precyzja: mierzy dokładność/dokładność modelu. Jest to stosunek między poprawnie zidentyfikowanych dodatnich (prawdziwie dodatnich) i wszystkich zidentyfikowanych wyników dodatnich. Metryka precyzji pokazuje, ile przewidywanych klas jest poprawnie oznaczonych etykietami.

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

  • Przypomnij sobie: Mierzy zdolność modelu do przewidywania rzeczywistych dodatnich klas. Jest to stosunek między przewidywanymi prawdziwie dodatnimi a tym, co zostało rzeczywiście oznaczone. Metryka wycofania pokazuje, ile przewidywanych klas jest poprawnych.

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

  • Wynik F1: Wynik F1 jest funkcją precyzji i kompletności. Jest to konieczne, gdy szukasz równowagi między precyzją a kompletnością.

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

Precyzja, kompletność i wynik F1 są obliczane dla:

  • Każda jednostka oddzielnie (ocena na poziomie jednostki)
  • Każda intencja oddzielnie (ocena na poziomie intencji)
  • W przypadku modelu zbiorczo (ocena na poziomie modelu).

Definicje dokładności, kompletności i oceny są takie same w przypadku ocen na poziomie jednostki, na poziomie intencji i na poziomie modelu. Jednak liczby wyników prawdziwie dodatnich, wyników fałszywie dodatnich i fałszywie ujemnych mogą się różnić. Rozważmy na przykład następujący tekst.

Przykład

  • Odpowiedź z podziękowaniem bardzo.
  • odpowiedz z powiedzeniem tak.
  • Sprawdź mój adres e-mail.
  • e-mail do cynthii, że kolacja w zeszłym tygodniu była wspaniała.
  • wyślij wiadomość e-mail na mike

Są to intencje używane: Odpowiedz, wyślij Wiadomość e-mail, readEmail. Są to jednostki: contactName, message.

Model może przewidywać następujące przewidywania:

Wypowiedź Przewidywana intencja Rzeczywista intencja Przewidywana jednostka Rzeczywista jednostka
Odpowiedź z podziękowaniem bardzo Odpowiedz Odpowiedz thank you very much Jako message thank you very much Jako message
odpowiedz z powiedzeniem tak sendEmail Odpowiedz -- yes Jako message
Sprawdź mój adres e-mail readEmail readEmail -- --
e-mail do cynthia, że kolacja w zeszłym tygodniu była wspaniała Odpowiedz sendEmail dinner last week was splendid Jako message cynthiajako , dinner last week was splendid jako contactNamemessage
wyślij wiadomość e-mail na mike sendEmail sendEmail mike Jako message mike Jako contactName

Ocena poziomu intencji dla intencji odpowiedzi

Klucz Liczba Wyjaśnienie
Wynik prawdziwie dodatni 1 Wypowiedź 1 została prawidłowo przewidziała jako odpowiedź.
Wynik fałszywie dodatni 1 Wypowiedź 4 została błędnie przewidziała jako odpowiedź.
Wynik fałszywie ujemny 1 Wypowiedź 2 została błędnie przewidziała jako sendEmail.

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

Przypomnieć = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

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

Ocena poziomu intencji dla intencji sendEmail

Klucz Liczba Wyjaśnienie
Wynik prawdziwie dodatni 1 Wypowiedź 5 została prawidłowo przewidziała jako sendEmail
Wynik fałszywie dodatni 1 Wypowiedź 2 została błędnie przewidziała jako sendEmail.
Wynik fałszywie ujemny 1 Wypowiedź 4 została błędnie przewidziała jako odpowiedź.

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

Przypomnieć = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

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

Ocena poziomu intencji dla intencji readEmail

Klucz Liczba Wyjaśnienie
Wynik prawdziwie dodatni 1 Wypowiedź 3 została prawidłowo przewidziała jako readEmail.
Wynik fałszywie dodatni 0 --
Wynik fałszywie ujemny 0 --

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

Przypomnieć = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 0) = 1

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

Ocena poziomu jednostki dla jednostki contactName

Klucz Liczba Wyjaśnienie
Wynik prawdziwie dodatni 1 cynthia prawidłowo przewidywano, jak contactName w wypowiedzi 4
Wynik fałszywie dodatni 0 --
Wynik fałszywie ujemny 1 mike błędnie przewidywano, jak message w wypowiedzi 5

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

Przypomnieć = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

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

Ocena na poziomie jednostki dla jednostki komunikatów

Klucz Liczba Wyjaśnienie
Wynik prawdziwie dodatni 2 thank you very much został prawidłowo przewidział, jak message w wypowiedzi 1 i dinner last week was splendid został prawidłowo przewidział, jak message w wypowiedzi 4
Wynik fałszywie dodatni 1 mike błędnie przewidywano, jak message w wypowiedzi 5
Wynik fałszywie ujemny 1 yes nie przewidywano, jak message w wypowiedzi 2

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

Przypomnieć = #True_Positive / (#True_Positive + #False_Negatives) = 2 / (2 + 1) = 0.67

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

Ocena na poziomie modelu dla modelu zbiorowego

Klucz Liczba Wyjaśnienie
Wynik prawdziwie dodatni 6 Suma modułu TP dla wszystkich intencji i jednostek
Wynik fałszywie dodatni 3 Suma fp dla wszystkich intencji i jednostek
Wynik fałszywie ujemny 4 Suma nazwy FN dla wszystkich intencji i jednostek

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

Przypomnieć = #True_Positive / (#True_Positive + #False_Negatives) = 6 / (6 + 4) = 0.60

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

Macierz pomyłek

Macierz pomyłek to macierz N x N używana do oceny wydajności modelu, gdzie N to liczba jednostek lub intencji. Macierz porównuje oczekiwane etykiety z tymi przewidywanymi przez model. Zapewnia to całościowy wgląd w wydajność modelu i rodzaje błędów, które wykonuje.

Za pomocą macierzy pomyłek można zidentyfikować intencje lub jednostki, które są zbyt blisko siebie i często mylą się (niejednoznaczność). W takim przypadku rozważ scalenie tych intencji lub jednostek razem. Jeśli nie jest to możliwe, rozważ dodanie kolejnych otagowanych przykładów obu intencji lub jednostek, aby ułatwić modelowi rozróżnienie między nimi.

Wyróżniony ukośny na poniższej ilustracji to prawidłowo przewidywane jednostki, w których przewidywany tag jest taki sam jak rzeczywisty tag.

Zrzut ekranu przedstawiający przykładową macierz pomyłek

Metryki oceny na poziomie intencji lub na poziomie jednostki i modelu można obliczyć z macierzy pomyłek:

  • Wartości w przekątnej są wartościami prawdziwie dodatnimi każdej intencji lub jednostki.
  • Suma wartości w wierszach intencji lub jednostek (z wyłączeniem przekątnej) jest wynikiem fałszywie dodatnim modelu.
  • Suma wartości w kolumnach intencji lub jednostek (z wyłączeniem przekątnej) jest fałszywą ujemną wartością modelu.

Podobnie

  • Wynik prawdziwie dodatni modelu jest sumą wyników prawdziwie dodatnich dla wszystkich intencji lub jednostek.
  • Wynik fałszywie dodatni modelu jest sumą wyników fałszywie dodatnich dla wszystkich intencji lub jednostek.
  • Fałszywa ujemna wartość modelu to suma wyników fałszywie ujemnych dla wszystkich intencji lub jednostek.

Wskazówki

Po wytrenowanym modelu zostaną wyświetlone wskazówki i zalecenia dotyczące sposobu ulepszania modelu. Zaleca się posiadanie modelu obejmującego każdy punkt w sekcji wskazówek.

  • Zestaw szkoleniowy ma wystarczającą ilość danych: jeśli intencja lub jednostka ma mniej niż 15 wystąpień oznaczonych etykietami w danych treningowych, może to prowadzić do obniżenia dokładności, ponieważ model nie jest odpowiednio wytrenowany w tej intencji. W takim przypadku rozważ dodanie większej liczby oznaczonych etykietami danych w zestawie treningowym. Należy rozważyć dodanie większej liczby oznaczonych danych do jednostki tylko wtedy, gdy jednostka ma poznany składnik. Jeśli jednostka jest definiowana tylko przez składniki listy, wstępnie utworzone i regularne, to zalecenie nie ma zastosowania.

  • Wszystkie intencje lub jednostki są obecne w zestawie testowym: gdy dane testowe nie mają oznaczonych etykietami wystąpień dla intencji lub jednostki, ocena modelu jest mniej kompleksowa ze względu na nietestowane scenariusze. Rozważ przetestowanie danych testowych dla każdej intencji i jednostki w modelu, aby upewnić się, że wszystko jest testowane.

  • Niejasne rozróżnienie między intencjami lub jednostkami: gdy dane są podobne dla różnych intencji lub jednostek, może to prowadzić do obniżenia dokładności, ponieważ mogą one być często błędnie klasyfikowane jako siebie. Przejrzyj następujące intencje i jednostki i rozważ ich scalenie, jeśli są one podobne. W przeciwnym razie dodaj więcej przykładów, aby lepiej je odróżnić od siebie. Możesz sprawdzić kartę macierzy pomyłek , aby uzyskać więcej wskazówek. Jeśli widzisz, że dwie jednostki są stale przewidywane dla tych samych zakresów, ponieważ współużytkują one tę samą listę, wstępnie utworzone lub składniki wyrażeń regularnych, upewnij się, że dodano poznany składnik dla każdej jednostki i upewnij się, że jest to wymagane. Dowiedz się więcej o składnikach jednostki.

Następne kroki

Trenowanie modelu w programie Language Studio