Pular para o conteúdo
Ver todas as postagens

O contexto conta: como usar a aprendizagem por transferência e a rotulagem auxiliada por modelo para Modelos personalizados de dados de trem

Graças aos grandes avanços e descobertas na área de Processamento de Linguagem Natural (PLN), temos acesso a uma grande quantidade de recursos prontos para uso Classificadores de reconhecimento de entidade nomeada (NER)Esses classificadores estão disponíveis em muitas linguagens comuns e sua variedade está crescendo rapidamente. Existem modelos que abrangem entidades de linguagem relevantes para muitos casos de uso, prontos para uso. No entanto, em muitos casos, a funcionalidade pronta para uso não é suficiente para atingir o melhor desempenho para um uso específico devido à incompatibilidade entre os dados de produção e os dados com os quais o modelo foi treinado. Nesses casos, enriquecer os dados de treinamento com amostras adicionais melhora significativamente a precisão do modelo.

Neste artigo discutiremos:

  • Por que você deve considerar treinar seus próprios modelos
  • O uso da aprendizagem por transferência para reduzir custos de coleta de dados
  • Anotação de dados eficaz e eficiente com aprendizado de máquina

Por que você ainda deve considerar treinar seus próprios classificadores NER?

Ao treinar um modelo de aprendizado de máquina, não queremos apenas modelar os dados de treinamento. Queremos que o modelo tenha a capacidade de se adaptar e reagir a novos dados nunca antes vistos, extraídos de uma distribuição semelhante, mas não idêntica, à usada para treinar o modelo.

Por exemplo, quando construímos um modelo que visa reconhecer nomes completos em texto livre, queremos que ele seja capaz de reconhecer nomes que nem sequer aparecem no conjunto de dados de treinamento. Como? Considerando não apenas o nome em si, mas também seu contexto.

Considere a seguinte frase: "A primeira vez que usou sua espada, Arya Stark era apenas uma menina de nove anos". Usando o contexto, um modelo pode prever que Arya Stark é o nome de uma pessoa, mesmo que esse nome específico não apareça nos dados de treinamento.

Outro exemplo em que o contexto desempenha um papel importante é a capacidade de distinguir entre tipos de entidades, mesmo que a palavra em si seja a mesma. Usando pistas contextuais, um modelo pode aprender que "Apple" é uma organização em um contexto, mas é uma fruta em outro.

Essa consideração de contexto é a razão pela qual os dados de treinamento devem ser o mais representativos possível dos dados que processaremos na produção. Um modelo treinado com base em documentos da BBC, onde frases em primeira pessoa são extremamente raras, provavelmente terá um desempenho ruim em transcrições de filmes. Da mesma forma, um modelo treinado com base em coleções de literatura provavelmente terá um desempenho ruim em textos financeiros.

O custo de treinamento de um novo classificador

A vasta quantidade de ferramentas de aprendizado profundo e bibliotecas de código aberto disponíveis hoje, como o SpaCy, nos permite construir rapidamente novos classificadores NER. A coleta e a anotação de dados para um projeto como este são, de longe, a parte mais custosa e demorada.

Um projeto típico requer vários milhares de documentos para construir um corpus de treinamento representativo – e normalmente leva meses para coletar e anotar todos esses documentos.

Um estudo sobre a importância e o tempo gasto em diferentes etapas de modelagem (M. Arthur Munson, Laboratórios Nacionais de Sandia) mostra que a coleta, organização, limpeza e etiquetagem de dados podem levar cerca de 80% do tempo total gasto em um projeto.

Aprendizagem por transferência

É aí que entram os classificadores NER prontos para uso. Esses classificadores já são treinados em grandes conjuntos de dados de documentos, reduzindo os custos (tempo e recursos) da coleta de dados. O processo de pegar um modelo treinado e adaptá-lo aos seus dados específicos é chamado de aprendizagem por transferência.

