Hadoop Mahout recommender不会为用户返回任何结果

Hadoop Mahout recommender不会为用户返回任何结果,hadoop,mahout-recommender,Hadoop,Mahout Recommender,我很好奇为什么在下面的示例中,Mahout推荐人没有返回对用户1的推荐 我的输入文件如下。我添加了空行以增强可读性。该文件将需要在通过MaOUT运行之前删除空白行。 此文件中的列包括: 用户ID |项目编号|项目评级 11010 1 102 0 1 103 5 1 104 0 2 101 4 2 102 5 2 103 4 2 104 0 3 101 0 3 102 5 3 103 5 3 104 3您的数据中可能存在多个错误,前两个错误将导致未定义的行为: ID必须是从0开始的连续非零整数

我很好奇为什么在下面的示例中,Mahout推荐人没有返回对用户1的推荐

我的输入文件如下。我添加了空行以增强可读性。该文件将需要在通过MaOUT运行之前删除空白行。 此文件中的列包括:

用户ID |项目编号|项目评级

11010
1 102 0
1 103 5
1 104 0
2 101 4
2 102 5
2 103 4
2 104 0
3 101 0
3 102 5
3 103 5

3 104 3
您的数据中可能存在多个错误,前两个错误将导致未定义的行为:

  • ID必须是从0开始的连续非零整数,因此您需要以某种方式将ID映射到上面。因此,您的用户ID=1将是Mahout用户ID=0。同样对于项目,您的项目ID=101将是Mahout用户ID=0
  • 如果您的意思是用户没有表示偏好,那么您应该从输入中完全忽略0值,这使得偏好在某种意义上是“未定义的”。要执行此操作,请完全省略这些行
  • 始终使用相似性-似然性,人们普遍认为它比其他方法做得好得多,除非你试图预测评级,在这种情况下使用余弦
  • 如果使用LLR相似性,则应忽略这些值,因为它们将被忽略
除非您试图预测用户对某个项目的评分,否则偏好值的用途很少。偏好权重在确定推荐排名时无效,这是典型的优化问题。如果你想以正确的顺序推荐正确的东西,抛开这些值并使用LLR

人们有时对价值观做的另一件事是显示一些偏好权重,因此1=产品页面视图,5=产品购买这行不通我在一个大型电子商务数据集上尝试了这个方法,发现在添加产品视图时,推荐的效果更差,尽管数据量是原来的100倍。它们是具有不同用户意图的根本不同的用户操作,因此不能以这种方式混合


如果您确实希望混合不同的操作,请使用基于Mahout、Spark和Solr描述的新多模式推荐器,它允许交叉出现类型指标计算,因此您可以使用用户位置、喜欢和不喜欢、查看和购买。实际上,可以使用整个用户clickstream。但只有当交叉共现将一个动作与你想要推荐的“最佳”动作关联起来时

我有一个后续问题,但看起来我需要创建一个新帖子:)