Algoritmo de Modelo de tópicos neurais (NTM)
O NTM do Amazon SageMaker do é um algoritmo de aprendizado não supervisionado usado para organizar um corpus de documentos em tópicos contendo 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 atributos lexicais.
Embora você possa usar os algoritmos NTM do Amazon SageMaker e LDA do para modelagem de tópico, eles são distintos e podem produzir resultados diferentes com os 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
Tópicos
Interface de entrada/saída para o algoritmo NTM
O Modelo de tópicos neurais do Amazon SageMaker oferece apoio 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 apoio 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 é compatível.
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/json
prediçõesapplication/x-recordio-protobuf
ou , que incluem o vetor topic_weights
para cada observação.
Consulte a postagem de blog
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 Cadernos de amostra do NTM.
Recomendações 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 workloads. Para inferência, as instâncias de CPU já são o bastante. O treinamento NTM oferece apoio às famílias de instâncias de GPU P2, P3, G4dn e G5 para treinamento e inferência.
Cadernos de amostra do NTM
Para um caderno de amostra que usa o algoritmo NTM do SageMaker para descobrir tópicos em documentos de uma fonte de dados sintética, no qual as distribuições de tópicos são conhecidas, consulte o artigo de Introdução à funcionalidade básica do NTM