projekty

Marzec 17, 2013

E-Commerce (czasami) robi to źle

większość witryn e-commerce oferuje sortowanie wyników wyszukiwania według ocen klientów… i sporo robi to źle. Załóżmy, że tutaj Szukam książki o CSS. Chcę uzyskać najlepszą książkę, którą można kupić za pieniądze, więc na pewno nacisnę przycisk Sortuj według oceny. Strona oferuje dwie opcje

  • książka a: 1 Ocena 5. Średnia ocena 5.
  • książka B: 50 ocen. Średnia ocena 4.5

zastanów się nad tym, czy wolisz, aby książka była pierwsza od książki Bcome first. Pewnie Księga B, prawda? Oznacza to, że potrzebujemy czegoś więcej niż tylko sortowania według średniej oceny.

pierwszą prostą odpowiedzią, która zdecydowanie byłaby poprawą w porównaniu do sortowania według średniej oceny, może być umieszczenie produktu z ocenami mniejszymi niż k na dole. Ale jak wybrać k? Co jeśli szukamy niszy, a wszystkie produkty mają mniej niż oceny k, z wyjątkiem jednego, który ma oceny K+1. Powinno być na górze ?

drugą odpowiedzią, którą możesz wymyślić, byłoby wybranie empirycznej formuły punktowej, która wydaje się pasować do naszych ograniczeń.

Większość formuł opiera się na estymacji Bayesa. Ogólnie rzecz biorąc, estymacja bayesowska naprawdę rzuca światło na tego rodzaju sytuację: chcesz coś zmierzyć, ale wiesz, że nie będziesz miał wystarczająco dużo danych, aby osiągnąć doskonałe estymacje.

Jeśli m jest średnią ocen, a n jest liczbą ocen, możemy rozważyć coś takiego :

$$rating(m, n) = {mn \over {n+K}}$$

to prawdopodobnie zadziała dobrze. Prawdopodobnie … nadal musisz wybrać właściwe K, nie wiedząc, jakie wartości fizyczne się odnoszą. Co ważniejsze, będziesz musiał przekonać swojego współpracownika, że jest to dobre rozwiązanie, które doskonale pokryje przypadki brzegowe.

Bayesian estimation crash course

główną ideą jest to, że zamiast próbować bezpośrednio obliczyć nasze oszacowanie, najpierw obliczamy rozkład prawdopodobieństwa opisujący “to, co wiemy” o wartości, którą chcemy oszacować, a następnie (i tylko wtedy) możemy wyodrębnić oszacowanie tej wartości, które pasuje do naszego celu.

rozdzielenie troski w tym ostatnim bitie jest właściwie dość ważne. W zależności od punktu widzenia można rozważyć bardzo różne wartości jako szacunki wartości fizycznej.

na przykład, jeśli muszę oszacować liczbę serum, które rząd musi kupić, aby poradzić sobie z epidemią, będę chciał dostarczyć liczbę, na którą mogę powiedzieć : jestem pewien, że w 90% będzie to wystarczające. Ta liczba czasami może być bardzo daleka od oczekiwań. Jeśli faktycznie pracuję jako księgowy w firmie sprzedającej te serum i chcę mieć pojęcie o niższej granicy moich dochodów na przyszły miesiąc, to prawdopodobnie wezmę zupełnie inną kwantyłę.

prosty przykład

Załóżmy, że właśnie odkryłeś pasożyta zwanego toksoplazmozą i chcesz oszacować stosunek $X$ osób zarażonych pasożytem zwanym toksoplazmozą.

ludzie zarażeni pasożytem nie wykazują żadnych objawów, więc o ile wiesz, to może być cokolwiek. Możemy opisać Twoją wizję rozkładu prawdopodobieństwa tej wartości jako równomierny rozkład. .

mówienie o prawdopodobieństwie tutaj może być trochę dziwne.Po pierwsze, czy uzasadnione jest mówienie o prawdopodobieństwie, gdy szacujemy coś bardzo namacalnego, nie przypadkowego? W kategoriach prawdopodobieństwa bayesowskiego, zmienna jest losowa, jeśli nie znasz jej dokładnie. Jest to informacja, która podsumowuje naszą wiedzę o czymś.

ale wróćmy do naszego problemu. Badając ludzi na toksoplazmozę, będziecie robić obserwacje.Każda osoba będzie miała X prawdopodobieństwo wystąpienia toksoplazmozy, a Ty chcesz oszacować To właśnie X. Załóżmy, że po obejrzeniu $N$ osób wykryłeś k osób z toksoplazmozą.

zacząłeś z jednolitym prawdopodobieństwem wstępnym, a każda obserwacja nagnie Twoją wizję na X, czyniąc ją coraz dokładniejszą.To zaktualizowane widzenie X nazywa się jego rozkładem tylnym.NazywamyO (jak w obserwacji) sekwencją wyników naszych N testów.

