Wie wählt man eine optimale Anzahl latenter Faktoren bei der nicht-negativen Matrixfaktorisierung?

15

Bei gegebener Matrix findet die nicht negative Matrixfaktorisierung (NMF) zwei nicht negative Matrizen und ( dh mit allen Elementen ) zur Darstellung der zerlegten Matrix als:Vm×nWm×kHk×n0

VWH,

Zum Beispiel, indem Sie verlangen, dass nicht negative und den Rekonstruktionsfehler minimierenWH

VWH2.

Gibt es übliche Methoden zur Schätzung der Anzahl k in NMF? Wie könnte zum Beispiel eine Kreuzvalidierung für diesen Zweck verwendet werden?

Steve Sailer
quelle
Ich habe keine Zitate (und tatsächlich habe ich eine schnelle Suche in Google Scholar durchgeführt und keine gefunden), aber ich glaube, dass eine Quervalidierung möglich sein sollte.
Amöbe sagt Reinstate Monica
2
Können Sie mir weitere Einzelheiten zur Durchführung der Kreuzvalidierung für NMF mitteilen? Die K-Werte für die Frobenius-Norm werden mit zunehmender K-Zahl immer kleiner.
Steve Sailer
Wofür machst du NMF? Soll es V im Raum der unteren Dimension darstellen (unbeaufsichtigt) oder sollen Empfehlungen gegeben werden (beaufsichtigt)? Wie groß ist dein V ? Müssen Sie einen bestimmten Prozentsatz der Varianz erklären? Sie können den Lebenslauf anwenden, nachdem Sie Ihre Zielmetrik definiert haben. Ich möchte Sie ermutigen, über die Anwendung nachzudenken und eine Metrik zu finden, die Sinn macht.
unwissend

Antworten:

10

Verwenden Sie die Kreuzvalidierung, um eine optimale Anzahl latenter Faktoren bei der nicht-negativen Matrixfaktorisierung zu wählen.

Wie Sie geschrieben haben, besteht das Ziel von NMF darin, niedrigdimensionale und mit allen nicht negativen Elementen zu finden, um den Rekonstruktionsfehler minimieren . Stellen Sie sich vor, wir lassen ein Element von weg , z. B. , und führen NMF der resultierenden Matrix mit einer fehlenden Zelle durch. Dies bedeutet, und Rekonstruktionsfehler über alle nicht fehlenden Zellen zu minimieren:WHVWH2VVabWH

ijab(Vij[WH]ij)2.

Sobald dies erledigt ist, können wir das ausgelassene Element vorhersagen, indem wir berechnen und den VorhersagefehlerMan kann diesen Vorgang wiederholen, indem man alle Elemente und die Vorhersagefehler über alle und . Dies führt zu einem PRESS-Gesamtwert (vorhergesagte Restquadratsumme) , der von abhängt . Hoffentlich hat die Funktion ein Minimum, das als 'optimales' .Vab[WH]ab

eab=(Vab[WH]ab)2.
VababE(k)=abeabkE(k)k

Beachten Sie, dass dies rechenintensiv sein kann, da die NMF für jeden ausgelassenen Wert wiederholt werden muss und möglicherweise auch schwierig zu programmieren ist (je nachdem, wie einfach es ist, eine NMF mit fehlenden Werten durchzuführen). In PCA kann dies umgangen werden, indem vollständige Zeilen von ausgelassen werden (was die Berechnungen beschleunigt). Weitere Informationen finden Sie in der Antwort unter So führen Sie eine Kreuzvalidierung für PCA durch, um die Anzahl der Hauptkomponenten zu bestimmen. , aber das ist hier nicht möglich.V

Natürlich gelten hier alle üblichen Prinzipien der Kreuzvalidierung, so dass man viele Zellen gleichzeitig weglassen kann (anstatt nur einer) und / oder den Vorgang nur für einige zufällige Zellen wiederholen kann, anstatt alle Zellen in einer Schleife zu durchlaufen. Beide Ansätze können zur Beschleunigung des Prozesses beitragen.

Bearbeiten (März 2019): Sehen Sie sich diese sehr schöne, illustrierte Beschreibung von @AlexWilliams an : http://alexhwilliams.info/itsneuronalblog/2018/02/26/crossval . Alex verwendet https://github.com/kimjingu/nonnegfac-python für NMF mit fehlenden Werten.

Amöbe sagt Reinstate Monica
quelle
4

Meines Wissens gibt es zwei gute Kriterien: 1) den kophenetischen Korrelationskoeffizienten und 2) den Vergleich der Restsumme der Quadrate mit randomisierten Daten für eine Reihe von Rängen (vielleicht gibt es einen Namen dafür, aber ich erinnere mich nicht)

  1. Kophenetischer Korrelationskoeffizient: Sie wiederholen die NMF mehrmals pro Rang und berechnen, wie ähnlich die Ergebnisse sind. Mit anderen Worten, wie stabil sind die identifizierten Cluster, vorausgesetzt, der anfängliche Startwert ist zufällig. Wählen Sie das höchste K, bevor der Kophenetikkoeffizient sinkt.

  2. RSS gegen randomisierte Daten Bei jedem Ansatz zur Dimensionsreduzierung gehen im Vergleich zu Ihren Originaldaten immer Informationen verloren (geschätzt durch RSS). Führen Sie nun NMF zur Erhöhung von K durch und berechnen Sie RSS sowohl mit Ihrem Originaldatensatz als auch mit einem randomisierten Datensatz. Beim Vergleich von RSS in Funktion von K nimmt der RSS-Wert mit zunehmendem K im ursprünglichen Datensatz ab, dies ist jedoch für den randomisierten Datensatz weniger der Fall. Wenn man beide Steigungen vergleicht, sollte es ein K geben, wo sie sich kreuzen. Mit anderen Worten, wie viele Informationen könnten Sie sich leisten, um zu verlieren (= höchste K), bevor Sie sich innerhalb des Rauschens befinden.

