Come scegliere un numero ottimale di fattori latenti nella fattorizzazione a matrice non negativa?


15

Data una matrice Vm×n , la fattorizzazione a matrice non negativa (NMF) trova due matrici non negative Wm×k e Hk×n (cioè con tutti gli elementi 0 ) per rappresentare la matrice decomposta come:

VWH,

WH

VWH2.

Esistono pratiche comuni per stimare il numero in NMF? Come si può, ad esempio, utilizzare la validazione incrociata a tale scopo?k


Non ho citazioni (e in realtà ho fatto una rapida ricerca su Google Scholar e non sono riuscito a trovarne), ma credo che la convalida incrociata dovrebbe essere possibile.
ameba dice di reintegrare Monica l'

2
Potresti dirmi maggiori dettagli su come eseguire la validazione incrociata per NMF? I valori K per la norma Frobenius diminuiranno sempre all'aumentare del numero di K.
Steve Sailer,

Per cosa stai facendo NMF? Rappresenta nello spazio di dimensione inferiore (senza supervisione) o fornisce raccomandazioni (supervisionato). Quanto è grande la tua ? Devi spiegare una certa percentuale della varianza? Puoi applicare il CV dopo aver definito la metrica oggettiva. Ti incoraggio a pensare all'applicazione e a trovare una metrica che abbia senso. VVV
ignorante

Risposte:


10

Per scegliere un numero ottimale di fattori latenti nella fattorizzazione a matrice non negativa, utilizzare la convalida incrociata.

Come hai scritto, lo scopo di NMF è trovare W e H a bassa dimensione con tutti gli elementi non negativi che minimizzino l'errore di ricostruzione VWH2 . Immagina di tralasciare un elemento di V , ad esempio Vab , e di eseguire NMF della matrice risultante con una cella mancante. Ciò significa trovare W e H minimizzando l'errore di ricostruzione su tutte le celle non mancanti:

ijab(Vij[WH]ij)2.

Una volta fatto ciò, possiamo prevedere l'elemento lasciato fuori Vab calcolando [WH]ab e calcolando l'errore di previsione

eab=(Vab[WH]ab)2.
Si può ripetere questa procedura tralasciando tutti gli elementi Vab uno alla volta e riassumendo gli errori di predizione su tutti a e b . Ciò si tradurrà in un valore PRESS complessivo (somma residua prevista dei quadrati) E(k)=abeab che dipenderà dak . Eventualmente la funzioneE(k) avrà un minimo che può essere usato comek 'ottimale'.

Si noti che questo può essere costoso dal punto di vista computazionale, poiché il NMF deve essere ripetuto per ogni valore lasciato fuori e potrebbe anche essere difficile da programmare (a seconda di quanto sia facile eseguire NMF con valori mancanti). In PCA si può aggirare questo tralasciando le file complete di V (che accelera molto i calcoli), vedere la mia risposta in Come eseguire la convalida incrociata per PCA per determinare il numero di componenti principali? , ma questo non è possibile qui.

Naturalmente tutti i soliti principi di convalida incrociata si applicano qui, quindi si possono tralasciare molte celle alla volta (invece di una sola) e / o ripetere la procedura solo per alcune celle casuali invece di eseguire il ciclo su tutte le celle. Entrambi gli approcci possono aiutare ad accelerare il processo.

Modifica (marzo 2019): guarda questo bellissimo scritto illustrato di @AlexWilliams : http://alexhwilliams.info/itsneuronalblog/2018/02/26/crossval . Alex utilizza https://github.com/kimjingu/nonnegfac-python per NMF con valori mancanti.


4

