Memory-based Collaborative Filtering

Moderator: Web Mining

sYsChOs
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 9. Aug 2005 12:15

Memory-based Collaborative Filtering

Beitrag von sYsChOs »

Hallo,

auf Folie 11 des letzten Foliensatzes (Recommender Systems) ist m(u) als "expected value (mean) over all votes of user" beschrieben. Kann mir jemand sagen, was das heißt??

Beste Grüße,
seb

Xelord
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 225
Registriert: 23. Okt 2004 09:49

Re: Memory-based Collaborative Filtering

Beitrag von Xelord »

Ich hab das so verstanden, als wär das die durschnittliche Bewertungszahl des Benutzers.
Beispiel: Benutzer werte 2 mal 1 und einmal 0, dann wäre m(u)= 2/gesamtZahl der möglichen Bewertungen
Zuletzt geändert von Xelord am 1. Jul 2008 09:04, insgesamt 1-mal geändert.

sYsChOs
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 9. Aug 2005 12:15

Re: Memory-based Collaborative Filtering

Beitrag von sYsChOs »

ok, so hab ich's auch vermutet; also m(u) = Zahl der von u gekauften items/Zahl der items im shop

Xelord
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 225
Registriert: 23. Okt 2004 09:49

Re: Memory-based Collaborative Filtering

Beitrag von Xelord »

Oh stimmt, wir haben verschiedene Aussagen geschrieben.
Aber deins macht mehr Sinn.

apfel
Mausschubser
Mausschubser
Beiträge: 84
Registriert: 22. Apr 2005 08:50

Re: Memory-based Collaborative Filtering

Beitrag von apfel »

Die Idee von \(m(u)\) ist wohl: Wenn ich nur die Daten von \(u\) betrachte und leider auch nicht weiß, welche Produkte zueinander ähnlich sind, wie hoch würde ich die Bewertung von \(u\) zu einer gelben Zahnbürste schätzen?
Ich würde als Schätzung den Druchschnitt seiner bisherigen Bewertungen nehmen.

Sei \(S(u)\) die Summe seiner Bewertungen und \(A(u)\) die Anzahl der von \(u\) gemachten Bewertungen, dann ist

\(m(u) = \frac{S(u)}{A(u)}\)

Wenn man als Bewertung nur hat, ob \(u\) ein Produkt gekauft oder nicht gekauft hat (wie es Beispielhaft auf Seite 10 vorgeschlagen wird), dann ist \(A(u)\) gleich der Anzahl aller Produkte.

Gibt es hingegen echte Bewertungen z.B von 1 bis 6, dann ist \(A(u)\) die Anzahl der Produkte, die von \(u\) bewertet wurden. Für die anderen Produkte steht gewissermaßen ein 'nan' (not a number) in der Matrix, das in den Durchschnitt nicht einfließt.

Lorenz

Das sieht doof aus mit der tex-Stücken die zu hoch stehen. Egal.

mherrmann
Mausschubser
Mausschubser
Beiträge: 49
Registriert: 12. Nov 2005 10:10

Re: Memory-based Collaborative Filtering

Beitrag von mherrmann »

apfel hat geschrieben:Die Idee von \(m(u)\) ist wohl: Wenn ich nur die Daten von \(u\) betrachte und leider auch nicht weiß, welche Produkte zueinander ähnlich sind, wie hoch würde ich die Bewertung von \(u\) zu einer gelben Zahnbürste schätzen?
Ich würde als Schätzung den Druchschnitt seiner bisherigen Bewertungen nehmen.
apfel hat geschrieben:
Gibt es hingegen echte Bewertungen z.B von 1 bis 6, dann ist \(A(u)\) die Anzahl der Produkte, die von \(u\) bewertet wurden. Für die anderen Produkte steht gewissermaßen ein 'nan' (not a number) in der Matrix, das in den Durchschnitt nicht einfließt.
Ist das nicht das Gleiche?

Verstehe ich das richtig? Wenn ich nur als Information habe ob ein Benutzer eine Produkt gekauft oder nicht. Ich dann einen Benutzer habe, der bisher nur 1 Produkt gekauft hat, ich habe aber 10000 Produkte in meinem Shop, dann ist \(A(u) = 10000\) und \(S(u) = 1\). Also habe ich einen Erwartungswert von \(\frac{1}{10000}\)? Falls das soweit richtig ist, dann finde ich, dass das keinen Sinn macht, denn dieser Erwartungswert wird ja nie zutreffen. Sobald der Kunde noch ein Produkt kauft erhöht sich der Erwartungswert.

Das sieht echt doof aus mit den tex Stücken.

apfel
Mausschubser
Mausschubser
Beiträge: 84
Registriert: 22. Apr 2005 08:50

Re: Memory-based Collaborative Filtering

Beitrag von apfel »

mherrmann hat geschrieben: Verstehe ich das richtig? Wenn ich nur als Information habe ob ein Benutzer eine Produkt gekauft oder nicht. Ich dann einen Benutzer habe, der bisher nur 1 Produkt gekauft hat, ich habe aber 10000 Produkte in meinem Shop, dann ist \(A(u) = 10000\) und \(S(u) = 1\). Also habe ich einen Erwartungswert von \(\frac{1}{10000}\)?
Genau, die Bewertunginterpretation ist hier ein bißchen fragwürdig, da man davon davon ausgeht, dass der Kunde alle nicht gekauften Produkte schlecht findet. Trotzdem kann das recommender system sinnvolle Ansagen machen, die noch besser werden werden, wenn man m(u) verwendet: Bei einem Kunden der jedes dritte Produkt kauft, ist die Bewertung "gekauft" weniger Aussagekräftig als bei jemanden, der (aus welchen Günden auch immer) wählerischer ist.

Lorenz

levitin
Kernelcompilierer
Kernelcompilierer
Beiträge: 435
Registriert: 7. Okt 2007 15:36
Wohnort: Darmstadt

Re: Memory-based Collaborative Filtering

Beitrag von levitin »

ich glaube m(u) ist für andere Zweche gedacht und zwar wenn ein User z.B. alle Produkte gut bewerten mag (weil er heute gute Stimmung hat), und der andere User, der streng gegen Warenqualität im allgemeinen ist, bewertet dieselbe Produkte viel schlechter (nur sehr seltene Waren bekommen von ihm 5/5).

m(u) ist ein Objektivitätsmaß. z.B. user A bewertet 4 Artikel und zwar mit 4, 3, 4, 3 (aus max. 5 Sterne)
m(user) = (4+3+4+3) / 4 = 3,5

dieses Maß wird immer abgezogen von der neuen Bewertung und es wird ein Differenz mit 0 betrachtet:
z.B. neue Bewertung ist 4, dann ist v(user, item) - m(user) = 4 - 3,5 = - 0.5

Antworten

Zurück zu „Web Mining“