A ideia central da aprendizagem por transferência é alavancar o conhecimento adquirido na resolução de um problema e aplicá-lo a um problema distinto, porém relacionado. Por exemplo, o conhecimento adquirido ao aprender a reconhecer nomes de pessoas também pode ser aplicado (transferido!) para reconhecer nomes de organizações.

Na prática, pegamos um modelo pré-treinado, atualizamos a variável-alvo de acordo com nossas necessidades e treinamos o novo modelo. Ao fazer isso, não começamos do zero, mas nos baseamos no aprendizado já adquirido pelo modelo pré-treinado. O uso da aprendizagem por transferência reduz significativamente a quantidade de dados que precisam ser anotados por rotuladores humanos, normalmente de vários milhares de exemplos para várias centenas.

Etiquetagem Assistida por Modelo

O problema é que mesmo anotar apenas centenas de exemplos é caro e exige muitos recursos. Rotular entidades em grandes documentos de texto livre é uma tarefa difícil, que exige muita concentração e está sujeita a erros humanos.

Uma maneira de reduzir a quantidade de trabalho de rotulagem é combinar um modelo de aprendizado de máquina no processo de anotação. A abordagem utiliza previsões do modelo para pré-anotar novos exemplos, permitindo que um humano revise rapidamente essas anotações, confirmando-as ou rejeitando-as conforme apropriado. Este é um processo iterativo com as seguintes etapas:

  1. Rotular um lote de exemplos
  2. Treinar um modelo (usando aprendizagem por transferência)
  3. Pré-etiquetar com modelo treinado
  4. Revise as previsões de baixa confiança
  5. Rotule um novo lote de exemplos (escolha aqueles cujo desempenho do modelo é baixo)
  6. Repita a partir do passo 2 até ficar satisfeito com os resultados

Se já tivermos um classificador NER com as entidades necessárias, a etapa inicial do processo muda. O primeiro passo é obter previsões do modelo (ou Regex) para usá-las para anotar documentos com pontuações baixas.

O processo então se torna:

  1. Pré-rotular com modelo treinado ou Regex
  2. Revise as previsões de baixa confiança
  3. Rotule um novo lote de exemplos (escolha aqueles cujo desempenho do modelo é baixo)
  4. Treinar um modelo (usando aprendizagem por transferência)
  5. Repita a partir do passo 1 até ficar satisfeito com os resultados

Benefícios da rotulagem com modelo no loop:

  • Eliminar em vez de reconhecer – A rotulagem de texto livre exige muita concentração por parte do rotulador, que precisa encontrar frases específicas em textos possivelmente longos. Esse tipo de tarefa é propenso a erros humanos e consome muito tempo (e requer conhecimento prévio da situação). Ao usar a pré-anotação, permitimos que o rotulador se concentre mais na eliminação de entidades rotuladas incorretamente, o que é uma tarefa muito mais fácil. Isso é feito ajustando os parâmetros do modelo para produzir previsões com alta taxa de recall.
  • Concentre-se nas tarefas importantes – calcular métricas do modelo nos dados de treinamento nos permite focar na rotulagem de novos documentos onde vemos que o modelo tem dificuldades.
  • Análise de erros – revisar previsões de falsos positivos/negativos como parte do processo de anotação pode identificar problemas como ambiguidade na definição da entidade no estágio inicial do projeto.

Ao aproveitar ao máximo a aprendizagem por transferência e a rotulagem auxiliada por modelo, podemos aproveitar a economia de tempo e recursos (humanos e de computador) na rotulagem e no treinamento para trazer modelos para nosso caso de uso de forma mais rápida e mais barata.

Com o BigID, você pode personalizar seus próprios classificadores NER, e até mesmo modelos para outras línguas para obter uma visão contextual mais profunda e precisa, adaptada aos seus conjuntos de dados específicos. Mergulhe e veja você mesmo com Curso de Classificação de Dados da BigID University.

Conteúdo