Per quanto ne so, ci sono due buoni criteri: 1) il coefficiente di correlazione copenetica e 2) confrontare la somma residua dei quadrati con i dati randomizzati per un insieme di gradi (forse c'è un nome per quello, ma non ricordo)

  1. Coefficiente di correlazione copenetica: si ripete NMF più volte per rango e si calcola quanto siano simili i risultati. In altre parole, quanto sono stabili i cluster identificati, dato che il seme iniziale è casuale. Scegli la K più alta prima che il coefficiente cophenetic scenda.

  2. RSS contro dati randomizzati Per qualsiasi approccio di riduzione della dimensionalità, c'è sempre una perdita di informazioni rispetto ai dati originali (stimati da RSS). Ora esegui NMF per aumentare K e calcola RSS con il tuo set di dati originale e un set di dati randomizzato. Quando si confronta RSS in funzione di K, l'RSS diminuisce all'aumentare di K nel set di dati originale, ma questo è meno il caso del set di dati randomizzato. Confrontando entrambe le pendenze, ci dovrebbe essere una K dove si incrociano. In altre parole, quante informazioni potresti permetterti di perdere (= K più alto) prima di essere nel rumore.

Spero di essere stato abbastanza chiaro.

Modifica: ho trovato quegli articoli.

1.Jean-P. Brunet, Pablo Tamayo, Todd R. Golub e Jill P. Mesirov. Scoperta di metagenes e pattern molecolari mediante fattorizzazione a matrice. In Atti della National Academy of Sciences degli Stati Uniti, 101 (12): 4164-4169, 2004.

2. Attila Frigyesi e Mattias Hoglund. Fattorizzazione a matrice non negativa per l'analisi di dati complessi di espressione genica: identificazione di sottotipi tumorali clinicamente rilevanti. Cancer Informatics, 6: 275-292, 2008.


Non è chiaro perché l'RSS di dati casuali dovrebbe essere inferiore all'RSS calcolato con i dati originali quando K è piccolo? Per il resto capisco che RSS di random dovrebbe diminuire più lentamente di quello sui dati originali.
Malik Koné,

1

Nella fattorizzazione NMF, il parametro (annotato r nella maggior parte della letteratura) è il rango dell'approssimazione di V ed è scelto in modo tale che k < min ( m , n ) . La scelta del parametro determina la rappresentazione dei tuoi dati V in una base troppo completa composta dalle colonne di W ; il w i  ,  i = 1 , 2 , , k . Il risultato è che i ranghi delle matrici W e H hanno un limite superiore dikrVk<min(m,n)VWwi , i=1,2,,kWH e il prodotto W H è un'approssimazione di basso rango di V ; anche k al massimo. Quindi la scelta di k < min ( m , n ) dovrebbe costituire una riduzione di dimensionalità in cui V può essere generato / esteso dai vettori di base di cui sopra.kWHVkk<min(m,n)V

Ulteriori dettagli possono essere trovati nel capitolo 6 di questo libro di S. Theodoridis e K. Koutroumbas.

Dopo aver minimizzato la funzione di costo prescelta rispetto a e H , la scelta ottimale di k , ( scelta empiricamente lavorando con diversi spazi secondari delle caratteristiche) dovrebbe dare V , un'approssimazione di V , con caratteristiche rappresentative della matrice iniziale dei dati V . WHkVVV

Lavorare con diversi spazi secondari di funzionalità, nel senso che, il numero di colonne in W , è il numero di vettori di base nel sotto-spazio NMF. E lavorare empiricamente con valori diversi di k equivale a lavorare con spazi di caratteristiche con ridotte dimensioni.kWk


4
Ma la domanda era su come scegliere il ottimale ! Puoi fornirci qualche idea al riguardo? k
ameba dice Reinstate Monica l'

@amoeba Se non ho letto male la domanda iniziale, è "Esistono pratiche comuni per stimare il numero in NMF?". Il k ottimale viene scelto empiricamente . Ho ampliato la mia risposta. kk
Gilles,

2
La tua spiegazione della fattorizzazione NMF ha un senso totale, ma la domanda iniziale era specificamente sulle pratiche comuni per stimare k. Ora hai scritto che si può scegliere k "empiricamente" (ok) "lavorando con diversi spazi secondari delle caratteristiche". Non sono sicuro di capire cosa significhi "lavorare con diversi spazi secondari di funzionalità", potresti approfondire? Come si dovrebbe lavorare con loro ?? Qual è la ricetta per scegliere k? Questo è il problema (almeno per come l'ho capito). Sarà felice di ripristinare il mio voto negativo!
ameba dice di reintegrare Monica l'

2
Apprezzo le tue modifiche e mi dispiace molto per essere così stupido. Ma supponiamo di avere i miei dati e provo [empiricamente] vari valori di tra 1 e 50. Come dovrei scegliere quello che ha funzionato meglio ??? Ecco come capisco la domanda originale e non riesco a trovare nulla nella tua risposta al riguardo. Per favore fatemi sapere se l'ho perso o se pensate che la domanda originale fosse diversa. k
ameba dice di reintegrare Monica l'

1
@amoeba Dipende dall'applicazione, dai dati e da ciò che vuoi realizzare. È solo la riduzione della dimensionalità o la separazione delle fonti, ecc.? Ad esempio, nelle applicazioni audio, diciamo la separazione delle sorgenti, il ottimale sarebbe quello che ti offre la migliore qualità quando ascolti le fonti audio separate. La motivazione per la scelta qui sarà ovviamente diversa se, ad esempio, stavi lavorando con le immagini. k
Gilles,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.