Bayes dostarcza mały wzór, aby go obliczyć

 $$P(X | O) = { P( O | X) P(X) \over { P(O)} }$$

$p(O)$ jest prawdopodobieństwem obserwacji tego, co zaobserwowaliśmy. Jest stała Z X, i dlatego jest mało interesujące. Podobnie wybraliśmy nasze wcześniejsze prawdopodobieństwo $P(X)$, aby było jednorodne i dlatego nie różni się od X. interesuje nas tylko relacja proporcjonalności :

 $$ P(X | O) \propto P( O | X) $$
$$p( O x)$$ nazywa się prawdopodobieństwo. Otrzymuje się X (wartość, której szukamy) prawdopodobieństwo obserwacji tego, co zaobserwowaliśmy. Zwykle jest to coś dość prostego do obliczenia.

w naszym przypadku prawdopodobieństwo obserwacji sekwencji niezależnych obserwacji

 $$ O = ({o_1}, ..., {o_N}) $$

jest podane przez pomnożenie prawdopodobieństwa każdej obserwacji:

 $$ P(O | X) = P({o_1}| X) \times ... \times P({o_N} | X) $$

dla jednej pojedynczej obserwacji prawdopodobieństwo zaobserwowania Oi dodatniego (odpowiednio ujemnego) wynosi z definicji x (odpowiednio 1-x). W końcu, jeśli obserwujemy K dodatnie, a n-k ujemne, prawdopodobieństwo tylne wynosi

 $$ P(X | O) \propto X^{K}(1-X)^{N-K} $$

rozkład ten jest również nazywany rozkładem dwumianowym.

To ciekawe, jak ewoluuje Prawdopodobieństwo z tyłu wraz z liczbą obserwacji. Poniższy wykres pokazuje, jak tył staje się coraz bardziej dopracowany z liczbą obserwacji, które otrzymujemy.

teraz, gdy mamy dokładne prawdopodobieństwo, możemy rozważyć obliczenie dowolnego rodzaju szacunków z tego rozkładu. Prawdopodobnie najczęstszym wyjściem byłoby obliczenie przedziału ufności : przedział, dla którego możemy twierdzić z ufnością 90% nasza wartość leży gdzieś pomiędzy a i b.

w dzisiejszych czasach każdy ma komputer i prawdopodobnie najprostszym sposobem wytworzenia takiego przedziału ufności jest prawdopodobnie obliczenie funkcji rozkładu kumulatywnego tego rozkładu.

wielu statystyków pracowało również nad znalezieniem bardzo dokładnych przedziałów ufności dla rozkładów dwumianowych, gdy normalne przybliżenie nie utrzymuje się. Możesz sprawdzić tę stronę Wikipedii, jeśli chcesz użyć jednej z tych formuł.

powrót do gwiazd

wróćmy do ocen gwiazd! W tej sekcji dla uproszczenia rozważymy zakres 1, 2 lub 3 gwiazdek. Postaramy się oszacować, biorąc pod uwagę ludzką odpowiedź, tylny rozkład proporcji osób, które dałyby mu odpowiednio 1,2 lub 3 gwiazdki, gdybyśmy mieli szansę zapytać nieskończoną liczbę osób.

obserwowana przez nas zmienna losowa ma tzw. rozkład kategoryczny. Jest to w zasadzie zmienna, która przyjmuje swoje wartości w obrębie {1,2,3} z pewnym prawdopodobieństwem p1, p2, p3 z

$$ {p_1} + {p_2} + {p_3} = 1 $$

trudniej jest to, że nie patrzymy na rozkład wartości skalarnych, ale na wspólny rozkład trzech wartości skalarnych (a raczej dwóch, biorąc pod uwagę ograniczenie liniowe).

nadal możemy zastosować to samo rozumowanie, co w przypadku estymacji pojedynczego prawdopodobieństwa :

 $$ P({p_1}, {p_2}, {p_3} | O) \propto P( O | {p_1}, {p_2}, {p_3}) P({p_1}, {p_2}, {p_3}) $$

tym razem jednak uwzględnimy wcześniejsze. Aby uprościć obliczenia, zawsze dobrym pomysłem jest wybranie przedziału, który ma taki sam kształt jak prawdopodobieństwo. Najpierw obliczmy prawdopodobieństwo.

podobnie jak w poprzednim przykładzie estymacji parametrów, możemy użyć niezależności naszej obserwacji.

 $$ P(O | {p_1}, {p_2}, {p_3}) = P({o_1}| {p_1}, {p_2}, {p_3}) \times \cdots \times P({o_N} | {p_1}, {p_2}, {p_3}) $$

a prawdopodobieństwo każdej indywidualnej obserwacji jest podane przez związane z tym prawdopodobieństwo

 $$\forall j \in \{1,2,3\}, ~~ \forall 1\leq i \leq N, ~~P( {o_i = j} | {p_1}, {p_2}, {p_3}) = {p_j} $$

