

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á.

# Como o LDA funciona
<a name="lda-how-it-works"></a>

O LDA do Amazon SageMaker AI é um algoritmo de aprendizado não supervisionado que tenta descrever um conjunto de observações como uma combinação de diferentes categorias. Essas categorias são a própria distribuição de probabilidade sobre os recursos. O LDA é um modelo de probabilidade generativo, o que significa que ele tenta fornecer um modelo para a distribuição de saídas e entradas com base em variáveis latentes. Isso é o contrário dos modelos discriminativos, que tentam aprender como as entradas são mapeadas para as saídas.

Use o LDA para uma variedade de tarefas, do clustering de clientes com base nas compras de produtos à análise harmônica automática de músicas. No entanto, é mais comumente associado à modelagem de tópicos em corpora de texto. As observações são chamadas de documentos. O conjunto de recursos é chamado de vocabulário. Um recurso é chamado de uma palavra. E as categorias resultantes são chamadas de tópicos.

**nota**  
A lematização aumenta significativamente o desempenho e a precisão do algoritmo. Pense no pré-processamento de quaisquer dados de texto de entrada. Para obter mais informações, consulte [Raízes de palavras e lematização](https://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html).

Um modelo LDA é definido por dois parâmetros:
+ α: uma estimativa a priori sobre a probabilidade dos tópicos (em outras palavras, a frequência média da ocorrência de cada tópico em um determinado documento). 
+ β: um conjunto de tópicos k, em que cada tópico recebe uma distribuição de probabilidade sobre o vocabulário usado em um corpus de documentos, também chamada de "distribuição de palavras por tópico".

O LDA é um modelo "bag-of-words", o que significa que a ordem das palavras não importa. É um modelo generativo em que cada documento é gerado palavra por palavra, pela escolha de uma combinação de tópicos θ ∼ Dirichlet (α). 

 Para cada palavra no documento: 
+  Escolha um tópico z ∼ Multinomial(θ). 
+  Escolha a distribuição de palavras por tópico correspondente, β\$1z. 
+  Desenhe uma palavra w ∼ Multinomial(β\$1z). 

No treinamento do modelo, o objetivo é encontrar parâmetros α e β, que maximizam a probabilidade de o corpus de textos ser gerado pelo modelo.

Os métodos mais conhecidos para estimativa do modelo LDA usam técnicas de maximização de expectativas (EM) ou amostragem de Gibbs. O LDA do Amazon SageMaker AI usa decomposição espectral de tensor. Isso traz várias vantagens:
+  **Garantias teóricas sobre os resultados**. No método EM padrão, a convergência certamente só é feita para os pontos de máximos ou mínimos locais, que geralmente são de baixa qualidade. 
+  **Paralelização inconveniente**. O trabalho pode ser dividido trivialmente pelos documentos de entrada no treinamento e na inferência. As abordagens do método EM e da amostragem de Gibbs podem ser paralelizadas, mas não facilmente. 
+  **Rápido**. Embora o método EM tenha um custo de iteração baixo, é suscetível a taxas lentas de convergência. A amostragem de Gibbs também está sujeita a taxas lentas, além de exigir um grande número de amostras. 

Basicamente, o algoritmo de decomposição de tensor segue este processo:

1.  O objetivo é calcular a decomposição espectral de um tensor **V** x **V** x **V**, que resume os momentos dos documentos no nosso corpus. **V** é o tamanho do vocabulário (em outras palavras, o número de palavras distintas em todos os documentos). Os componentes espectrais desse tensor são os parâmetros LDA α e β, que maximizam a probabilidade geral do corpus de documentos. No entanto, como o tamanho do vocabulário tende a ser grande, esse tensor **V** x **V** x **V** é grande demais para ser armazenado na memória. 

1.  Em vez disso, ele usa uma matriz de momento **V** x **V**, que representa uma analogia bidimensional do tensor da etapa 1, para encontrar uma matriz de ruído branco de dimensão **V** x **k**. Essa matriz pode ser usada para converter a matriz de momento **V** x **V** em uma matriz de identidade **k** x **k**. **k** é o número de tópicos no modelo. 

1.  Essa mesma matriz de ruído branco pode ser usada para encontrar um tensor **k** x **k** x **k** menor. Quando submetido a decomposição espectral, esse tensor conta com componentes que têm uma relação simples com os componentes do tensor **V** x **V** x **V**. 

1.  O método de *mínimos quadrados alternantes* é usado para decompor o tensor **k** x *k* x **k** menor. Isso fornece uma melhoria significativa em velocidade e consumo de memória. Para encontrar os parâmetros α e β, basta aplicar "ruído branco" nesses resultados, na decomposição espectral. 

Depois que os parâmetros do modelo LDA são encontrados, é possível encontrar as combinações de tópicos de cada documento. Use o algoritmo Stochastic Gradient Descent para maximizar a função de probabilidade da observância de uma determinada combinação de tópicos correspondentes a esses dados.

Para aprimorar a qualidade dos tópicos, aumente o número de tópicos a ser procurados no treinamento e, em seguida, filtre os de baixa qualidade. Na verdade, isso é feito automaticamente no LDA do SageMaker AI: 25% mais tópicos são computados e apenas aqueles com antecedentes mais amplos de Dirichlet associados são exibidos. Para filtrar e analisar ainda mais os tópicos, é possível aumentar a contagem de tópicos e modificar o modelo LDA resultante da seguinte forma:

```
> import mxnet as mx
> alpha, beta = mx.ndarray.load(‘model.tar.gz’)
> # modify alpha and beta
> mx.nd.save(‘new_model.tar.gz’, [new_alpha, new_beta])
> # upload to S3 and create new SageMaker model using the console
```

Para ter mais informações sobre algoritmos para LDA e a implementação do SageMaker AI, consulte o seguinte:
+ Animashree Anandkumar, Rong Ge, Daniel Hsu, Sham M Kakade e Matus Telgarsky. *Tensor Decompositions for Learning Latent Variable Models*, Journal of Machine Learning Research, 15:2773–2832, 2014.
+  David M Blei, Andrew Y Ng e Michael I Jordan. *Latent Dirichlet Allocation*. Journal of Machine Learning Research, 3(Jan):993–1022, 2003.
+  Thomas L Griffiths e Mark Steyvers. *Finding Scientific Topics*. Proceedings of the National Academy of Sciences, 101(suppl 1):5228–5235, 2004. 
+  Tamara G Kolda e Brett W Bader. *Tensor Decompositions and Applications*. SIAM Review, 51(3):455–500, 2009. 