【问题标题】:Apache Mahout: combining different information as a ratingApache Mahout:将不同的信息组合为评级
【发布时间】:2014-07-28 14:02:06
【问题描述】:

我是 Mahout 的新手,正在尝试编写基于用户的推荐系统。我读了Mahout in Action一书,但有一个问题没有回答我。

将关于用户-项目关系的两条或多条信息组合成单个评分值是否有意义?

其实我已经掌握了信息

  1. 用户是否下载了项目(布尔值)。我可以选择一个布尔推荐器。
  2. 我也有相同元素的用户评分(上/下),所以我可以使用它们。

问题是,评级非常稀疏,在历史数据中不可用。

这就是为什么我想做这样的事情:

评分是 +1.0 或 -1.0(拇指向上或向下),如果没有评分,我使用 0.6(或类似)作为用户下载项目的评分。否则不添加任何关系(=潜在推荐)。

这有什么好处吗?我什至可能还有其他事情要插话,比如有人在他的收藏夹中添加了一个项目。

我会对其进行测试,但评估者使用评级值来确定推荐的接近程度,这使得关于什么是好的评级值的测试当然是无用的。

【问题讨论】:

    标签: java mahout recommendation-engine collaborative-filtering


    【解决方案1】:
    1. 一种可能的(简单的解决方案)是获取该人已评分的对象的评分,然后将其除以所有用户的平均项目评分,或者如果数据更加稀疏,则将项目评分除以项目类别的平均评分。在没有评分的情况下,您只需添加项目/项目类型的平均分数。

    2. 然后,您可以将此分数添加到您的布尔值中,如果此人已对某个项目进行评分但未下载该项目,您可能会添加一个条件,即您将布尔值设为 0.5。也许他从其他来源访问了该项目。

    3. Check 3.1.1 of this paper 他们描述了如何在应用 SVD 之前创建归一化的用户项矩阵。会有所帮助。

    4. 我不确定这种方法的工作原理,可能会对很少有人评价的项目产生一些偏见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2022-01-01
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多