2015-11-17 1 views
1

Ex: j'ai un fichier maître commecomment ajouter un utilisateur et les métadonnées de l'élément dans le moteur de recommandation et l'outil open source de python peut donner cette fonctionnalité

      userid itemid rating 

           1   2  5 

un autre fichier utilisateur, où présent métadonnées relatives à l'utilisateur, les métadonnées pourraient être beaucoup:

userid age 

    1  5 
    2  8 

aussi j'ai un fichier d'article, où les méta-données liées à l'article présents. les méta-données pourraient être beaucoup

itemid  item_catagory item_geo 
    1   5    india 

si je recommanderai tout élément à un utilisateur, je veux inclure ces méta-informations. Je veux savoir si la factorisation matricielle sera utile et quel module open source Python a ce type d'implémentation disponible.

+0

Je vous recommande d'ajouter plus de détails sur ce que vous avez essayé et les extraits de code. – KPrince36

Répondre

2

Pour inclure des informations supplémentaires dans le système recommandé, par ex. à propos d'un élément, d'un utilisateur ou d'un événement de recommandation, l'une des méthodes existantes pour CARS (Context Aware Recommender System) peut être appliquée.

Essayez de commencer par Factorization Machines. Vous pouvez convertir vos données au format svmlight et aller avec l'implémentation de référence libfm. Il a la meilleure documentation et il existe un exemple similaire où vous pouvez trouver comment préparer vos données. S'il doit être en Python, il existe également de nombreuses implémentations existantes, par ex. fastFMSimpler - pyFM. Si vous voulez essayer Julia, peut-être vous pouvez utiliser mon code de FactorizationMachines.jl comme base :-)

Si vous serez à l'aise avec la norme FM, consultez: LightFM et Field Aware FM

Je pense que FM sont l'un des les modèles les plus réussis et faciles à utiliser pour CARS. S'il vous plaît donner quelques commentaires comment cela fonctionne pour vous. Si vous avez besoin d'une approche différente, je serai heureux de vous aider.

+0

Lequel préférez-vous avec Python, fastFM/Simpler - pyFM? – Serendipity

+0

Je pense que fastFM devrait être le premier choix - en raison de plus d'options de formation (ALS/MCMC/SGD) et une meilleure documentation, par ex. [tutoriel] (http://ibayer.github.io/fastFM/tutorial.html). Mais si vous planifiez d'écrire du code par vous-même, le pyFM plus simple utilisant seulement adagrad SGD serait plus facile à suivre. Si vous vous sentez à l'aise avec C++, regardez l'implémentation de référence libfm.org. Pour la mise à l'échelle des calculs sur GPU, voici un exemple utilisant Theano: https://github.com/instagibbs/FactorizationMachine/blob/master/factorization_machine.py –

+0

Merci Bartłomiej Twardowski! – Serendipity