dlatego, jeśli w ciągu N recenzji, które otrzymaliśmy, było odpowiednio recenzje K1, K2, K3 z odpowiednio gwiazdkami 1,2 i 3, mamy prawdopodobieństwo

 $$ P(O | {p_1}, {p_2}, {p_3}) = {p_1}^{K_1} {p_2}^{K_2} {p_3}^{K_3} $$

, który nazywa się dystrybucją Dirichleta z parametrem

 $$ \alpha = \left( \begin{array}{c} {K_1} + 1 \\ {K_2} + 1 \\ {K_3} + 1 \end{array} \right) $$

aby znacznie uprościć matematykę, rozważmy prior o tym samym kształcie i parametrze alpha0.

tylny, jest proporcjonalny do

 $$ P({p_1}, {p_2}, {p_3} | O) \propto { {p_1}^{K_1} } { {p_2}^{K_2} } { {p_3}^{K_3} } { {p_1}^{ {\alpha_1^0} - 1 } } { {p_2}^{ {\alpha_2^0} - 1 } } { {p_3}^{ {\alpha_3^0} - 1 } } $$

, który możemy podzielić na

 $$ P({p_1}, {p_2}, {p_3} | O) \propto { {p_1}^{ {K_1} + {\alpha_1^0} - 1 } } { {p_2}^{ {K_2} + {\alpha_2^0} - 1 } } { {p_3}^{ {K_3} + {\alpha_3^0} - 1 } }. $$

, w którym widzimy rozkład Dirichleta z parametrem

 $$ {\alpha^1} = \left( \begin{array}{c} {K_1} + \alpha_1^0 \\ {K_2} + \alpha_2^0 \\ {K_3} + \alpha_3^0 \end{array} \right) $$

teraz to, czego naprawdę chcemy, to oszacowanie średniej liczby gwiazd. Rozważmy użycie średniej średniej, biorąc pod uwagę naszą tylną część.

 $$ E( {p_1} + 2{p_2} + 3{p_3} | O ) = E( {p_1} | O ) + 2 E({p_2} | O ) + 3E({p_3} | O ) $$

średnia prawdopodobieństwa uzyskania 1,2 lub 3 liczby gwiazd jest określona przez rozkład Dirichleta

 $$ E(p_i | O) = { {\alpha_i^1} \over { {\alpha_1^1} + {\alpha_2^1} + {\alpha_3^1} } } $$

mamy więc dla naszej średniej bayesowskiej:

 $$ rating({K_1}, {K_2}, {K_3}) = \frac{ {K_1} + \alpha_1^0}{ N + A} + 2 \frac{ {K_2} + \alpha_2^0}{ N + A} + 3 \frac{ {K_3} + \alpha_3^0}{ N + A}, $$

gdzie definiujemy

 $$ N = {K_1} + {K_2} + {K_3}~~and~~A = {\alpha_1^0} + {\alpha_2^0} + {\alpha_3^0} $$

możemy to przegrupować jako

 $$ rating({K_1}, {K_2}, {K_3}) = \frac{ \left(\alpha_1^0 + 2 \alpha_2^0 + 3 \alpha_3^0 \right) + \left({K_1} + 2{K_2} + 3{K_3}\right) }{A + N} $$

voila ! Przetrawmy tę formułę, aby uczynić ją użyteczną w prawdziwym życiu. Bayesowska średnia dla gwiazd polegałaby na wybraniu jakiegoś parametru C I m, w którym

  • M oznacza przecenę dla średniej gwiazd
  • C oznacza, jak bardzo jesteśmy pewni naszej przeceny. Jest odpowiednikiem wielu obserwacji.

wtedy średnia bayesowska będzie wynosić

 $$ rating({K_1}, {K_2}, {K_3}) = \frac{ C \times m + total~number~of~stars }{C + number~of~reviews } $$

Jeśli masz odpowiednie dane i nieskończony czas, możesz ustawić te dwie wartości, dopasowując rozkład Dirichleta do zbioru danych ocen wszystkich książek komputerowych. Jednak bardzo często wystarczy wybrać parę parametrów, które naśladują zachowanie, którego szukamy. m to wartość, do której dostosujemy średnią recenzję produktów z bardzo małą liczbą recenzji. Im większe jest C, tym większa jest liczba recenzji wymaganych do “odejścia od m”.

przyjrzyjmy się teraz naszemu pierwszemu przykładowi. Dwie możliwe wartości to na przykład m=3 I C=5.

średnie bayesowskie dla obu książek stają się

 $$ {rating_{book~A}} = \frac{5 \times 3 + 5 \times 1}{ 5 + 1 } = 3.3 $$ $$ {rating_{book~B}} = \frac{5 \times 3 + 4.5 \times 50 }{ 5 + 50 } = 4.36 $$

zgodnie z oczekiwaniami, Księga 2 ma lepszą średnią bayesowską niż Księga 1.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.