Métricas de evaluación de modelos de reconocimiento del lenguaje conversacional

El conjunto de datos se divide en dos partes: un conjunto para el entrenamiento y un conjunto para pruebas. El conjunto de entrenamiento se usa para entrenar el modelo, mientras que el conjunto de pruebas se usa como prueba para el modelo después del entrenamiento para calcular el rendimiento y la evaluación del modelo. El conjunto de pruebas no se introduce en el modelo a través del proceso de entrenamiento para asegurarse de que el modelo se prueba en nuevos datos.

La evaluación del modelo se desencadena automáticamente después de que el entrenamiento se haya completado correctamente. El proceso de evaluación comienza mediante el uso del modelo entrenado para predecir las intenciones y las entidades definidas por el usuario para las expresiones del conjunto de pruebas y las compara con las etiquetas proporcionadas (que establecen una base de referencia de autenticidad). Los resultados se devuelven para que pueda revisar el rendimiento del modelo. Para la evaluación, el reconocimiento del lenguaje conversacional usa las siguientes métricas:

  • Precisión: mide lo preciso o exacto que es el modelo. Es la relación entre los positivos identificados correctamente (verdaderos positivos) y todos los positivos identificados. La métrica de precisión revela cuántas de las clases previstas están correctamente etiquetadas.

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

  • Coincidencia: mide la capacidad del modelo para predecir clases positivas reales. Es la relación entre los verdaderos positivos previstos y lo que realmente se ha etiquetado. La métrica de coincidencia revela cuántas de las clases previstas están correctamente etiquetadas.

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

  • Puntuación F1: la puntuación F1 es una función de precisión y coincidencia. Es necesaria cuando se busca un equilibrio entre precisión y coincidencia.

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

La precisión, la coincidencia y la puntuación F1 se calculan para:

  • Cada entidad por separado (evaluación de la entidad)
  • Cada intención por separado (evaluación de la intención)
  • Para el modelo colectivamente (evaluación del modelo).

Las definiciones de precisión, coincidencia y evaluación son las mismas para las evaluaciones de entidad, de intención y de modelo. Sin embargo, lo recuentos de verdaderos positivos, falsos positivos y falsos negativos pueden variar. Por ejemplo, considere el texto siguiente.

Ejemplo

  • Haga una respuesta que diga muchas gracias.
  • responda con un sí.
  • Compruebe mi correo electrónico.
  • envíe un correo electrónico a Cynthia que diga que la cena de la semana pasada estuvo espléndida.
  • Enviar un correo electrónico a Mike

Estas son las intenciones usadas: Reply,sendEmail,readEmail. Estas son las entidades: contactName, message.

El modelo podría hacer las siguientes predicciones:

Expresión Intención prevista Intención real Entidad prevista Entidad real
Hacer una respuesta que diga muchas gracias Responder Responder thank you very much como message thank you very much como message
responda con un sí sendEmail Responder -- yes como message
Comprobar mi correo electrónico readEmail readEmail -- --
envíar un correo electrónico a Cynthia que diga que la cena de la semana pasada estuvo espléndida Responder sendEmail dinner last week was splendid como message cynthia como contactName, dinner last week was splendid como message
Enviar un correo electrónico a Mike sendEmail sendEmail mike como message mike como contactName

Evaluación a nivel de intención para la intención de Reply

Clave Count Explicación
Verdadero positivo 1 La expresión 1 se predijo correctamente como Reply.
Falso positivo 1 La expresión 4 se predijo erróneamente como Reply.
Falso negativo 1 La expresión 2 se predijo erróneamente como sendEmail.

Precisión = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

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

Puntuación F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Evaluación a nivel de intención para la intención sendEmail

Clave Count Explicación
Verdadero positivo 1 La expresión 5 se predijo correctamente como sendEmail
Falso positivo 1 La expresión 2 se predijo erróneamente como sendEmail.
Falso negativo 1 La expresión 4 se predijo erróneamente como Reply.

Precisión = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

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

Puntuación F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Evaluación a nivel de intención para la intención readEmail

Clave Count Explicación
Verdadero positivo 1 La expresión 3 se predijo correctamente como readEmail.
Falso positivo 0 --
Falso negativo 0 --

Precisión = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

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

Puntuación F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 1) / (1 + 1) = 1

Evaluación a nivel de entidad para la entidad contactName

Clave Count Explicación
Verdadero positivo 1 cynthia se predijo correctamente como contactName en la expresión 4
Falso positivo 0 --
Falso negativo 1 mike se predijo erróneamente como message en la expresión 5

Precisión = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

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

