Partilhar via


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

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

A avaliação do modelo é acionada automaticamente após a conclusão bem-sucedida do treinamento. O processo de avaliação começa usando o modelo treinado para prever intenções e entidades definidas pelo usuário para enunciados no conjunto de testes. Em seguida, o processo as compara com as tags fornecidas para estabelecer uma linha de base da verdade. Os resultados são retornados para que você possa analisar o desempenho do modelo. Para avaliação, a compreensão da linguagem conversacional usa as seguintes métricas:

  • Precisão: Mede o quão preciso ou exato é o seu modelo. É a relação entre os positivos corretamente identificados (verdadeiros positivos) e todos os positivos identificados. A métrica de precisão revela quantas das classes previstas estão corretamente rotuladas.

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

  • Recall: Mede a capacidade do modelo de prever classes positivas reais. É a relação entre os verdadeiros positivos previstos e o que foi marcado. A métrica de recall revela quantas das classes previstas estão corretas.

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

  • Pontuação F1: A pontuação F1 é uma função de precisão e recordação. É necessário quando se procura um equilíbrio entre precisão e recordação.

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

A precisão, a recuperação e a pontuação F1 são calculadas para:

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

As definições de precisão, recordação e avaliação são as mesmas para avaliações em nível de entidade, nível de intenção e nível de modelo. No entanto, as contagens de verdadeiros positivos, falsos positivos e falsos negativos podem diferir. Por exemplo, considere o texto a seguir.

Exemplo

  • Faça uma resposta com "muito obrigado".
  • Responda dizendo "sim".
  • Verifique o meu e-mail, por favor.
  • E-mail para Cynthia que o jantar na semana passada foi esplêndido.
  • Envie um e-mail para Mike.

As intenções utilizadas são Reply, sendEmaile readEmail. As entidades são contactName e message.

O modelo poderia fazer as seguintes previsões:

Expressão Intenção prevista Intenção real Entidade prevista Entidade real
Faça uma resposta com "muito obrigado" Resposta Resposta thank you very much como message thank you very much como message
Responda dizendo "sim" enviar e-mail Resposta -- yes como message
Verifique o meu e-mail por favor lerE-mail lerE-mail -- --
E-mail para Cynthia que o jantar na semana passada foi esplêndido Resposta enviar e-mail dinner last week was splendid como message cynthia como contactName, dinner last week was splendid como message
Enviar um e-mail para Mike enviar e-mail enviar e-mail mike como message mike como contactName

Avaliação de nível de intenção para intenção de resposta

Chave Count Explicação
Verdadeiro positivo 1 O enunciado 1 foi corretamente previsto como Reply.
Falso positivo 1 O enunciado 4 foi erroneamente previsto como Reply.
Falso negativo 1 O enunciado 2 foi erroneamente previsto como sendEmail.

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

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

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

Avaliação de nível de intenção para enviar intenção de e-mail

Chave Count Explicação
Verdadeiro positivo 1 O enunciado 5 foi corretamente previsto como sendEmail.
Falso positivo 1 O enunciado 2 foi erroneamente previsto como sendEmail.
Falso negativo 1 O enunciado 4 foi erroneamente previsto como Reply.

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

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

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

Avaliação de nível de intenção para leituraIntenção de e-mail

Chave Count Explicação
Verdadeiro positivo 1 O enunciado 3 foi corretamente previsto como readEmail.
Falso positivo 0 --
Falso negativo 0 --

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

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

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

Avaliação em nível de entidade para entidade contactName

Chave Count Explicação
Verdadeiro positivo 1 cynthia foi corretamente previsto como contactName no enunciado 4.
Falso positivo 0 --
Falso negativo 1 mike foi erroneamente previsto como message no enunciado 5.

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

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

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

Avaliação em nível de entidade para entidade de mensagem

Chave Count Explicação
Verdadeiro positivo 2 thank you very much foi corretamente previsto como message no enunciado 1 e dinner last week was splendid foi corretamente previsto como message no enunciado 4.
Falso positivo 1 mike foi erroneamente previsto como message no enunciado 5.
Falso negativo 1 yes não foi previsto como message no enunciado 2.

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

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

Pontuaçã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 Count Explicação
Verdadeiro positivo 6 Soma de verdadeiros positivos para todos os propósitos e entidades.
Falso positivo 3 Soma de falsos positivos para todos os propósitos e entidades.
Falso negativo 4 Soma de falsos negativos para todos os efeitos e entidades.

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

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

Pontuaçã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 usada para avaliação de desempenho do modelo, onde N é o número de entidades ou intenções. A matriz compara os rótulos esperados com os previstos pelo modelo. A matriz dá uma visão holística do desempenho do modelo e dos tipos de erros que está cometendo.

Você pode usar a matriz de confusão para identificar intenções ou entidades que estão muito próximas umas das outras e muitas vezes se enganam (ambiguidade). Neste caso, considere fundir essas intenções ou entidades. Se a fusão não for possível, considere adicionar mais exemplos marcados de ambas as intenções ou entidades para ajudar o modelo a diferenciá-las.

A diagonal realçada na imagem a seguir mostra as entidades previstas corretamente, onde a tag prevista é a mesma que a tag real.

Captura de tela que mostra um exemplo de matriz de confusão.

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

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

Do mesmo modo:

  • O verdadeiro positivo do modelo é a soma dos verdadeiros positivos para todas as intenções ou entidades.
  • O falso positivo do modelo é a soma dos 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 treinar seu modelo, você verá algumas orientações e recomendações sobre como melhorá-lo. Recomendamos que você tenha um modelo que abranja todos os pontos da seção de orientações.

  • O conjunto de treinamento tem dados suficientes: quando uma intenção ou entidade tem menos de 15 instâncias rotuladas nos dados de treinamento, isso pode levar a uma precisão menor porque o modelo não é treinado adequadamente nessa intenção. Nesse caso, considere adicionar mais dados rotulados no conjunto de treinamento. Você só deve considerar a adição de mais dados rotulados à sua entidade se ela tiver um componente aprendido. Se sua entidade for definida apenas por componentes de lista, pré-criados e regex, essa recomendação não se aplica.
  • Todas as intenções ou entidades estão presentes no conjunto de testes: quando os dados de teste não têm instâncias rotuladas 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 em seu modelo para garantir que tudo esteja sendo testado.
  • Distinção pouco clara entre intenções ou entidades: Quando os dados são semelhantes para diferentes intenções ou entidades, isso pode levar a uma menor precisão, porque eles podem ser frequentemente classificados incorretamente uns como os outros. Analise as seguintes intenções e entidades e considere mesclá-las se forem semelhantes. Caso contrário, adicione mais exemplos para melhor distingui-los uns dos outros. Pode consultar o separador Matriz de confusão para obter mais orientações. Se você estiver vendo duas entidades sendo constantemente previstas para as mesmas extensões porque elas compartilham os mesmos componentes de lista, pré-construídos ou regex, certifique-se de adicionar um componente aprendido para cada entidade e torná-lo necessário. Saiba mais sobre os componentes da entidade.