13

Comment concevoir un réseau de neurones pour un moteur de recommandation. Je suppose que chaque utilisateur aurait besoin de son propre réseau, mais comment concevez-vous les entrées et les sorties pour recommander un élément dans une base de données. Y a-t-il de bons tutoriels ou quelque chose?Moteur de recommandation de réseau neuronal

Modifier: Je pensais plutôt à la conception d'un réseau. Comme dans combien de neurones d'entrée et comment les neurones de sortie pointent vers un enregistrement dans une base de données. Auriez-vous dit 6 neurones de sortie, le convertir en un nombre entier (ce qui serait n'importe quoi de 0 à 63) et c'est l'ID de l'enregistrement dans la base de données? Est-ce ainsi que les gens le font?

+2

concernant votre édition: Non, vous êtes absent le point. Le point d'un NN est la classification basée sur les propriétés statistiques.Ils ne sont pas Bayésiens par nature, mais vous pouvez penser de cette façon si cela vous aide: "quand j'ai entrée A d'une certaine valeur, entrée B d'une certaine valeur, entrée C d'une certaine valeur ... quel est le la probabilité que cet ensemble d'entrée spécifique appartient à un certain groupe (plus précisément, vous demandez à quel groupe il appartient)? C'est le but d'un NN.Vous pouvez flex ce modèle à utiliser dans plus de simple classification, mais en son cœur, –

+1

Merci, votre réponse explique clairement comment entrer les données, mais pas ce que les sorties devraient/devraient ressembler et comment ils signifient quelque chose.C'est là que je suis confus – Louis

+3

Les sorties vont être numériques, mais ces chiffres doivent avoir une signification. "Ce qu'ils veulent dire" dépend de VOUS, le concepteur du réseau, mais il ne va pas fonctionner pour les mettre simplement dans un ID de base de données (qui est une étiquette sans signification mathématique). Les sorties ne peuvent pas être directement converties en une étiquette. re les valeurs d'un modèle statistique. Ce serait comme si vous essayiez de prédire la performance d'un quarterback en fonction du nombre sur son maillot. À moins que le maillot ne soit assigné selon des critères spécifiques et observables concernant le joueur, une telle prédiction n'aurait aucun sens. –

Répondre

2

Vous devez d'abord décider ce que vous recommandez exactement et dans quelles circonstances. Il y a beaucoup de choses à prendre en compte. Allez-vous considérer les "autres utilisateurs qui ont acheté X aussi acheté Y?" Allez-vous seulement recommander des articles qui ont une nature similaire les uns aux autres? Recommandez-vous des éléments qui ont un type de relation "this-one-is-more-useful-with-that-one"? Je suis sûr qu'il y a beaucoup plus de décisions, et chacune d'elles a ses propres objectifs en tête. Il serait très difficile de former un réseau géant pour gérer tout ce qui précède.

Les réseaux de neurones se résument tous à la même chose. Vous avez un ensemble donné d'entrées. Vous avez une topologie de réseau. Vous avez une fonction d'activation. Vous avez des poids sur les entrées des nœuds. Vous avez des sorties, et vous avez un moyen de mesurer et de corriger les erreurs. Chaque type de réseau de neurones peut avoir sa propre façon de faire chacune de ces choses, mais elles sont présentes tout le temps (à ma connaissance limitée). Ensuite, vous formez le réseau en alimentant une série d'ensembles d'entrées qui ont des résultats de sortie connus. Vous exécutez ce jeu d'entraînement autant que vous le souhaitez sans entraînement supplémentaire ou en cours (ce qui est autant votre estimation que le prochain gars), et vous êtes prêt à rouler. Essentiellement, votre ensemble d'entrées peut être décrit comme un certain ensemble de qualités que vous jugez pertinentes par rapport à la fonction sous-jacente (par exemple: précipitations, humidité, température, maladie, âge, emplacement, coût, compétences, temps). le jour, le jour de la semaine, le statut professionnel et le sexe peuvent tous jouer un rôle important dans la décision d'aller ou non au golf un jour donné). Vous devez donc décider exactement ce que vous essayez de recommander et dans quelles conditions. Vos entrées réseau peuvent être de nature booléenne (0.0 étant faux et 1.0 étant vrai, par exemple) ou mappées dans un espace pseudo-continu (où 0.0 peut ne pas signifier du tout, .45 signifie quelque peu, .8 signifie probable, et 1.0 signifie Oui). Cette deuxième option peut vous donner les outils pour cartographier le niveau de confiance pour une certaine entrée, ou simplement un calcul mathématique que vous considérez pertinent.

J'espère que cela a aidé. Vous n'avez pas donné beaucoup pour continuer :)

8

Je suggère de regarder dans les réseaux de neurones en utilisant l'apprentissage non supervisé comme self organising maps. Il est très difficile d'utiliser les réseaux de neurones supervisés normaux pour faire ce que vous voulez, sauf si vous pouvez classer les données très précisément pour l'apprentissage. Les cartes auto-organisatrices n'ont pas ce problème car le réseau apprend les groupes de classification par leurs propres moyens.

un coup d'oeil à ce document qui décrit un système de recommandation de musique pour la musique http://www.springerlink.com/content/xhcyn5rj35cvncvf/

et bien d'autres documents écrits sur le sujet de Google scholar http://www.google.com.au/search?q=%09+A+Self-Organizing+Map+Based+Knowledge+Discovery+for+Music+Recommendation+Systems+&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a&safe=active