Modelo Bayesiano Hierárquico (?)

12

Por favor, peço desculpas pelo meu massacre da linguagem estatística :) Encontrei aqui algumas perguntas relacionadas à publicidade e taxas de cliques. Mas nenhum deles me ajudou muito com minha compreensão da minha situação hierárquica.

Há uma pergunta relacionada. São essas representações equivalentes do mesmo modelo bayesiano hierárquico? , mas não tenho certeza se eles realmente têm um problema semelhante. Outra pergunta Os anteriores do modelo binomial bayesiano hierárquico entram em detalhes sobre os hiperpriors, mas não sou capaz de mapear sua solução para o meu problema

Tenho alguns anúncios online para um novo produto. Deixei os anúncios em exibição por alguns dias. Nesse ponto, muitas pessoas clicaram nos anúncios para ver qual recebe mais cliques. Depois de expulsar todos, exceto o que tem mais cliques, deixo que ele corra por mais alguns dias para ver o quanto as pessoas realmente compram depois de clicar no anúncio. Nesse momento, sei se foi uma boa ideia exibir os anúncios em primeiro lugar.

Minhas estatísticas são muito barulhentas porque não tenho muitos dados, pois estou vendendo apenas alguns itens todos os dias. Portanto, é realmente difícil estimar quantas pessoas compram algo depois de ver um anúncio. Somente cerca de um em cada 150 cliques resulta em uma compra.

De um modo geral, preciso saber se estou perdendo dinheiro em cada anúncio o mais rápido possível, suavizando as estatísticas por grupo de anúncios com estatísticas globais sobre todos os anúncios.

  • Se eu esperar até que todos os anúncios vejam compras suficientes, falharei porque leva muito tempo: para testar 10 anúncios, preciso gastar 10 vezes mais dinheiro para que as estatísticas de cada anúncio fiquem suficientemente confiáveis. Naquela época, eu poderia ter perdido dinheiro.
  • Se eu fizer uma média de compras em todos os anúncios, não poderei lançar anúncios que simplesmente não estão funcionando tão bem.

I podem utilizar a taxa de compra global ( n $ sub-distribuições? Isso significaria que, quanto mais dados eu tenho para cada anúncio, mais independentes são as estatísticas desse anúncio. Se ninguém clicou em um anúncio ainda, presumo que a média global seja apropriada.perclick)anduseitasapriorfor

Qual distribuição eu escolheria para isso?

Se eu tive 20 cliques em A e 4 cliques em B, como posso modelar isso? Até agora, descobri que uma distribuição binomial ou de Poisson pode fazer sentido aqui:

  • purchase_rate ~ poisson (?)
  • (purchase_rate | group A) ~ poisson (estime a taxa de compra apenas para o grupo A?)

Mas o que eu faço a seguir para realmente calcular o purchase_rate | group A. Como uno duas distribuições para fazer sentido para o grupo A (ou qualquer outro grupo).

Preciso ajustar um modelo primeiro? Eu tenho dados que eu poderia usar para "treinar" um modelo:

  • Anúncio A: 352 cliques, 5 compras
  • Anúncio B: 15 cliques, 0 compras
  • Anúncio C: 3519 cliques, 130 compras

Estou procurando uma maneira de estimar a probabilidade de qualquer um dos grupos. Se um grupo tiver apenas alguns pontos de dados, quero essencialmente voltar à média global. Conheço um pouco de estatística bayesiana e li muitos PDFs de pessoas descrevendo como modelam usando inferência bayesiana e anteriores conjugados e assim por diante. Eu acho que existe uma maneira de fazer isso corretamente, mas não consigo descobrir como modelá-lo corretamente.

Eu ficaria super feliz com dicas que me ajudariam a formular meu problema de maneira bayesiana. Isso ajudaria muito a encontrar exemplos on-line que eu poderia usar para realmente implementar isso.

Atualizar:

Muito obrigado por responder. Estou começando a entender cada vez mais pequenos detalhes sobre o meu problema. Obrigado! Deixe-me fazer algumas perguntas para ver se entendi um pouco melhor o problema agora:

