Apache Spark用户-用户推荐?

我有一组数据,包含用户通过选择完成的问题答案。我试图构建一个用户-用户推荐引擎,根据他们对问题的回答找到相似用户。一个重要点是问题是随机排列的,没有顺序,而且数据是流式的。

所以对于每个用户,我的数据看起来像这样:

user_1: {"question_1": "choice_1", ...}user_2: {"question_3": "choice_4", ...}user_3: {"question_1": "choice_3", ...}

我发现大多数教程都是关于用户-物品推荐的,但没有关于用户-用户推荐的。

我意识到聚类和余弦相似度可能是很好的选择,我发现columnSimilarity非常高效。

rows = sc.parallelize([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])mat = RowMatrix(rows)sims = mat.columnSimilarity()

我有两个问题:

将每个用户定义为列,将问题/选择定义为行来获得我需要的结果是否明智?

我应该如何将这种类型的数据向量化为数字?如果我需要进行聚类的话。

提前谢谢你 🙂


回答:

遗憾的是,事情不能这样做。这太好了,不可能是真的,对吗?

columnSimilarity适用于瘦高矩阵,所以如果你有一个希望执行此任务的用户-用户矩阵,它将不起作用。例如,如果你有100万用户)

从你的描述来看,我认为你可能有一个矮宽矩阵,columnSimilarity对你不起作用。

如果你希望执行用户-用户协同过滤,聚类将是一种方法。(其他方法中,LSH也是一个不错的选择。)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注