Was machen die Leute in der Praxis mit den fehlenden Werten aus der Empfehlungsmatrix, worauf kommt es bei der Berechnung an? Ich gehe davon aus, dass er beim Lesen von Simons Blog-Post NUR die nicht fehlenden Begriffe verwendet, um ein Modell zu erstellen.
Das ist richtig - das ist der Sinn seines und Ihres Modells, die fehlenden Begriffe vorherzusagen, oder? Es ist ein entscheidender Punkt, den viele tatsächlich vergessen. Sie glauben, dass sie einfach davon ausgehen können, dass sie den fehlenden Daten eine Konstante zuweisen können, ohne sich um die Welt zu kümmern, und die Dinge werden von einer SVD auf magische Weise gut genug funktionieren. Müll rein, Müll raus: Es ist echt, und du solltest es dir besser ansehen. Sie sollten einem Modell keine Junk-Daten zuführen, wenn Sie möchten, dass sich etwas Nützliches ergibt.
Es ist sicher NICHT das Beste, auf fehlende Werte in einem mehrheitlich spärlichen Datensatz zu schließen und dann SVD darauf auszuführen, mit der Hoffnung, Ihnen Werte zu unterstellen (die Sie bereits vor der Ausführung von SVD unterstellt haben, oder?). Was denkst du, ein Model ist Magie? Es gibt weder Magie noch Technologie, um die meisten Mülldaten zu überwinden. Sie können ein Modell nicht anlügen, dass Daten echte Daten sind, wenn sie überhaupt nicht real sind, sondern nur ein bisschen Müll, den Sie einfach nur aus Luft gemacht haben.
SVD macht andere nützliche Dinge, also sage ich nicht, dass SVD im geringsten wertlos ist. Verwenden Sie SVD nur für vollständige Datensätze. Möglicherweise haben Sie fehlende Werte auf intelligente Weise unterstellt, wenn Sie bereits ein maschinelles Lernmodell verwendet haben, bei dem Bias- und Varianzfehler bei der Entwicklung berücksichtigt wurden.
Maschinelles Lernen ist der Weg. Wenn Sie also immer noch wissen möchten, wie Sie Werte mithilfe eines Matrixfaktorisierungsdesigns unterstellen können, gibt es mit Sicherheit gute Möglichkeiten, dies mithilfe von maschinellem Lernen zu tun, und das ist besonders wichtig keine Junk-Daten an ein Modell weiter , von dem Sie sinnlos lernen können.
Genau ein solches Matrixfaktorisierungsmodell für maschinelles Lernen wird von den Lehrern des Stanford-Online-Kurses Mining Massive Data Sets in Modul 5 recht gut vorgestellt. Sie zeigen Ihnen die Mathematik und erläutern das Modell. Sie verschlüsseln es jedoch nicht für Sie.
Es ist in Ordnung, weil Sie es selbst codieren können, wenn Sie das grundlegende maschinelle Lernen verstehen. Wissen Sie, was eine Verlustfunktion und eine Kostenfunktion sind? Regulierung? Gradientenabstieg? Geht es Ihnen gut mit der Multiplikation und Addition der Matrix? Vorspannungs- und Varianzfehler? Wenn ja, dann bist du gut. Wenn nicht, sollten Sie in Betracht ziehen, Andrew Ngs Online-Kurs Maschinelles Lernen bei Coursera zu belegen, der einer der vielen guten Startplätze ist. Dann besuchen Sie auch den Online-Kurs Mining Massive Data Sets der sich genau mit Matrixfaktorisierung und maschinellem Lernen für die Erstellung von Empfehlungsmodellen befasst.
Es genügt zu sagen, dass Sie Ihr eigenes Faktorisierungsmodell vollständig entwerfen und codieren können, das mit fehlenden Daten sehr gut umgehen kann, so wie es Simon Funk getan hat, und Sie können es von Grund auf neu erstellen, aber es ist überhaupt nicht mehr so schwer wie damals Zu seiner Zeit, weil Sie jetzt ein Tool wie TensorFlow oder Microsoft CNTK verwenden können, das viel für Sie leistet. Definieren Sie eine Verlustfunktion und eine Kostenfunktion, wählen Sie einen Optimierer, unterteilen Sie Ihren Datensatz in Training, entwickeln Sie, testen Sie anhand der tatsächlich verfügbaren Daten (beschriftete Daten) und lassen Sie ihn ausführen. Im Ernst, es funktioniert. Es ist nicht einfach, TF und seine Fehler beim Erstellen von Diagrammen zu debuggen, aber es kann am Ende großartig funktionieren und benötigt weniger als eine Seite Code.
Insbesondere besteht eine Möglichkeit, gefälschte Daten nicht in ein maschinelles Lernmodell für die Matrixfaktorisierung einzuspeisen, darin, die Matrixelemente der fehlenden Daten in Ihren Verlust- und Kostenfunktionen zu überspringen .