【问题标题】:Apache Spark user-user recommendation?Apache Spark 用户-用户推荐?
【发布时间】:2018-01-31 15:46:56
【问题描述】:

我有一组用户通过选择完成的问题答案。我正在尝试构建一个用户-用户推荐引擎,以根据他们对问题的回答来找到相似的用户。重要的一点是问题被打乱并且没有顺序并且数据是流式传输的。

所以对于每个用户,我都有这样的数据:

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 万用户)
  • @eliasah 是的,谢谢您的回复。只是想确定一下。那么聚类会是更好的方法吗?

标签: apache-spark machine-learning pyspark


【解决方案1】:

不幸的是,这不是可以做到的。 这真是太好了,不是吗?

columnSimilarity 将与瘦矩阵和高矩阵一起使用,因此如果您希望在其上执行该任务的用户-用户矩阵,它将不起作用。例如,如果你有 100 万用户)

根据您的描述,我发现您的矩阵可能又短又宽,columnSimilarity 不适合您。

如果您希望执行 UUCF,集群将是一种方法。 (除其他外,LSH 也是一种很好的方法。)

【讨论】:

  • 谢谢。您能否分享一个有关如何将此数据集矢量化为数字的示例或链接?
  • 抱歉这个愚蠢的问题,我是数据科学的新手。我需要从我的问题/答案中生成 features 数组,但您发布的链接包含一些以前的 features 值。
  • 我不确定我是否理解您的问题@MohammadAmin。您是否愿意打开一个新问题,并提供一些有关您实际在做什么的额外信息?输入数据、预期输出以及您尝试过的内容?
  • 谢谢。这是here
猜你喜欢
  • 2017-04-10
  • 2017-05-05
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多