我想实现一个音乐推荐系统,可以实时生成推荐的音乐播放列表。我相信这可以在预测中实现。。。
但是,由于prediction.io的设计,我需要调用pio train,pio deploy,以便用用户所做的新操作(如音乐等)更新学习模型,因此,我需要每2小时(或另一个适当的时间间隔)运行这些命令。
我最近遇到了apachestorm,我非常喜欢“实时hadoop”处理的概念。因此,我在想,是否可以将prediction.io与apache storm结合起来,这样学习就可以“在线”完成,这将允许我的应用程序在用户的几个喜欢/动作内推荐音乐,而不是让用户等到学习模型更新。
如果这是不可行的,那么是否有可能将spark的mllib合并到apachestormbolt(java)中,因为我可以用它构建推荐系统(而且prediction.io本身似乎也是基于apachespark构建的)?
提前谢谢!
1条答案
按热度按时间mw3dktmi1#
这个用例看起来是可行的,但我不认为“每隔几个小时运行一次”是使用storm的好动机。另一方面,如果您的学习数据是“流式”的,那么您可以对storm拓扑进行建模,以便在每次新数据到达时更新其内部知识库。这将允许您在每次用户查询某个内容时使用最新的知识库。
至于哪些库可以与storm一起使用,任何java库(实际上,任何语言的库,如果它可以与java接口的话)都应该可以工作。