Dados, Data Science, Deep Learning, Recuperação da Informação

Rotulando com o Active Learning

A verdade feia por trás de todos esses dados

Estamos na era dos dados. Nos últimos anos, muitas empresas já começaram a coletar grandes quantidades de dados sobre seus negócios. Por outro lado, muitas empresas estão apenas começando. Se você trabalha em uma dessas empresas, pode estar se perguntando o que pode ser feito com todos esses dados.

Que tal usar os dados para treinar um algoritmo de aprendizado de máquina supervisionado (ML – Machine Learning)? O algoritmo ML poderia executar a mesma tarefa de classificação que um ser humano faria, muito mais rápido! Poderia reduzir custos e ineficiências. Pode funcionar com os dados combinados, como imagens, documentos de texto e apenas números simples. Poderia fazer todas essas coisas e até obter essa vantagem sobre a concorrência.

No entanto, antes que você possa treinar qualquer modelo supervisionado decente, você precisa de dados básicos da verdade. Geralmente, os modelos supervisionados de ML são treinados em registros de dados antigos que já estão rotulados de alguma forma. Os modelos treinados são aplicados para executar previsões de rótulos em novos dados. E esta é a verdade feia: antes de prosseguir com qualquer treinamento de modelo, qualquer definição de problema de classificação ou qualquer entusiasmo adicional na coleta de dados, você precisa de um conjunto suficientemente grande de registros de dados rotulados corretamente para descrever seu problema. E a rotulagem de dados – especialmente em uma quantidade suficientemente grande – é … cara.

Até agora, você já fez as contas rapidamente e percebeu quanto dinheiro ou tempo (ou ambos) seriam necessários para rotular manualmente todos os dados. Alguns dados são relativamente fáceis de rotular e requerem pouco conhecimento e experiência no domínio. Mas eles ainda exigem muito tempo de rotuladores menos qualificados. Outros dados requerem conhecimento muito preciso (e caro) desse domínio do setor, provavelmente envolvendo meses de trabalho, software caro e, finalmente, alguma burocracia complexa para tornar os dados acessíveis aos especialistas em domínio. O problema passa de meramente caro para proibitivamente caro. Assim como seus sonhos de usar os dados da empresa para treinar um modelo de aprendizado de máquina supervisionado.

A menos que você tenha feito alguma pesquisa e se deparado com um conceito chamado “aprendizado ativo” (Active Learning), uma instância especial de aprendizado de máquina que pode ser útil para resolver seu problema de escassez de etiquetas (rótulos).

O que é aprendizado ativo (Active Learning)?

O aprendizado ativo é um procedimento para rotular manualmente apenas um subconjunto dos dados disponíveis e inferir os rótulos restantes automaticamente usando um modelo de aprendizado de máquina.

O modelo de aprendizado de máquina selecionado é treinado nos dados disponíveis rotulados manualmente e depois aplicado aos dados restantes para definir automaticamente seus rótulos. A qualidade do modelo é avaliada em um conjunto de testes que foi extraído dos dados rotulados disponíveis. Se a qualidade do modelo for considerada suficientemente precisa, os rótulos de classe inferidos estendidos aos dados não-rotulados serão aceitos. Caso contrário, um subconjunto adicional de novos dados será extraído, rotulado manualmente e o modelo novamente treinado. Como o subconjunto inicial de dados rotulados pode não ser suficiente para treinar completamente um modelo de aprendizado de máquina, algumas iterações desta etapa de rotulagem manual podem ser necessárias. A cada iteração, um novo subconjunto de dados a ser rotulado manualmente precisa ser identificado.

Assim como na análise humana no loop, o aprendizado ativo consiste em adicionar o humano a rotular dados manualmente entre diferentes iterações do processo de treinamento do modelo (Fig. 1). Aqui, humano e modelo se revezam na classificação, isto é, na rotulagem de instâncias não identificadas dos dados, repetindo as etapas a seguir.

Etapa a – Rotulagem manual de um subconjunto de dados

No início de cada iteração, um novo subconjunto de dados é rotulado manualmente. O usuário precisa inspecionar os dados e entendê-los. Isso pode ser facilitado pela visualização adequada dos dados.

Etapa b – Treinamento e avaliação do modelo

Em seguida, o modelo é treinado novamente em todo o conjunto de etiquetas disponíveis. O modelo treinado é então aplicado para prever os rótulos de todos os pontos de dados não rotulados restantes. A precisão do modelo é calculada através da média de um loop de validação cruzada (cross validation) no mesmo conjunto de treinamento. No início, o valor da precisão pode oscilar consideravelmente, pois o modelo ainda está aprendendo com base em apenas alguns pontos de dados. Quando a precisão estabiliza em torno de um valor maior que a frequência da classe mais frequente e o valor da precisão não aumenta mais – não importa quantos registros de dados sejam rotulados, esse procedimento de aprendizado ativo pode parar.