Então, eu suponho que as conversões são distribuídas como distribuições Beta, e uma distribuição Beta tem dois parâmetros, e b .ab

O 112 parâmetros são hiperparâmetros, portanto são parâmetros do anterior? Então, no final, defino o número de conversões e o número de cliques como parâmetro da minha distribuição Beta?12

Em algum momento, quando eu quiser comparar diferentes anúncios, por isso gostaria de calcular . Como computo cada parte dessa fórmula?P(conversion|ad=X)=P(ad=X|conversion)P(conversion)P(ad=X)

  • Eu penso que é chamada a probabilidade, ou "modo" de distribuição beta. Então isso é α - 1P(ad=X|conversion) , sendoαeβos parâmetros da minha distribuição. Mas osαeβespecíficosaqui são os parâmetros para a distribuição apenas para o anúncioX, certo? Nesse caso, é apenas o número de cliques e conversões que este anúncio viu? Ou quantos cliques / conversõestodos osanúncios viram?α1α+β2αβαβX

  • Então eu multiplico com o prior, que é P (conversão), que é, no meu caso, apenas o prior de Jeffreys, que não é informativo. O anterior permanecerá o mesmo que eu obter mais dados?

  • Divido por , qual é a probabilidade marginal, então conto quantas vezes esse anúncio foi clicado?P(ad)

Ao usar o anterior de Jeffreys, suponho que estou começando do zero e não sei nada sobre meus dados. Esse prior é chamado "não informativo". Enquanto eu continuo aprendendo sobre meus dados, atualizo o anterior?

Quando cliques e conversões chegam, eu li que tenho que "atualizar" minha distribuição. Isso significa que os parâmetros da minha distribuição mudam ou que as alterações anteriores? Quando recebo um clique no anúncio X, atualizo mais de uma distribuição? Mais de um antes?

Mika Tiihonen
fonte

Respostas:

9

Como você intuiu, uma maneira muito geral de abordar sua pergunta é construir um modelo bayesiano hierárquico (multinível). O modelo possui três partes, conforme ilustrado abaixo.

Modelo

