Бөлісу құралы:


Метрики оценки для моделей распознавания устной речи

Набор данных разделен на две части: набор для обучения и набор для тестирования. Набор для обучения используется для обучения модели, а набор для тестирования — для расчета производительности и оценки модели после обучения. Набор тестирования не представлен в модели с помощью процесса обучения, чтобы убедиться, что модель тестируется на новых данных.

Оценка модели автоматически активируется после успешного завершения обучения. Процесс оценки начинается с обученной модели для прогнозирования определяемых пользователем намерений и сущностей для речевых фрагментов в тестовом наборе. Затем процесс сравнивает их с предоставленными тегами, чтобы установить базовые показатели истины. Результаты возвращаются, чтобы просмотреть производительность модели. Оценка в распознавания устной речи использует следующие метрики:

  • Точность: измеряет точность или точность модели. Представляет собой соотношение между правильно определенными положительными (истинноположительными) результатами и всеми определенными положительными результатами. Метрика точности показывает, сколько из спрогнозированных классов правильно помечено метками.

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

  • Полнота: измеряет способность модели прогнозировать фактические положительные классы. Это соотношение между прогнозируемыми истинными положительными результатами и тем, что было помечено. Метрика полноты показывает, сколько из прогнозируемых классов определено верно.

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

  • Оценка F1: оценка F1 — это функция точности и отзыва. Она необходима при поиске баланса между точностью и полнотой.

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

Точность, отзыв и оценка F1 вычисляются для следующих показателей:

  • Каждая сущность отдельно (оценка на уровне сущности).
  • Каждое намерение отдельно (оценка уровня намерения).
  • Для модели в совокупности (оценка на уровне модели)

Определения точности, отзыва и оценки одинаковы для оценки уровня сущности, уровня намерения и уровня модели. Однако счетчики для истинных положительных, ложных срабатываний и ложных отрицательных значений могут отличаться. Например, рассмотрим следующий текст.

Пример

  • Сделайте ответ с "спасибо вам очень".
  • Ответ с фразой "Да".
  • Проверьте мою электронную почту.
  • Электронная почта Синтии, что ужин на прошлой неделе был великолепным.
  • Отправьте письмо Майку.

Используемые намерения: Replyи sendEmailreadEmail. Сущности и contactName message.

Модель может делать следующие прогнозы:

Фраза Прогнозируемое намерение Фактическое намерение Прогнозируемая сущность Фактическая сущность
Сделайте ответ с "спасибо очень" Ответить Ответить thank you very much как message thank you very much как message
Ответ с фразой "да" sendEmail Ответить -- yes как message
Проверьте мою электронную почту readEmail readEmail -- --
Электронная почта Синтии, что ужин на прошлой неделе был великолепным Ответить sendEmail dinner last week was splendid как message cynthia как contactName, dinner last week was splendid как message
Отправка сообщения электронной почты Майку sendEmail sendEmail mike как message mike как contactName

Оценка уровня намерения для намерения ответа

Ключ Count Описание
Истинноположительный результат 1 Высказывание 1 было правильно предсказано как Reply.
Ложный положительный результат 1 Высказывание 4 было ошибочно предсказано как Reply.
Ложноотрицательный результат 1 Высказывание 2 было ошибочно предсказано как sendEmail.

Точность = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

Полнота = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Оценка F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Оценка уровня намерения для намерения sendEmail

Ключ Count Описание
Истинноположительный результат 1 Высказывание 5 было правильно предсказано как sendEmail.
Ложный положительный результат 1 Высказывание 2 было ошибочно предсказано как sendEmail.
Ложноотрицательный результат 1 Высказывание 4 было ошибочно предсказано как Reply.

Точность = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

Полнота = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Оценка F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Оценка уровня намерения для намерения readEmail

Ключ Count Описание
Истинноположительный результат 1 Речевой фрагмент 3 был правильно предсказан как readEmail.
Ложный положительный результат 0 --
Ложноотрицательный результат 0 --

Точность = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Полнота = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 0) = 1

Оценка F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 1) / (1 + 1) = 1

Оценка на уровне сущности для сущности contactName

Ключ Count Описание
Истинноположительный результат 1 cynthia правильно прогнозировался, как contactName в речевых фрагментах 4.
Ложный положительный результат 0 --
Ложноотрицательный результат 1 mike ошибочно прогнозировался как message в речевых фрагментах 5.

Точность = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Полнота = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Оценка F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.5) / (1 + 0.5) = 0.67

Оценка уровня сущности для сущности сообщения

