Welche statistischen Methoden gibt es, um einen Film wie Netflix zu empfehlen?

13

Ich möchte ein dynamisches Modell implementieren, um einem Benutzer einen Film zu empfehlen. Die Empfehlung sollte jedes Mal aktualisiert werden, wenn der Benutzer einen Film ansieht oder bewertet. Um es einfach zu halten, denke ich daran, zwei Faktoren zu berücksichtigen:

  • die vergangenen Bewertungen anderer Filme durch den Benutzer
  • die Zeit, die der Benutzer bestimmte vergangene Filme angesehen hat

Wie würde man ein solches Modell aufbauen und was empfiehlt die wissenschaftliche Literatur?

Ich bin neu auf diesem Gebiet und vermute, dass ein lineares Regressionsmodell ein gutes Ergebnis liefern könnte, ohne auf komplexere Methoden zu verzichten, um unnötige Unsicherheiten bei den Parameterschätzungen zu vermeiden. Aber vielleicht gibt es bereits etablierte Methoden, die in der Praxis häufig angewendet werden?

JohnAndrews
quelle
3
Ich denke nicht, dass dies zu weit gefasst ist, um eine Antwort zu geben. ZB hat es 2 upvoted Antworten.
gung - Wiedereinsetzung von Monica
2
Probieren Sie coursera's Mining Massive Datasets und sein kostenloses Buch aus!
Felipe Gerard
2
Sie möchten wahrscheinlich die Matrix- und / oder Tensorfaktorisierung nachschlagen.
Marc Claesen
1
@ usεr11852 Meine Antwort ist umfassender als die Frage.
Shadowtalker
1
@ usεr11852, im Titel der Frage wird gefragt: "Welche statistischen Methoden gibt es ...?" Der letzte Satz fragt, ob es andere Methoden als die Regression gibt. Ich denke, dass einige Antworten unten diese Art von Informationen liefern.
gung - Wiedereinsetzung von Monica

Antworten:

14

Dies ist tatsächlich ein relativ bekanntes Problem im Bereich des maschinellen Lernens. Im Jahr 2006 bot Netflix dem Algorithmus 1 Million US-Dollar an, was die beste sinnvolle Verbesserung für sein Empfehlungssystem darstellte. Die Theorie der Siegerlösung wird in diesem Caltech-Lehrbuch zur Einführung in maschinelles Lernen kurz erörtert .

Grundsätzlich wurde eine Ensemble-Lernmethode angewendet. Insbesondere wurde eine Art Mischen oder Stapeln angewendet. Das ist nicht trivial, aber irgendwie intuitiv. Um die Intuition zu verstehen, unterschiedliche statistische Ansätze in Einklang zu bringen, sollten Sie die unterschiedlichen Gründe berücksichtigen, aus denen verschiedene Leute dieselben Filme mögen: Joe mag Topgun, weil er Actionfilme aus den 80ern liebt, während Jane Topgun mag, weil sie Filme mit Kenny Loggins-Soundtracks mag. Die Tatsache, dass beide Zuschauer den Film angesehen (und hoch bewertet) haben, bedeutet nicht unbedingt, dass sie andere Filme mit hoher Wahrscheinlichkeit mögen werden. Der Vorhersagealgorithmus wäre idealerweise in der Lage, diese Unterschiede zumindest in gewisser Weise auszugleichen.

Dies mag die Lösung recht einfach klingen lassen, aber es ist definitiv nicht einfach, konkurrierende Algorithmen auszugleichen und die beste Schätzung für jeden Fall zu priorisieren. Die Tatsache, dass Netflix ein so großes Kopfgeld angeboten hat, dürfte das Ausmaß der Herausforderung ziemlich offensichtlich machen.

Wenn Sie gerade erst mit maschinellem Lernen anfangen, kann das Auschecken der oben genannten Ressourcen je nach Ihrem Interesse und Ihrem mathematischen Hintergrund hilfreich sein. Regression würde also wahrscheinlich von gut zu gut funktionieren, aber es ist eine deutlich bessere Leistung möglich.

d0rmLife
quelle
2
+1 für den Netflix-Preis. Wie Sie bereits betont haben, ist dieser Preis ein guter Indikator dafür, wie groß diese Herausforderung ist.
Cort Ammon - Wiedereinsetzung von Monica
11

Die halbe Herausforderung bei diesen Problemen besteht darin, zu wissen, wonach gesucht werden muss.

Sie haben das Tag möglicherweise hinzugefügt, ohne es zu bemerken, suchen jedoch nach Informationen zu Empfehlungssystemen . Vielleicht möchten Sie mit der kollaborativen Filterung beginnen , oder besser mit dem auf dieser Seite zitierten Introduction to Recommender Systems Handbook von Ricci, Rokach und Shapira .

