Signification des caractéristiques latentes?

24

J'apprends la factorisation matricielle pour les systèmes de recommandation et je vois le terme latent featuresse produire trop fréquemment mais je n'arrive pas à comprendre ce qu'il signifie. Je sais ce qu'est une fonctionnalité mais je ne comprends pas l'idée de fonctionnalités latentes. Pourriez-vous l'expliquer? Ou au moins me diriger vers un papier / un endroit où je peux lire à ce sujet?

Jack Twain
la source
Les variables latentes permettent de rendre les modèles plus puissants en termes de ce qui peut être modélisé. C'est aux données et à l'algorithme de définir leur valeur. En d'autres termes, les variables latentes sont comme des «étapes» qui comblent l'écart entre vos variables observées et la prédiction souhaitée. Plus cet «écart» est large, plus les variables latentes sont utiles.
Vladislavs Dovgalecs

Réponses:

25

Au détriment de la simplification excessive, les fonctionnalités latentes sont des fonctionnalités «cachées» pour les distinguer des fonctionnalités observées. Les entités latentes sont calculées à partir des entités observées en utilisant la factorisation matricielle. Un exemple serait l'analyse de documents texte. les «mots» extraits des documents sont des caractéristiques. Si vous factorisez les données des mots, vous pouvez trouver des «sujets», où «sujet» est un groupe de mots ayant une pertinence sémantique. La factorisation matricielle de bas rang mappe plusieurs lignes (caractéristiques observées) à un plus petit ensemble de lignes (caractéristiques latentes). Pour élaborer, le document aurait pu observer des caractéristiques (mots) comme [voilier, goélette, yacht, bateau à vapeur, croiseur] qui «factoriseraient» en fonction latente (sujet) comme «navire» et «bateau».

[voilier, goélette, yacht, bateau à vapeur, croiseur, ...] -> [navire, bateau]

L'idée sous-jacente est que les entités latentes sont des «agrégats» sémantiquement pertinents des entités observées. Lorsque vous avez des fonctionnalités observées à grande échelle, de grande dimension et bruyantes, il est logique de construire votre classificateur sur des fonctionnalités latentes.

Il s'agit bien sûr d'une description simplifiée pour élucider le concept. Vous pouvez lire les détails sur les modèles d'allocation de Dirichlet latente (LDA) ou d'analyse sémantique latente probabiliste (pLSA) pour une description précise.

Stardust dynamique
la source
"Les entités latentes sont calculées à partir des entités observées en utilisant la factorisation matricielle." Le calcul par factorisation matricielle est-il une condition nécessaire pour qu'une quantité soit considérée comme latente?
flow2k
5

Supposons que vous ayez (MxN)une matrice clairsemée, où M- représente le nombre d'utilisateurs qui ont donné des recommandations et Nest le nombre d'éléments recommandés. L' élément de la matrice est la recommandation donnée, avec certains éléments manquants, c'est-à-dire à prévoir.xij

Ensuite, votre matrice peut être "factorisée", en introduisant des K"facteurs latents", de sorte qu'au lieu d'une matrice, vous en avez deux: - pour les (MxK)utilisateurs, et (KxN)- pour les articles, dont la multiplication de la matrice produit la matrice d'origine.

Enfin, à votre question: quelles sont les caractéristiques latentes de la factorisation matricielle? Ce sont des caractéristiques inconnues ( K) des goûts des utilisateurs et des éléments recommandés, de sorte que lorsque ces deux matrices se multiplient, elles produisent une matrice de recommandations connues. Des poids particuliers (des préférences de l'utilisateur envers une caractéristique particulière et la quantité d'une caractéristique dans un élément particulier) sont définis via ce que l'on appelle l'algo des moindres carrés alternés, plus sur ce que vous pouvez lire ici

Sergey Bushmanov
la source
3

Il me semble que les caractéristiques latentes sont un terme utilisé pour décrire les critères de classification des entités par leur structure, en d'autres termes, par les caractéristiques (traits) qu'elles contiennent, au lieu des classes auxquelles elles appartiennent. La signification du mot «latent» ici est très probablement similaire à sa signification dans les sciences sociales, où le terme très populaire de variable latente ( http://en.wikipedia.org/wiki/Latent_variable ) signifie variable inobservable (concept).

La section "Introduction" dans l'article suivant fournit une bonne explication de la signification et de l'utilisation des caractéristiques latentes dans la modélisation des phénomènes des sciences sociales: http://papers.nips.cc/paper/3846-nonparametric-latent-feature-models-for- link-prediction.pdf .

Aleksandr Blekh
la source
J'ai lu l'introduction dans l'article que vous avez référencé mais je ne l'ai pas trouvé très utile pour comprendre le concept de fonctionnalités latentes.
Will
@Will N'hésitez pas à suggérer des sources avec une meilleure explication.
Aleksandr Blekh
@Will Merci. Je suis d'accord - c'est une assez bonne introduction / explication (cependant, je suis sûr qu'il y en a beaucoup d'autres bonnes dispersées là-bas).
Aleksandr Blekh
1

Un autre exemple, considérons le cas des utilisateurs de la matrice de classement des films comme la configuration Netflix. Ce sera une énorme matrice clairsemée difficile à traiter.

Notez que chaque utilisateur aura une préférence spécifique comme les films de science-fiction ou des films romantiques , etc. Ainsi, au lieu de stocker toutes les évaluations des films que nous pourrions stocker une seule fonction latente comme la catégorie de film qui appartient à différents du genre par exemple: la science-fiction ou romance, selon ce qui quantifie son goût pour chaque catégorie. Ceux-ci sont appelés fonctionnalités latentes , qui capturent l'essence de son goût plutôt que de stocker la liste complète des films.

Bien sûr, ce sera une approximation, mais d'un autre côté, vous avez très peu à stocker.

Cela se fait généralement en utilisant des techniques de décomposition matricielle, comme SVD qui casse une matrice de recommandation utilisateur en élément en matrice de préférence utilisateur et matrice de préférence utilisateur , un avantage supplémentaire est qu'au lieu de stocker le nombre nous avons effectivement stocker .N 1 1 N N 2 2 NNNN11NN22N

Sanjay
la source