Projekte

März 17, 2013

E-Commerce (manchmal) doing it wrong

Die meisten E-Commerce-Websites bieten Ihnen Ihre Suchergebnisse nach Kundenbewertungen sortieren … und eine ganze Menge tun es falsch. Nehmen wir an, ich suche hier ein Buch über CSS. Ich möchte das beste Buch bekommen, das man für Geld kaufen kann, also werde ich definitiv auf die Schaltfläche Nach Bewertung sortieren klicken. Die Website bietet zwei Optionen

  • Buch A : 1 Bewertung von 5. Durchschnittliche Bewertung von 5.
  • Buch B : 50 Bewertungen. Durchschnittliche Bewertung von 4.5

Denken Sie darüber nach, würden Sie lieber Buch A kommen zuerst von Buch Bkommen zuerst. Wahrscheinlich Buch B richtig? Das bedeutet, dass wir einige Dinge brauchenmarter als nur nach Durchschnittsbewertung zu sortieren.

Eine erste einfache Antwort, die im Vergleich zur Sortierung nach Durchschnittsbewertung definitiv eine Verbesserung darstellen würde, könnte darin bestehen, Produkte mit weniger als k Bewertungen an den unteren Rand zu setzen. Aber wie wählt man k? Was ist, wenn wir nach einer Nische suchen und alle Produkte weniger als k Bewertungen haben, außer einem, das eine k + 1 schreckliche Bewertung hat. Sollte es an die Spitze gehen?

Eine zweite Antwort, zu der Sie kommen könnten, wäre, eine empirische Bewertungsformel zu wählen, die unseren Einschränkungen zu entsprechen scheint.

Die meisten Formeln basieren auf Bayes’scher Schätzung. Im Allgemeinen scheint die Bayes’sche Schätzung wirklich auf diese Art von Situation : Sie wollen etwas messen, aber Sie wissen, dass Sie nicht genug Daten haben, um eine perfekte Schätzung zu erreichen.

Wenn m der Mittelwert der Bewertungen und n die Anzahl der Bewertungen ist, könnten wir Folgendes in Betracht ziehen:

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

Dies wird wahrscheinlich gut funktionieren. Wahrscheinlich … müssen Sie immer noch das richtige K wählen, ohne zu wissen, auf welche physikalischen Werte es sich bezieht. Noch wichtiger ist, dass Sie Ihren Kollegen davon überzeugen müssen, dass dies die nette Lösung ist, die die Randfälle perfekt abdeckt.

Bayesian estimation Crash course

Die große Idee ist, anstatt zu versuchen, unsere Schätzung direkt zu berechnen, berechnen wir zuerst eine Wahrscheinlichkeitsverteilung, die beschreibt, “was wir wissen” des Wertes, den wir schätzen wollen, und dann (und nur dann) können wir eine Schätzung dieses Wertes extrahieren, die unserem Zweck entspricht.

Die Trennung der Bedenken in diesem letzten Bit ist eigentlich ziemlich wichtig. Abhängig von Ihrer Sichtweise können Sie sehr unterschiedliche Werte als Schätzungen eines physischen Wertes betrachten.

Wenn ich zum Beispiel die Anzahl der Seren abschätzen muss, die eine Regierung kaufen muss, um mit einer Epidemie fertig zu werden, möchte ich eine Zahl liefern, für die ich sagen kann: Ich bin mir bei 90% sicher, dass dies ausreichen wird. Diese Zahl kann manchmal sehr weit von der Erwartung entfernt sein. Wenn ich tatsächlich wie in der Buchhaltung in der Firma arbeite, die diese Seren verkauft, und ich möchte eine Vorstellung von einer unteren Grenze für mein Einkommen für den nächsten Monat bekommen, werde ich wahrscheinlich ein völlig anderes Quantil nehmen.

Ein einfaches Beispiel

Nehmen wir an, Sie haben gerade einen Parasiten namens Toxoplasmose entdeckt und möchten das Verhältnis $X $ der mit einem Parasiten namens Toxoplasmose infizierten Personen schätzen.Menschliche Patienten, die mit dem Parasiten infiziert sind, zeigen überhaupt keine Symptome, so dass Sie, soweit Sie wissen, alles sein können. Wir könnten Ihre Vision der Wahrscheinlichkeitsverteilung dieses Wertes als gleichmäßige Verteilung beschreiben. .

