Distribuição Dirichlet

Sue Liu Blocked Unblock Seguir Seguindo 6 de janeiro

Há alguns meses, construí um sistema de recomendação que empregava modelagem de tópicos para exibir tarefas relevantes para os funcionários. O algoritmo utilizado foi o Latent Dirichlet Allocation (LDA), um modelo generativo que existe desde o início dos anos 2000 ¹ . É claro que não reescrevi o LDA desde o início, mas usei a implementação no scikit-learn do Python. Mas comecei a pensar na sequência da pesquisa que levou à criação do modelo LDA. Percebi que há muitas lacunas em meu conhecimento que me impediram de construir uma história coerente, então busquei minha velha máquina de aprendizado de livros com o objetivo de saber o suficiente para poder explicar a LDA em todos os seus detalhes probabilísticos cruéis. A certa altura, havia a preocupação de que ela se transformasse em uma regressão infinita, mas no final prevaleceu a razão, e essa sequência de artigos foi construída. Na ordem inversa, temos:

V: Alocação de Dirichlet Latente (LDA)
IV: Indexação Semântica Latente (LSA)
III: Modelos de mistura e o algoritmo EM
II: modelos generativos bayesianos
I: distribuição Dirichlet

Esperemos que, quando chegarmos ao fim, o objetivo tenha sido alcançado. Vamos começar com a distribuição de Dirichlet.

Distribuição de Dirichlet – o que é e por que é útil?

Olhando para cima a distribuição Dirichlet em qualquer livro e encontramos a seguinte definição:

A distribuição de Dirichlet Dir ( ? ) é uma família de distribuições de probabilidade multivariadas contínuas parametrizadas por um vetor ? de reais positivos. É uma generalização multivariada da distribuição Beta. As distribuições de Dirichlet são comumente usadas como distribuições anteriores nas estatísticas Bayesianas.

Uma questão imediata é por que a distribuição de Dirichlet é usada como uma distribuição prévia nas estatísticas Bayesianas? Uma razão é que é o conjugado antes de um número de distribuições de probabilidade importantes: a distribuição categórica e a distribuição multinomial. Usá-lo como um anterior torna a matemática muito mais fácil.

Conjugado antes

Na teoria da probabilidade Bayesiana, se a distribuição posterior p ( ? | x ) e a distribuição prévia p ( ? ) são da mesma família de distribuição de probabilidade, então o anterior e o posterior são chamados de distribuições conjugadas , e o anterior é o conjugado anterior para o função de verossimilhança.

Se pensarmos no problema de inferir o parâmetro ? para uma distribuição de um dado conjunto de dados x , então o teorema de Bayes diz que a distribuição posterior é igual ao produto da função de verossimilhança ? ? p ( x | ? ) e o anterior p ( ? ), normalizado pela probabilidade dos dados p ( x ):

Teorema de Bayes. Para calcular o posterior, precisamos normalizar pela integral.

Como a função de verossimilhança é geralmente definida a partir do processo de geração de dados, podemos ver que as escolhas de diferenças anteriores podem tornar a integral mais ou menos difícil de calcular. Se o prior tiver a mesma forma algébrica que a verossimilhança, muitas vezes podemos obter uma expressão de forma fechada para o posterior, evitando a necessidade de integração numérica.

Motivando a distribuição de Dirichlet: fabricação de dados

Mostramos como a distribuição de Dirichlet pode ser usada para caracterizar a variabilidade aleatória de uma distribuição multinomial. Eu peguei emprestado esse exemplo de um ótimo post de blog sobre a visualização da distribuição de Dirichlet .

Suponha que vamos fabricar dados de 6 faces, mas permitir que os resultados de um lance sejam apenas 1, 2 ou 3 (isso é para que a visualização posterior seja mais fácil). Se o dado for justo, as probabilidades dos três resultados serão iguais e iguais a 1/3. Podemos representar as probabilidades para os resultados como um vetor ? = ( ? ?, ? ?, ? ?).

? tem duas propriedades importantes: primeiro, a soma das probabilidades de cada entrada deve ser igual a uma e nenhuma das probabilidades pode ser negativa. Quando essas condições se mantêm, os resultados associados ao rolamento do dado podem ser descritos por uma distribuição multinomial.

Em outras palavras, se observarmos rolos N DICE, D = {símbolos X-, …, x_k}, em seguida, a função de verossimilhança tem a forma

Onde N_ k é o número de vezes que o valor k ? {1, 2, 3} ocorreu.

