Fortschritte im Bereich Collaborative Filtering

28
Fortschritte im Bereich Collaborative Filtering Vortrag von Martin Esche 06.12.2013

description

Ein Vortrag von Martin Esche aus dem Hauptseminar "Personalisierung mit großen Daten".

Transcript of Fortschritte im Bereich Collaborative Filtering

Page 1: Fortschritte im Bereich Collaborative Filtering

Fortschritte im Bereich Collaborative Filtering

Vortrag von Martin Esche 06.12.2013

Page 2: Fortschritte im Bereich Collaborative Filtering

Gliederung

Kurze Einführung in die Funktionsweise von Collaborative Filtering

Vorstellung Verschiedener Methoden zur Verbesserung der Ergebnisse

Neighborhood Model Matrix Factorization Model

Vergleich der vorgestellten Methoden

Page 3: Fortschritte im Bereich Collaborative Filtering

Einführung in die Funktionalität von Collaborative Filtering

Page 4: Fortschritte im Bereich Collaborative Filtering

Einführung zu Collaborative Filtering

Grundsätzliche Funktionsweise:● Es werden Verhaltensmuster von Nutzern auf Grundlage verschiedener Informationen (z.B. Bewertungen, Kaufhistorie) in Bezug zu Produkten erstellt

● Aufgrund der erstellten Muster werden die Interessen einzelner Nutzer vorhergesagt

● Dem Nutzer werden dann Dinge empfohlen, die den vorausgesagten Interessen entsprechen

Page 5: Fortschritte im Bereich Collaborative Filtering

Einführung zu Collaborative Filtering

Es gibt hierbei zwei grundsätzlich unterschiedliche Ansätze:

● Neighborhood Modelle:Je nach Model werden Gruppen ähnlicherNutzer/Gruppen ähnlicher Produkte bestimmt, die dann für Empfehlungen genutzt werden

● Matrix Factorization: Nutzer und Produkte werden in einer Matrix auf einen Faktor reduziert und dann verglichen

Page 6: Fortschritte im Bereich Collaborative Filtering

Herausforderungen von Collaborative Filtering

Probleme mit beiden Verfahren (naiv):● Datenknappheit: Bei großen Datenbanken: Große Mehrheit der Bewertungen ist unbekannt

● Skalierbarkeit: Der Berechnungsaufwand steigt exponentiell mit der Anzahl der Nutzer/Produkte

● Ignorieren von Synonymen: Ähnliche Produkte können übersehen werden, weil sie unterschiedlich benannt sind

Page 7: Fortschritte im Bereich Collaborative Filtering

Neighborhood-Modelle

Page 8: Fortschritte im Bereich Collaborative Filtering

Neighborhood-Modelle: Einführung

Grundsätzlicher Ablauf (Nutzervergleich):● Eine Nachbarschaft(Neighborhood) von Nutzern wird für einen Nutzer bestimmt, indem betrachtetwird, welche anderen Nutzer Produkte ähnlichwie dieser Nutzer bewerten

● Aus der Nachbarschaft werden die von deneinzelnen Nutzern bewerteten Produkte nachGüte der Wertung und Häufigkeit des Auftretensverglichen, worauf die besten ausgewählt unddem Nutzer empfohlen werden

Page 9: Fortschritte im Bereich Collaborative Filtering

Neighborhood-Modelle: Einführung

Grundsätzlicher Ablauf (Produktvergleich):● Analog zum Nutzervergleich wird eine Produkt- nachbarschaft bestimmt

● Für das bestimmte Produkt wird über die Bewertung der Nachbarschaftsprodukte eine Wertung des Nutzers geschätzt

● Die Produkte mit der höchsten geschätzten Wertung werden dann angezeigt

Page 10: Fortschritte im Bereich Collaborative Filtering

Neighborhood-Modelle: Berechnung der Ähnlichkeit

