J'ai travaillé à la mise en place d'un système de recommandation par le biais de recommandations fondées sur des commentaires implicites. Par conséquent, j'utilise le tuple (user, item, count) pour créer ma matrice d'item utilisateur.recommandation paramètres du moteur
j'ai fait mettre en œuvre mon système de recommandation en utilisant cet exemple très agréable sur les données scientifiques blog Perspicacité: http://insightdatascience.com/blog/explicit_matrix_factorization.html
Cependant, par rapport à l'ensemble de données de lentille de film, mon ensemble de données est très clairsemée. Dans l'exemple, 6,3% de l'ensemble de données est rempli, alors que ce nombre est de 0,30% pour moi. Donc, il y a beaucoup de valeurs inconnues dans mon ensemble de données. J'ai environ 2900 utilisateurs et 5000 articles.
J'ai entraîné mon modèle, et la formation MSE refuse de descendre. J'ai essayé d'optimiser les paramètres, mais en vain. J'ai eu les questions suivantes:
(1) MSE n'est pas une métrique fiable? J'avais passé par cette discussion: https://www.quora.com/How-do-you-measure-and-evaluate-the-quality-of-recommendation-engines
Cependant, le test A/B n'est pas une option pour moi. Mon expérience avec les modèles d'apprentissage automatique m'a toujours appris que si la formation MSE est bloquée à un point, alors c'est une mauvaise chose (pour tout un tas de raisons)
Alors, je n'évalue pas les choses correctement?
(2) Le problème du démarrage à froid? J'initialise mes vecteurs d'utilisateur et vecteurs d'élément comme ceci:
self.user_vectors = np.random.normal(size=(self.num_users,self.num_factors))
self.item_vectors = np.random.normal(size=(self.num_items,self.num_factors))
Y at-il quelque chose que je peux changer ici?
Je suis confus quant à ce qu'il faut faire ensuite. La densité de la matrice est très élevée et je sais que mon algorithme prédire des valeurs pour un grand nombre de zéros. Je sens intuitivement que cela garde ma MSE constante.
Toute idée ou direction serait vraiment appréciée!
Merci
Que signifie ** compter ** dans votre jeu de données? Nombre de fois qu'un utilisateur a visionné un film? –
Oui. Le nombre fait référence au nombre de fois que l'utilisateur a visionné un film. –