Hoffe ich war klar genug.

Bearbeiten: Ich habe diese Artikel gefunden.

1. Jean-P. Brunet, Pablo Tamayo, Todd R. Golub und Jill P. Mesirov. Entdeckung von Metagenen und molekularen Mustern mittels Matrixfaktorisierung. In Proceedings der National Academy of Sciences der USA, 101 (12): 4164-4169, 2004.

2.Attila Frigyesi und Mattias Hoglund. Nicht-negative Matrixfaktorisierung zur Analyse komplexer Genexpressionsdaten: Identifizierung klinisch relevanter Tumorsubtypen. Cancer Informatics, 6: 275 & ndash; 292, 2008.

Jean-Paul Abbuehl
quelle
Es ist nicht klar, warum der RSS-Wert von Zufallsdaten niedriger sein sollte als der RSS-Wert, der mit Originaldaten berechnet wurde, wenn K klein ist. Im Übrigen verstehe ich, dass RSS zufällig langsamer abnehmen sollte als das auf den Originaldaten.
Malik Koné
1

Bei der NMF-Faktorisierung ist der Parameter ( in der meisten Literatur mit r bezeichnet ) der Rang der Approximation von V und wird so gewählt, dass k < min ( m , n ) ist . Die Wahl des Parameters bestimmt die Darstellung Ihrer Daten V auf einer übervollständigen Basis, die sich aus den Spalten von W zusammensetzt . das w i  ,  i = 1 , 2 , , k . Das Ergebnis ist, dass die Reihen der Matrizen W und H eine Obergrenze von habenkrVk<min(m,n)VWwi , i=1,2,,kWH und das Produktist eine niedrigrangige Approximation von; auchhöchstens. Daher sollte die Wahl voneine Dimensionsverringerung darstellen, bei deraus den oben erwähnten Basisvektoren erzeugt / aufgespannt werden kann.kV k k < min ( m , n ) VWHVkk<min(m,n)V

Weitere Einzelheiten finden Sie in Kapitel 6 dieses Buches von S. Theodoridis und K. Koutroumbas.

Nach der Minimierung Ihrer gewählten Kostenfunktion in Bezug auf und sollte die optimale Auswahl von ( empirisch ausgewählt durch Arbeiten mit verschiedenen Merkmalsunterräumen) , eine Annäherung von mit Merkmalen, die für Ihre Anfangsdaten repräsentativ sind Matrix . WHkVVV

Arbeiten mit unterschiedlichen Merkmalsunterräumen in dem Sinne , dass die Anzahl der Spalten in , ist die Anzahl der Basisvektoren in dem NMF Unterraum. Das empirische Arbeiten mit unterschiedlichen Werten von kommt dem Arbeiten mit unterschiedlichen Merkmalräumen mit reduzierter Dimension gleich.kWk

Gilles
quelle
4
Aber die Frage war, wie man das optimale wählt ! Können Sie dazu irgendwelche Einblicke geben? k
Amöbe sagt Reinstate Monica
@amoeba Sofern ich die ursprüngliche Frage nicht falsch verstanden habe, lautet sie "Gibt es übliche Methoden zum Schätzen der Zahl in NMF?". Das Optimum k wird empirisch gewählt . Ich habe meine Antwort erweitert. kk
Gilles
2
Ihre Erklärung der NMF-Faktorisierung ist durchaus sinnvoll, aber die anfängliche Frage betraf speziell die gängigen Praktiken zur Schätzung von k. Nun haben Sie geschrieben, dass man k "empirisch" (okay) "durch Arbeiten mit verschiedenen Merkmalsunterräumen" auswählen kann. Ich bin mir nicht sicher, ob ich verstehe, was "Arbeiten mit verschiedenen Feature-Subspaces" bedeutet. Könnten Sie das näher erläutern? Wie soll man mit ihnen arbeiten ?? Was ist das Rezept, um k zu wählen? Darum geht es in der Frage (zumindest so, wie ich es verstanden habe). Gerne wieder meine Downvote!
Amöbe sagt Reinstate Monica
2
Ich schätze Ihre Änderungen und es tut mir sehr leid, dass Sie so dumm sind. Aber nehmen wir an, ich habe meine Daten und versuche [empirisch] verschiedene Werte von zwischen 1 und 50. Wie soll ich den auswählen, der am besten funktioniert hat ??? Dies ist , wie ich die ursprüngliche Frage verstehen, und ich kann nicht finden , alles in Ihrer Antwort darüber. Bitte lassen Sie mich wissen, wenn ich es verpasst habe oder wenn Sie der Meinung sind, dass die ursprüngliche Frage anders war. k
Amöbe sagt Reinstate Monica
1
@amoeba Das hängt von Ihrer Anwendung, Ihren Daten und dem ab, was Sie erreichen möchten. Ist es nur die Reduzierung der Dimensionalität oder die Trennung der Quelle usw.? In Audioanwendungen, z. B. Quellentrennung, ist das optimale dasjenige, das Ihnen die beste Qualität beim Hören der getrennten Audioquellen bietet. Die Motivation für die Auswahl hier ist natürlich anders, wenn Sie zum Beispiel mit Bildern gearbeitet haben. k
Gilles