Hierarchiczny model bayesowski (?)

12

Przepraszam za rzeź w statystycznym żargonie :) Znalazłem tutaj kilka pytań związanych z reklamą i współczynnikiem klikalności. Ale żadne z nich nie bardzo mi pomogło w zrozumieniu mojej hierarchicznej sytuacji.

Istnieje podobne pytanie Czy te równoważne reprezentacje tego samego hierarchicznego modelu bayesowskiego? , ale nie jestem pewien, czy rzeczywiście mają podobny problem. Kolejne pytanie Priors dla hierarchicznego modelu dwumianowego Bayesa dotyczy szczegółowo hiperpriorów, ale nie jestem w stanie zmapować ich rozwiązania do mojego problemu

Mam kilka reklam online nowego produktu. Zezwalam na wyświetlanie reklam przez kilka dni. W tym momencie wystarczająco dużo osób kliknęło reklamy, aby zobaczyć, które z nich uzyska najwięcej kliknięć. Po wyrzuceniu wszystkich oprócz tego, który ma najwięcej kliknięć, pozwalam temu działać przez kolejne kilka dni, aby zobaczyć, ile osób faktycznie kupuje po kliknięciu reklamy. W tym momencie wiem, czy dobrym pomysłem było wyświetlanie reklam w pierwszej kolejności.

Moje statystyki są bardzo głośne, ponieważ nie mam dużo danych, ponieważ codziennie sprzedaję tylko kilka przedmiotów. Dlatego naprawdę trudno jest oszacować, ile osób kupuje coś po obejrzeniu reklamy. Tylko około jedno na każde 150 kliknięć powoduje zakup.

Ogólnie rzecz biorąc, muszę wiedzieć, czy tracę pieniądze na każdą reklamę tak szybko, jak to możliwe, w jakiś sposób wygładzając statystyki poszczególnych grup reklam za pomocą statystyk globalnych dla wszystkich reklam.

  • Jeśli poczekam, aż każda reklama zobaczy wystarczającą liczbę zakupów, zbankrutuję, ponieważ trwa to zbyt długo: testowanie 10 reklam muszę wydać 10 razy więcej pieniędzy, aby statystyki dla każdej reklamy były wystarczająco wiarygodne. Do tego czasu mogłem stracić pieniądze.
  • Jeśli uśrednię zakupy w stosunku do wszystkich reklam, nie będę w stanie wyrzucić reklam, które po prostu nie działają.

Czy mogę użyć globalnej stopy zakupu ( pod-dystrybucji N $? Oznaczałoby to, że im więcej danych mam dla każdej reklamy, tym bardziej niezależne są statystyki dla tej reklamy. Jeśli nikt jeszcze nie kliknął reklamy, zakładam, że średnia globalna jest odpowiednia.perclick)anduseitasapriorfor

Którą dystrybucję wybrałbym do tego?

Jeśli miałem 20 kliknięć na A i 4 kliknięcia na B, jak mogę to wymodelować? Do tej pory odkryłem, że dwumianowy lub rozkład Poissona może mieć tutaj sens:

  • purchase_rate ~ poisson (?)
  • (purchase_rate | group A) ~ poisson (oszacować stopę zakupu tylko dla grupy A?)

Ale co mam teraz zrobić, aby faktycznie obliczyć purchase_rate | group A. Jak połączyć razem dwie dystrybucje, aby mieć sens dla grupy A (lub dowolnej innej grupy).

Czy najpierw muszę dopasować model? Mam dane, których mógłbym użyć do „wyszkolenia” modelu:

  • Reklama A: 352 kliknięcia, 5 zakupów
  • Reklama B: 15 kliknięć, 0 zakupów
  • Reklama C: 3519 kliknięć, 130 zakupów

Szukam sposobu oszacowania prawdopodobieństwa każdej z grup. Jeśli grupa ma tylko kilka punktów danych, zasadniczo chcę wrócić do średniej globalnej. Wiem trochę o statystykach bayesowskich i przeczytałem wiele plików PDF osób opisujących ich modelowanie przy użyciu wnioskowania bayesowskiego i koniugacji priorów i tak dalej. Myślę, że istnieje sposób, aby to zrobić poprawnie, ale nie mogę wymyślić, jak poprawnie to wymodelować.

Byłbym bardzo szczęśliwy z podpowiedzi, które pomogą mi sformułować mój problem w sposób bayesowski. To bardzo pomogłoby w znalezieniu przykładów online, których mógłbym użyć do faktycznego wdrożenia tego.

Aktualizacja:

Dziękuję bardzo za odpowiedź. Zaczynam rozumieć coraz więcej drobiazgów na temat mojego problemu. Dziękuję Ci! Pozwól, że zadam kilka pytań, aby sprawdzić, czy rozumiem problem nieco lepiej:

Zakładam więc, że konwersje są dystrybuowane jako dystrybucje Beta, a dystrybucja Beta ma dwa parametry, i .ab