Hierarchical Bayesian model for ad conversion rates

  1. No nível da população, modelamos a probabilidade de conversão na população de anúncios da qual é amostrado seu conjunto específico de anúncios testados. Pode-se fixar os parâmetros populacionais e usá-los como prioritário para o segundo nível, conforme observado anteriormente por Neil. Como alternativa, poderíamos colocar um prior nos próprios parâmetros da população, o que fornece a vantagem adicional de agora podermos expressar nossa incerteza sobre os parâmetros da população à luz dos dados. Vamos seguir esta rota e colocar um anterior ( μ μ 0 , η 0 ) na média da população μ e Ga ( λ a 0 , bN(μμ0,η0)μ na precisão da população (ou seja, variação inversa). Um anterior difuso pode ser obtido usando μ 0 = 0 , η 0 = 0,1 , a 0 = 1 , b 0 = 1 , o que garante que nossas inferências posteriores sejam dominadas pelos dados.Ga(λa0,b0)μ0=0,η0=0.1,a0=1,b0=1

  2. No nível de anúncios individuais, podemos modelar a probabilidade de conversão de um determinado anúncio j como logit-normalmente distribuído. Assim, para cada anúncio j , a probabilidade de conversão do logit ρ j : = logit ( π j ) é modelada como N ( ρ jμ , λ ) .πjjjρj:=logit(πj)N(ρjμ,λ)

  3. Finalmente, no nível dos dados observados, modelamos o número de conversões para ad j como Bin ( k jσ ( ρ j ) , n j ) , onde σ ( ρ j ) usa a transformação sigmóide para traduzir um logit volte para uma probabilidade e onde n j é o número de cliques no anúncio j .kjjBin(kjσ(ρj),nj)σ(ρj)njj

Dados

Como exemplo, vamos pegar os dados que você postou na sua pergunta original,

Anúncio A: 352 cliques, 5 compras

Anúncio B: 15 cliques, 0 compras

Anúncio C: 3519 cliques, 130 compras

na qual traduzimos: n1=352,k1=5,n2=15,k2=0,

Inferência

Inverter este modelo significa obter distribuições posteriores para os parâmetros do nosso modelo. Aqui, usei uma abordagem variacional de Bayes para inversão de modelo, que é computacionalmente mais eficiente do que esquemas de amostragem estocástica, como o MCMC. Plotamos os resultados abaixo.

Data and resulting posteriors

A figura mostra três painéis. (a) Uma visualização simples dos dados de exemplo que você forneceu. As barras cinza representam o número de cliques, as barras pretas mostram o número de conversões. (b) A distribuição posterior resultante sobre a população significa a taxa de conversão média. À medida que observamos mais dados, isso se tornará cada vez mais preciso. (c) Intervalos de probabilidade posterior central de 95% (ou intervalos credíveis) das taxas de conversão posteriores específicas do anúncio.

O último painel ilustra dois recursos principais de uma abordagem bayesiana da modelagem hierárquica. Primeiro, a precisão dos posteriores reflete o número de pontos de dados subjacentes. Por exemplo, temos relativamente muitos pontos de dados para o anúncio C; portanto, sua posterior é muito mais precisa que a posterior dos outros anúncios.

Segundo, inferências específicas a anúncios são informadas pelo conhecimento sobre a população. Em outras palavras, os posteriores específicos de anúncios são baseados em dados de todo o grupo, um efeito conhecido como encolher para a população . Por exemplo, o modo posterior (círculo preto) do anúncio A é muito superior à sua taxa de conversão empírica (azul). Isso ocorre porque todos os outros anúncios têm modos posteriores mais altos e, portanto, podemos obter uma estimativa melhor da verdade do terreno informando nossas estimativas específicas do anúncio pela média do grupo. Quanto menos dados tivermos sobre um anúncio específico, mais será influenciado pelos dados dos outros anúncios.

Todas as idéias que você descreveu em sua pergunta original são realizadas naturalmente no modelo acima, ilustrando a utilidade prática de um cenário totalmente bayesiano.

Kay Brodersen
fonte
Kay, obrigado por sua resposta detalhada. Entendo que a resposta é um pouco datada, mas você se importaria em compartilhar o código que o acompanha, se o tiver mantido? Eu estou tentando aprender modelagem bayesiana hierárquica, mas lutando para encontrar exemplos intuitivos em R.
Zhubarb
@Kay, obrigado pela resposta interessante, você poderia adicionar alguma referência aos modelos hierárquicos bayesianos? Obrigado!
User511005
1
Olá, @Zhubarb, user511005, aqui está um link para o artigo que descreve o modelo acima: sciencedirect.com/science/article/pii/S1053811913002371 Fiz uma breve introdução à inferência variacional aqui: people.inf.ethz.ch/ bkay / palestras / Brodersen_2013_03_22.pdf
Kay Brodersen
2

p

paabb.

uma e brepresenta o seu anterior. Usar(12,12)para um prior de Jeffreys. Para "recuar" para a média global, existem várias maneiras de definiruma,b de acordo com todos os dados.

Para obter a estimativa de p fora do seu estimador com parâmetros uma,b, você pode escolher o valor máximo de probabilidade, o modo da distribuição Beta.


Em resposta às suas edições:

As conversões não são distribuídas em beta, mas Bernoulli com probabilidade p. Por favor, compare como estou definindouma e b in paragraph 2 with what you wrote. Note that you have a p for each ad, and thus a belief over p for each ad, and each of those beliefs has its own a and b.

The Bayesian update is

P(px)P(p)P(xp)

where x is the observation (conversion or no conversion) and p is selected for the appropriate ad. This formula is already worked into the update for a and b, which works so that in case of a conversion you add 1 to a, otherwise you add 1 to b — this is updating the belief of p.

The Jeffreys' prior is not the same thing as the uninformative prior, but I believe that it's better unless you have a good reason to use it. Feel free to ask another question if you want to start a discussion about that.

Neil G
fonte
Thanks for responding! I updated my original question because I ran out of characters in this comment box. It would be great if you could give some feedback for some of the details I wrote in the update.
Mika Tiihonen