SVD einer Matrix mit fehlenden Werten


12

Angenommen, ich habe eine Empfehlungsmatrix im Netflix-Stil und möchte ein Modell erstellen, das potenzielle zukünftige Filmbewertungen für einen bestimmten Benutzer vorhersagt. Mit dem Ansatz von Simon Funk würde man eine stochastische Gradientenabsenkung verwenden, um die Frobenius-Norm zwischen der Vollmatrix und der Element-für-Element * -Nutzer-für-Benutzer-Matrix in Kombination mit einem L2-Regularisierungsterm zu minimieren.

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 (die beispielsweise aus ~ 1% der Empfehlungsmatrix bestehen) verwendet, um ein Modell (mit einer vernünftigen Auswahl von Hyperparametern und Regularisierung) zur Vorhersage zu erstellen die anderen 99% der Matrix?

Überspringen Sie in der Praxis wirklich all diese Werte? Oder schließen Sie so viel wie möglich, BEVOR Sie einen stochastischen Gradientenabstieg durchführen? Was sind einige der Standard-Best Practices für den Umgang mit den fehlenden Werten?


1
Dies scheint eine ähnliche Frage zu sein . Ich habe die Frage dort beantwortet.
d_ijk_stra

2
Ich habe auch geantwortet .
Stumpy Joe Pete

2
@d_ijk_stra "beantwortet" drückt es ein bisschen großzügig aus, was einem Link zu einem PDF
gleichkommt

Antworten:


6

Ja, in der Praxis werden diese Werte übersprungen. In Ihrer Beschreibung in Bezug auf eine Frobenius-Norm entspricht dies der Minimierung der Komponenten der Norm, die gemessen werden können, dh derjenigen, deren Bewertungen bekannt sind. Der Regularisierungsterm kann als Bayes'scher Prior für die Komponenten der Merkmalsvektoren angesehen werden, wobei die SVD den Maximalwahrscheinlichkeitsschätzer berechnet, vorbehaltlich dieses Prioritätswerts und der bekannten Werte.

Es ist wahrscheinlich am besten, sich die SVD als Methode zum Ableiten der fehlenden Werte vorzustellen. Wenn Sie dies bereits besser können, warum benötigen Sie dann die SVD? Wenn nicht, füllt die SVD die Lücken gerne für Sie aus.


1
Wie verwenden Sie die SVD, um diese fehlenden Werte abzuleiten? Haben Sie andere Methoden ausprobiert, um auf die fehlenden Werte zu schließen, z. B. die Verwendung der nicht fehlenden Werte zum Trainieren eines Klassifikators für zufällige Gesamtstrukturen, der dann zum Erraten der fehlenden Werte verwendet werden kann? Erhalten Sie bessere Ergebnisse oder ist es wirklich problemabhängig?
Vishal

1
Sie schließen fehlende Werte auf dieselbe Weise ab, wie Sie zukünftige Werte vorhersagen würden, indem Sie die relevanten Komponenten der SVD-Zerlegung verwenden. Das Vorhersagen zukünftiger Ratings ist genau das gleiche Problem wie das Ableiten fehlender Werte. Wenn Sie auf gute Weise auf fehlende Werte schließen können, können Sie diese einfach zur Vorhersage zukünftiger Bewertungen verwenden. Wenn nicht, dann ist SVD genau dafür gedacht.
Martin O'Leary

"Es ist wahrscheinlich am besten, sich die SVD als Methode zum Ableiten der fehlenden Werte vorzustellen." Ah, nein, tatsächlich hängt SVD davon ab, dass der Benutzer alle fehlenden Werte auf andere Weise vorab herleitet, bevor eine SVD ausgeführt wird. SVD schreibt überhaupt nichts zu.
Geoffrey Anderson

1

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 .


0

Es gibt eine These, in der viele Empfehlungssysteme überprüft und verglichen werden, die jedoch nicht die langfristige Verfolgung der fehlenden Elemente zum Beispiel zum Testen der Vorhersagen zum Gegenstand hat. Das ist ein Teil Ihrer Frage? Verwenden Sie die Zeitkomponente auf diese Weise? Unter den vielen Veröffentlichungen und Methoden, die in dieser Arbeit besprochen werden, befinden sich zeitbewusste / sensible Systeme, wie die Forschung in den Rendle-Veröffentlichungen. Wenn es bei Ihrer Frage auch um den Umgang mit spärlichen Daten geht, wird dies in der gesamten Dissertation ausführlich besprochen, und es gibt viele Methoden. spärliche Matrizen und Imputation mit Nullen oder Matrixfaktorisierung, die eine Verknüpfungsmatrix für das Clustering von Benutzern (Benutzer, die Elemente ähnlich bewerten) oder eine Verknüpfungsmatrix für das Clustering von Elementen hinzufügt.

Der Titel der Dissertation lautet "Niedrigrangige Modelle für Empfehlungssysteme mit eingeschränkten Präferenzinformationen" von Evgeny Frolov https://www.skoltech.ru/app/data/uploads/2018/09/Frolov_Dissertation_Final1.pdf

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.