Parametry są hiperparametrami, więc są parametrami wcześniejszymi? Więc ostatecznie ustawiłem liczbę konwersji i liczbę kliknięć jako parametr mojej dystrybucji Beta?12 12

W pewnym momencie, gdy chcę porównać różne reklamy, obliczę . Jak obliczyć każdą część tej formuły?P(conversion|ad=X)=P(ad=X|conversion)P(conversion)P(ad=X)

  • Myślę, że nazywa się prawdopodobieństwem lub „trybem” dystrybucji Beta. To jest , gdzie i są parametrami mojej dystrybucji. Ale konkretne i tutaj są parametrami dystrybucji tylko dla reklamy , prawda? Czy w takim przypadku jest to tylko liczba kliknięć i konwersji, które widziała ta reklama? A może ile kliknięć / konwersji zobaczyły wszystkie reklamy?P(ad=X|conversion)α1α+β2αβαβX

  • Następnie mnożę przez przeora, którym jest P (konwersja), co w moim przypadku jest po prostu przeorem Jeffreysa, który nie ma charakteru informacyjnego. Czy wcześniejsza wersja pozostanie taka sama, gdy otrzymam więcej danych?

  • Dzielę przez , co jest krańcowym prawdopodobieństwem, więc liczę, jak często ta reklama została kliknięta?P(ad)

Korzystając z wcześniejszej Jeffreys, zakładam, że zaczynam od zera i nic nie wiem o moich danych. Ten przeor nazywany jest „nieinformacyjnym”. Czy w miarę poznawania moich danych aktualizuję wcześniejszą wersję?

Gdy nadchodzą kliknięcia i konwersje, przeczytałem, że muszę „zaktualizować” moją dystrybucję. Czy to oznacza, że ​​zmieniają się parametry mojego rozkładu, czy też wcześniejsze zmiany? Czy po kliknięciu reklamy X mogę zaktualizować więcej niż jedną dystrybucję? Więcej niż jeden przeor?

Mika Tiihonen
źródło

Odpowiedzi:

9

Zgodnie z intuicją, bardzo ogólnym sposobem odpowiedzi na twoje pytanie jest zbudowanie hierarchicznego (wielopoziomowego) modelu Bayesa. Model składa się z trzech części, jak pokazano poniżej.

Model

Hierarchiczny model bayesowski współczynników konwersji reklam

  1. Na poziomie populacji modelujemy prawdopodobieństwo konwersji w populacji reklam, z których pobierany jest określony zestaw testowanych reklam. Można było naprawić parametry populacji i wykorzystać je wcześniej dla drugiego poziomu, jak zauważył wcześniej Neil. Ewentualnie moglibyśmy nadać pierwszeństwo samym parametrom populacji, co zapewnia dodatkową korzyść, że możemy teraz wyrazić naszą niepewność co do parametrów populacji w świetle danych. tą drogą i na średniej populacji i na precyzji populacji ( tj. odwrotna wariancja). Rozproszony wcześniej można uzyskać za pomocąN(μμ0,η0)μGa(λa0,b0)μ0=0,η0=0.1,a0=1,b0=1, co zapewnia, że ​​nasze późniejsze wnioski będą zdominowane przez dane.

  2. Na poziomie poszczególnych reklam możemy modelować prawdopodobieństwo konwersji danej reklamy jako rozkład logit-normalny. Zatem dla każdej reklamy prawdopodobieństwo konwersji logit jest modelowane jako .πjjjρj:=logit(πj)N(ρjμ,λ)

  3. Na koniec, na poziomie obserwowanych danych, modelujemy liczbę konwersji dla reklamy jako , gdzie używa transformacji sigmoidalnej aby przeliczyć szybkość logowania z powrotem na prawdopodobieństwo, a gdzie oznacza liczbę kliknięć reklamy .kjjBin(kjσ(ρj),nj)σ(ρj)njj

Dane

Jako przykład weźmy dane opublikowane w pierwotnym pytaniu,

Reklama A: 352 kliknięcia, 5 zakupów

Reklama B: 15 kliknięć, 0 zakupów

Reklama C: 3519 kliknięć, 130 zakupów

co tłumaczymy na:n1=352,k1=5,n2=15,k2=0,

Wnioskowanie

Odwrócenie tego modelu oznacza uzyskanie rozkładów bocznych dla naszych parametrów modelu. Tutaj zastosowałem wariacyjne podejście Bayesa do inwersji modelu, które jest obliczeniowo wydajniejsze niż stochastyczne schematy próbkowania, takie jak MCMC. Przedstawiłem wyniki poniżej.

Dane i wynikowe tylne

Na rysunku pokazano trzy panele. (a) Prosta wizualizacja podanych przez Ciebie przykładowych danych. Szare paski oznaczają liczbę kliknięć, czarne paski pokazują liczbę konwersji. (b) Wynikający z tego rozkład tylny w populacji oznacza średni współczynnik konwersji. Gdy obserwujemy więcej danych, będzie to coraz bardziej precyzyjne. (c) środkowe 95% przedziały prawdopodobieństwa z tyłu (lub wiarygodne przedziały) współczynników konwersji dla reklamy specyficzne dla reklamy.