Etapa c – Amostragem de dados

Vamos ver agora como, a cada iteração, outro subconjunto de dados é extraído para rotulagem manual. Existem diferentes maneiras de executar essa etapa (consulta por comitê, alteração esperada do modelo, redução esperada de erros etc.). No entanto, a estratégia mais simples e popular é a amostragem de incertezas .

Essa técnica é baseada no seguinte conceito: A contribuição humana é fundamental quando o modelo é incerto. Essa situação de incerteza ocorre quando o modelo está enfrentando um cenário invisível, em que nenhum dos padrões conhecidos corresponde. É aqui que rotular com a ajuda de um humano – o usuário – pode mudar o jogo. Isso não apenas fornece rótulos adicionais, mas fornece rótulos para dados que o modelo nunca viu. Ao executar a amostragem de incerteza, o modelo pode precisar de ajuda no início do procedimento para classificar casos simples, pois o modelo ainda está aprendendo o básico e possui muita incerteza. No entanto, após algumas iterações, o modelo precisará de informações humanas apenas para casos estatisticamente mais raros e complexos.

Após esta etapa c, sempre recomeçamos do início, etapa a. Essa sequência de etapas ocorrerá até que o usuário decida parar. Isso geralmente acontece quando o modelo não pode ser aprimorado adicionando mais etiquetas.

Por que precisamos de um procedimento tão complexo como o aprendizado ativo?

Bem, a resposta curta é: economizar tempo e dinheiro. A alternativa provavelmente seria contratar mais pessoas e rotular todo o conjunto de dados manualmente. Em comparação, rotular instâncias usando uma abordagem de aprendizado ativo é, obviamente, mais eficiente.

Amostragem de incerteza

Vamos dar uma olhada agora no procedimento de amostragem de incertezas.

Quanto a um bom aluno, é mais útil esclarecer o que não está claro do que repetir o que o aluno já assimilou. Da mesma forma, é mais útil adicionar rótulos manuais aos dados que o modelo não pode classificar com segurança do que aos dados em que o modelo já está confiável.

Dados em que o modelo gera etiquetas diferentes com probabilidades comparáveis ​​são os dados sobre os quais o modelo é incerto. Por exemplo, em um problema de classificação binária, as instâncias mais incertas são aquelas com uma probabilidade de classificação de cerca de 50% para ambas as classes. Em um problema de classificação múltipla, as previsões de incerteza mais altas acontecem quando todas as probabilidades de classe estão próximas. Isso pode ser medido através da fórmula da entropia da teoria da informação ou, melhor ainda, de uma versão normalizada da pontuação da entropia .

Vamos considerar duas linhas de dados diferentes que alimentam um modelo de classificação de 3 classes. Prevê-se que a primeira linha pertença à classe 1 (rótulo 1) com 90% de probabilidade e à classe 2 e classe 3 com apenas 5% de probabilidade. A previsão aqui é clara: rótulo 1. A segunda linha de dados, no entanto, recebeu uma probabilidade de pertencer a todos os três rótulos de 33%. Aqui a atribuição de classe é mais complicada.

Vamos medir a entropia deles. Os dados na Row1 têm um valor de entropia mais alto que os da Row0 (Tabela 1), e isso não é surpreendente. Essa seleção via pontuação de entropia pode funcionar com qualquer número  de classes. O único requisito é que a soma das probabilidades do modelo sempre adicione 1.

Resumindo, um bom sistema de aprendizado ativo deve extrair todas essas linhas para rotulagem manual que se beneficiarão mais da experiência humana, e não de cenários mais óbvios. Após algumas iterações, o human-in-the-loop deve encontrar a seleção de linhas de dados para rotular menos aleatória e mais exclusiva.

Aprendizado ativo como aplicativo da Web de rotulagem guiada

Nesta seção, gostaríamos de descrever um aplicativo da web blueprint pré-configurado e gratuito que implementa o procedimento de aprendizado ativo em documentos de texto, usando o software KNIME e envolvendo rotulagem humana entre uma iteração e a próxima. Como ele tira proveito do recurso Guifed Analytics, foi nomeado “Rotulagem Guiada” (Guided Labeling).

O aplicativo oferece um conjunto de dados padrão de resenhas de filmes do Kaggle. Neste artigo, focamos em uma tarefa de análise de sentimentos nesse conjunto de dados padrão. O conjunto de rótulos é, portanto, bastante simples e inclui apenas dois: “bom” e “ruim”.

