Multi-Armed Bandit com Thompson Sampling

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[This article was first published on R – Predictive Hacks, and kindly contributed to R-bloggers]. (Você pode relatar problemas sobre o conteúdo desta página aqui)


Quer compartilhar seu conteúdo em R-bloggers? clique aqui se você tiver um blog, ou aqui se não tiver.

Poucas palavras sobre Thompson Sampling

Thompson Sampling é um algoritmo para problemas de decisão onde ações são tomadas em um balanceamento de sequência entre a exploração que maximiza o desempenho imediato e a exploração que acumula novas informações que podem melhorar o desempenho futuro. Sempre há uma compensação entre exploração e exploração em todos os problemas de bandidos multi-armados.

Atualmente, Thompson Sampling aumentou sua popularidade, pois é amplamente utilizado em campanhas on-line como Facebook, Youtube e Web Campaigns, onde muitas variantes são servidas no início e, com o passar do tempo, o algoritmo dá mais peso às variantes fortes.

Conjugado Prior

Na teoria de probabilidade bayesiana, se as distribuições posteriores p (θ | x) estão na mesma família de distribuição de probabilidade que a distribuição de probabilidade anterior p (θ), o anterior e o posterior são então chamados de distribuições conjugadas, e o anterior é chamado de um conjugado anterior para a função de verossimilhança p (x | θ)

Vamos nos concentrar no caso binomial, já que no marketing digital nos preocupamos principalmente com a CTR e as taxas de conversão que seguem a distribuição binomial. De acordo com a Teoria Bayesiana, a distribuição a priori conjugada de uma Distribuição Binomial é a Distribuição Beta com os hiperparâmetros posteriores α e β que são os sucessos e as falhas respectivamente.

Leia Também  Proxyclick levanta US $ 15 milhões para expandir ainda mais os EUA e outros mercados
Multi-Armed Bandit com Thompson Sampling 1
https://en.wikipedia.org/wiki/Conjugate_prior

Observe que a interpretação exata dos parâmetros de uma distribuição beta em termos do número de sucessos e falhas depende de qual função é usada para extrair uma estimativa pontual da distribuição. A média de uma distribuição beta é ( displaystyle { frac { alpha} { alpha + beta}} ),} { frac { alpha} { alpha + beta}}, que corresponde a { displaystyle alpha} alpha sucessos e { displaystyle beta} beta falhas, enquanto o modo é { displaystyle { frac { alpha -1} { alpha + beta -2}},} { frac { alpha -1} { alpha + beta -2}}, que corresponde a { displaystyle alpha -1} alpha -1 sucessos e { displaystyle beta -1} beta -1 falhas. Os bayesianos geralmente preferem usar a média posterior em vez do modo posterior como estimativa pontual, justificada por uma função de perda quadrática, e o uso de { displaystyle alpha} alpha e { displaystyle beta} beta é mais conveniente matematicamente , enquanto o uso de { displaystyle alpha -1} alpha -1 e { displaystyle beta -1} beta -1 tem a vantagem de um uniforme { displaystyle { rm {Beta}} (1,1 )} { rm {Beta}} (1,1) antes corresponde a 0 sucessos e 0 falhas. Os mesmos problemas se aplicam à distribuição Dirichlet


Algoritmo de amostragem de Thompson

Na prática, queremos maximizar o número esperado de recompensas (ou seja, cliques, conversões) dadas as ações (ou seja, variantes) e o contexto atual. Conceitualmente, isso significa que, no início, servimos as variantes aleatoriamente e, em seguida, reajustamos nossa estratégia (ou seja, a distribuição das variantes) com base nos resultados.

A questão é como obtemos os pesos para cada estado e a resposta é com Simulação de Monte Carlo. Nós assumimos o variantes seguem a distribuição Binomial e de acordo com a teoria Bayesiana, sua distribuição Conjugada a priori segue a distribuição Beta com hiperparâmetros α = respostas + 1 e β = sem respostas + 1.

