Métricas Comuns em Machine Learning: como analisar a qualidade de chatbots inteligentes — conceitos (2 de 4)
No artigo anterior falamos que utilizar a acurácia (precisão geral) ao analisar a qualidade de um chat bot pode não ser a melhor opção visto que essa técnica não leva em conta a existência de falsos positivos, distribuição de exemplos e outros fatores que afetam o treinamento. Aqui sugerimos uma outra forma de fazer tais medições:
Uma análise mais realista
Neste artigo trazemos conceitos gerais de Machine Learning aplicados na medição da qualidade de chat bots criados com o Conversation mas que não se restringem a essa API.
Essas mesmas métricas podem ser utilizadas na análise de qualquer chat bot criado com inteligência artificial e também em outros problemas de classificação como reconhecimento de imagens e termos linguísticos.
Conceitos base
Para analisar a qualidade dos nossos modelos de machine learning (e bots) precisamos conhecer primeiro o conceito de matriz de confusão uma vez que a mesma facilita a análise visual do desempenho do nosso sistema cognitivo.
Matriz de Confusão (exemplo)
Bem mais fácil do que ficar explicando teoria é mostrar um exemplo, certo? Então vamos assumir que nosso chat bot de uma pizzaria possui três classes (intenções): #realizarPedido, #obterStatus e #horarioAtendimento e nelas possuímos, respectivamente, dez, nove e doze exemplos de interações.
Nossa matriz de confusão, em um mundo ideal, ficaria da seguinte forma:
Mas na realidade o nosso modelo não acertará todas as vezes: quando temos exemplos novos existirão situações nas quais uma interação que deveria ser classificada como #obterStatus é classificada como #realizarPedido ou algum outro tipo de classificação errada ocorre.
O mais comum é obtermos uma matriz de confusão semelhante a seguinte (perceba que a soma das linhas continua a mesma que na matriz ideal):
Agora que conhecemos a matriz de confusão como podemos interpretá-la?
É simples perceber que, a partir da matriz acima, nosso modelo distingue bem quando inserimos um exemplo da classe #horarioAtendimento mas encontra dificuldades quando tentamos separar #realizarPedido de #obterStatus.
Vamos falar de mais um conceito, a tabela de confusão, antes de entrar na análise real.
Tabela de Confusão
A tabela de confusão nos permite realizar uma análise mais detalhada da situação do nosso classificador uma vez que ela distingue nossos resultados em quatro classes. Vamos utilizar o exemplo de um classificador binário (classificar se um e-mail é ou não spam):
- True positive (TP) ou Verdadeiros Positivos (VP): casos em que retornamos a classe SPAM e o e-mail realmente era de spam.
- False positives (FP) ou Falsos positivos (FP): casos em que retornamos a classe SPAM e na verdade eram e-mails comuns.
- True Negative (TN) ou Falsos Verdadeiros (FV): casos que retornamos que era e-mail comum (ausência de spam) e realmente eram.
- False Negative (FN) ou Falsos Negativos (FN): retornamos que não eram spam e na verdade eram spam.
No caso do chat bot em que temos múltiplas classes podemos calcular essas métricas da seguinte forma:
- Verdadeiros Positivos e Verdadeiros Negativos fazem compõem um mesmo conjunto (pintados de roxo na tabela abaixo)
- Falsos positivos ficarão na última linha da tabela enquanto os falsos negativos irão para a última coluna a direita, podemos ver que a soma destes conjuntos é a mesma.
Ou então poderíamos utilizar a tabela de confusão ao transformarmos o problema em um problema binário. Para isso devemos analisar o classificador sob a ótica de uma classe específica por vez, ou seja, ao analisarmos o retorno faremos a mesma análise para cada uma das classes da seguinte maneira:
Dado a entrada X, o resultado pertence (SIM) ou não pertence (NÃO) a classe Y?
Com isso teremos uma tabela de confusão para cada classe e então poderíamos assumir as métricas gerais do classificador como sendo as médias das métricas das classes que o compõem.
Próximo Passo
Nessa hora você já deve ter imaginado diversas maneiras diferentes de analisar o seu chat bot, certo? No próximo artigo vamos falar de alguns desses métodos de análise utilizando os conceitos aqui explorados.