Dirichlet Processos para agrupamento: como lidar com rótulos?


14

P: Qual é a maneira padrão de agrupar dados usando um Processo Dirichlet?

Ao usar Gibbs, os clusters de amostragem aparecem e desaparecem durante a amostragem. Além disso, temos um problema de identificabilidade, uma vez que a distribuição posterior é invariável às remarcações de cluster. Portanto, não podemos dizer qual é o cluster de um usuário, mas sim que dois usuários estão no mesmo cluster (ou seja, ).p(ci=cj)

Podemos resumir as atribuições de classe para que, se for a atribuição de cluster do ponto , agora não apenas mas ?ciici=cjci=cj=cj=...=cz

Essas são as alternativas que encontrei e por que acho que são incompletas ou equivocadas.

(1) Amostragem DP-GMM + Gibbs + matriz de confusão baseada em pares

Para usar um Modelo de Mistura Gaussiana do Processo Dirichlet (DP-GMM) para um agrupamento, implementei este artigo, onde os autores propõem um DP-GMM para estimativa de densidade usando amostragem de Gibbs.

Para explorar o desempenho do cluster, eles dizem:

Como o número de componentes muda na cadeia [MCMC], seria necessário formar uma matriz de confusão mostrando a frequência de cada par de dados atribuído ao mesmo componente para toda a cadeia, veja a Fig. 6. insira a descrição da imagem aqui

Contras : Este não é um cluster "completo" real, mas um cluster em pares. A figura parece muito boa porque conhecemos os conjuntos reais e organizamos a matriz de acordo.

(2) Amostragem DP-GMM + Gibbs + amostra até que nada mude

Estive pesquisando e encontrei algumas pessoas que afirmavam fazer cluster com base no Dirichlet Process usando um amostrador Gibbs. Por exemplo, este post considera que a cadeia converge quando não há mais alterações no número de clusters ou nos meios e, portanto, obtém os resumos a partir daí.

Contras : Não tenho certeza se isso é permitido, pois, se não estiver errado:

  • (a) pode haver trocas de etiquetas durante o MCMC.

  • (b) mesmo na distribuição estacionária, o amostrador pode criar alguns aglomerados de tempos em tempos.

(3) Amostragem DP-GMM + Gibbs + escolher amostra com partição mais provável

Neste artigo , os autores dizem:

Após um período de “burn-in”, amostras imparciais da distribuição posterior do IGMM podem ser coletadas no amostrador Gibbs. Um agrupamento rígido pode ser encontrado ao desenhar muitas dessas amostras e usar a amostra com a maior probabilidade conjunta das variáveis ​​indicadoras de classe. Usamos uma implementação modificada do IGMM, escrita por M. Mandel .

Contras : A menos que seja um Sampler de Gibbs recolhido, onde apenas amostramos as atribuições, podemos calcular mas não o marginal . (Seria uma boa prática obter o estado com mais alto ?)p(c|θ)p(c)p(c,θ)

(4) DP-GMM com inferência variacional :

Vi que algumas bibliotecas usam inferência variacional. Não conheço muito a inferência variacional, mas acho que você não tem problemas de identificação lá. No entanto, gostaria de seguir os métodos do MCMC (se possível).

Qualquer referência seria útil.


p(c)

p(c)

isso é por design . De fato, vai além do MCMC: é um recurso embutido em qualquer modelo bayesiano. Se qualquer coisa, você está encontrando um problema porque você está tentando fazer algo não natural, algo que estamos obcecados com a realização de: enfiar uma estimativa de distribuição em uma estimativa pontual
shadowtalker

Há razões para não querer fazer algo assim em primeiro lugar - há vários sentidos em que o modelo de mistura de processos Dirichlet não pode estimar consistentemente o número de clusters (e, portanto, não pode fazer um bom trabalho de recuperação de um " verdadeiro "agrupamento de dados). Houve um artigo recente no NIPS sobre este tópico.
cara