O aplicativo Rotulagem Guiada consiste em três estágios (Fig. 2).

  1. Upload de dados e definição de conjunto de etiquetas. O usuário, nosso “humano no circuito”, inicia o aplicativo e carrega todo o conjunto de dados de documentos a serem rotulados e o conjunto de rótulos a serem aplicados (a ontologia).
  2. Aprendizado ativo. Esta etapa implementa o ciclo de aprendizado ativo.
  • Iteração após a iteração, o usuário rotula manualmente um subconjunto de linhas de dados incertas.
  • O modelo de aprendizado de máquina selecionado é subsequentemente treinado e avaliado no subconjunto restante de dados rotulados. O aumento na precisão do modelo é monitorado até estabilizar e / ou parar de aumentar.
  • Se a qualidade do modelo ainda não for suficiente, um novo subconjunto de dados contendo as previsões mais incertas será extraído para a próxima rodada de rotulagem manual por meio de amostragem de incerteza.
  1. Download do conjunto de dados rotulado. Uma vez decidido que a qualidade do modelo é suficiente, todo o conjunto de dados rotulado – com rótulos humanos e modelo – é exportado. O modelo é treinado novamente pela última vez em todas as instâncias disponíveis, usado para classificar documentos que ainda não estão rotulados e, em seguida, é disponibilizado para download em implantações futuras.

Da perspectiva do usuário final, esses três estágios se traduzem na seguinte sequência de páginas da Web (Fig. 3).

Na primeira página, o usuário final tem a possibilidade de fazer upload do conjunto de dados e definir o conjunto de etiquetas. A segunda página é uma interface de usuário fácil para a rotulagem manual rápida do subconjunto de dados a partir da amostragem de incertezas.

Observe que esta segunda página pode exibir uma nuvem de tags de termos representativos das diferentes classes. As nuvens de tags são uma visualização usada para mostrar rapidamente os termos relevantes em um texto longo que seria muito complicado para ler na íntegra. Podemos usar os termos na nuvem de tags para indexar rapidamente documentos que provavelmente serão rotulados com a mesma classe. As palavras são extraídas de documentos rotulados manualmente pertencentes à mesma classe. Os 50 termos mais frequentes entre classes são selecionados. Desses 50 termos, apenas os termos presentes nos documentos ainda não rotulados são exibidos em uma nuvem de tags interativa e codificados por cores, dependendo da classe do documento.

Existem duas opções de rotulagem aqui:

  • Rotule os documentos incertos um por um, conforme são apresentados em ordem decrescente de incerteza. Essa é a maneira clássica de prosseguir com a rotulagem em um ciclo de aprendizado ativo.
  • Selecione uma das palavras na nuvem de tags e continue rotulando os documentos relacionados. Essa segunda opção, embora menos tradicional, permite que o usuário final economize tempo. Vamos dar o exemplo de uma tarefa de análise de sentimentos: ao selecionar uma palavra “positiva” na nuvem de tags, a maioria das críticas “positivas” aparecerá na lista e, portanto, a rotulagem será mais rápida.

Nota. Este aplicativo de etiqueta guiada funciona apenas com documentos de texto. No entanto, essa mesma abordagem em três etapas também pode ser aplicada a outros tipos de dados, por exemplo, imagens ou dados tabulares numéricos.

Rotulagem guiada em detalhes

Vamos verificar esses três estágios, um por um, do ponto de vista do usuário final.

Etapa 1: Upload de dados e definição do conjunto de etiquetas

O primeiro estágio é o mais simples dos três, mas isso não o torna menos importante. Consiste em duas partes (Fig. 4):

  • upload de um arquivo CSV contendo documentos de texto com apenas dois recursos: “Título” e “Texto”.
  • definir o conjunto de classes, por exemplo, “doente” e “saudável” para diagnóstico de texto de prontuários ou “falso” e “real” para artigos de notícias. Se existirem muitas classes possíveis, podemos fazer upload de um arquivo CSV listando todos os valores possíveis de sequência que o rótulo pode assumir.

 

Etapa 2: Aprendizado ativo

Agora é hora de iniciar o processo iterativo de rotulagem manual.

Para realizar o aprendizado ativo, precisamos concluir três etapas, assim como no diagrama no início do artigo (Fig. 1).

Etapa 2a – Rotulagem manual de um subconjunto de dados

O subconjunto de dados a ser rotulado é extraído aleatoriamente e apresentado no lado esquerdo (Fig. 5.1 A) como uma lista de documentos.

Se esta for a primeira iteração, nenhuma nuvem de tags será exibida, pois nenhuma classe foi atribuída. Vamos em frente e, um após o outro, selecione, leia e rotule todos os documentos como “bons” ou “ruins”, de acordo com o que eles pensam (Fig. 5.1 B).

