Comment choisir un nombre optimal de facteurs latents dans la factorisation matricielle non négative?


15

Étant donné une matrice Vm×n , la factorisation matricielle non négative (NMF) trouve deux matrices non négatives Wm×k et Hk×n (c'est-à-dire avec tous les éléments 0 ) pour représenter la matrice décomposée comme:

VWH,

WH

VWH2.

Existe-t-il des pratiques courantes pour estimer le nombre en NMF? Comment, par exemple, la validation croisée pourrait-elle être utilisée à cette fin?k


Je n'ai pas de citations (et en fait j'ai fait une recherche rapide sur google scholar et je n'en ai trouvé aucune), mais je pense que la validation croisée devrait être possible.
amibe dit Réintégrer Monica

2
Pourriez-vous me dire plus de détails sur la façon d'effectuer la validation croisée pour NMF? Les valeurs K pour la norme Frobenius diminuent toujours à mesure que le nombre de K augmente.
Steve Sailer

Pourquoi faites-vous NMF? Est-ce pour représenter dans un espace de dimension inférieure (non supervisé) ou pour fournir des recommandations (supervisé). Quelle est la taille de votre V ? Avez-vous besoin d'expliquer un certain pourcentage de la variance? Vous pouvez appliquer CV après avoir défini votre métrique d'objectif. Je vous encourage à penser à l'application et à trouver une métrique qui a du sens. VV
ignorant

Réponses:


10

Pour choisir un nombre optimal de facteurs latents dans la factorisation matricielle non négative, utilisez la validation croisée.

Comme vous l'avez écrit, le NMF a pour objectif de trouver W et H faible dimension avec tous les éléments non négatifs minimisant l'erreur de reconstruction VWH2 . Imaginez que nous omettons un élément de V , par exemple Vab , et effectuons la NMF de la matrice résultante avec une cellule manquante. Cela signifie trouver W et H minimisant l'erreur de reconstruction sur toutes les cellules non manquantes:

ijab(Vij[WH]ij)2.

Une fois cela fait, nous pouvons prédire l'élément laissé de côté Vab en calculant [WH]ab et calculer l'erreur de prédiction

eab=(Vab[WH]ab)2.
On peut répéter cette procédure en omettant tous les éléments Vab un à la fois, et résumer les erreurs de prédiction sur tous les a et b . Cela se traduira par une valeur de PRESSE globale (somme résiduelle prévue des carrés) E(k)=abeab qui dépendra dek . Espérons que la fonctionE(k) aura un minimum qui pourra être utilisé commek «optimal».

Notez que cela peut être coûteux en calcul, car le NMF doit être répété pour chaque valeur omise, et peut également être difficile à programmer (selon la facilité avec laquelle il est possible d'effectuer NMF avec des valeurs manquantes). Dans PCA, on peut contourner cela en omettant des lignes complètes de V (ce qui accélère beaucoup les calculs), voir ma réponse dans Comment effectuer une validation croisée pour PCA pour déterminer le nombre de composants principaux? , mais ce n'est pas possible ici.

Bien sûr, tous les principes habituels de la validation croisée s'appliquent ici, donc on peut laisser de nombreuses cellules à la fois (au lieu d'une seule) et / ou répéter la procédure pour seulement certaines cellules aléatoires au lieu de boucler sur toutes les cellules. Les deux approches peuvent aider à accélérer le processus.

Edit (mars 2019): Voir cette très belle rédaction illustrée par @AlexWilliams : http://alexhwilliams.info/itsneuronalblog/2018/02/26/crossval . Alex utilise https://github.com/kimjingu/nonnegfac-python pour NMF avec des valeurs manquantes.


4

À ma connaissance, il existe deux bons critères: 1) le coefficient de corrélation cophénétique et 2) la comparaison de la somme résiduelle des carrés avec des données randomisées pour un ensemble de rangs (peut-être qu'il y a un nom pour cela, mais je ne me souviens pas)

  1. Coefficient de corrélation cophénétique: vous répétez NMF plusieurs fois par rang et vous calculez la similitude des résultats. En d'autres termes, quelle est la stabilité des grappes identifiées, étant donné que la graine initiale est aléatoire. Choisissez le K le plus élevé avant que le coefficient cophénétique ne baisse.

  2. RSS contre des données randomisées Pour toute approche de réduction de dimensionnalité, il y a toujours une perte d'informations par rapport à vos données d'origine (estimée par RSS). Maintenant, effectuez NMF pour augmenter K et calculez RSS avec votre ensemble de données d'origine et un ensemble de données randomisé. Lorsque l'on compare RSS en fonction de K, le RSS diminue avec l'augmentation de K dans le jeu de données d'origine, mais c'est moins le cas pour le jeu de données randomisé. En comparant les deux pentes, il devrait y avoir un K là où elles se croisent. En d'autres termes, combien d'informations pourriez-vous vous permettre de perdre (= K le plus élevé) avant d'être dans le bruit.

J'espère que j'ai été assez clair.

Edit: j'ai trouvé ces articles.

1.Jean-P. Brunet, Pablo Tamayo, Todd R. Golub et Jill P. Mesirov. Découverte de métagènes et de modèles moléculaires par factorisation matricielle. In Proceedings of the National Academy of Sciences of the USA, 101 (12): 4164-4169, 2004.

2.Attila Frigyesi et Mattias Hoglund. Factorisation matricielle non négative pour l'analyse de données d'expression génique complexes: identification de sous-types de tumeurs cliniquement pertinents. Cancer Informatics, 6: 275-292, 2008.


On ne sait pas pourquoi le RSS des données aléatoires devrait être inférieur au RSS calculé avec les données originales lorsque K est petit? Pour le reste, je comprends que le RSS aléatoire devrait diminuer plus lentement que celui des données d'origine.
Malik Koné

1

Dans la factorisation NMF, le paramètre (noté r dans la plupart des publications) est le rang de l'approximation de V et est choisi tel que k < min ( m , n ) . Le choix du paramètre détermine la représentation de vos données V dans une base trop complète composée des colonnes de W ; le w i  ,  i = 1 , 2 , , k . Le résultat est que les rangs des matrices W et H ont une limite supérieure dekrVk<min(m,n)VWwi , i=1,2,,kWH et le produit W H est une approximation de bas rang de V ; aussi k au plus. Par conséquent, le choix de k < min ( m , n ) devrait constituer une réduction de dimensionnalité où V peut être généré / étendu à partir des vecteurs de base susmentionnés.kWHVkk<min(m,n)V

De plus amples détails peuvent être trouvés dans le chapitre 6 de ce livre de S. Theodoridis et K. Koutroumbas.

Après minimisation de votre fonction de coût choisie par rapport à et H , le choix optimal de k ( choisi empiriquement en travaillant avec différents sous-espaces de caractéristiques) devrait donner V , une approximation de V , avec des caractéristiques représentatives de votre matrice de données initiale V . WHkVVV

Travailler avec différents sous-espaces d'entités en ce sens que, le nombre de colonnes dans W , est le nombre de vecteurs de base dans le sous-espace NMF. Et travailler empiriquement avec différentes valeurs de k équivaut à travailler avec différents espaces d'entités à dimension réduite.kWk


4
Mais la question était de savoir comment choisir le optimal ! Pouvez-vous nous fournir des informations à ce sujet? k
amibe dit Réintégrer Monica

@amoeba Sauf si j'ai mal lu la question initiale, c'est "Existe-t-il des pratiques courantes pour estimer le nombre en NMF?". Le k optimal est choisi empiriquement . J'ai élargi ma réponse. kk
Gilles

2
Votre explication de la factorisation NMF est parfaitement logique, mais la question initiale portait spécifiquement sur les pratiques courantes pour estimer k. Vous avez maintenant écrit que l'on peut choisir k "empiriquement" (d'accord) "en travaillant avec différents sous-espaces de caractéristiques". Je ne suis pas sûr de comprendre ce que signifie "travailler avec différents sous-espaces de fonctionnalités", pourriez-vous développer cela? Comment travailler avec eux ?? Quelle est la recette pour choisir k? C'est de cela qu'il s'agit (du moins si j'ai bien compris). Sera heureux de revenir sur mon downvote!
amibe dit Réintégrer Monica

2
k

1
k
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.