Algoritmo de Modelo de tópicos neurais (NTM) - 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 de Modelo de tópicos neurais (NTM)

O Amazon SageMaker NTM é um algoritmo de aprendizado não supervisionado usado para organizar um corpus de documentos em tópicos que contêm agrupamentos de palavras com base em sua distribuição estatística. Por exemplo, os documentos que contêm ocorrências frequentes de palavras como "bicicleta", "carro", "trem", "quilometragem" e "velocidade" provavelmente compartilham um tópico "transporte". A modelagem de tópicos pode ser usada para classificar ou resumir documentos com base nos tópicos detectados ou para recuperar informações ou recomendar conteúdo com base em semelhanças de tópicos. Os tópicos de documentos que o NTM aprende são caracterizados como uma representação latente, pois são inferidos das distribuições de palavras observadas no corpus. A semântica dos tópicos é geralmente inferida por meio do exame das palavras melhor classificadas que eles contêm. Por se tratar de um método não supervisionado, somente o número de tópicos é predeterminado, não os tópicos em si. Além disso, não há garantias de que os tópicos estejam alinhados com o modo humano de naturalmente categorizar documentos.

Com a modelagem de tópicos, é possível visualizar o conteúdo de um grande corpus de documentos quanto aos tópicos aprendidos. Os documentos relevantes para cada tópico podem ser indexados ou pesquisados com base nos seus rótulos de tópicos flexíveis. As representações latentes dos documentos também podem ser usadas para encontrar documentos semelhantes no espaço do tópico. Além disso, é possível usar as representações latentes dos documentos aprendidos pelo modelo de tópico como dados de entrada em outro algoritmo supervisionado, como um classificador de documentos. Como essas representações devem capturar a semântica dos documentos subjacentes, o esperado é que o desempenho dos algoritmos parcialmente baseados nelas seja melhor do que o dos algoritmos baseados somente em recursos lexicais.

Embora você possa usar os algoritmos Amazon SageMaker NTM e LDA para modelagem de tópicos, eles são algoritmos distintos e pode-se esperar que produzam resultados diferentes nos mesmos dados de entrada.

Para obter mais informações sobre a matemática subjacente do NTM, consulte este artigo sobre inferência de variação neural para processamento de texto.

Interface de entrada/saída para o algoritmo NTM

O Amazon SageMaker Neural Topic Model oferece suporte a quatro canais de dados: treinamento, validação, teste e auxiliar. Os canais de dados de validação, teste e auxiliar são opcionais. Se você especificar qualquer um desses canais opcionais, defina o valor do parâmetro S3DataDistributionType para eles como FullyReplicated. Se você fornecer dados de validação, a perda sobre esses dados será registrada a cada epoch, e o modelo interromperá o treinamento assim que detectar que a perda de validação não está melhorando. Se você não fornecê-los, o algoritmo será interrompido antecipadamente com base nos dados de treinamento, mas isso pode ser menos eficiente. Se dados de teste forem fornecidos, o algoritmo relatará a perda de teste do modelo final.

Os canais de dados de treinamento, validação e teste para o NTM oferecem suporte aos formatos de arquivo recordIO-wrapped-protobuf (denso e esparso) e CSV. Para o formato CSV, cada linha deve ser representada densamente com contagens de zero para palavras não presentes no documento correspondente e ter uma dimensão igual a: (número de registros) * (tamanho do vocabulário). É possível usar o modo de Arquivo ou de Pipe para treinar modelos em dados formatados como recordIO-wrapped-protobuf ou CSV. O canal auxiliar é usado para fornecer um arquivo de texto que contém vocabulário. Ao fornecer o arquivo de vocabulário, os usuários podem ver as palavras principais de cada um dos tópicos impressos no log, em vez de seus IDs em número inteiro. Ter o arquivo de vocabulário também permite que o NTM calcule as pontuações WETC (Coerência de tópicos de incorporação de palavras), uma nova métrica exibida no log que captura a semelhança entre as principais palavras em cada tópico de forma eficaz. O ContentType para o canal auxiliar é text/plain, com cada linha contendo uma única palavra, na ordem correspondente aos IDs em números inteiros fornecidos nos dados. O arquivo de vocabulário deve ser nomeado como vocab.txt e, atualmente, apenas a codificação UTF-8 tem suporte.

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

Consulte a postagem de blog e o bloco de anotações que a acompanha para obter mais detalhes sobre o uso do canal auxiliar e das pontuações de WETC. Para obter mais informações sobre como calcular a pontuação de WETC, consulte Modelagem de tópicos neurais com reconhecimento de coerência. Usamos o WETC em pares descrito neste paper para o Amazon SageMaker Neural Topic Model.

Para obter mais informações sobre formatos de arquivo de entrada e saída, consulte Formatos de resposta do NTM para inferência e os Blocos de anotações de amostra do NTM.

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

O treinamento do NTM é compatível com os tipos de instância de GPU e CPU. Recomendamos as instâncias de GPU, mas os custos de treinamento podem ser menores em instâncias de CPU para determinadas cargas de trabalho. Para inferência, as instâncias de CPU já são o bastante. O treinamento NTM oferece suporte às famílias de instâncias de GPU P2, P3, G4dn e G5 para treinamento e inferência.

Blocos de anotações de amostra do NTM

Para obter um exemplo de caderno que usa o algoritmo SageMaker NTM para descobrir tópicos em documentos de uma fonte de dados sintética em que as distribuições de tópicos são conhecidas, consulte a Introdução à funcionalidade básica do NTM. 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.