cassandra中的实时推荐引擎数据模型



我的查询是:

给定用户id,根据该用户的评分与其他用户的评分进行比较,为该用户找到合适的歌曲推荐。

我希望这里的一切都是实时的。因此,随着事件的发生,适当地对建议进行加权,并维护一个支持之类查询的列族

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

所以,我想的是一个类似于专栏家族的东西,它存储用户的所有评分(每首歌都是一个专栏),然后是一组推荐。然而,我无法想出一种方法来实现实时工作。我想要一个风暴拓扑,填充评级以及可能的建议。

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

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

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

我最近在Spotify上看到了这些关于使用ML+Hadoop进行矩阵分解预测分析的幻灯片。正如您将在幻灯片11中看到的,Cassandra在图中,但大多数结果都是每晚预先计算的。

您可能想要使用CQL集合,包括集合、映射和列表。看看Datastax社区的这篇博客文章:

http://www.datastax.com/dev/blog/cql3_collections

最新更新