Alocação de Dirichlet Latente x Processo Hierárquico de Dirichlet


49

Alocação de Dirichlet Latente (LDA) e Processo de Dirichlet Hierárquico (HDP) são processos de modelagem de tópicos. A principal diferença é que o LDA requer a especificação do número de tópicos, e o HDP não. Por que? E quais são as diferenças, prós e contras dos dois métodos de modelagem de tópicos?


O HDP deve ser orientado por dados em relação ao número de tópicos que ele selecionará? No lado prático, tentei executar a implementação do HDP do Blei e ele consumiu toda a memória até que eu encerrei o processo. Tenho 16 GB de RAM e pouco mais de 100 mil documentos curtos para analisar.
Vladislavs Dovgalecs

Respostas:


35

HDP é uma extensão da LDA, projetada para resolver o caso em que o número de componentes da mistura (o número de "tópicos" em termos de modelagem de documentos) não é conhecido a priori. Então é por isso que há uma diferença.

Usando o LDA para modelagem de documentos, trata-se cada "tópico" como uma distribuição de palavras em algum vocabulário conhecido. Para cada documento, uma mistura de tópicos é desenhada a partir de uma distribuição Dirichlet e, em seguida, cada palavra no documento é um desenho independente dessa mistura (ou seja, selecionando um tópico e, em seguida, usando-o para gerar uma palavra).

Para HDP (aplicado à modelagem de documentos), também se usa um processo Dirichlet para capturar a incerteza no número de tópicos. Portanto, é selecionada uma distribuição de base comum que representa o conjunto de tópicos possíveis para o corpus, infinitamente contável, e a distribuição finita de tópicos para cada documento é amostrada nessa distribuição de base.

Quanto aos prós e contras, o HDP tem a vantagem de que o número máximo de tópicos pode ser ilimitado e aprendido com os dados, em vez de ser especificado com antecedência. Suponho que seja mais complicado de implementar e desnecessário no caso de um número limitado de tópicos ser aceitável.


22

Curiosamente, nunca fiquei impressionado com a saída do LDA hierárquico. Parece que não parece encontrar um nível ótimo de granularidade para escolher o número de tópicos. Obtive resultados muito melhores executando algumas iterações do LDA regular, inspecionando manualmente os tópicos produzidos, decidindo aumentar ou diminuir o número de tópicos e continuar iterando até obter a granularidade que estou procurando.

Lembre-se: o LDA hierárquico não consegue ler sua mente ... ele não sabe para o que você realmente pretende usar a modelagem de tópicos. Assim como no cluster de k-means, você deve escolher o k que faz mais sentido para o seu caso de uso.


16

Eu gostaria de salientar, uma vez que este é um dos principais hits do Google para este tópico, que Alocação de Dirichlet Latente (LDA), Processos Hierárquicos de Dirichlet (HDP) e Alocação Latente de Dirichlet Latente (hLDA) são modelos distintos.

A LDA modela os documentos como misturas dirichlet de um número fixo de tópicos - escolhido como parâmetro do modelo pelo usuário - que, por sua vez, são misturas dirichlet de palavras. Isso gera um agrupamento probabilístico simples e suave de termos em tópicos e documentos em tópicos.

O HDP modela os tópicos como misturas de palavras, assim como o LDA, mas, em vez de documentos serem misturas de um número fixo de tópicos, o número de tópicos é gerado por um processo de dirichlet, resultando no número de tópicos também como uma variável aleatória. A parte "hierárquica" do nome refere-se a outro nível sendo adicionado ao modelo generativo (o processo dirichlet que produz o número de tópicos), não aos tópicos em si - os tópicos ainda são agrupamentos simples.

O hLDA, por outro lado, é uma adaptação do LDA que modela os tópicos como misturas de um novo e distinto nível de tópicos, extraído das distribuições de dirichlete não processos. Ele ainda trata o número de tópicos como um hiperparâmetro, ou seja, independente dos dados. A diferença é que o agrupamento agora é hierárquico - ele aprende um agrupamento do primeiro conjunto de tópicos, oferecendo um relacionamento mais geral e abstrato entre os tópicos (e, portanto, palavras e documentos). Pense nisso como agrupar as trocas de pilhas em matemática, ciências, programação, história etc., em vez de agrupar ciência de dados e validação cruzada em um tópico abstrato de estatística e programação que compartilha alguns conceitos com, por exemplo, engenharia de software, mas a engenharia de software as trocas estão agrupadas em um nível mais concreto com as trocas de ciência da computação, e a semelhança entre todas as trocas mencionadas não aparece tanto até a camada superior dos clusters.


0

Eu tenho uma situação em que o HDP funciona bem em comparação com o LDA. Eu tenho cerca de 16000 documentos que pertencem a várias classes. Como não sei quantos tópicos diferentes posso reunir para cada turma, o HDP é realmente útil nesse caso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.