Amazon Comprehend anuncia limites de anotação mais baixos para reconhecimento de entidade personalizada PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Amazon Comprehend anuncia limites de anotação mais baixos para reconhecimento de entidade personalizada

Amazon Comprehend é um serviço de processamento de linguagem natural (NLP) que você pode usar para extrair automaticamente entidades, frases-chave, linguagem, sentimentos e outros insights de documentos. Por exemplo, você pode começar a detectar imediatamente entidades como pessoas, lugares, itens comerciais, datas e quantidades por meio do Console do Amazon Comprehend, Interface de linha de comando da AWSou APIs do Amazon Comprehend. Além disso, se você precisar extrair entidades que não fazem parte do Tipos de entidade integrados do Amazon Comprehend, você pode criar um modelo de reconhecimento de entidade personalizado (também conhecido como entidade personalizada Reconhecedor) para extrair termos mais relevantes para seu caso de uso específico, como nomes de itens de um catálogo de produtos, identificadores específicos de domínio e assim por diante. Criar um reconhecedor de entidade preciso por conta própria usando bibliotecas e estruturas de aprendizado de máquina pode ser um processo complexo e demorado. O Amazon Comprehend simplifica significativamente o trabalho de treinamento de modelos. Tudo o que você precisa fazer é carregar seu conjunto de dados de documentos e anotações e usar o console do Amazon Comprehend, AWS CLI ou APIs para criar o modelo.

Para treinar um reconhecedor de entidade personalizado, você pode fornecer dados de treinamento ao Amazon Comprehend como anotações ou listas de entidades. No primeiro caso, você fornece uma coleção de documentos e um arquivo com anotações que especificam o local onde as entidades ocorrem dentro do conjunto de documentos. Como alternativa, com listas de entidades, você fornece uma lista de entidades com seu rótulo de tipo de entidade correspondente e um conjunto de documentos não anotados nos quais você espera que suas entidades estejam presentes. Ambas as abordagens podem ser usadas para treinar um modelo de reconhecimento de entidade personalizado bem-sucedido; no entanto, há situações em que um método pode ser a melhor escolha. Por exemplo, quando o significado de entidades específicas pode ser ambíguo e dependente do contexto, é recomendável fornecer anotações porque isso pode ajudar você a criar um modelo do Amazon Comprehend capaz de usar melhor o contexto ao extrair entidades.

A anotação de documentos pode exigir muito esforço e tempo, especialmente se você considerar que tanto a qualidade quanto a quantidade de anotações têm impacto no modelo de reconhecimento de entidade resultante. Anotações imprecisas ou muito poucas podem levar a resultados ruins. Para ajudá-lo a configurar um processo de aquisição de anotações, fornecemos ferramentas como Verdade no solo do Amazon SageMaker, que você pode usar para anotar seus documentos mais rapidamente e gerar um arquivo de anotações de manifesto aumentado. No entanto, mesmo se você usar o Ground Truth, ainda precisará garantir que seu conjunto de dados de treinamento seja grande o suficiente para criar seu reconhecedor de entidade com êxito.

Até hoje, para começar a treinar um reconhecedor de entidade personalizada do Amazon Comprehend, você precisava fornecer uma coleção de pelo menos 250 documentos e um mínimo de 100 anotações por tipo de entidade. Hoje, estamos anunciando que, graças a melhorias recentes nos modelos subjacentes ao Amazon Comprehend, reduzimos os requisitos mínimos para treinar um reconhecedor com arquivos de anotação CSV de texto simples. Agora você pode criar um modelo de reconhecimento de entidade personalizado com apenas três documentos e 25 anotações por tipo de entidade. Você pode encontrar mais detalhes sobre novos limites de serviço em Diretrizes e cotas.

Para mostrar como essa redução pode ajudá-lo a começar a criar um reconhecedor de entidade personalizado, executamos alguns testes em alguns conjuntos de dados de código aberto e coletamos métricas de desempenho. Neste post, mostramos o processo de benchmarking e os resultados que obtivemos ao trabalhar em conjuntos de dados subamostrados.

Preparação do conjunto de dados

Nesta postagem, explicamos como treinamos um reconhecedor de entidade personalizada do Amazon Comprehend usando documentos anotados. Em geral, as anotações podem ser fornecidas como arquivo CSV, um arquivo de manifesto aumentado gerado pelo Ground Truth, Ou um Arquivo PDF. Nosso foco está nas anotações de texto simples CSV, porque esse é o tipo de anotação impactado pelos novos requisitos mínimos. Os arquivos CSV devem ter a seguinte estrutura:

File, Line, Begin Offset, End Offset, Type
documents.txt, 0, 0, 13, ENTITY_TYPE_1
documents.txt, 1, 0, 7, ENTITY_TYPE_2

