2013-08-05 115 views
0

我的查询是:实时推荐引擎的数据模型

给定一个用户ID,找到这个用户根据自己的评级对其他用户的收视率比较合适的歌曲推荐。

我希望一切都是实时的。因此,作为事件进来,重量建议适当并保持柱系列,支持像

SELECT recommendation_id FROM cf WHERE user_id=123 AND recommendation_type='song'

这样一个查询,我想这样一列族存储用户的所有收视率(每歌曲是一列),然后是一组建议。但是,我无法想出实时完成这项工作的方法。我需要一个风暴拓扑来填充评级以及可能的建议。

另一件看起来很混乱的事情是它需要cassandra进行大量更新。如果只是在创造它会更好,对吧?

我一直在试图找到这样的数据模型的例子,但还没有找到。其他人发现的任何资源都会有所帮助。

更新:解决问题的另一种方法是我试图找到支持迭代协作过滤的数据结构。这可能吗?

回答

1

我最近看到来自Spotify的这些幻灯片有关使用ML + Hadoop for Predictive analysis使用矩阵分解。正如你将在幻灯片11中看到的那样,卡桑德拉正在图片中,但大部分结果都是每晚预先计算好的。

+0

对于任何遇到此问题的人,我只想补充一点。基本上,我不认为这是一个解决问题。协作过滤需要将所有用户相互比较,并且据我所知,没有办法以迭代方式进行迭代(如在运行时不需要查看每个用户)。你可以做的最好的可能是火花(在slideshare中建议) –