Bei der Schätzung von Bewertungen ist zubeachten, dass es Nutzer gibt, die im allgemeinenhöher abstimmen.Ebenso gibt es Produkte, die im allgemeinen einebessere Bewertung erhalten.→ Dies ist in den Schätzungen mit einzubeziehen!Standardbewertung : xAbweichung Nutzer u: b(u)Abweichung Produkt i: b(i)Standardbewertung Nutzer u, Produkt i:

bui=x+bu+bi

Page 11: Fortschritte im Bereich Collaborative Filtering

Neighborhood-Modelle: Berechnung der Ähnlichkeit

Die Tendenz von Nutzern, die Produkte i und j ähnlich zu bewerten, wird dann mit dem Pearson- Korrelationskoeffizient berechnet. Dabei wird die Gruppe Nutzer U betrachtet, die sowohl i als auch j bewertet haben. Auch wird die Abweichung von Nutzern und Produkten b(u,i) und b(u,j) mit einbezogen.

pij=(∑ u∈U (rui−bui)(ruj−buj))

(√(∑ u∈U (rui−bui)2∗(∑ u∈U (ruj−buj)

2)))

Page 12: Fortschritte im Bereich Collaborative Filtering

Neighborhood-Modelle: Berechnung der Ähnlichkeit

Es lässt sich dann für jeden Nutzer u die geschätzteWertung für das Produkt i berechnen, indem man einen gewichteten Durchschnitt der Wertungen für die durch die obige Formel bestimmten nächsten Nachbarn K errechnet.

rui=bui+(∑ j∈K pij (ruj−buj))

(∑ j∈K pij)

Page 13: Fortschritte im Bereich Collaborative Filtering

Neighborhood-Modelle: Berechnung der Ähnlichkeit

Hierbei ist zu beachten, dass die Gewichtung des Durchschnitts hierbei von der Ähnlichkeitsfunktionder Nachbarn abhängt, was einige Probleme mit sich bringt.

Eine verbesserte Version dieser Berechnung würdeFür die Gewichtung die tatsächlichen Bewertungenverwenden.

Page 14: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization

Page 15: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: Einführung

Bei Matrix Factorization erhalten Produkte undNutzer gemeinsame Faktoren, auf denen ihreAbhängigkeit voneinander abgebildet wird.

Beispiel: FilmeFaktor: Komödie oder Drama

Ein Film hat einen hohen Komödienfaktor,ein Nutzer einen großes Interesse an hohem Komödienfaktor → Der Film ist für den Nutzer interessant

Page 16: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: SVD(Singular Value Decomposition)

Jedes Produkt i ist mit einem Vektor q(i) assoziiert, und jeder Nutzer u mit einem Vektor p(u).

Für i sagen die Elemente von q aus, wie hoch der Anteil an dem jeweiligen Faktor für das Produkt ist, für u sagt p aus, wie hoch das jeweilige Interesse ist.

Das Skalarprodukt der Vektoren zeigt dann dasIntresse des Nutzers am gegebenen Produkt.

Page 17: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: SVD

Multipliziert man also für Faktoren q(i) und p(u) skalarund nimmt noch die zuvor erklärten Abweichungenb(u) und b(i) sowie die Standardwertung x hinzu, so Lässt sich die vorhergesehene Bewertung des Produktes i durch den Nutzer u r(u,i) wie folgt berechnen:

rui=x+bi+bu+qiT pu

Page 18: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: SVD

Um die Modellparameter (b(i), b(u), q(i), p(u) )herauszufinden, wird die mittlere QuadratischeAbweichung berechnet:

min( ∑(u , i)∈K

rui−x−bi−bu−qiT pu)

2+k (bi

2+bu

2+∥qi

2∥+∥pu

2∥)

Page 19: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: SVD

Um die Modellparameter (b(i), b(u), q(i), p(u) )herauszufinden, wird die mittlere QuadratischeAbweichung berechnet:

