# Alocação latente de Dirichlet

No processamento de linguagem natural, a alocação latente de Dirichlet (LDA) é um modelo estatístico generativo. Ele permite que conjuntos de observações sejam explicados por variáveis latentes que explicam por que algumas partes dos dados são semelhantes. Por exemplo, se as observações são palavras coletadas em documentos, ele postula que cada documento é uma mistura de um pequeno número de tópicos e que a presença de cada palavra é atribuível a um dos tópicos do documento. O LDA é um exemplo de modelo de tópicos e pertence às ferramentas principais do campo do aprendizado de máquinas e, em sentido mais amplo, às ferramentas de inteligência artificial.

## História

No contexto da genética populacional, o LDA foi proposto por JK Pritchard, M. Stephens e P. Donnelly em 2000.
O LDA foi aplicado no contexto de aprendizado de máquina por David Blei, Andrew Ng e Michael I. Jordan em 2003.

## Visão geral
### Biologia evolutiva e biomedicina

Na biologia evolutiva e na biomedicina, o modelo é usado para detectar a presença de variação genética estruturada em um grupo de indivíduos. O modelo pressupõe que os alelos presentes nos indivíduos do estudo tenham origem em várias populações existentes ou passadas. O modelo (e vários algoritmos de inferência) permitem ao cientista estimar as frequências alélicas nessas populações de origem e a origem dos alelos transportados pelos indivíduos em estudo. As populações de origem podem ser interpretadas em termos de vários cenários evolutivos. Em estudos de associação, a detecção da presença de estrutura genética é considerada uma etapa preliminar necessária para evitar confusões .

### Engenharia

Um exemplo do uso da alocação latente de Dirichlet (LDA) em engenharia é classificar automaticamente os documentos e estimar sua relevância para vários tópicos.
No LDA, cada documento pode ser visto como uma mistura de vários tópicos, onde cada documento é considerado como tendo um conjunto de tópicos atribuídos a ele via LDA. Isso é idêntico à análise probabilstica de semântica latente (pLSA), com a diferença que no LDA a distribuição de tópicos é assumida como tendo uma distribuição de Dirichlet para a probabilidate a priori . As probabilidades a priori esparsas da distribuição de Dirichlet guardam a intuição de que os documentos tratam de um pequeno conjunto de tópicos e que esses tópicos usam apenas um pequeno conjunto de palavras com frequência. Na prática, isso resulta em uma melhor desambiguação de palavras e uma atribuição de documentos a tópicos mais precisa. O LDA é uma generalização do modelo pLSA, que é equivalente a LDA sob uma distribuição prévia uniforme do Dirichlet.
Por exemplo, um modelo de LDA pode ter tópicos como GATOS e a CACHORROS. Um tópico tem probabilidades de gerar várias palavras, como leite, miau e gatinho, que podem ser classificadas e interpretadas pelo visualizador como do tópico GATOS. Naturalmente, a palavra gato em si terá alta probabilidade. O tópico relacionado a CACHORROS também tem probabilidades de gerar cada palavra, e filhote, latido e osso podem ter alta probabilidade. Palavras sem relevância especial, como "esse" , terão probabilidade aproximadamente uniforme entre as classes (ou podem ser colocadas em uma categoria separada). Um tópico não é definido semântica nem epistemologicamente, sendo os nomes adicionados ad hoc. É identificado com base na detecção automática da probabilidade de co-ocorrência de termos. Uma palavra lexical pode ocorrer em vários tópicos com uma probabilidade diferente, no entanto, com um conjunto típico diferente de palavras vizinhas em cada tópico.
Presume-se que cada documento seja caracterizado por um conjunto específico de tópicos. Isso é semelhante à suposição do modelo saco-de-palavras padrão e torna as palavras individuais intercambiáveis.

## Modelo

Com a notação de placa, que geralmente é usada para representar modelos gráficos probabilísticos (PGMs), as dependências entre as muitas variáveis podem ser capturadas de forma concisa. As caixas são "placas" representando réplicas, que são entidades repetidas. A placa externa representa documentos, enquanto a placa interna representa as posições repetidas das palavras em um determinado documento; cada posição está associada a uma escolha de tópico e palavra. Os nomes das variáveis são definidos da seguinte maneira:
    M indica o número de documentos
    N é o número de palavras em um determinado documento (documento i tem $N_{i}$ palavras)
    α é o parâmetro da probabilidade a priori de Dirichlet nas distribuições de tópicos por documento
    β é o parâmetro da probabilidade a priori de Dirichletanterior na distribuição de palavras por tópico
    $\theta _{i}$ é a distribuição de tópicos para o documento i
    $\varphi _{k}$ é a distribuição de palavras para o tópico k
    $z_{ij}$ é o tópico da j- ésima palavra no documento i
    $w_{ij}$ é a palavra específica.