Os campos relevantes são os seguintes:

  • Envie o – O nome do arquivo que contém os documentos
  • Line – O número da linha que contém a entidade, começando com a linha 0
  • Começar Compensar – O deslocamento do caractere no texto de entrada (relativo ao início da linha) que mostra onde começa a entidade, considerando que o primeiro caractere está na posição 0
  • Deslocamento final – O deslocamento de caractere no texto de entrada que mostra onde a entidade termina
  • Formato – O nome do tipo de entidade que você deseja definir

Além disso, ao usar essa abordagem, você deve fornecer uma coleção de documentos de treinamento como arquivos .txt com um documento por linha ou um documento por arquivo.

Para nossos testes, usamos o SNIPS Natural Language Understanding, um conjunto de dados de enunciados de crowdsourcing distribuídos entre sete intenções de usuário (AddToPlaylist, BookRestaurant, GetWeather, PlayMusic, RateBook, SearchCreativeWork, SearchScreeningEvent). O conjunto de dados foi publicado em 2018 no contexto do artigo Snips Voice Platform: um sistema integrado de compreensão de linguagem falada para interfaces de voz privadas por design por Coucke, et ai.

O conjunto de dados SNIPS é feito de uma coleção de arquivos JSON que condensam anotações e arquivos de texto bruto. Veja a seguir um trecho do conjunto de dados:

{
   "annotations":{
      "named_entity":[
         {
            "start":16,
            "end":36,
            "extent":"within the same area",
            "tag":"spatial_relation"
         },
         {
            "start":40,
            "end":51,
            "extent":"Lawrence St",
            "tag":"poi"
         },
         {
            "start":67,
            "end":70,
            "extent":"one",
            "tag":"party_size_number"
         }
      ],
      "intent":"BookRestaurant"
   },
   "raw_text":"I'd like to eat within the same area of Lawrence St for a party of one"
}

Antes de criar nosso reconhecedor de entidade, transformamos as anotações SNIPS e os arquivos de texto bruto em um arquivo de anotações CSV e um arquivo de documentos .txt.

Segue um trecho do nosso annotations.csv arquivo:

File, Line, Begin Offset, End Offset, Type
documents.txt, 0, 16, 36, spatial_relation
documents.txt, 0, 40, 51, poi
documents.txt, 0, 67, 70, party_size_number

Segue um trecho do nosso documents.txt arquivo:

I'd like to eat within the same area of Lawrence St for a party of one
Please book me a table for three at an american gastropub 
I would like to book a restaurant in Niagara Falls for 8 on June nineteenth
Can you book a table for a party of 6 close to DeKalb Av

Configuração de amostragem e processo de benchmarking

Para nossos experimentos, nos concentramos em um subconjunto de tipos de entidade do conjunto de dados SNIPS:

  • LivroRestaurante – Tipos de entidade: spatial_relation, poi, party_size_number, restaurant_name, city, timeRange, restaurant_type, served_dish, party_size_description, country, facility, state, sort, cuisine
  • Obter tempo – Tipos de entidade: condition_temperature, current_location, geographic_poi, timeRange, state, spatial_relation, condition_description, city, country
  • Tocar música – Tipos de entidade: track, artist, music_item, service, genre, sort, playlist, album, year

Além disso, subamostramos cada conjunto de dados para obter diferentes configurações em termos de número de documentos amostrados para treinamento e número de anotações por entidade (também conhecido como tiros). Isso foi feito usando um script personalizado projetado para criar conjuntos de dados subamostrados nos quais cada tipo de entidade aparece pelo menos k vezes, no mínimo n documentos.

Cada modelo foi treinado usando uma subamostra específica dos conjuntos de dados de treinamento; as nove configurações do modelo estão ilustradas na tabela a seguir.

Nome do conjunto de dados subamostrado Número de documentos amostrados para treinamento Número de documentos amostrados para teste Número médio de anotações por tipo de entidade (tiros)
snips-BookRestaurant-subsample-A 132 17 33
snips-BookRestaurant-subsample-B 257 33 64
snips-BookRestaurant-subsample-C 508 64 128
snips-GetWeather-subsample-A 91 12 25
snips-GetWeather-subsample-B 185 24 49
snips-GetWeather-subsample-C 361 46 95
snips-PlayMusic-subsample-A 130 17 30
snips-PlayMusic-subsample-B 254 32 60
snips-PlayMusic-subsample-C 505 64 119

Para medir a precisão de nossos modelos, coletamos métricas de avaliação que o Amazon Comprehend calcula automaticamente ao treinar um reconhecedor de entidade:

  • Precisão – Isso indica a fração de entidades detectadas pelo reconhecedor que são identificadas e rotuladas corretamente. De uma perspectiva diferente, a precisão pode ser definida como tp / (tp + fp), Onde tp é o número de verdadeiros positivos (identificações corretas) e fp é o número de falsos positivos (identificações incorretas).
  • Recordar – Indica a fração de entidades presentes nos documentos que estão corretamente identificadas e rotuladas. É calculado como tp / (tp + fn), Onde tp é o número de verdadeiros positivos e fn é o número de falsos negativos (identificações perdidas).
  • Pontuação F1 – Esta é uma combinação das métricas de precisão e recall, que mede a precisão geral do modelo. A pontuação F1 é a média harmônica das métricas de precisão e recall, e é calculada como 2 * Precisão * Recall / (Precisão + Recall).