A legenda exibida no centro mostra as cores e os rótulos a serem usados. Somente documentos rotulados serão salvos e passados ​​para a próxima fase de treinamento do modelo. Portanto, se um erro de digitação for detectado ou um documento for pulado, isso não será incluído no conjunto de treinamento e não afetará nosso modelo. Quando terminarmos a rotulagem manual, podemos clicar em “Avançar” na parte inferior para iniciar a próxima etapa e passar para a próxima iteração.

Se essa não for mais a primeira iteração e se o modelo de aprendizado de máquina selecionado já tiver sido treinado, uma nuvem de tags será criada a partir dos documentos já rotulados. A nuvem de tags pode ser usada como um atalho para procurar documentos significativos a serem rotulados. Ao selecionar uma palavra, todos os documentos que contêm essa palavra são listados. Por exemplo, o usuário pode selecionar a palavra “horrível” na nuvem de palavras e depois passar por todos os documentos relacionados. É provável que todos precisem de uma etiqueta “ruim” (Fig 5.2)!

Etapa 2b – Treinamento e avaliação de um modelo XGBoost

Com base em um subconjunto dos poucos documentos rotulados a serem usados ​​como um conjunto de treinamento, um modelo XGBoost é treinado para prever o sentimento dos documentos. O modelo também é avaliado nos mesmos dados rotulados. Por fim, o modelo é aplicado a todos os dados para produzir uma previsão de etiqueta para cada documento de revisão.

Após rotular vários documentos, o usuário pode ver a precisão do modelo melhorando em um gráfico de barras. Quando a precisão atinge o desempenho desejado, o usuário pode marcar a caixa de seleção “Stop Labeling” na parte superior da página, clicar no botão “Next” e acessar a página de destino do aplicativo.

Etapa 2c – Amostragem de dados

Com base nas previsões do modelo, o marcador de entropia é calculado para todas as linhas de dados ainda não rotuladas; a amostragem de incerteza é aplicada para extrair o melhor subconjunto para a próxima fase da rotulagem manual. Todo o procedimento é reiniciado a partir da etapa 2a.

Etapa 3: Download do conjunto de dados rotulado

Chegamos ao final do aplicativo. O usuário final agora pode baixar o conjunto de dados rotulado, com rótulos humanos e de máquina, e o modelo treinado para rotular o conjunto de dados.

Duas nuvens de palavras são disponibilizadas para comparação: à direita, a nuvem de palavras daqueles documentos rotulados pelo ser humano no loop e, à esquerda, a nuvem de palavras dos documentos rotulados por máquina. Nas duas nuvens, as palavras são codificadas por cores pelo rótulo do documento: vermelho para “bom” e roxo para “ruim”. Se o modelo estiver executando um trabalho decente ao rotular novas instâncias, as duas nuvens de palavras devem ser semelhantes e a maioria das palavras deve tenham a mesma cor (fig. 6).

Rotulagem guiada para aprendizado ativo

Neste artigo, queríamos ilustrar como o aprendizado ativo pode ser usado para rotular um conjunto de dados completo enquanto investimos apenas uma quantidade fracionada de tempo na rotulagem manual. A ideia do aprendizado ativo é que treinamos um modelo de aprendizado de máquina suficientemente bem para poder delegá-lo à tarefa chata e cara da rotulagem de dados.

Mostramos as três etapas envolvidas em um procedimento de aprendizado ativo: rotulagem manual, treinamento e avaliação de modelos e amostragem de mais dados a serem rotulados. Também mostramos como implementar a interface do usuário correspondente em um aplicativo baseado na Web, incluindo alguns truques para acelerar o esforço de etiquetagem manual usando amostragem de incerteza.

O exemplo usado neste artigo se refere a uma tarefa de análise de sentimentos com apenas duas classes (“boa” e “ruim”) em documentos de revisão de filmes. No entanto, poderia ser estendido facilmente para outras tarefas, alterando o número e o tipo de classes. Por exemplo, poderia ser usado para detecção de tópicos em documentos de texto se fornecêssemos uma ontologia baseada em tópicos de possíveis rótulos (Fig. 7). Também poderia ser estendido da mesma forma a outros tipos de dados e tarefas de classificação.

O aplicativo Guided Labeling foi desenvolvido através de um fluxo de trabalho KNIME (Fig. 8).   Agora é sua vez de experimentar o aplicativo Guided Labeling. Veja como é fácil e rapidamente rotular os dados!

Fonte e direitos:
link – Publicado por Rosaria Silipo em 29 de agosto de 2019 às 11:30

Paolo Tamagnini contribuiu para este artigo. Ele é  cientista de dados no KNIME, possui mestrado em ciência de dados pela Universidade Sapienza de Roma e possui experiência de pesquisa na NYU em técnicas de visualização de dados para interpretabilidade de aprendizado de máquina. Siga Paolo no LinkedIn .

Traduzido pelo Google Translate.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s