【问题标题】:Spark Item Similarity Interpretation (Cross-Similarity and Similarity)Spark项目相似性解释(Cross-Similarity和Similarity)
【发布时间】:2016-11-02 20:15:59
【问题描述】:

我一直按照本文中的步骤通过 mahout 使用 Spark Item Similarity:

https://mahout.apache.org/users/algorithms/intro-cooccurrence-spark.html

我能够清理我的数据,设置一个仅限本地的 spark/hadoop 节点等等。

现在,我的问题更多地依赖于对矩阵的解释。我尝试了一些 Google 查询,但效果有限。

我正在创建一个多模式推荐器 - 我的一个数据集与 Mahout 示例非常相似。

示例输入: Customer ActionName Product 11064612 view 241505 11086047 purchase 110915 11121878 view CERT_DL 11149030 purchase CERT_FS 11104130 view 111401 mahout 的输出是 2 组矩阵。一个相似矩阵和一个共现矩阵。

这是我的相似度矩阵(我假设 mahout 使用我的“filter1”购买)

**791207-WP**   791520-WP:11.350536461453885 791520:9.547158147208393 76130142:7.938639976084232 711215:7.0641921646893024 751309:6.805891904514283

那么我该如何解释呢?如果有人购买了 791207-WP,他们可能会对 791520-WP 感兴趣吗? (所以我会使用左侧部分来对抗客户的购买并在右侧部分对产品进行排名?)。

791520-WP 的行如下所示:

791520-WP   76151220:18.954662238247693 791604-WP:13.951210170984268

所以,理论上,我会向购买 791520-WP 的人推荐 76151220,对吗?

问题的第 2 部分是解释交叉相似度矩阵。记住我的 filter2 是“views”。

我将如何解释:

**790907**  76120956:14.2824428207241 791500-LXQ2:13.864741460885853 190907:10.735807818360627

我将此矩阵视为“访问 76120956 网页的人最终购买了 790907”。因此,我应该向购买了 76120956 的客户推广 790907,甚至可能在我们的网站上添加这两种产品之间的链接。

还是“访问 790907 网页的人最终购买了 76120956”?

我的计划是不按原样使用这些。我仍将使用 RowSimilarity 和不同的来源对产品进行排名 - 但我缺少对 mahout 输出的基本解释。

如果您知道任何说明这一点的文档,那将是一笔巨大的财富。

谢谢。

【问题讨论】:

    标签: apache-spark mahout recommendation-engine mahout-recommender


    【解决方案1】:

    在这两种情况下,矩阵都通过附加到每个相似项目的 LLR 值告诉您 item-id 键与列出的项目相似。相似的意思是相似的用户购买了这些物品。在第二种情况下,表示相似的人查看了这些物品,并且这种查看似乎也导致了对同一物品的购买。

    同时出现仅适用于购买,交叉出现添加检查以确保视图也与购买相关。这允许您将两者都用于推荐。

    输出通常用于搜索引擎,您可以使用用户的购买历史和查看历史作为对矩阵的 2 字段查询,每个字段一个。

    有类似的方法可以找到基于项目的推荐。

    更好的是,在这里使用 Universal Recommender 之类的东西:actionml.com/docs/ur 和 PredictionIO 用于端到端系统。

    【讨论】:

      猜你喜欢
      • 2011-08-24
      • 2021-07-17
      • 2014-10-03
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多