Ich habe daran gearbeitet, ein Empfehlungssystem durch Empfehlungen zu implementieren, die auf implizitem Feedback basieren. Daher verwende ich das Tupel (Benutzer, Element, Anzahl), um meine Benutzerelementmatrix zu erstellen.Empfehlungs-Engine-Metriken
Ich habe meine Empfehlung System mit diesem wirklich schönen Beispiel auf der Datum Wissenschaft Blog Insight implementieren: http://insightdatascience.com/blog/explicit_matrix_factorization.html
jedoch im Vergleich zu dem Film Objektiv-Datensatz, mein Dataset unglaublich spärlich ist. Im Beispiel sind 6,3% des Datensatzes gefüllt, während diese Zahl für mich 0,30% beträgt. Daher gibt es viele unbekannte Werte in meinem Datensatz. Ich habe ungefähr 2900 Benutzer und 5000 Artikel.
Ich habe mein Modell trainiert, und das Training MSE weigert sich zu kommen. Ich habe versucht, die Parameter zu optimieren, aber ohne Erfolg. Ich hatte folgende Fragen:
(1) Ist MSE keine zuverlässige Metrik? Ich war durch diese Diskussion gegangen: https://www.quora.com/How-do-you-measure-and-evaluate-the-quality-of-recommendation-engines
A/B-Test ist jedoch keine Option für mich. Meine Erfahrung mit maschinellen Lernmodellen hat mir immer gelehrt, dass, wenn das Training MSE an einem Punkt stecken bleibt, es eine ziemlich schlechte Sache ist (aus einer ganzen Reihe von Gründen)
Also, bewerte ich Dinge nicht richtig?
(2) Das Kaltstartproblem? Ich initialisiere meine Benutzervektoren und Artikelvektoren wie folgt:
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))
Gibt es etwas, das ich hier ändern kann?
Ich bin verwirrt, was als nächstes zu tun ist. Die Seltenheit der Matrix ist sehr hoch und ich weiß, dass mein Algorithmus Werte für eine große Anzahl von Nullen vorhersagt. Ich fühle intuitiv, dass das meine MSE konstant hält.
Alle Gedanken oder Richtung würde wirklich geschätzt werden!
Dank
Wofür steht ** count ** in Ihrem Datensatz? Wie oft hat ein Nutzer einen Film angesehen? –
Ja. Anzahl bezieht sich auf die Häufigkeit, mit der der Benutzer einen Film angesehen hat. –