2011-04-03 3 views
2

La plupart des articles de l'algorithme de recommandation que j'ai lus sont axés sur le modèle Netflix où les utilisateurs évaluent les articles. Ce que je veux faire est légèrement différent (je pense). Disons plutôt que je veux créer un site où l'on présente à l'utilisateur deux images de voitures. L'utilisateur peut alors sélectionner la voiture qu'il préfère. L'utilisateur peut répéter ce processus autant de fois qu'il le souhaite, mais si tout va bien, les images deviennent de plus en plus raffinées vers ce que l'utilisateur aime.Comment implémenter cet algorithme de recommandation?

Comment implémenteriez-vous cet algorithme? Il semble qu'une façon possible serait simplement de mettre en œuvre un algorithme de classement ELO et d'utiliser l'ordre de ces résultats comme une «évaluation», mais cela présente de sérieuses lacunes car plusieurs éléments ne peuvent pas recevoir une note maximale (que l'utilisateur peut ont fait si donné la possibilité de noter les articles eux-mêmes). Une autre méthode, qui me semble plus prometteuse, serait de prédéterminer les propriétés générales de chaque véhicule (par exemple couleur, type de carrosserie, 2 portes contre 4 portes, etc.) et de les utiliser pour avoir une idée générale de la propriétés que chaque utilisateur aime et baser les recommandations hors de cela.

+0

Semble comme un algorithme "chaud ou non". Voici un autre article sur les implémentations de choix a ou b. http://stackoverflow.com/questions/164831/how-to-rank-a-million-images-with-a-crowdsourced-sort –

+0

À titre d'observation, de nombreuses participations à la compétition Netflix ont utilisé la décomposition de la valeur singulière (ala L'impressionnante approximation de descente de gradient de Simon Funk). De toute façon, une hypothèse clé était la note d'un film par l'utilisateur - pas seulement une évaluation comparative, de sorte que votre situation peut malheureusement être plus que légèrement différente ... –

Répondre

1

Je vais prendre un coup à ce sujet.

Supposons que chaque voiture reçoive un ensemble de propriétés. Si cet ensemble de propriétés a été codé comme vecteur, une méthode de recommandation potentielle consisterait à utiliser des cartes auto-organisatrices (SOM). L'essentiel de base d'un SOM est qu'il est un catégoriseur de vecteurs d'entrée. Si vous formez un SOM avec des vecteurs d'entrée représentant des classes d'entrée distinctes, un SOM va commencer à regrouper ses vecteurs de stockage pour ressembler davantage à chaque classe d'entrée. Notez que le vecteur d'entrée d'origine n'est pas conservé. Pour former un SOM avec un vecteur d'entrée, le meilleur vecteur actuellement dans le SOM est choisi, puis la zone autour de ce vecteur devient plus comme l'entrée. Bien sûr, voir Wikipedia http://en.wikipedia.org/wiki/Self-organizing_map.

Alors, comment cela s'applique-t-il à cette situation? Eh bien, un SOM pourrait être utilisé pour former sur des images que la personne aime et on pourrait être formé sur ceux qu'ils aiment. Même s'il n'y a pas de style unique qu'ils aiment, les groupes devraient se former autour des voitures qu'ils aiment/n'aiment pas. Ensuite, voir si ils aiment une voiture qui n'a pas été choisie par eux est une question de trouver à quel point il correspond aux groupes de leurs goûts et dégoûts. Notez que dans ce cas, il serait préférable de faire correspondre les voitures qui sont différentes les unes des autres ou plus susceptibles de ne pas être aimé à la fois. Lorsque la personne rejoint le site pour la première fois, il peut être avantageux de lui permettre de choisir quelques préférences et aversions dès le départ pour lancer les SOM.

Bonne chance!

0

Maby il est un peu trop tard pour répondre, mais vous voudrez peut-être vérifier this. Il s'agit d'un professeur de MIT qui prétend que la notation 5 étoiles, like-rating, etc. ne fonctionne pas, il propose un algorithme qui fonctionne avec l'entrée par paires, comme vous le suggérez (Car A ou Car B). L'algorithme est assez complexe mais peut être trouvé sur le lien.

Questions connexes