Esperamos que haja alguma variabilidade nas características dos dados que produzimos, por isso, mesmo que tentemos produzir dados justos, não esperamos que as probabilidades de cada resultado para um determinado dado sejam exactamente 1/3, devido à variabilidade. no processo de produção. Para caracterizar essa variabilidade matematicamente, gostaríamos de conhecer a densidade de probabilidade de todos os valores possíveis de ? para um determinado processo de fabricação. Para fazer isso, vamos considerar cada elemento de ? como sendo uma variável independente. Ou seja, para ? = ( ? ?, ? ?, ? ?), podemos tratar ? ?, ? ? e ? ? cada como uma variável independente. Como a distribuição multinomial exige que essas três variáveis totalizem 1, sabemos que os valores permitidos de ? estão confinados a um plano. Além disso, como cada valor ? ? deve ser maior ou igual a zero, o conjunto de todos os valores permitidos de ? é confinado a um triângulo.

O que queremos saber é a densidade de probabilidade em cada ponto desse triângulo. É aqui que a distribuição de Dirichlet pode nos ajudar: podemos usá-lo como prior para a distribuição multinomial.

Distribuição Dirichlet

A distribuição de Dirichlet define uma densidade de probabilidade para uma entrada com valor de vetor com as mesmas características que nosso parâmetro multinomial ? . Tem suporte (o conjunto de pontos onde tem valores diferentes de zero)

onde K é o número de variáveis. Sua função de densidade de probabilidade tem a seguinte forma:

A distribuição de Dirichlet é parametrizada pelo vetor ? , que possui o mesmo número de elementos K que nosso parâmetro multinomial ? . Então você pode interpretar p ( ? | ? ) como respondendo a pergunta “qual é a densidade de probabilidade associada à distribuição multinomial ? , dado que nossa distribuição de Dirichlet tem o parâmetro ? .”

Visualizando a distribuição de Dirichlet

Vemos que a distribuição de Dirichlet na verdade tem a mesma forma que a distribuição de verossimilhança multinomial. Mas o que realmente parece?

Para ver isso, precisamos observar que é a generalização multivariada da distribuição beta. A distribuição beta é definida no intervalo [0, 1] parametrizado por dois parâmetros de forma positiva ? e ?. Como seria de esperar, eles são os antecedentes conjugados para as distribuições binomiais (incluindo Bernoulli). A figura mostra a função de densidade de probabilidade para a distribuição Beta com um número de valores ? e ?.

Como podemos ver, a função de densidade beta pode ter uma grande variedade de formas diferentes, dependendo de ? e ?. Quando ? e ? são menores que 1, a distribuição é em forma de U. No limite de ? = ? ? 0, é uma distribuição de Bernoulli de 2 pontos com probabilidade igual a 1/2 em cada função delta de Dirac termina em x = 0 e x = 1, e probabilidade zero em qualquer outro lugar. Quando ? = ? = 1, temos a distribuição uniforme [0, 1], que é a distribuição com a maior entropia. Quando ? e ? são maiores que 1, a distribuição é unimodal. Essa diversidade de formas, variando apenas dois parâmetros, é particularmente útil para modelar medições reais.

Para a distribuição de Dirichlet Dir ( ? ), generalizamos essas formas para um K simplex. Para K = 3, visualizar a distribuição exige que façamos o seguinte: 1. Gere um conjunto de coordenadas xy sobre nosso triângulo, 2. Mapeie as coordenadas xy para o espaço de coordenadas 2-simplex, 3. Compute Dir ( ? ) para cada ponto. Abaixo estão alguns exemplos, você pode encontrar o código no meu repositório Github .

Distribuição de Dirichlet em um 2-simplex (triângulo equilátero) para diferentes valores de ? .

Nós vemos que agora é o parâmetro ? que governa as formas da distribuição. Em particular, a soma ?? = ??? controla a força da distribuição (como é o pico). Se ?? <1 para todo i , obtemos 'picos' nos cantos do simplex. Para valores de ??> 1, a distribuição tende para o centro do simplex. À medida que ?? aumenta, a distribuição se torna mais concentrada em torno do centro do simplex.

No contexto do nosso experimento de dados original, produziríamos dados consistentemente justos como ?? ? ?. Para uma distribuição simétrica de Dirichlet com ??> 1, produziremos um dado justo, em média. Se o objetivo é produzir dados carregados (por exemplo, com uma probabilidade maior de rolar um 3), gostaríamos de uma distribuição assimétrica de Dirichlet com um valor maior para ??.

Nós agora vimos o que é a distribuição de Dirichlet, qual é a aparência e as implicações de usá-la como um pré-requisito para uma função de verossimilhança multinomial no contexto de um exemplo de fabricação de dados. No próximo post vamos mergulhar em modelos generativos bayesianos e como realizar inferências.

Referências

Blei, DM, Ng, AY, Jordânia, MI (2003) Latent Dirichlet Allocation . Journal of machine Learning research, 3 (Jan), pp. 99- 1022.