Recommander des films avec des fonctionnalités supplémentaires à l'aide du filtrage collaboratif

16

J'essaie de construire un système de recommandation en utilisant le filtrage collaboratif. J'ai les [user, movie, rating]informations habituelles . Je voudrais incorporer une fonctionnalité supplémentaire comme la «langue» ou la «durée du film». Je ne sais pas quelles techniques je pourrais utiliser pour un tel problème.

Veuillez suggérer des références ou des packages en python / R.

Sidhha
la source

Réponses:

17

Voici quelques ressources qui pourraient être utiles:

Aleksandr Blekh
la source
4

Au lieu d'un filtrage collaboratif, j'utiliserais l'approche de factorisation matricielle, dans laquelle les utilisateurs et les films sont représentés par des vecteurs de fonctionnalités latentes dont les produits scalaires donnent les notes. Normalement, on sélectionne simplement le rang (nombre d'entités) sans égard à ce que les entités représentent, et l'algorithme fait le reste. Comme PCA, le résultat n'est pas immédiatement interprétable mais il donne de bons résultats. Ce que vous voulez faire, c'est étendre la matrice du film pour inclure les fonctionnalités supplémentaires que vous avez mentionnées et vous assurer qu'elles restent fixes pendant que l'algorithme estime les deux matrices en utilisant la régularisation. Les entrées correspondantes dans la matrice utilisateur seront initialisées de manière aléatoire, puis estimées par l'algorithme de factorisation matricielle. C'est une approche polyvalente et performante, mais cela nécessite une certaine compréhension de l'apprentissage automatique,

J'ai vu un joli cahier ipython il y a quelque temps, mais je ne le trouve pas pour le moment, je vais donc vous référer à un autre qui, bien qu'il ne soit pas aussi agréable, clarifie encore certains calculs.

Emre
la source
Merci, je cherchais quelque chose sur ces lignes. Il serait extrêmement utile de faire référence à un didacticiel ou à un bloc-notes ipython pour en discuter.
Sidhha