如果我使用SIMILARITY_LOGLIKELIHOOD(LLR)项目评级真的被忽略了吗?

时间:2015-02-07 08:35:44

标签: hadoop mahout-recommender

我使用的电影镜头数据文件(ml-100k.zip)u.data不变,所以它有列:userID,MovieID和用户评级。

我使用LLR:

hadoop jar C:\ hdp \ mahout-0.9.0.2.1.3.0-1981 \ core \ target \ mahout-core-0.9.0.2.1.3.0-1981-job.jar org.apache.mahout.cf .taste.hadoop.item.RecommenderJob -s SIMILARITY_LOGLIKELIHOOD --input u.data --output udata_output

当我查看udata_output文件时,我会看到推荐的电影ID,然后是推荐分数,如:

1226:5.0 和 896:4.798878

推荐分数似乎在5.0到4.x之间变化

但是,当我从u.data文件中删除用户评级列并重新运行上面的相同命令行时,我收到的结果如下:

615:1.0

其中所有推荐分数均为1.0。

2个问题:

1)如果LLR忽略用户评级,我改变的唯一输入是是否提供用户评级,为什么推荐分数会改变?

2)总的来说,我正在尝试确定推荐排名,所以我正在使用LLR。另外我应该忽略推荐分数,只关注推荐项目的顺序(例如:第一项排名高于第二项)?

提前致谢。

1 个答案:

答案 0 :(得分:1)

LLR不使用这些优势。理论上说,如果用户实际上与某个项目进行了交互,那就是所需的所有指示。 LLR将根据称为Log Likelihood Ratio的概率计算将该交互与其他用户相关联并得分。它确实创造了优势,但只使用了相互作用的数量。

<强>答案

  1. 这可能是一个错误或者可能是因为你在一个案例中使用布尔推荐器而在另一个案例中使用非布尔值。我可能是推荐人试图通过考虑价值来提供评级。但是,如果您尝试优化排名
  2. ,这一切都不重要
  3. 你真的不需要看推荐权重,除非你试图预测收视率,这些日子很少发生。相信recs的排名。
  4. BTW Mahout现在拥有一个基于使用搜索引擎提供推荐的全新一代推荐器,以及Mahout来计算模型。它比旧的Hadoop版本有许多好处,包括:

    1. Multimodal:它可以在许多不同的项目集上摄取许多不同的用户操作。这允许您使用用户的大部分点击流来推荐。
    2. 实时结果:它在Solr或Elastic搜索中具有非常快速的可扩展服务器。
    3. 由于实时性,它可以向具有最近历史记录的新用户或用户推荐。较旧的Hadoop Mahout推荐人仅向用户和培训数据中的项目推荐 - 他们无法对未在培训中使用的历史做出反应。新推荐人可以使用实时收集的数据,甚至是新用户。
    4. 这里描述了Mahout 1.0-snapshot或更高版本中的新Multimodal Recommender: