Empfehlen von Filmen mit zusätzlichen Funktionen mithilfe der gemeinsamen Filterung

16

Ich versuche ein Empfehlungssystem mit kollaborativer Filterung aufzubauen. Ich habe die üblichen [user, movie, rating]Informationen. Ich möchte eine zusätzliche Funktion wie "Sprache" oder "Filmdauer" integrieren. Ich bin nicht sicher, welche Techniken ich für ein solches Problem verwenden könnte.

Bitte schlagen Sie Referenzen oder Pakete in Python / R vor.

Sidhha
quelle

Antworten:

17

Hier einige Ressourcen, die hilfreich sein könnten:

Aleksandr Blekh
quelle
4

Anstelle der kollaborativen Filterung würde ich den Matrixfaktorisierungsansatz verwenden, bei dem Benutzer und Filme durch Vektoren latenter Merkmale dargestellt werden, deren Punktprodukte die Bewertungen ergeben. Normalerweise wählt man lediglich den Rang (Anzahl der Merkmale) aus, ohne zu berücksichtigen, was die Merkmale darstellen, und der Algorithmus erledigt den Rest. Wie bei PCA ist das Ergebnis nicht sofort interpretierbar, aber es liefert gute Ergebnisse. Sie möchten die Filmmatrix um die von Ihnen erwähnten zusätzlichen Funktionen erweitern und sicherstellen, dass diese fest bleiben, da der Algorithmus die beiden Matrizen mithilfe der Regularisierung schätzt. Die entsprechenden Einträge in der Benutzermatrix werden zufällig initialisiert und dann durch den Matrixfaktorisierungsalgorithmus geschätzt. Es ist ein vielseitiger und performanter Ansatz, aber es erfordert ein gewisses Verständnis des maschinellen Lernens.

Ich habe vor einiger Zeit ein nettes Ipython-Notizbuch gesehen, kann es aber momentan nicht finden. Ich verweise Sie daher auf ein anderes, das zwar nicht so schön ist, aber dennoch einige mathematische Fragen klärt.

Emre
quelle
Danke, ich habe nach etwas in diesen Zeilen gesucht. Es wäre äußerst hilfreich, wenn Sie auf ein Tutorial oder ein Ipython-Notizbuch verweisen könnten, in dem dies erläutert wird.
Sidhha