Ostatni panel ilustruje dwie kluczowe cechy bayesowskiego podejścia do modelowania hierarchicznego. Po pierwsze, precyzja elementów bocznych odzwierciedla liczbę podstawowych punktów danych. Na przykład mamy stosunkowo wiele punktów danych dla reklamy C; dlatego jego tylna część jest znacznie bardziej precyzyjna niż tylna strona innych reklam.

Po drugie, wnioski dotyczące reklam są oparte na wiedzy na temat populacji. Innymi słowy, boczni reklamy specyficzni dla reklamy opierają się na danych z całej grupy, efekt znany jako kurczenie się w populacji . Na przykład tryb tylny (czarne kółko) reklamy A jest znacznie wyższy niż jego empiryczny współczynnik konwersji (niebieski). Wynika to z faktu, że wszystkie inne reklamy mają wyższe tryby tylne, a zatem możemy uzyskać lepsze oszacowanie prawdziwej prawdy, informując nasze szacunki dotyczące konkretnych reklam za pomocą średniej grupy. Im mniej danych mamy na temat konkretnej reklamy, tym większy wpływ na jej późniejsze dane będą miały inne reklamy.

Wszystkie pomysły, które opisałeś w swoim pierwotnym pytaniu, zostały zrealizowane naturalnie w powyższym modelu, ilustrując praktyczną użyteczność w pełni bayesowskiej scenerii.

Kay Brodersen
źródło
Kay, dziękuję za twoją szczegółową odpowiedź. Rozumiem, że odpowiedź jest nieco przestarzała, ale czy mógłbyś udostępnić towarzyszący jej kod, gdybyś go zachował? Próbuję nauczyć się hierarchicznego modelowania bayesowskiego, ale staram się znaleźć intuicyjne przykłady w R.
Zhubarb,
@Kay, dziękuję za ciekawą odpowiedź. Czy mógłbyś dodać jakieś odniesienie do hierarchicznych modeli bayesowskich? Dzięki!
user511005
1
Cześć @Zhubarb, user511005, tu jest link do artykułu opisującego powyższy model: sciencedirect.com/science/article/pii/S1053811913002371 Mam ułożyła krótkie wprowadzenie do wnioskowania wariacyjnym tutaj: people.inf.ethz.ch/ bkay / talks / Brodersen_2013_03_22.pdf
Kay Brodersen
2

Należy oszacować prawdopodobieństwo „konwersji” (zakupu) po kliknięciu każdej reklamy. (Wygląda na to, że zakładasz, że prawdopodobieństwo konwersji jest takie samo dla każdego kliknięcia, co jest rozsądne).p

Bayesa sposobem, aby to zrobić, to oszacować rozkład na , czyli beta i ma parametry kształtu równa liczbie konwersji powiększonej i równa liczbie kliknięć, które nie skutkują konwersją powiększonej .paabb

a i reprezentują twój przeor. Użyj dla Jeffreysa. Aby „powrócić” do średniej globalnej, istnieje wiele sposobów ustawiania zależności od wszystkich danych.b(12,12)a,b

Aby uzyskać oszacowanie z estymatora za pomocą parametrów , możesz wybrać maksymalną wartość prawdopodobieństwa, tryb rozkładu Beta.pa,b


W odpowiedzi na Twoje zmiany:

Konwersje nie są dystrybuowane w wersji beta, ale dystrybuowane przez Bernoulliego z prawdopodobieństwem . Proszę porównać jak ja ustawiania i w pkt 2, z tym, co napisałeś. Zauważ, że masz dla każdej reklamy, a zatem przekonanie o dla każdej reklamy, a każde z tych przekonań ma swoje własne i .pabppab

Aktualizacja bayesowska to

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

gdzie to obserwacja (konwersja lub brak konwersji), a jest wybrane dla odpowiedniej reklamy. Ta formuła jest już pracował w aktualizacji programu i , który działa tak, że w przypadku przekształcenia dodać 1 do , w przeciwnym razie dodać 1 do - to jest aktualizowanie przekonanie o .xpababp

Przeor Jeffreysa to nie to samo, co przeorny nieinformacyjny, ale uważam, że lepiej, chyba że masz dobry powód, aby z niego skorzystać. Jeśli chcesz rozpocząć dyskusję na ten temat, zadaj kolejne pytanie.

Neil G.
źródło
Dziękuję za odpowiedź! Zaktualizowałem swoje oryginalne pytanie, ponieważ w tym polu komentarza zabrakło znaków. Byłoby wspaniale, gdybyś mógł przekazać opinie na temat niektórych szczegółów, które napisałem w aktualizacji.
Mika Tiihonen