1
Veja aqui . Eu acho que eles propõem colocar um Poisson antes no número de componentes (e derivar algum tipo de processo de restaurante para implementá-lo), mas não tenho certeza se esse é o papel que eles fazem.
cara

Respostas:


1

cp(c,θ)p(c,θ)p(c|θ)

A razão pela qual digo que essa resposta é "experimental" é que não tenho certeza se designar um valor como "parâmetro" é apenas uma questão de semântica, ou se há uma definição mais técnica / teórica que um dos usuários que possuem doutorado aqui seria capaz de elucidar.


p(c,θ)=p(c|θ)p(θ)p(c)
alberto

@ alberto novamente, isso não tem nada a ver com esse modelo e tudo a ver com as estatísticas bayesianas. Veja aqui: groups.google.com/forum/m/#!topic/stan-users/qH-2Mq219gs . E se você estiver preocupado com vários modos, consulte aqui: groups.google.com/forum/m/#topic/stan-users/RsVo9NUn0yM e aqui: stats.stackexchange.com/q/3328/36229
shadowtalker

1

Eu só queria compartilhar alguns recursos sobre o assunto, esperando que alguns deles pudessem ser úteis para responder a essa pergunta. Existem muitos tutoriais sobre processos Dirichlet (DP) , incluindo alguns sobre o uso do DP para cluster . Eles variam de "suave", como este tutorial de apresentação , a mais avançado, como este tutorial de apresentação . Esta última é uma versão atualizada do mesmo tutorial, apresentada por Yee Whye Teh no MLSS'07. Você pode assistir ao vídeo dessa conversa com slides sincronizados aqui . Falando sobre vídeos, você pode assistir a outra conversa interessante e relevante com slides de Tom Griffith aqui . Em termos dos tutoriais formatados em papel, este tutorial é um bom e bastante popular.

Por fim, gostaria de compartilhar alguns artigos relacionados. Este artigo sobre DP hierárquico parece ser importante e relevante. O mesmo se aplica a este artigo de Radford Neal. Se você estiver interessado na modelagem de tópicos , a alocação latente de Dirichlet (LDA) provavelmente também deve estar no seu radar. Nesse caso, este artigo muito recente apresenta uma abordagem LDA nova e muito aprimorada. Em relação ao domínio da modelagem de tópicos, eu recomendaria a leitura de trabalhos de pesquisa de David Blei e seus colaboradores. Este artigo é introdutório, o restante você encontra na página de publicações de pesquisa. Percebo que alguns dos materiais que recomendei podem ser muito básicos para você, mas pensei que, ao incluir tudo o que me deparei no tópico, aumentaria as chances de você encontrar a resposta .


Entendo o que você está tentando fazer aqui, mas isso realmente não aborda a questão.
Shadowtalker

1
@ssdecontrol: Se você entende o que estou tentando fazer aqui (que está ajudando o OP a descobrir a resposta e aprender uma coisa ou duas), qual é o sentido do seu comentário? Nunca afirmei que minha resposta é a resposta, mas expressei esperança de que seja útil , o que, em última instância, depende do OP. Se você tiver uma resposta melhor, tenho certeza de que será apreciada pelo OP e pela comunidade.
Aleksandr Blekh 02/02

1
Sim, eu entendo totalmente. Isso é muito do que faço aqui também. Mas a pergunta é perguntar sobre a maneira correta de selecionar rótulos de cluster nos resultados do MCMC e não acho que isso resolva essa questão.
shadowtalker

@AleksandrBlekh Eu concordo com o ssdecontrol que é um pouco fora de tópico, já que o OP parece conhecer o "básico" e faz uma pergunta específica.
Tim

1
@AleksandrBlekh Agradeço o seu post, pelo menos faz um bom resumo para uma introdução ao DP. Eu sei o básico (nível intermediário, digamos), mas pelo menos suas referências me fizeram voltar à LDA e perceber que elas andam na ponta dos pés pelo problema, pois seus rótulos geralmente não mudam.
Alberto2
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.