Recommender Systems – Ein vollständiger Leitfaden für Machine-Learning-Modelle
Nutzung von Daten, um Benutzern zu helfen, neue Inhalte zu entdecken
Empfehlungssysteme: Warum und wie?
Empfehlungssysteme sind Algorithmen, die personalisierte Vorschläge für Artikel liefern, die für jeden Benutzer am relevantesten sind. Mit dem massiven Wachstum der verfügbaren Online-Inhalte wurden die Benutzer mit Auswahlmöglichkeiten überschwemmt. Daher ist es für Webplattformen von entscheidender Bedeutung, jedem Benutzer Artikelempfehlungen anzubieten, um die Zufriedenheit und das Engagement der Benutzer zu erhöhen.
Die folgende Liste zeigt Beispiele bekannter Webplattformen mit einer großen Anzahl verfügbarer Inhalte , die effiziente Empfehlungssysteme benötigen, um das Interesse der Benutzer aufrechtzuerhalten.
- YouTube . Jede Minute werden 500 Stunden Videos hochgeladen, dh es würde 82 Jahre dauern, bis ein Benutzer alle in der letzten Stunde hochgeladenen Videos angesehen hätte.
- Spotify . Benutzer können mehr als 80 Millionen Songtracks und Podcasts anhören .
- Amazon . Benutzer können mehr als 350 Millionen verschiedene Produkte kaufen .
Explizites Feedback vs. implizites Feedback
In Empfehlungssystemen werden maschinelle Lernmodelle verwendet, um die Bewertung rᵤᵢ eines Benutzers u zu einem Artikel i vorherzusagen . Zum Zeitpunkt der Inferenz empfehlen wir jedem Benutzer u die Artikel l mit der höchsten vorhergesagten Bewertung rᵤ ᵢ .
Wir müssen daher Benutzerfeedback sammeln, damit wir eine Grundwahrheit für das Training und die Bewertung unserer Modelle haben können. Dabei muss zwischen explizitem Feedback und implizitem Feedback unterschieden werden .
Explizites Feedback ist eine Bewertung, die der Benutzer ausdrücklich abgibt, um seine Zufriedenheit mit einem Artikel auszudrücken. Beispiele sind: Anzahl der Sterne auf einer Skala von 1 bis 5 nach dem Kauf eines Produkts, Daumen nach oben/unten nach dem Ansehen eines Videos usw. Dieses Feedback liefert detaillierte Informationen darüber, wie sehr einem Benutzer ein Artikel gefallen hat, aber es ist schwer zu erreichen sammeln, da die meisten Benutzer normalerweise keine Rezensionen schreiben oder explizite Bewertungen für jeden Artikel abgeben, den sie kaufen.
Implizites Feedback hingegen geht davon aus, dass Benutzer-Item-Interaktionen ein Hinweis auf Präferenzen sind. Beispiele sind: Kauf-/Browsing-Verlauf eines Benutzers, Liste der von einem Benutzer gespielten Songs usw. Dieses Feedback ist äußerst reichlich , aber gleichzeitig weniger detailliert und lauter (z. B. jemand kauft ein Produkt als Geschenk für jemand anderes). Dieses Rauschen wird jedoch vernachlässigbar, wenn man es mit der schieren Menge verfügbarer Daten dieser Art vergleicht, und die meisten modernen Recommender-Systeme neigen dazu, sich auf implizites Feedback zu verlassen .
Sobald wir explizites oder implizites Feedback gesammelt haben, können wir die User-Item-Rating-Matrix rᵤᵢ erstellen . Für explizites Feedback ist jeder Eintrag in rᵤᵢ ein numerischer Wert – z . B. rᵤᵢ = „Sterne von u an Film i vergeben “ – oder „?“ wenn Benutzer u Artikel i nicht bewertet hat . Für implizites Feedback sind die Werte in rᵤᵢ boolesche Werte, die das Vorhandensein oder Fehlen von Interaktion darstellen – z . B. rᵤᵢ = „hat der Benutzer u . Beachten Sie, dass die Matrix rᵤᵢist sehr spärlich, da Benutzer mit wenigen Elementen unter allen verfügbaren Inhalten interagieren und noch weniger Elemente überprüfen!
Inhaltsbasierte vs. kollaborative Filteransätze
Das Recommender-System kann nach der Art der Informationen, die zur Vorhersage der Benutzerpräferenzen verwendet werden, als inhaltsbasierte oder kollaborative Filterung klassifiziert werden.
Inhaltsbasierter Ansatz
Inhaltsbasierte Methoden beschreiben Benutzer und Elemente anhand ihrer bekannten Metadaten . Jedes Element i wird durch eine Reihe relevanter Tags dargestellt – z. B. können Filme der IMDb-Plattform als „Action“, „Comedy“ usw. gekennzeichnet werden. Jeder Benutzer u wird durch ein Benutzerprofil dargestellt, das aus bekannten Benutzerinformationen erstellt werden kann – B. Geschlecht und Alter – oder aus der vergangenen Aktivität des Benutzers.
Um ein maschinelles Lernmodell mit diesem Ansatz zu trainieren, können wir ein k-NN-Modell verwenden . Wenn wir zum Beispiel wissen, dass der Benutzer u einen Artikel i gekauft hat, können wir Ihnen die verfügbaren Artikel mit Eigenschaften empfehlen, die denen von i am ähnlichsten sind .
Der Vorteil dieses Ansatzes besteht darin, dass die Metadaten von Elementen im Voraus bekannt sind, sodass wir sie auch auf Kaltstartszenarien anwenden können, in denen ein neues Element oder ein neuer Benutzer zur Plattform hinzugefügt wird und wir keine Benutzer-Element-Interaktionen haben, um unser Modell zu trainieren . Die Nachteile bestehen darin, dass wir nicht alle bekannten Benutzer-Element-Interaktionen verwenden (jeder Benutzer wird unabhängig behandelt) und dass wir Metadateninformationen für jedes Element und jeden Benutzer kennen müssen.
Kollaborativer Filteransatz
Kollaborative Filtermethoden verwenden keine Element- oder Benutzermetadaten, sondern versuchen stattdessen, die Rückmeldungen oder den Aktivitätsverlauf aller Benutzer zu nutzen , um die Bewertung eines Benutzers für ein bestimmtes Element vorherzusagen, indem sie auf Abhängigkeiten zwischen Benutzern und Elementen aus den beobachteten Aktivitäten schließen.
Um ein maschinelles Lernmodell mit diesem Ansatz zu trainieren, versuchen wir typischerweise, die Bewertungsmatrix rᵤᵢ zu clustern oder zu faktorisieren , um Vorhersagen über die unbeobachteten Paare ( u,i ) zu treffen, dh wo rᵤᵢ = „?“. Im Folgenden zu diesem Artikel stellen wir den Matrixfaktorisierungsalgorithmus vor, der die beliebteste Methode dieser Klasse ist.
Der Vorteil dieses Ansatzes besteht darin, dass der gesamte Satz von Benutzer-Element-Interaktionen (dh die Matrix rᵤᵢ ) verwendet wird, wodurch typischerweise eine höhere Genauigkeit als bei der Verwendung von inhaltsbasierten Modellen erzielt werden kann. Der Nachteil dieses Ansatzes besteht darin, dass einige Benutzerinteraktionen erforderlich sind, bevor das Modell angepasst werden kann.
Hybride Ansätze
Schließlich gibt es auch hybride Methoden , die versuchen, sowohl die bekannten Metadaten als auch die Menge der beobachteten Benutzer-Element-Interaktionen zu verwenden. Dieser Ansatz kombiniert die Vorteile sowohl der inhaltsbasierten als auch der kollaborativen Filtermethoden und ermöglicht es, die besten Ergebnisse zu erzielen. Später in diesem Artikel stellen wir LightFM vor , den beliebtesten Algorithmus dieser Methodenklasse.
Kollaboratives Filtern: Matrixfaktorisierung
Matrixfaktorisierungsalgorithmen sind wahrscheinlich die beliebtesten und effektivsten kollaborativen Filtermethoden für Empfehlungssysteme. Matrixfaktorisierung ist ein latentes Faktormodell, das davon ausgeht, dass es für jeden Benutzer u und jedes Element i latente Vektordarstellungen pᵤ, qᵢ ∈ R ᶠ st rᵤᵢ gibt, die eindeutig ausgedrückt – dh „faktorisiert“ – in Bezug auf pᵤ und qᵢ werden können . Die Python-Bibliothek Surprise bietet hervorragende Implementierungen dieser Methoden.
Matrixfaktorisierung für explizites Feedback
Die einfachste Idee besteht darin, Benutzer-Element-Interaktionen durch ein lineares Modell zu modellieren . Um die Werte von pᵤ und qᵢ zu lernen , können wir einen regularisierten MSE-Verlust über die Menge K von Paaren ( u , i ) minimieren, für die rᵤᵢ bekannt ist. Der so erhaltene Algorithmus wird probabilistische Matrixfaktorisierung (PMF) genannt .
Die Verlustfunktion kann auf zwei verschiedene Arten minimiert werden. Der erste Ansatz ist die Verwendung des stochastischen Gradientenabstiegs (SGD) . SGD ist einfach zu implementieren, kann jedoch einige Probleme aufweisen, da sowohl pᵤ als auch qᵢ beide unbekannt sind und daher die Verlustfunktion nicht konvex ist. Um dieses Problem zu lösen, können wir alternativ die Werte pᵤ und qᵢ festlegen und ein konvexes lineares Regressionsproblem erhalten, das leicht mit gewöhnlichen kleinsten Quadraten (OLS) gelöst werden kann . Diese zweite Methode ist als alternierende Methode der kleinsten Quadrate (ALS) bekannt und ermöglicht eine erhebliche Parallelisierung und Beschleunigung.
Der PMF-Algorithmus wurde später durch den SVD- Algorithmus (Singular Value Decomposition) verallgemeinert, der Bias-Terme in das Modell einführte. Genauer gesagt messen bᵤ und bᵢ beobachtete Bewertungsabweichungen des Benutzers u bzw. des Elements i , während μ die durchschnittliche Gesamtbewertung ist. Diese Begriffe erklären oft die meisten der beobachteten Bewertungen rᵤᵢ , da einige Artikel allgemein bessere/schlechtere Bewertungen erhalten und einige Benutzer mit ihren Bewertungen durchweg mehr/weniger großzügig sind.
Matrixfaktorisierung für implizites Feedback
Das SVD- Verfahren kann an implizite Feedback-Datensätze angepasst werden . Die Idee ist, implizites Feedback als indirektes Vertrauensmaß zu betrachten . Nehmen wir an, dass das implizite Feedback tᵤᵢ den Prozentsatz des Films i misst , den Benutzer u gesehen hat – z es zweimal. Intuitiv interessiert sich ein Benutzer eher für einen Film, den er zweimal gesehen hat, als für einen Film, den er nie gesehen hat. Wir definieren daher a Konfidenzmatrix cᵤᵢ und eine Bewertungsmatrix rᵤᵢ wie folgt.
Dann können wir das beobachtete rᵤᵢ unter Verwendung desselben linearen Modells modellieren, das für SVD verwendet wird, jedoch mit einer etwas anderen Verlustfunktion. Zuerst berechnen wir den Verlust über alle ( u , i )-Paare – im Gegensatz zum expliziten Fall, wenn der Benutzer u nie mit i interagiert hat, haben wir rᵤᵢ = 0 anstelle von rᵤᵢ = “?” . Zweitens gewichten wir jeden Verlustterm mit dem Vertrauen cᵤᵢ , dass u i mag .
Schließlich kann der SVD++- Algorithmus verwendet werden, wenn wir Zugriff auf sowohl explizite als auch implizite Rückmeldungen haben. Dies kann sehr nützlich sein, da Benutzer normalerweise mit vielen Elementen interagieren (= implizites Feedback), aber nur eine kleine Teilmenge davon bewerten (= explizites Feedback). Lassen Sie uns für jeden Benutzer u die Menge N(u) von Elementen bezeichnen, mit denen u interagiert hat. Dann nehmen wir an, dass eine implizite Interaktion mit einem Item j mit einem neuen latenten Vektor zⱼ ∈ R ᶠ verbunden ist . Der SVD++-Algorithmus modifiziert das lineare Modell von SVD, indem er in die Benutzerdarstellung eine gewichtete Summe dieser latenten Faktoren zⱼ einbezieht.
Hybrider Ansatz: LightFM
Kollaborative Filtermethoden, die auf Matrixfaktorisierung basieren, liefern oft hervorragende Ergebnisse, aber in Kaltstartszenarien – wo wenig bis gar keine Interaktionsdaten für neue Elemente und Benutzer verfügbar sind – können sie keine guten Vorhersagen treffen, da ihnen Daten fehlen, um die latenten Faktoren abzuschätzen. Hybridansätze lösen dieses Problem, indem sie bekannte Element- oder Benutzermetadaten nutzen, um das Matrixfaktorisierungsmodell zu verbessern. Die Python-Bibliothek LightFM implementiert einen der beliebtesten Hybridalgorithmen.
In LightFM gehen wir davon aus, dass wir für jeden Benutzer u eine Reihe von Tag - Annotationen Aᵁ(u) gesammelt haben – z . — zB „Preis > 100 $“ , „Buch“ , … Dann modellieren wir jedes Benutzer-Tag durch einen latenten Faktor xᵁₐ ∈ R ᶠ und durch einen Bias-Term bᵁₐ ∈ R , und wir nehmen an, dass die Benutzer-Vektordarstellung pᵤ und die damit verbundene Bias bᵤ kann einfach als Summe dieser Terme xᵁₐ ausgedrückt werden bzw. bᵁₐ . Wir verwenden den gleichen Ansatz für Artikel-Tags, indem wir latente Faktoren xᴵₐ ∈ Rᶠ und Bias-Terme bᴵₐ ∈ R verwenden. Sobald wir pᵤ, qᵢ, bᵤ, bᵢ mit diesen Formeln definiert haben, können wir dasselbe lineare SVD-Modell verwenden, um die Beziehung zu beschreiben zwischen diesen Begriffen und rᵤᵢ .
Beachten Sie, dass es drei interessante Fälle dieses hybriden Ansatzes von LightFM gibt.
- Kaltstart. Wenn wir ein neues Element i mit bekannten Tags Aᴵ(i) haben, dann können wir die latenten Vektoren xᴵₐ (erhalten durch Anpassen unseres Modells an die vorherigen Daten) verwenden, um seine Einbettung qᵢ zu berechnen und daher für jeden Benutzer u seine Bewertung rᵤᵢ zu schätzen .
- Keine Tags verfügbar. Wenn wir keine bekannten Metadaten für Elemente oder Benutzer haben, können wir als Annotation nur eine Indikatorfunktion verwenden, dh für jeden Benutzer und jedes Element eine andere Annotation a . Dann sind Benutzer- und Elementmerkmalsmatrizen Identitätsmatrizen, und LightFM reduziert sich auf eine klassische kollaborative Filtermethode wie SVD.
- Inhaltsbasiert vs. Hybrid. Wenn wir nur Benutzer- oder Artikel-Tags ohne Indikatoranmerkungen verwenden würden, wäre LightFM fast ein inhaltsbasiertes Modell. In der Praxis fügen wir zur Nutzung von Benutzer-Element-Interaktionen auch bekannten Tags eine Indikatoranmerkung hinzu, die sich von jedem Benutzer und Element unterscheidet.
- Recommender-Systeme nutzen maschinelle Lernalgorithmen, um Benutzern zu helfen, die mit Auswahlmöglichkeiten beim Entdecken relevanter Inhalte überschwemmt werden.
- Explizites vs. implizites Feedback : Das erste ist einfacher zu nutzen, aber das zweite ist viel häufiger.
- Inhaltsbasierte Modelle funktionieren gut in Kaltstartszenarien, erfordern jedoch die Kenntnis von Benutzer- und Elementmetadaten .
- Kollaborative Filtermodelle verwenden typischerweise Matrixfaktorisierung: PMF, SVD, SVD für implizites Feedback, SVD++.
- Hybridmodelle nutzen das Beste aus inhaltsbasierter und kollaborativer Filterung. LightFM ist ein großartiges Beispiel für diesen Ansatz.
- Wikipedia, Empfehlungssystem .
- „Überraschung“, Python-Paketdokumentation .
- (S. Funk 2006), Netflix Update: Try This at Home.
- (R. Salakhutdinov 2007), Probabilistische Matrixfaktorisierung.
- ( Y. Hu 2008), Collaborative Filtering for Implicit Feedback Datasets .
- (Y. Koren 2009), Matrix Factorization Techniques for Recommender Systems .
- (Y. Koren 2008) Faktorisierung trifft auf die Nachbarschaft: ein facettenreiches kollaboratives Filtermodell.
- ( M. Kula 2015), Metadata Embeddings for User and Item Cold-start Recommendations .