Shadowtalker
quelle
Ich habe mich in der Tat eingehender mit dem Tag befasst und bin hauptsächlich auf Beispiele für das gemeinsame Filtern gestoßen. Das Problem, das ich bei dieser Methode habe, ist, dass es von den Eingaben anderer Benutzer abhängt, ob ich das Konzept verstanden habe. Ich bin eher auf der Suche nach Methoden in einer Situation von einem Benutzer, keine anderen Daten oder optional andere Daten. Werfen Sie einen Blick auf Ihre anderen Referenzen.
John Andrews
1
@JohnAndrews: Ich denke, dass ssdecontrol Ihnen die relevantesten Ratschläge gibt. Sie müssen in der Literatur zu Empfehlungssystemen nachschauen. Es gibt viele Techniken, z. NNMF , Funk SVD , viele verschiedene Varianten von Klassifikatoren für die nächsten Nachbarn usw., um nur einige offensichtliche zu nennen. Am Ende möchten Sie die kollaborative Filterung verwenden, können aber nicht einfach ohne Hintergrund "eintauchen".
usεr11852 sagt Reinstate Monic
@JohnAndrews CrossValidated ist normalerweise ein schlechter Ort, um etwas über ein Thema zu lernen, besonders wenn Sie nur nach Tags suchen. Wie wäre es, wenn Sie sich die Referenzen ansehen, die ich stattdessen verlinkt habe? Wikipedia-Statistikartikel sind nicht immer zuverlässig, aber sie sind ziemlich gut und enthalten viele Referenzen.
Shadowtalker
6

Sie sollten Andrew Ngs Kurs auf Coursera besuchen : https://www.coursera.org/learn/machine-learning Es enthält eine Lektion zum Erstellen von Empfehlungssystemen, die genau das ist, wonach Sie suchen. Im Wesentlichen ist es eine Form der linearen Regression, die synthetische Attribute für Filme von Personen lernt, die Filme bewertet haben, und diese verwendet, um Empfehlungen für Personen vorherzusagen, die die Filme nicht bewertet / angesehen haben.

Raphael Nikolaus
quelle
3
Willkommen auf unserer Webseite! Vielen Dank für die Angabe einiger Informationen, die den Inhalt des Links zusammenfassen, anstatt nur einen "nackten" Link bereitzustellen - wir wissen das zu schätzen.
Silverfish
4

Bei der Netflix Challenge (Okt. 2006 - Sep. 2009) gewann ein sehr großes Ensemble (107 separate Submodelle) am Ende den Hauptpreis in Höhe von 1 Mio. USD. Es ist jedoch aufschlussreich, dass die ersten einfachen (nicht zusammengesetzten) Algorithmen das Netflix Cinematch geschlagen haben Der Benchmark basierte auf einer verallgemeinerten (dünn besetzten) SVD. Dieser erste Meilenstein im Kampf gegen Cinematch wurde nur 6 Tage nach dem Start des Wettbewerbs durch ein Team namens WXYZConsulting erreicht.

SVD (Singular Value Decomposition) ist ein Matrixfaktorisierungsalgorithmus, bei dem Sie mit einer 2D- [user, movie]Matrix mit einer Bewertung (1 bis 5 Sterne) an jeder [u, m]Position (*) beginnen und diese in 3 Matrizen aufteilen, wobei die mittlere Matrix eine Quadratmatrix aus ist latente Wechselwirkungen zwischen Nutzern und Filmen.

Sie können den Rang der quadratischen Matrix verkleinern oder vergrößern, um mehr oder weniger solche Wechselwirkungen mit latenten Faktoren zu berücksichtigen.

Es gibt mehrere freie Software-Implementierungen für schnelle / effiziente SVD mit geringer Dichte. Zum Beispiel redsvd oder vowpal-wabbit. Bevor Sie also Ihre eigenen schreiben, möchten Sie sie vielleicht ausprobieren.

(*) Die meisten dieser Einträge sind Null, da die meisten Benutzer die meisten Filme nicht bewertet haben. dh die Matrix ist sehr dünn.

Verweise:

Arielf
quelle
Was hat Netflix vorher verwendet?
Jona
2
Ein Algorithmus namens "Cinematch", der nicht öffentlich ist, sondern als "lineare Kombination verschiedener Faktoren, die im Laufe der Jahre verfeinert wurden" beschrieben wurde, z. Bewertung, ... etc.
Arielf
Danke für die ausgearbeitete Antwort. Werde mich darum kümmern. Was die linearen Kombinationen betrifft, ist das nicht ein großes Problem dieser Überparametrisierung? Das wäre mein bevorzugter Ansatz. Aber SVD klingt vielversprechend.
JohnAndrews
Kein Problem, wenn Sie nur Faktoren hinzufügen, die den Generalisierungsfehler verbessern . Offensichtlich müssen Sie jede dieser Ergänzungen an unsichtbaren Daten testen, um das erforderliche Vertrauen zu gewinnen.
Arielf