Hier über Wahrscheinlichkeit zu sprechen, könnte sich ein bisschen komisch anfühlen.Ist es zunächst legitim, über Wahrscheinlichkeit zu sprechen, wenn wir etwas sehr Greifbares schätzen?, nicht zufälliger Wert? In Bezug auf die Bayes’sche Wahrscheinlichkeit ist eine Variable zufällig, wenn Sie ihren Wert nicht genau kennen. Es ist eine Information, die unser Wissen über etwas zusammenfasst.

Aber kommen wir zurück zu unserem Problem. Wenn Sie Menschen auf Toxoplasmose testen, werden Sie Beobachtungen machen.Jede Person hat eine Wahrscheinlichkeit X Toxoplasmose zu haben, und Sie möchten dies sehr schätzen X. Nehmen wir an, dass Sie nach dem Sehen von $ n $ Personen k Personen mit Toxoplasmose entdeckt haben.

Sie haben mit einer einheitlichen vorherigen Wahrscheinlichkeit begonnen, und jede Beobachtung wird Ihre Vision auf X biegen, wodurch sie immer genauer wird.Diese aktualisierte Vision von X wird als posteriore Verteilung bezeichnet.Wir nennen O (wie in der Beobachtung) die Reihenfolge der Ergebnisse unserer N Tests.

Bayes liefert eine kleine Formel, um es zu berechnen

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

$P(O)$ ist die Wahrscheinlichkeit zu beobachten, was wir beobachtet haben. Es ist konstant mit X und daher von geringem Interesse. Ebenso haben wir unsere vorherige Wahrscheinlichkeit $P(X)$ als einheitlich gewählt und sie variiert daher nicht mit X. Wir interessieren uns nur für die Proportionalitätsrelation:

 $$ P(X | O) \propto P( O | X) $$

$$P( O X)$$ wird als wahrscheinlichkeit. Es wird X (der Wert, den wir suchen) die Wahrscheinlichkeit gegeben, zu beobachten, was wir beobachtet haben. Das ist normalerweise ziemlich einfach zu berechnen.

In unserem Fall ist die Wahrscheinlichkeit, die Sequenz unabhängiger Beobachtungen zu beobachten

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

wird durch Multiplikation der Wahrscheinlichkeit jeder Beobachtung gegeben :

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

Für eine einzelne Beobachtung ist die Wahrscheinlichkeit, oi positiv (bzw. negativ) zu beobachten, definitionsgemäß X (bzw. 1-X). Am Ende, wenn wir K positiv und N-K negativ beobachten, ist die posteriore Wahrscheinlichkeit

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

Diese Verteilung wird auch Binomialverteilung genannt.

Es ist interessant zu sehen, wie sich die posteriore Wahrscheinlichkeit mit der Anzahl der Beobachtungen entwickelt. Die folgende Grafik zeigt, wie der Posterior mit der Anzahl der Beobachtungen, die wir erhalten, immer verfeinert wird.

Nun, da wir die genaue Wahrscheinlichkeit haben, könnten wir jede Art von Schätzungen aus dieser Verteilung berechnen. Die wohl gebräuchlichste Ausgabe wäre die Berechnung eines Konfidenzintervalls: Ein Intervall, für das wir mit einer Konfidenz von 90% behaupten können, dass unser Wert irgendwo zwischen a und b liegt.

Heutzutage hat jeder einen Computer und der wahrscheinlich einfachste Weg, ein solches Konfidenzintervall zu erzeugen, besteht wahrscheinlich darin, die kumulative Verteilungsfunktion dieser Verteilung zu berechnen.

Viele Statistiker arbeiteten auch daran, sehr genaue Konfidenzintervalle für Binomialverteilungen zu finden, wenn die normale Approximation nicht zutrifft. Vielleicht möchten Sie nach dieser Wikipedia-Seite suchen, wenn Sie eine dieser Formeln verwenden möchten.

Zurück zu den Sternen