O fato de W estar acinzentado significa que as palavras $w_{ij}$ são as únicas variáveis observáveis e as outras variáveis são variáveis latentes. Conforme proposto no artigo original, uma probabilidade a priori de Dirichlet esparsa pode ser usado para modelar a distribuição tópico-palavra, seguindo a intuição de que apenas um pequeno conjunto de palavras tenha alta probabilidade. O modelo resultante é a variante mais aplicada da LDA atualmente. A notação da placa para este modelo é mostrada à direita, onde $K$ denota o número de tópicos e $\varphi _{1},\dots ,\varphi _{K}$ sao vetores $V$-dimensionais que armazenam os parâmetros das distribuições de palavras-tópico distribuídas por Dirichlet ($V$ é o número de palavras no vocabulário).
É útil pensar nas entidades representadas por $\theta$ e $\varphi$ como matrizes criadas decompondo a matriz documento-palavra original que representa o corpus de documentos que estão sendo modelados. Nesta visão, $\theta$ consiste em linhas definidas por documentos e colunas definidas por tópicos, enquanto $\varphi$ consiste em linhas definidas por tópicos e colunas definidas por palavras. Portanto, $\varphi _{1},\dots ,\varphi _{K}$ refere-se a um conjunto de linhas ou vetores, cada um dos quais é uma distribuição por palavras e $\theta _{1},\dots ,\theta _{M}$ refere-se a um conjunto de linhas, cada uma das quais é uma distribuição sobre tópicos.

### Processo generativo

Para realmente inferir os tópicos em um corpus, imaginamos um processo generativo pelo qual os documentos são criados, para que possamos inferir ou fazer engenharia reversa. Imaginamos o processo generativo da seguinte forma. Os documentos são representados como misturas aleatórias sobre tópicos latentes, onde cada tópico é caracterizado por uma distribuição por todas as palavras. A LDA assume o seguinte processo generativo para um corpus $D$ de $M$ documentos, sendo cada documento de comprimento $N_{i}$:
* Escolha $\theta _{i}\sim \operatorname {Dir} (\alpha )$, Onde $i\in \{1,\dots ,M\}$ e $\mathrm {Dir} (\alpha )$ é uma distribuição de Dirichlet com um parâmetro simétrico $\alpha$ que normalmente é esparso ( $\alpha <1$ )
* Escolher $\varphi _{k}\sim \operatorname {Dir} (\beta )$, Onde $k\in \{1,\dots ,K\}$ e $\beta$ normalmente é esparso
* Para cada uma das posições de palavras $i,j$, onde $i\in \{1,\dots ,M\}$ e $j\in \{1,\dots ,N_{i}\}$:
    (a) Escolha um tópico $z_{i,j}\sim \operatorname {Multinomial} (\theta _{i}).$
    (b) Escolha uma palavra $w_{i,j}\sim \operatorname {Multinomial} (\varphi _{z_{i,j}}).$
(Note que a distribuição multinomial aqui se refere ao multinomial com apenas um teste, que também é conhecido como distribuição categórica.)
Os comprimentos $N_{i}$ são tratados como independentes de todas as outras variáveis geradoras de dados ($w$ e $z$). O subscrito é frequentemente descartado, como nos diagramas de placas mostrados aqui.

### Definição

