Share via


Métricas de avaliação para modelos de compreensão de linguagem de conversação

O conjunto de dados é dividido em duas partes: um conjunto para preparação e um conjunto para teste. O conjunto de preparação é utilizado para preparar o modelo, enquanto o conjunto de testes é utilizado como um teste para o modelo após a preparação para calcular o desempenho e a avaliação do modelo. O conjunto de testes não é introduzido no modelo através do processo de preparação, para garantir que o modelo é testado em novos dados.

A avaliação do modelo é acionada automaticamente após a conclusão da preparação com êxito. O processo de avaliação começa por utilizar o modelo preparado para prever intenções e entidades definidas pelo utilizador para expressões no conjunto de teste e compara-as com as etiquetas fornecidas (que estabelece uma linha de base de verdade). Os resultados são devolvidos para que possa rever o desempenho do modelo. Para avaliação, a compreensão da linguagem de conversação utiliza as seguintes métricas:

  • Precisão: mede a precisão/precisão do modelo. É a proporção entre os positivos corretamente identificados (verdadeiros positivos) e todos os positivos identificados. A métrica de precisão revela quantas classes previstas estão etiquetadas corretamente.

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

  • Revocação: mede a capacidade do modelo de prever classes positivas reais. É a proporção entre os verdadeiros positivos previstos e o que foi realmente marcado. A métrica de resgate revela quantas das classes previstas estão corretas.

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

  • Classificação F1: a classificação F1 é uma função de Precisão e Revocação. É necessário quando procura um equilíbrio entre Precisão e Revocação.

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

A precisão, a revocação e a classificação F1 são calculadas para:

  • Cada entidade separadamente (avaliação ao nível da entidade)
  • Cada intenção separadamente (avaliação ao nível da intenção)
  • Para o modelo coletivamente (avaliação ao nível do modelo).

As definições de precisão, revocação e avaliação são as mesmas para avaliações ao nível da entidade, ao nível da intenção e ao nível do modelo. No entanto, as contagens de Verdadeiros Positivos, Falsos Positivos e Falsos Negativos podem ser diferentes. Por exemplo, considere o seguinte texto.

Exemplo

  • Faça uma resposta com muito obrigado.
  • responder com dizer sim.
  • Verifique o meu e-mail por favor.
  • e-mail para Cynthia que o jantar da semana passada foi esplêndido.
  • enviar e-mail para o Microfone

Estas são as intenções utilizadas: Responder,enviarEmail,readEmail. Estas são as entidades: contactName, mensagem.

O modelo pode fazer as seguintes predições:

Expressão Intenção prevista Intenção real Entidade prevista Entidade real
Faça uma resposta com muito obrigado Responder Responder thank you very much como message thank you very much como message
responder com dizer sim sendEmail Responder -- yes como message
Verifique o meu e-mail. readEmail readEmail -- --
e-mail para cynthia que o jantar da semana passada foi esplêndido Responder sendEmail dinner last week was splendid como message cynthia como contactName, dinner last week was splendid como message
enviar e-mail para o Microfone sendEmail sendEmail mike como message mike como contactName

Avaliação ao nível da intenção para a intenção Responder

Chave de palavras Explicação
Verdadeiro Positivo 1 A expressão 1 foi corretamente prevista como Resposta.
Falso Positivo 1 A expressão 4 foi erradamente prevista como Resposta.
Falso Negativo 1 A expressão 2 foi erradamente prevista como sendEmail.

Precisão = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

Revocação = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Classificação F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Avaliação ao nível da intenção para a intenção sendEmail

Chave de palavras Explicação
Verdadeiro Positivo 1 A expressão 5 foi corretamente prevista como sendEmail
Falso Positivo 1 A expressão 2 foi erradamente prevista como sendEmail.
Falso Negativo 1 A expressão 4 foi erradamente prevista como Resposta.

Precisão = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

Revocação = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Classificação F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

Avaliação ao nível da intenção para a intenção readEmail

Chave de palavras Explicação
Verdadeiro Positivo 1 A expressão 3 foi corretamente prevista como readEmail.
Falso Positivo 0 --
Falso Negativo 0 --

Precisão = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Revocação = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 0) = 1

Classificação F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 1) / (1 + 1) = 1

Avaliação ao nível da entidade do contactName

Chave de palavras Explicação
Verdadeiro Positivo 1 cynthia foi corretamente previsto como contactName na expressão 4
Falso Positivo 0 --
Falso Negativo 1 mike foi erroneamente previsto como message na expressão 5

Precisão = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

Revocação = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

Classificação F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.5) / (1 + 0.5) = 0.67

Avaliação ao nível da entidade de entidade para a entidade de mensagem

