0

Je souhaite implémenter un système de recommandation de musique qui peut générer des listes de lecture musicales recommandées en temps réel. Je crois que cela peut être implémenté dans Prediction.io ...Prediction.io en temps réel avec Apache Storm

Cependant, en raison de la conception de Prediction.io, j'ai besoin d'appeler pio train, pio deploy, afin de mettre à jour le modèle d'apprentissage avec les nouvelles actions effectuées par l'utilisateur (comme la musique, etc.) Par conséquent, je devrais exécuter ces commandes toutes les 2 heures (ou un autre intervalle de temps approprié).

Je suis récemment tombé sur Apache Storm, et j'aime beaucoup le concept d'un traitement "en temps réel". Par conséquent, je pensais si je pouvais intégrer Prediction.io avec Apache Storm, de sorte que l'apprentissage se fasse "en ligne", ce qui permettra à mon application de recommander de la musique dans quelques likes/actions par l'utilisateur, au lieu d'attendre jusqu'à ce que le modèle d'apprentissage soit mis à jour. Si cela n'est pas viable, alors il est possible d'incorporer Mllib de Spark dans un boulon Apache Storm (java), puisque je peux construire des systèmes de recommandation avec lui (et il semble aussi que Prediction.io lui-même est construit sur Apache Spark)?

Merci d'avance!

Répondre

0

Le cas d'utilisation semble viable, mais je ne considérerais pas «besoin de courir quelque chose toutes les heures» comme une bonne motivation pour l'utilisation de la tempête. D'un autre côté, si vos données d'apprentissage sont en "streaming", vous pouvez modéliser votre topologie de tempête pour mettre à jour sa base de connaissances interne chaque fois que de nouvelles données arrivent. Cela vous permettra d'utiliser la base de connaissances la plus à jour chaque fois que l'utilisateur interroge quelque chose. En ce qui concerne les bibliothèques qui peuvent être utilisées avec Storm, n'importe quelle bibliothèque java (en fait n'importe quelle bibliothèque dans n'importe quelle langue si elle peut s'interfacer avec Java) devrait fonctionner.