Leia Também  Do R Hub - JavaScript para o desenvolvedor do pacote R

Vamos dar um exemplo de três variantes:

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
  • Variante 1: N = 1000, respostas = 100 (ou seja, RR = 10%). O conjugado anterior será Beta (a = 101, b = 901)
  • Variante 2: N = 1000, respostas = 110 (ou seja, RR = 11%). O conjugado anterior será Beta (a = 111, b = 891)
  • Variante 3: N = 100, respostas = 10 (ou seja, RR = 10%). O conjugado anterior será Beta (a = 11, b = 91)

Multi-Armed Bandit com Thompson Sampling 2

Multi-Armed Bandit com Thompson Sampling 3

Sempre devemos servir a variante com o RR mais alto. Isso é feito pela simulação de Monte Carlo. No exemplo acima, nós amostramos 5.000 observações de cada distribuição beta, escolhendo cada vez a variante com o valor mais alto. Os pesos que obtivemos foram:

  • 14% de variante 1
  • 45% Variante 2
  • 41% Variante 3.

Depois de ajustarmos os pesos e nós
obter novos resultados, seguimos a mesma abordagem novamente.


Amostragem de Thompson em R

É muito fácil aplicar a Amostragem de Thompson em R. Trabalharemos com as três variantes de nosso exemplo acima. Observe que o variante 3 tem menos impressões do que os outros dois, por isso é menos acentuada como distribuição.

# vector of impressions per variant
b_Sent

and we get:

> P

     1      2      3 
0.1368 0.4496 0.4136

Observe que, como estamos lidando com uma Simulação de Monte Carlo, se você não definir uma semente aleatória, obterá resultados ligeiramente diferentes a cada vez.


Amostragem de Thompson em ação

Acima mostramos quais seriam os pesos sugeridos com base nos resultados observados das três variantes. Vamos dar um exemplo de onde estamos lidando com 4 variantes onde sabemos sua probabilidade de verdade fundamental e vamos ver como a Amostragem de Thompson ajustará os pesos em cada etapa.

Vamos supor que as taxas de conversão da verdade fundamental das 4 variantes sejam:

  • Variante 1: 10%
  • Variante 2: 11%
  • Variante 3: 12%
  • Variante 4: 13%

Nossa estratégia é atualizar os pesos em cada 1000 impressões e vamos supor que o tamanho total da amostra é 10.000 (ou seja, vamos atualizar os pesos dez vezes).


output

And we get:

> output
       [,1]  [,2]  [,3]  [,4]
 [1,] 0.239 0.259 0.245 0.257
 [2,] 0.002 0.349 0.609 0.040
 [3,] 0.003 0.329 0.533 0.135
 [4,] 0.001 0.078 0.386 0.535
 [5,] 0.001 0.016 0.065 0.918
 [6,] 0.002 0.016 0.054 0.928
 [7,] 0.002 0.095 0.154 0.749
 [8,] 0.003 0.087 0.067 0.843
 [9,] 0.001 0.059 0.069 0.871
[10,] 0.006 0.058 0.116 0.820

Como podemos ver, já a partir da 5ª etapa o algoritmo passou a atribuir mais peso à variante 4 e quase nada à variante 1 e à variante 2.


Discussão

Existem outros algoritmos Multi-Armed Bandit como o ε-greedy, o greedy o UCB, etc. Existem também bandidos multi-armados contextuais. Na prática, existem alguns problemas com os bandidos multi-armados. Vamos mencionar alguns:

  • O CTR / CR pode mudar ao longo dos dias, bem como a preferência das variantes (efeito sazonal, efeito do dia da semana, fadiga da campanha, etc.)
  • Ao alterar os pesos das variantes, isso afeta o CTR / CR principalmente porque:
    • Devido aos cookies, isso afeta a distribuição dos novos e dos usuários repetidos
    • Os resultados são distorcidos devido às conversões tardias



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br