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

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

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

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

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

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

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

  • F-мера: зависит от точности и полноты. Она необходима при поиске баланса между точностью и полнотой.

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

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

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

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

Пример

  • Отправьте в ответе искреннюю благодарность.
  • ответьте "да".
  • Проверьте мою электронную почту.
  • напишите Екатерине в электронном письме, что ужин на прошлой неделе был великолепным.
  • отправьте сообщение электронной почты Андрею

Используются следующие намерения: Reply,sendEmail,readEmail. Используются следующие сущности: 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

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

Клавиши 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

F-мера = 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

F-мера = 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

F-мера = 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

F-мера = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.5) / (1 + 0.5) = 0.67

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

Клавиши 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

F-мера = 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

F-мера = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.60) / (0.67 + 0.60) = 0.63

Матрица неточностей

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

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

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

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

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

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

По аналогии

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

Руководство

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

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

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

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

Следующие шаги

Обучение модели в Language Studio