Zurück zu den Sternen! In diesem Abschnitt betrachten wir zur Vereinfachung einen Bereich von 1, 2 oder 3 Sternen. Wir werden versuchen, angesichts der Antwort der Menschen die posteriore Verteilung des Anteils der Menschen zu schätzen, die ihm jeweils 1,2 oder 3 Sterne geben würden, wenn wir die Möglichkeit hätten, eine unendliche Anzahl von Menschen zu fragen.

Die Zufallsvariable, die wir beobachten, folgt einer sogenannten kategorialen Verteilung. Das ist im Grunde eine Variable, die ihre Werte innerhalb von {1,2,3} mit einigen Wahrscheinlichkeiten p1, p2, p3 mit

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

Was es schwieriger macht, ist, dass wir nicht die Verteilung eines Skalarwerts betrachten, sondern die gemeinsame Verteilung von drei Skalarwerten (oder vielmehr zwei unter Berücksichtigung der linearen Einschränkung).

Dennoch können wir die gleiche Argumentation anwenden wie bei der Schätzung einer einzelnen Wahrscheinlichkeit :

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

Diesmal werden wir jedoch einen Prior einbeziehen. Um Berechnungen zu vereinfachen, ist es immer eine gute Idee, einen Prior zu wählen, der die gleiche Form wie die Wahrscheinlichkeit hat. Berechnen wir zuerst die Wahrscheinlichkeit.

Genau wie in unserem vorherigen Beispiel Parameterschätzung können wir die Unabhängigkeit unserer Beobachtung verwenden.

 $$ 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}) $$

Und die Wahrscheinlichkeit jeder einzelnen Beobachtung wird durch die zugehörige Wahrscheinlichkeit gegeben

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

Wenn also innerhalb der N Bewertungen, die wir erhalten haben, jeweils K1, K2, K3 Bewertungen mit jeweils 1,2 und 3 Sternen waren, haben wir eine Wahrscheinlichkeit von

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

Das heißt eine Dirichlet-Verteilung mit dem Parameter

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

Um die Mathematik viel einfacher zu machen, betrachten wir eine Prior mit der gleichen Form und Parameter alpha0.

Der Posterior ist proportional zu

 $$ 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 } } $$

Was wir faktorisieren können in

 $$ 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 } }. $$

in dem wir eine Dirichlet-Verteilung mit Parameter sehen

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

Was wir wirklich wollen, ist eine Schätzung der durchschnittlichen Anzahl von star. Betrachten wir die Verwendung der Erwartung dieses Durchschnitts angesichts unseres Alters.

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

Die Erwartung der Wahrscheinlichkeit, 1,2 oder 3 Sterne zu erhalten, ist durch die Dirichlet-Verteilung gegeben

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

Wir haben daher für unseren Bayes-Durchschnitt:

 $$ 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}, $$

wo wir definieren

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

Wir können das neu gruppieren als

 $$ 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} $$

Voilà ! Lassen Sie uns diese Formel einfach verdauen, um sie im wirklichen Leben nutzbar zu machen. Bayes’scher Durchschnitt für die Sternebewertung würde darin bestehen, einen Parameter C und m zu wählen, in dem

  • m einen Prior für den Durchschnitt der Sterne
  • C darstellt, wie zuversichtlich wir in unserem Prior sind. Es entspricht einer Reihe von Beobachtungen.

Dann ist der Bayes-Durchschnitt

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

Wenn Sie die relevanten Daten und die unendliche Zeit haben, können Sie diese beiden Werte festlegen, indem Sie eine Dirichlet-Verteilung auf den Datensatz der Bewertungen aller Ihrer Computerbücher anpassen. Es ist jedoch sehr üblich, nur ein Parameterpaar auszuwählen, das das gesuchte Verhalten nachahmt. m ist der Wert, an den wir die durchschnittliche Bewertung von Produkten mit sehr wenigen Bewertungen anpassen. Je größer C ist, desto höher ist die Anzahl der Bewertungen, die erforderlich sind, um “von m wegzukommen”.

Schauen wir uns nun unser erstes Beispiel an. Zwei mögliche Werte sind zum Beispiel m=3 und C=5.

Die Bayes-Mittelwerte für die beiden Bücher werden

 $$ {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 $$

Wie erwartet hat Buch 2 einen besseren Bayes-Durchschnitt als Buch 1.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.