Puntuación F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.5) / (1 + 0.5) = 0.67

Evaluación a nivel de entidad para la entidad message

Clave Count Explicación
Verdadero positivo 2 thank you very much se predijo correctamente como message en la expresión 1 y dinner last week was splendid se predijo correctamente como message en la expresión 4
Falso positivo 1 mike se predijo erróneamente como message en la expresión 5
Falso negativo 1 yes no se predijo como message en la expresión 2

Precisión = #True_Positive / (#True_Positive + #False_Positive) = 2 / (2 + 1) = 0.67

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

Puntuación F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67

Evaluación a nivel de modelo para el modelo colectivo

Clave Count Explicación
Verdadero positivo 6 Suma de VP para todas las intenciones y entidades
Falso positivo 3 Suma de FP para todas las intenciones y entidades
Falso negativo 4 Suma de FN para todas las intenciones y entidades

Precisión = #True_Positive / (#True_Positive + #False_Positive) = 6 / (6 + 3) = 0.67

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

Puntuación F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.60) / (0.67 + 0.60) = 0.63

Matriz de confusión

Una matriz de confusión es una matriz N x N que se usa para la evaluación del rendimiento del modelo, donde N es el número de entidades o intenciones. La matriz compara las etiquetas esperadas con las previstas por el modelo. Esto proporciona una vista holística de cómo funciona el modelo y qué tipos de errores está cometiendo.

Puede usar la matriz de confusión para identificar las intenciones o entidades que están demasiado cerca unas de otras y que a menudo se confunden (ambigüedad). En este caso, considere la posibilidad de combinar estas intenciones o entidades. Si no es posible, considere la posibilidad de agregar más ejemplos etiquetados de ambas intenciones o intenciones para ayudar al modelo a diferenciarlas.

La diagonal resaltada en la imagen siguiente son las entidades predichas correctamente, donde la etiqueta predicha es la misma que la etiqueta real.

Captura de pantalla de una matriz de confusión de ejemplo

Puede calcular las métricas de evaluación a nivel de intención, a nivel de entidad y a nivel de modelo a partir de la matriz de confusión:

  • Los valores de la diagonal son los valores verdaderos positivos de cada intención o entidad.
  • La suma de los valores de las filas de intención o entidad (sin incluir la diagonal) es el falso positivo del modelo.
  • La suma de los valores de las columnas de intención o entidad (sin incluir la diagonal) es el falso negativo del modelo.

De forma similar:

  • El verdadero positivo del modelo es la suma de verdaderos positivos de todas las intenciones o entidades.
  • El falso positivo del modelo es la suma de falsos positivos de todas las intenciones o entidades.
  • El falso negativo del modelo es la suma de falsos negativos de todas las intenciones o entidades.

Instrucciones

Después de entrenar el modelo, verá algunas instrucciones y recomendaciones sobre cómo mejorarlo. Se recomienda tener un modelo que abarque todos los puntos de la sección de instrucciones.

  • El conjunto de entrenamiento tiene suficientes datos: cuando una intención o entidad tiene menos de 15 instancias etiquetadas en los datos de entrenamiento, puede provocar una menor precisión debido a que el modelo no se entrena adecuadamente en esa intención. En este caso, considere la posibilidad de agregar más datos etiquetados en el conjunto de entrenamiento. Solo debe considerar agregar más datos etiquetados a su entidad si su entidad tiene un componente aprendido. Si su entidad está definida únicamente por componentes de lista, preconstruidos y regex, esta recomendación no es aplicable.

  • Todas las intenciones o entidades están presentes en el conjunto de pruebas: cuando los datos de prueba carecen de instancias etiquetadas para una intención o entidad, la evaluación del modelo es menos exhaustiva debido a los escenarios no probados. Considere la posibilidad de tener datos de prueba para cada intención y entidad en su modelo para asegurarse de que todo se está probando.

  • Distinción poco clara entre intenciones o entidades: Cuando los datos son similares para diferentes intenciones o entidades, puede dar lugar a una menor precisión, ya que con frecuencia se clasifican erróneamente entre sí. Revise las siguientes intenciones y entidades y considere la posibilidad de combinarlos si son similares. De lo contrario, agregue más ejemplos para distinguirlos entre sí. Puede consultar la pestaña de la matriz de confusión para obtener más instrucciones. Si ve que dos entidades se predicen constantemente para los mismos intervalos porque comparten la misma lista, precompilación o componentes regex, asegúrese de agregar un componente aprendido para cada entidad y hágalo obligatorio. Más información sobre los componentes de entidades.

Pasos siguientes

Entrenamiento de un modelo en Language Studio