0

J'utilise la factorisation matricielle comme un algorithme de système de recommandation basé sur les enregistrements de comportement de clic de l'utilisateur. J'essaie deux matrice méthode de factorisation:Est-ce que ma méthode pour détecter le surajustement dans la factorisation matricielle est correcte?

Le premier est la SVD de base dont la prédiction est juste le produit du facteur utilisateur vecteur u et article facteur i: r = u * i

Le second que j'ai utilisé est le SVD avec composante de polarisation.

r = u * i + b_u + b_i

b_u et b_i représente le biais de la préférence des utilisateurs et des articles.

Un des modèles que j'utilise a une très faible performance, et l'autre est raisonnable. Je ne comprends vraiment pas pourquoi le dernier fonctionne moins bien, et je doute qu'il soit surfait.

J'ai googlé des méthodes pour détecter le surajustement, et a trouvé la courbe d'apprentissage est un bon moyen. Cependant, l'axe des abscisses est la taille de l'ensemble d'entraînement et l'axe des y est la précision. Cela me rend assez confus. Comment puis-je changer la taille de l'ensemble d'entraînement? Choisir certains des enregistrements de l'ensemble de données?

Un autre problème est, j'ai essayé de tracer la courbe de perte d'itération (La perte est le). Et il semble que la courbe est normale:

enter image description here

Mais je ne suis pas sûr que cette méthode est correcte parce que les mesures que j'utilise sont la précision et le rappel. Dois-je tracer la courbe itération-précision ??? Ou celui-ci dit déjà que mon modèle est correct?

Quelqu'un peut-il me dire si je vais dans la bonne direction? Merci beaucoup. :)

Répondre

0

je répondrai à l'envers:

Vous essaient deux modèles différents, qui utilise la factorisation de la matrice droite r = u * i et l'autre qui entre les biais, r = u * i + b_u + b_i.

Vous avez mentionné que vous faites une factorisation matricielle pour un système de recommandation qui examine les clics de l'utilisateur. Ma question est la suivante: s'agit-il d'un cas de cotation implicite? ou Explicite? Je crois que c'est un problème de notations implicites s'il s'agit de clics.

Il s'agit de la première chose dont vous devez être très conscient, que votre problème concerne les évaluations explicites ou implicites. Parce qu'il y a quelques différences dans la façon dont ils sont utilisés et mis en œuvre.

Si vous cochez ici: http://yifanhu.net/PUB/cf.pdf

évaluations implicites sont traités d'une manière que le nombre de fois que quelqu'un a cliqué ou acheté un article donné par exemple est utilisé pour déduire un niveau de confiance. Si vous vérifiez la fonction d'erreur, vous pouvez voir que les niveaux de confiance sont utilisés presque comme un facteur de poids.Donc l'idée est que dans ce scénario, les biais n'ont aucun sens. Dans le cas des évaluations explicites, où l'on a des notes sous forme de score par exemple de 1 à 5, on peut calculer ces biais pour les utilisateurs et les produits (moyennes de ces scores bornés) et les introduire dans la formule d'évaluation. Ils ont du sens dans son scénario.

Tout le problème est, selon que vous êtes dans un scénario ou l'autre, vous pouvez utiliser les biais ou non. D'autre part, votre question concerne le sur-ajustement, car vous pouvez tracer des erreurs d'entraînement avec des erreurs de test, en fonction de la taille de vos données, vous pouvez avoir des données de test de rétention, si les erreurs diffèrent beaucoup. sont sur ajustement.

Une autre chose est que les modèles de factorisation matricielle incluent généralement des termes de régularisation, voir l'article publié ici, pour éviter un ajustement excessif.

Donc je pense que dans votre cas, vous rencontrez un problème différent de celui que j'ai mentionné auparavant.