Ключ Count Описание
Истинноположительный результат 2 thank you very much был правильно предсказан, как message в высказывании 1 и dinner last week was splendid был правильно предсказан, как message в высказывании 4.
Ложный положительный результат 1 mike ошибочно прогнозировался как message в речевых фрагментах 5.
Ложноотрицательный результат 1 yes не было предсказано, как message в речевых фрагментах 2.

Точность = #True_Positive / (#True_Positive + #False_Positive) = 2 / (2 + 1) = 0.67

Полнота = #True_Positive / (#True_Positive + #False_Negatives) = 2 / (2 + 1) = 0.67

Оценка F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67

Вычисление на уровне модели для общей модели

Ключ Count Описание
Истинноположительный результат 6 Сумма истинных положительных значений для всех намерений и сущностей.
Ложный положительный результат 3 Сумма ложных срабатываний для всех намерений и сущностей.
Ложноотрицательный результат 4 Сумма ложных отрицательных значений для всех намерений и сущностей.

Точность = #True_Positive / (#True_Positive + #False_Positive) = 6 / (6 + 3) = 0.67

Полнота = #True_Positive / (#True_Positive + #False_Negatives) = 6 / (6 + 4) = 0.60

Оценка F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.60) / (0.67 + 0.60) = 0.63

Матрица ошибок

Матрица путаницы — это матрица N x N, используемая для оценки производительности модели, где N — это число сущностей или намерений. Матрица сравнивает ожидаемые метки с метками, прогнозируемыми моделью. Матрица дает целостное представление о том, насколько хорошо выполняется модель и какие типы ошибок она делает.

Матрицу путаницы можно использовать для выявления намерений или сущностей, которые слишком близки друг к другу и часто ошибаются (неоднозначность). В этом случае рекомендуется объединить эти намерения или сущности вместе. Если слияние невозможно, попробуйте добавить более помеченные примеры обоих намерений или сущностей, чтобы помочь модели различать их.

Выделенный диагонали на следующем рисунке отображает правильно прогнозируемые сущности, где прогнозируемый тег совпадает с фактическим тегом.

Снимок экрана: пример матрицы путаницы.

Метрики оценки на уровне намерений или сущностей и моделей можно вычислить на основе матрицы неточностей:

  • Значения в диагонали являются истинными положительными значениями каждого намерения или сущности.
  • Сумма значений в строках намерений или сущностей (кроме значений по диагонали) — это ложноположительный результат модели.
  • Сумма значений в столбцах намерений или сущностей (за исключением диагонали) — ложное отрицательное значение модели.

Подобным образом:

  • Истинное положительное значение модели — это сумма истинных положительных значений для всех намерений или сущностей.
  • Ложноположительный результат модели —это сумма ложноположительных значений для всех намерений или сущностей.
  • Ложное отрицательное значение модели — это сумма ложных отрицательных значений для всех намерений или сущностей.

Руководство

После обучения модели вы увидите некоторые рекомендации и рекомендации по улучшению модели. Рекомендуется использовать модель, охватывающую каждую точку в разделе рекомендаций.

  • Обучающий набор имеет достаточно данных: если намерение или сущность имеет менее 15 помеченных экземпляров в обучающих данных, это может привести к снижению точности, так как модель не достаточно обучена по данному намерению. В этом случае можно добавить дополнительные размеченные данные в набор для обучения. Следует только добавить в сущность больше помеченных данных, если у вашей сущности есть обучаемый компонент. Если сущность определена только по спискам, предварительно созданным и регулярным компонентам, эта рекомендация не применяется.
  • Все намерения или сущности присутствуют в тестовом наборе: если данные тестирования не имеют помеченных экземпляров для намерения или сущности, оценка модели менее комплексна из-за непроверенных сценариев. Рассмотрите возможность тестирования данных для каждого намерения и сущности в модели, чтобы убедиться, что все тестируется.
  • Неясное различие между намерениями или сущностями: если данные похожи для различных намерений или сущностей, это может привести к снижению точности, так как они могут быть часто неправильно классифицированы друг друга. Просмотрите следующие намерения и сущности и рассмотрите возможность их объединения, если они похожи. В противном случае добавьте дополнительные примеры, чтобы лучше из различать. Для получения дополнительных рекомендаций можно проверить вкладку матрицы путаницы. Если вы видите две сущности постоянно прогнозируются для одного диапазона, так как они используют один и тот же список, предварительно созданные или регулярные компоненты, обязательно добавьте обучаемый компонент для каждой сущности и сделайте его обязательным. Дополнительные сведения о компонентах сущностей.