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
[editar | editar código-fonte]No contexto da genética populacional, o LDA foi proposto por JK Pritchard, M. Stephens e P. Donnelly em 2000.[1][2]
O LDA foi aplicado no contexto de aprendizado de máquina por David Blei, Andrew Ng e Michael I. Jordan em 2003.[3]
Visão geral
[editar | editar código-fonte]Biologia evolutiva e biomedicina
[editar | editar código-fonte]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
[editar | editar código-fonte]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.[4]
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
[editar | editar código-fonte]![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Latent_Dirichlet_allocation.svg/250px-Latent_Dirichlet_allocation.svg.png)
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 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
- é a distribuição de tópicos para o documento i
- é a distribuição de palavras para o tópico k
- é o tópico da j- ésima palavra no documento i
- é a palavra específica.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Smoothed_LDA.png/251px-Smoothed_LDA.png)
O fato de W estar acinzentado significa que as palavras são as únicas variáveis observáveis e as outras variáveis são variáveis latentes. Conforme proposto no artigo original,[3] 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 denota o número de tópicos e sao vetores -dimensionais que armazenam os parâmetros das distribuições de palavras-tópico distribuídas por Dirichlet ( é o número de palavras no vocabulário).
É útil pensar nas entidades representadas por e como matrizes criadas decompondo a matriz documento-palavra original que representa o corpus de documentos que estão sendo modelados. Nesta visão, consiste em linhas definidas por documentos e colunas definidas por tópicos, enquanto consiste em linhas definidas por tópicos e colunas definidas por palavras. Portanto, refere-se a um conjunto de linhas ou vetores, cada um dos quais é uma distribuição por palavras e refere-se a um conjunto de linhas, cada uma das quais é uma distribuição sobre tópicos.
Processo generativo
[editar | editar código-fonte]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 de documentos, sendo cada documento de comprimento :
- Escolha , Onde e é uma distribuição de Dirichlet com um parâmetro simétrico que normalmente é esparso ( )
- Escolher , Onde e normalmente é esparso
- Para cada uma das posições de palavras , onde e :
- (a) Escolha um tópico
- (b) Escolha uma palavra
(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 são tratados como independentes de todas as outras variáveis geradoras de dados ( e ). O subscrito é frequentemente descartado, como nos diagramas de placas mostrados aqui.
Definição
[editar | editar código-fonte]Uma descrição formal da LDA é a seguinte:
Variável | Tipo | Significado |
---|---|---|
inteiro | número de tópicos (ex. 50) | |
inteiro | número de palavras no vocabulário(ex. 50,000 ou 1,000,000) | |
inteiro | número de documentos | |
inteiro | número de palavras no documento d | |
inteiro | número total de palavras em todos os documentos; soma de todos os valores , ou seja, | |
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) | |
vetor K-dimensional de reais positivos | coleção de todos os valores , vistos como um vetor único | |
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) | |
vetor V-dimensional de reais positivos | coleção de todos os valores , vistos como um vetor único | |
probabilidade (número real entre 0 e 1) | probabilidade da palavra w ocorrer no tópico k | |
vetor V-dimensional de probabilidades, que devem somar 1 | distribuição das palavras no tópico k | |
probabilidade (número real entre 0 e 1) | probabilidade do tópico k ocorrer no documento d | |
vetor K-dimensional deprobabilities, que devem somar 1 | distribuição de tópicos no documento d | |
inteiro entre 1 e K | identidade do tópico da palavra w no documento d | |
vetor N-dimensional de inteiros entre 1 e K | identidade dos tópicos de todas as palavras em todos os documentos | |
inteiro entre 1 e V | identidade da palavra w em um documento d | |
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:
Inferência
[editar | editar código-fonte]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
[editar | editar código-fonte]O artigo original por Pritchard et al.[1] 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.[5]
Bayes variacional
[editar | editar código-fonte]O artigo original do ML utilizava uma aproximação variacional de Bayes da distribuição posterior.[3]
Maximização da verossimilhança
[editar | editar código-fonte]Uma otimização direta da verossimilhança com um algoritmo de relaxamento de bloco é uma alternativa rápida ao MCMC.[6]
Abordagens alternativas
[editar | editar código-fonte]Abordagens alternativas incluem propagação de expectativa.[7]
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 , e uma palavra também aparece apenas em um subconjunto de tópicos , a equação de atualização acima pode ser reescrita para aproveitar essa esparsidade.[8]
Problemas relacionados
[editar | editar código-fonte]Modelos relacionados
[editar | editar código-fonte]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.[9] 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[10] 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),[11] 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 .[12] 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.
Ver também
[editar | editar código-fonte]Referências
- ↑ a b «Inference of population structure using multilocus genotype data.». Genetics. 155: pp. 945–959. ISSN 0016-6731. PMC 1461096
. PMID 10835412
- ↑ «Inference of population structure using multilocus genotype data: linked loci and correlated allele frequencies.». Genetics. 164: pp. 1567–1587
- ↑ a b c David M. Blei; Andrew Y. Ng; Michael I. Jordan. «Latent Dirichlet Allocation». Journal of Machine Learning Research. 3: 993–1022. doi:10.1162/jmlr.2003.3.4-5.993
- ↑ Kaban, A. (2003). ISBN 1-58113-646-3 https://archive.org/details/sigir2003proceed0000inte Faltam os
|sobrenomes1=
em Authors list (ajuda);|nome3=
sem|sobrenome3=
em Authors list (ajuda); Em falta ou vazio|título=
(ajuda) - ↑ «Finding scientific topics». Proceedings of the National Academy of Sciences. 101: 5228–5235. Bibcode:2004PNAS..101.5228G. PMC 387300
. PMID 14872004. doi:10.1073/pnas.0307752101
- ↑ «Fast model-based estimation of ancestry in unrelated individuals». Genome Research. 19: 1655–1664. 2009. PMC 2752134
. PMID 19648217. doi:10.1101/gr.094052.109
- ↑ Minka, Thomas; Lafferty, John (2002). Expectation-Propagation for the Generative Aspect Model (PDF). ISBN 1-55860-897-4
- ↑ Mimno, David (2009). Em falta ou vazio
|título=
(ajuda) - ↑ «Mapping of topics in DESIDOC Journal of Library and Information Technology, India: a study». 120. doi:10.1007/s11192-019-03137-5
- ↑ Blei; Lafferty, John D. (2006). «Correlated topic models» (PDF). Advances in Neural Information Processing Systems. 18
- ↑ David M. Blei; Michael I. Jordan; Thomas L. Griffiths; Joshua B. Tenenbaum (2004). Hierarchical Topic Models and the Nested Chinese Restaurant Process (PDF). ISBN 0-262-20152-6. Arquivado do original (PDF) em 3 de setembro de 2006
- ↑ Liangcai Shu; Bo Long; Weiyi Meng (2009). A Latent Topic Model for Complete Entity Resolution (PDF)
Ligações externas
[editar | editar código-fonte]- jLDADMM é um pacote em Java para modelagem de tópicos. O jLDADMM inclui implementações do modelo de tópicos LDA e o modelo de mistura multinomial Dirichlet de um tópico por documento . O jLDADMM também fornece uma implementação para avaliação de agrupamento de documentos para comparar modelos de tópicos.
- Palestra que cobre parte da notação deste artigo: palestra no YouTube
- A Bibliografia da LDA de D. Mimno Uma lista exaustiva de recursos relacionados à LDA (incluindo documentos e algumas implementações)
- Gensim, uma implementação Python + NumPy do LDA online para entradas maiores que a RAM disponível.
- topicmodels e lda são dois pacotes R para análise de LDA.
- "Text Mining with R", incluindo métodos LDA, apresentação em vídeo para a reunião de outubro de 2011 do grupo de usuários R de Los Angeles
- MALLET Pacote baseado em Java de código aberto da Universidade de Massachusetts-Amherst para modelagem de tópicos com LDA, também possui uma GUI desenvolvida de forma independente, a Ferramenta de Modelagem de Tópicos
- LDA na implementação Mahout do LDA usando o MapReduce na plataforma Hadoop
- Tutorial de Alocação de Dirichlet Latente (LDA) para o Infer. Estrutura de computação de máquina NET Estrutura de aprendizado de máquina C # da Microsoft Research
- LDA no Spark : Desde a versão 1.3.0, o Apache Spark também apresenta uma implementação do LDA
- Exemplo de implementação LDA MATLAB