Compartir vía


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 pruebe 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 se inicia mediante el modelo entrenado para predecir intenciones y entidades definidas por el usuario para expresiones en el conjunto de pruebas. A continuación, el proceso los compara con las etiquetas proporcionadas para establecer una base de referencia de la verdad. 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 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 nivel de intención).
  • Para el modelo en su conjunto (evaluación de nivel de 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

  • Crear una respuesta que diga "thank you very much".
  • Responder con "yes".
  • Compruebe mi correo electrónico.
  • Enviar un correo electrónico a Cynthia que diga "dinner last week was splendid"
  • Enviar un correo electrónico a Mike.

Las intenciones usadas son Reply, sendEmail y readEmail. Las entidades son contactName y message.

El modelo podría hacer las siguientes predicciones:

Expresión Intención prevista Intención real Entidad prevista Entidad real
Crear una respuesta que diga "thank you very much" Responder Responder thank you very much como message thank you very much como message
Responder con "yes" sendEmail Responder -- yes como message
Comprobar mi correo electrónico readEmail readEmail -- --
Enviar un correo electrónico a Cynthia que diga "dinner last week was splendid" 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 Respuesta

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 verdaderos positivos para todas las intenciones y entidades.
Falso positivo 3 Suma de falsos positivos para todas las intenciones y entidades.
Falso negativo 4 Suma de falsos negativos 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. La matriz 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 la combinación no es posible, considere la posibilidad de agregar más ejemplos etiquetados de ambas intenciones o entidades para ayudar al modelo a diferenciarlas.

La diagonal resaltada en la siguiente imagen muestra las entidades predichas correctamente, donde la etiqueta de predicción es la misma que la etiqueta real.

Captura de pantalla en la que se muestra 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 manera 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.

Guía

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 combinarlas 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.