Para comparar o desempenho de nossos reconhecedores de entidade, nos concentramos nas pontuações F1.

Considerando que, dado um conjunto de dados e um tamanho de subamostra (em termos de número de documentos e fotos), você pode gerar diferentes subamostras, geramos 10 subamostras para cada uma das nove configurações, treinamos os modelos de reconhecimento de entidades, coletamos métricas de desempenho e calcularam a média deles usando micro-média. Isso nos permitiu obter resultados mais estáveis, especialmente para subamostras de poucos disparos.

Resultados

A tabela a seguir mostra as pontuações F1 micromédias calculadas nas métricas de desempenho retornadas pelo Amazon Comprehend após o treinamento de cada reconhecedor de entidade.

Nome do conjunto de dados subamostrado Pontuação F1 micromédia do reconhecedor de entidade (%)
snips-BookRestaurant-subsample-A 86.89
snips-BookRestaurant-subsample-B 90.18
snips-BookRestaurant-subsample-C 92.84
snips-GetWeather-subsample-A 84.73
snips-GetWeather-subsample-B 93.27
snips-GetWeather-subsample-C 93.43
snips-PlayMusic-subsample-A 80.61
snips-PlayMusic-subsample-B 81.80
snips-PlayMusic-subsample-C 85.04

O gráfico de colunas a seguir mostra a distribuição das pontuações da F1 para as nove configurações que treinamos conforme descrito na seção anterior.

Podemos observar que conseguimos treinar com sucesso modelos de reconhecimento de entidade personalizados, mesmo com apenas 25 anotações por tipo de entidade. Se nos concentrarmos nos três menores conjuntos de dados subamostrados (snips-BookRestaurant-subsample-A, snips-GetWeather-subsample-A e snips-PlayMusic-subsample-A), vemos que, em média, conseguimos atingir uma pontuação F1 de 84%, o que é um resultado bastante bom considerando o número limitado de documentos e anotações que usamos. Se quisermos melhorar o desempenho do nosso modelo, podemos coletar documentos e anotações adicionais e treinar um novo modelo com mais dados. Por exemplo, com subamostras de tamanho médio (snips-BookRestaurant-subsample-B, snips-GetWeather-subsample-B e snips-PlayMusic-subsample-B), que contém o dobro de documentos e anotações, obtivemos em média uma pontuação F1 de 88% (melhoria de 5% em relação a subsample-A conjuntos de dados). Finalmente, conjuntos de dados subamostrados maiores (snips-BookRestaurant-subsample-C, snips-GetWeather-subsample-C e snips-PlayMusic-subsample-C), que contêm ainda mais dados anotados (aproximadamente quatro vezes o número de documentos e anotações usados ​​para subsample-A conjuntos de dados), proporcionou uma melhoria adicional de 2%, elevando a pontuação média da F1 para 90%.

Conclusão

Nesta postagem, anunciamos uma redução dos requisitos mínimos para treinar um reconhecedor de entidade personalizado com o Amazon Comprehend e executamos alguns benchmarks em conjuntos de dados de código aberto para mostrar como essa redução pode ajudar você a começar. A partir de hoje, você pode criar um modelo de reconhecimento de entidade com apenas 25 anotações por tipo de entidade (em vez de 100) e pelo menos três documentos (em vez de 250). Com este anúncio, estamos reduzindo a barreira de entrada para usuários interessados ​​em usar a tecnologia de reconhecimento de entidade personalizada do Amazon Comprehend. Agora você pode começar a executar seus experimentos com uma coleção muito pequena de documentos anotados, analisar resultados preliminares e iterar incluindo anotações e documentos adicionais se precisar de um modelo de reconhecimento de entidade mais preciso para seu caso de uso.

Para saber mais e começar a usar um reconhecedor de entidade personalizado, consulte Reconhecimento de entidade personalizada.

Agradecimentos especiais aos meus colegas Jyoti Bansal e Jie Ma por sua preciosa ajuda na preparação de dados e benchmarking.


Sobre o autor

Amazon Comprehend anuncia limites de anotação mais baixos para reconhecimento de entidade personalizada PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Lucas Guida é Arquiteto de Soluções na AWS; ele está sediado em Milão e oferece suporte a ISVs italianos em sua jornada na nuvem. Com formação acadêmica em ciência da computação e engenharia, ele começou a desenvolver sua paixão por IA/ML na universidade. Como membro da comunidade de processamento de linguagem natural (NLP) na AWS, Luca ajuda os clientes a serem bem-sucedidos ao adotar serviços de IA/ML.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS