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.

Alberto
fonte
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.

shadowtalker
fonte
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 .

Aleksandr Blekh
fonte
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