Uma descrição formal da LDA é a seguinte:
Variáveis no modelo :
| Variável | Tipo | Significado |
| $K$ | inteiro | número de tópicos (ex. 50) |
| $V$ | inteiro | número de palavras no vocabulário(ex. 50,000 ou 1,000,000) |
| $M$ | inteiro | número de documentos |
| $N_{d=1\dots M}$ | inteiro | número de palavras no documento d |
| $N$ | inteiro | número total de palavras em todos os documentos; soma de todos os valores $N_{d}$ , ou seja, $N=\sum _{d=1}^{M}N_{d}$ |
| $\alpha _{k=1\dots K}$ | real positivo | peso a priori do tópico k em um documento; normalmente é o mesmo para todos os tópicos; normalmente também um número menor que 1 (como 0.1) para favorecer distribuições esparsas (menos tópicos por documento) |
| ${\boldsymbol {\alpha }}$ | vetor K-dimensional de reais positivos | coleção de todos os valores $\alpha _{k}$, vistos como um vetor único |
| $\beta _{w=1\dots V}$ | real positivo | peso a priori da palavra w em um tópico; normalmente um número muito menor que 1 (como 0.001) para favorecer bastante distribuições esparsas (menos palavras por tópico) |
| ${\boldsymbol {\beta }}$ | vetor V-dimensional de reais positivos | coleção de todos os valores $\beta _{w}$, vistos como um vetor único |
| $\varphi _{k=1\dots K,w=1\dots V}$ | probabilidade (número real entre 0 e 1) | probabilidade da palavra w ocorrer no tópico k |
| ${\boldsymbol {\varphi }}_{k=1\dots K}$ | vetor V-dimensional de probabilidades, que devem somar 1 | distribuição das palavras no tópico k |
| $\theta _{d=1\dots M,k=1\dots K}$ | probabilidade (número real entre 0 e 1) | probabilidade do tópico k ocorrer no documento d |
| ${\boldsymbol {\theta }}_{d=1\dots M}$ | vetor K-dimensional deprobabilities, que devem somar 1 | distribuição de tópicos no documento d |
| $z_{d=1\dots M,w=1\dots N_{d}}$ | inteiro entre 1 e K | identidade do tópico da palavra w no documento d |
| $\mathbf {Z}$ | vetor N-dimensional de inteiros entre 1 e K | identidade dos tópicos de todas as palavras em todos os documentos |
| $w_{d=1\dots M,w=1\dots N_{d}}$ | inteiro entre 1 e V | identidade da palavra w em um documento d |
| $\mathbf {W}$ | vetor N-dimensional de inteiros entre 1 e V | identidade de todas as palavras em todos os documentos |
Podemos então descrever matematicamente as variáveis aleatórias da seguinte maneira:
    ${\begin{aligned}{\boldsymbol {\varphi }}_{k=1\dots K}&\sim \operatorname {Dirichlet} _{V}({\boldsymbol {\beta }})\\{\boldsymbol {\theta }}_{d=1\dots M}&\sim \operatorname {Dirichlet} _{K}({\boldsymbol {\alpha }})\\z_{d=1\dots M,w=1\dots N_{d}}&\sim \operatorname {Categorical} _{K}({\boldsymbol {\theta }}_{d})\\w_{d=1\dots M,w=1\dots N_{d}}&\sim \operatorname {Categorical} _{V}({\boldsymbol {\varphi }}_{z_{dw}})\end{aligned}}$

## Inferência

Aprender as várias distribuições (o conjunto de tópicos, suas probabilidades de palavras associadas, o tópico de cada palavra e a mistura específica de tópicos de cada documento) é um problema de inferência estatística.

### Simulação de Monte Carlo

O artigo original por Pritchard et al. aproxima a distribuição a posteriori através da simulação de Monte Carlo. Outras formas de técnicas de inferência incluem a amostragem de Gibbs.

### Bayes variacional

O artigo original do ML utilizava uma aproximação variacional de Bayes da distribuição posterior.

### Maximização da verossimilhança

Uma otimização direta da verossimilhança com um algoritmo de relaxamento de bloco é uma alternativa rápida ao MCMC.

### Abordagens alternativas

Abordagens alternativas incluem propagação de expectativa.
Pesquisas recentes têm se concentrado em acelerar a inferência da Alocação latente de Dirichlet para permitri a captura de um grande número de tópicos em um grande número de documentos. A equação de atualização do amostrador de Gibbs colapsado, mencionado na seção anterior, possui uma esparsidade natural que pode ser aproveitada. Intuitivamente, já que cada documento contém apenas um subconjunto de tópicos $K_{d}$, e uma palavra também aparece apenas em um subconjunto de tópicos $K_{w}$, a equação de atualização acima pode ser reescrita para aproveitar essa esparsidade.

## Problemas relacionados
### Modelos relacionados

A modelagem de tópicos é uma solução clássica para o problema de recuperação de informação usando dados vinculados e tecnologia da web semântica. Modelos e técnicas relacionados incluem, entre outros, indexação semântica latente, análise de componentes independentes, indexação semântica latente probabilística, fatoração matricial não negativa e distribuição Gamma-Poisson .
O modelo LDA é altamente modular e, portanto, pode ser facilmente estendido. O principal campo de interesse é modelar relações entre tópicos. Isso é conseguido usando outra distribuição no simplex em vez da Dirichlet. O Modelo de Tópicos Correlacionados segue essa abordagem, induzindo uma estrutura de correlação entre os tópicos usando a distribuição normal logística em vez do Dirichlet. Outra extensão é o LDA hierárquico (hLDA), onde os tópicos são reunidos em uma hierarquia usando o processo de restaurante chinês aninhado, cuja estrutura é aprendida com os dados. O LDA também pode ser estendido a um corpus no qual um documento inclui dois tipos de informações (por exemplo, palavras e nomes), como no modelo LDA-dual . As extensões não paramétricas da LDA incluem o modelo hierárquico de mistura de processos Dirichlet, que permite que o número de tópicos seja ilimitado e aprendido com os dados.