Hier kann man dann mit Hilfe der kleinsten-Quadrate-Methode abwechselnd p's fest setzt um nach den q's aufzulösen und q's fest setzt um nach den p's aufzulösen.

min( ∑(u , i)∈K

rui−x−bi−bu−qiT pu)

2+k (bi

2+bu

2+∥qi

2∥+∥pu

2∥)

Page 20: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: SVD++

Die SVD-Methode kann dadurch verbessert werden, dass auch implizite Information einbezogen wird

Implizite Information bedeutet alle Information, dienicht direkt durch Bewertungen gegeben wird.

Dies kann zum Beispiel sein, wie oft sich ein Nutzerein Produkt ansieht, oder ob er ein Produkt bewertethat.

Page 21: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: SVD++

Beim SVD++ Model ist diese Zusatzinformation,welche Produkte der Nutzer bewertet hat. DieseInformation wird durch einen weiteren Vektor y(i) beim Produkt dargestellt. Die neue Gleichung ist dann:

Die Modellparameter werden hier wieder durch Minimieren der mittleren quadratischen Abweichung und stochastischen Gradientenabstieg bestimmt.

rui=x+bi+bu+qiT( pu+∣R(u)∣

(−12

)

∗∑ j∈R(u) y j)

Page 22: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: timeSVD++

Beim timeSVD++ Model wird zusätzlich zur normalenBewertungsinformation noch berücksichtigt, dass sich Wertungen mit der Zeit ändern können, so können Beispielsweise Horrorfilme ein Jahr lang hohePopularität genießen, jedoch dann abfallen.

Das bedeutet, dass Nutzerausrichtung b(u), Produktbevorzugung b(i) und Nutzervorlieben p(u)jeweils noch eine zeitliche Komponente mit sichbringen: , und bu(t)bi(t) pu(t )

Page 23: Fortschritte im Bereich Collaborative Filtering

Matrix Factorization: timeSVD++

Durch diese Anpassungen kann Beispielsweiseerkannt werden, welche Art von Filmen zu Weihnachten mehr ausgeliehen werden als sonst im Jahr, oder wie ein Nutzer seine Vorlieben im Laufe der Zeit ändert.

Page 24: Fortschritte im Bereich Collaborative Filtering

Vergleich der Vorgestellten Modelle

Page 25: Fortschritte im Bereich Collaborative Filtering

Vergleich der Modelle: Neighbourhood Nutzer/Produkte

Produkt-fokussierte Neighbourhood-Modelle könnenIm Vergleich zu Nutzerfokussierten Modellen deutlich einfacher neue Bewertungen und Nutzer einfügen, solange sich die Beziehungen zwischen Produkten nicht ändert, was sehr selten geschieht.

Page 26: Fortschritte im Bereich Collaborative Filtering

Vergleich der Modelle: Matrix Factorisation

Die Standardmethode SVD kann durch verschiedeneZusatzvektoren so erweitert werden, dass sie ineinem Datenbanktest von den hier betrachtetenModellen die höchste Genauigkeit bei der EmpfehlungVon Produkten erzielt.

Die timeSVD++ Methodik, bei der dies der Fall war, kann auch mit weniger Information gute Ergebnisse liefern, da sie sich nicht nur auf Bewertungen verlässt.

Page 27: Fortschritte im Bereich Collaborative Filtering

Ausblick: Modellmischformen

Es ist durchaus möglich, die hier präsentiertenModelle erfolgreich zu vermischen; Beispielsweise lässt sich ein Neighborhood Modellauch mit Faktoren realisieren, auch zeitliche Aspekte können bei erweiterten Modellen eineRolle spielen.

Page 28: Fortschritte im Bereich Collaborative Filtering

Quellen

●Advances in Collaborative Filtering Yehuda Koren and Robert Bell

●Analysis of Recommendation Algorithms for E-Commerce

Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl

●Application of Dimensionality Reduction in Recommender System - ACase StudyBadrul Sarwar, George Karypis, Joseph Konstan, and John Riedl