Chave de palavras Explicação
Verdadeiro Positivo 2 thank you very much foi corretamente previsto como message na expressão 1 e dinner last week was splendid foi corretamente previsto como message na expressão 4
Falso Positivo 1 mike foi erroneamente previsto como message na expressão 5
Falso Negativo 1 yes não foi previsto como message na expressão 2

Precisão = #True_Positive / (#True_Positive + #False_Positive) = 2 / (2 + 1) = 0.67

Revocação = #True_Positive / (#True_Positive + #False_Negatives) = 2 / (2 + 1) = 0.67

Classificação F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67

Avaliação ao nível do modelo para o modelo coletivo

Chave de palavras Explicação
Verdadeiro Positivo 6 Soma de TP para todas as intenções e entidades
Falso Positivo 3 Soma de FP para todas as intenções e entidades
Falso Negativo 4 Soma de FN para todas as intenções e entidades

Precisão = #True_Positive / (#True_Positive + #False_Positive) = 6 / (6 + 3) = 0.67

Revocação = #True_Positive / (#True_Positive + #False_Negatives) = 6 / (6 + 4) = 0.60

Classificação F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.60) / (0.67 + 0.60) = 0.63

A matriz de confusão

Uma matriz de Confusão é uma matriz N x N utilizada para a avaliação do desempenho do modelo, em que N é o número de entidades ou intenções. A matriz compara as etiquetas esperadas com as previstas pelo modelo. Isto dá uma visão holística do desempenho do modelo e dos tipos de erros que está a efetuar.

Pode utilizar a Matriz de confusão para identificar intenções ou entidades demasiado próximas umas das outras e muitas vezes se enganam (ambiguidade). Neste caso, considere unir estas intenções ou entidades. Se isso não for possível, considere adicionar mais exemplos etiquetados de intenções ou entidades para ajudar o modelo a diferenciar as mesmas.

A diagonal realçada na imagem abaixo são as entidades corretamente previstas, em que a etiqueta prevista é igual à etiqueta real.

Uma captura de ecrã de uma matriz de confusão de exemplo

Pode calcular as métricas de avaliação ao nível da intenção ou ao nível da entidade e ao nível do modelo a partir da matriz de confusão:

  • Os valores na diagonal são os valores Verdadeiro Positivo de cada intenção ou entidade.
  • A soma dos valores nas linhas de intenções ou entidades (excluindo a diagonal) é o falso positivo do modelo.
  • A soma dos valores nas colunas de intenções ou entidades (excluindo a diagonal) é o falso Negativo do modelo.

Da mesma forma:

  • O verdadeiro positivo do modelo é a soma dos verdadeiros Positivos para todas as intenções ou entidades.
  • O falso positivo do modelo é a soma de falsos positivos para todas as intenções ou entidades.
  • O falso Negativo do modelo é a soma de falsos negativos para todas as intenções ou entidades.

Orientação

Depois de preparar o modelo, verá algumas orientações e recomendações sobre como melhorar o modelo. Recomenda-se que tenha um modelo que abranja todos os pontos na secção de orientação.

  • O conjunto de preparação tem dados suficientes: quando uma intenção ou entidade tem menos de 15 instâncias etiquetadas nos dados de preparação, pode levar a uma menor precisão, porque o modelo não está a ser preparado adequadamente nessa intenção. Neste caso, considere adicionar mais dados etiquetados no conjunto de preparação. Só deve considerar adicionar mais dados etiquetados à sua entidade se a sua entidade tiver um componente aprendido. Se a sua entidade for definida apenas por componentes de lista, pré-criados e regex, esta recomendação não é aplicável.

  • Todas as intenções ou entidades estão presentes no conjunto de testes: quando os dados de teste não têm instâncias etiquetadas para uma intenção ou entidade, a avaliação do modelo é menos abrangente devido a cenários não testados. Considere ter dados de teste para cada intenção e entidade no seu modelo para garantir que tudo está a ser testado.

  • Distinção pouco clara entre intenções ou entidades: quando os dados são semelhantes para diferentes intenções ou entidades, pode levar a uma menor precisão, uma vez que podem ser frequentemente mal classificados entre si. Reveja as seguintes intenções e entidades e considere intercalá-las se forem semelhantes. Caso contrário, adicione mais exemplos para os distinguir melhor uns dos outros. Pode verificar o separador matriz de confusão para obter mais orientações. Se estiver a ver duas entidades constantemente a serem previstas para os mesmos intervalos porque partilham a mesma lista, componentes pré-criados ou regex, certifique-se de que adiciona um componente aprendido para cada entidade e o torna necessário. Saiba mais sobre os componentes de entidades.

Passos seguintes

Preparar um modelo no Language Studio