Algoritmo Latent Dirichlet Allocation (LDA) - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Algoritmo Latent Dirichlet Allocation (LDA)

O algoritmo Amazon SageMaker Latent Dirichlet Allocation (LDA) é um algoritmo de aprendizado não supervisionado que tenta descrever um conjunto de observações como uma mistura de categorias distintas. É mais comumente usado para descobrir um número de tópicos especificado pelo usuário, compartilhado por documentos dentro de um corpus de textos. Aqui, cada observação é um documento, os recursos são a presença (ou contagem de ocorrências) de cada palavra, e as categorias são os tópicos. Como é um método não supervisionado, os tópicos não são especificados de antemão e não há garantias de que sua categorização de documentos seja similar a como um humano normalmente faria. Os tópicos são aprendidos como uma distribuição de probabilidade sobre as palavras que ocorrem em cada documento. Cada documento, por sua vez, é descrito como uma combinação de tópicos.

O conteúdo exato de dois documentos com combinações de tópicos semelhantes não será o mesmo. Mas, em geral, espera-se que esses documentos usem com mais frequência um subconjunto compartilhado de palavras, em vez de compará-las com um documento de uma combinação diferente de tópicos. Isso permite que o LDA descubra esses grupos de palavras e os utilize para formar tópicos. Como um exemplo extremamente simples, tendo em conta um conjunto de documentos em que as únicas palavras que ocorrem são: comer, dormir, brincar, miar e latir, o LDA pode produzir tópicos como estes:

Tópico

comer dormir brincar miar latir
Tópico 1 0.1 0.3 0.2 0.4 0.0
Tópico 2 0.2 0.1 0.4 0.0 0.3

É possível inferir que os documentos com mais probabilidade de se encaixar no Tópico 1 são sobre gatos (que tendem a miar e dormir mais), e que os documentos que se encaixam no Tópico 2 são sobre cães (que preferem brincar e latir). Esses tópicos podem ser encontrados mesmo que as palavras cão e gato nunca aparecem em nenhum dos textos.

Escolha entre Latent Dirichlet Allocation (LDA) e modelo de tópico neural (NTM)

Modelos de tópicos são comumente usados para produzir tópicos a partir de corpus que (1) encapsulam coerentemente o significado semântico e (2) descrevem bem os documentos. Dessa forma, os modelos de tópicos visam minimizar a perplexidade e maximizar a coerência do tópico.

Perplexidade é uma métrica intrínseca de avaliação de modelagem de linguagem que mede o inverso da probabilidade da média geométrica por palavra em seus dados de teste. Uma pontuação de perplexidade mais baixa indica melhor desempenho de generalização. A pesquisa mostrou que a probabilidade calculada por palavra muitas vezes não se alinha ao julgamento humano e pode ser totalmente não correlacionada, portanto, foi introduzida a coerência do tópico. Cada tópico inferido do seu modelo consiste em palavras, e a coerência do tópico é calculada com base nas N palavras principais para esse tópico específico do seu modelo. Muitas vezes é definido como a média ou mediana das pontuações de similaridade de palavras entre pares das palavras naquele tópico, por exemplo, Pointwise Mutual Information (PMI). Um modelo promissor gera tópicos coerentes ou tópicos com altas pontuações de coerência de tópicos.

Embora o objetivo seja treinar um modelo de tópico que minimize a perplexidade e maximize a coerência do tópico, muitas vezes há uma compensação entre LDA e NTM. Uma pesquisa recente da Amazon, Dinget et al., 2018 mostrou que o NTM é promissor para alcançar alta coerência de tópicos, mas o LDA treinado com amostragem de Gibbs reduzida atinge melhor perplexidade. Há uma compensação entre perplexidade e coerência tópica. Do ponto de vista prático em relação ao hardware e à potência computacional, o hardware SageMaker NTM é mais flexível do que o LDA e pode ser escalado melhor porque o NTM pode ser executado em CPU e GPU e pode ser paralelizado em várias instâncias de GPU, enquanto o LDA suporta apenas treinamento de CPU em uma única instância.

Interface de entrada/saída para o algoritmo LDA

No LDA, espera-se que os dados sejam fornecidos no canal de treinamento. Opcionalmente, o algoritmo é compatível com um canal de teste, que é pontuado pelo modelo final. O LDA é compatível com os formatos de arquivo recordIO-wrapped-protobuf (denso e esparso) e CSV. Para CSV, os dados devem ser densos e ter uma dimensão igual ao número de registros * tamanho do vocabulário. O LDA pode ser treinado no modo de Arquivo ou Pipe ao usar protobufs encapsulada em recordIO, mas somente no modo de Arquivo para o formato CSV.

Para inferência, não há compatibilidade com os tipos de conteúdo text/csv, application/json e application/x-recordio-protobuf. Dados esparsos também podem ser passados para application/json e application/x-recordio-protobuf. A inferência do LDA retorna application/jsonprevisõesapplication/x-recordio-protobuf ou , que incluem o vetor topic_mixture para cada observação.

Para obter mais detalhes sobre os formatos de inferência e treinamento, consulte os Cadernos de exemplo do LDA.

Recomendação de instâncias do EC2 para o algoritmo LDA

O LDA atualmente só é compatível com o treinamento de CPU de única instância. As instâncias de CPU são recomendadas para hospedagem/inferência.

Cadernos de exemplo do LDA

Para obter um exemplo de caderno que mostra como treinar o algoritmo de alocação SageMaker latente de Dirichlet em um conjunto de dados e, em seguida, como implantar o modelo treinado para realizar inferências sobre as misturas de tópicos nos documentos de entrada, consulte Uma introdução ao LDA. SageMaker Para obter instruções sobre como criar e acessar instâncias do notebook Jupyter que você pode usar para executar o exemplo SageMaker, consulte. Instâncias do Amazon SageMaker Notebook Depois de criar uma instância do notebook e abri-la, selecione a guia SageMaker Exemplos para ver uma lista de todas as SageMaker amostras. Os blocos de anotações de exemplo de modelagem de tópicos que usam os algoritmos NTM estão localizados na seção Introdução a algoritmos da Amazon. Para abrir um bloco de anotações, clique em sua guia Uso e selecione Criar cópia.