如果我使用 SIMILARITY_LOGLIKELIHOOD (LLR),项目评级真的会被忽略吗?
If I am using SIMILARITY_LOGLIKELIHOOD (LLR) are item ratings really ignored?
我使用的电影镜头数据文件(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 --输入u.data --输出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) 总的来说,我正在尝试确定建议 运行king,所以我正在使用 LLR。此外,我是否应该忽略推荐分数,只关注推荐项目的顺序(例如:第一个项目 运行ked 高于第二个)?
提前致谢。
LLR 不使用优势。从理论上讲,如果用户实际与某个项目进行了交互,这就是所需的全部指示。 LLR 将根据称为 Log Likelihood Ratio 的概率计算将该交互与其他用户的交互和分数相关联。它确实创造了优势,但只使用了交互次数。
答案
- 这可能是一个错误,也可能是因为您在一种情况下使用布尔值推荐器而在另一种情况下使用非布尔值。我可能是推荐人试图通过考虑这些值来提供 ratings。但是 none 如果你想优化 ranking
这真的很重要
- 除非您试图预测收视率,否则您真的永远不需要查看推荐权重,而现在这种情况很少发生。相信推荐的排名。
顺便说一句,Mahout 现在拥有一个完全新一代的推荐器,该推荐器基于使用搜索引擎提供推荐和 Mahout 计算模型。它比旧的 Hadoop 版本有很多好处,包括:
- 多模式:它可以在许多不同的项目集上摄取许多不同的用户操作。这允许您使用大量用户的点击流来推荐。
- 实时结果:它在 Solr 或 Elastic 搜索中有一个非常快速的可扩展服务器。
- 由于实时性,它可以向新用户或历史最近的用户推荐。较旧的 Hadoop Mahout 推荐器仅向训练数据中的用户和项目推荐——它们无法对训练中未使用的历史做出反应。新的推荐系统可以使用实时收集的数据,甚至是新用户的数据。
Mahout 1.0-snapshot 或更高版本中的新多模式推荐器在此处描述:
- Mahout site
- 一本免费的电子书,讲述了大意:Practical Machine Learning
- 一张幻灯片,讨论混合操作或其他指标:创建 Unified Multimodal Recommender
- 两个博客post:What's New in Recommenders: part #1 and What's New in Recommenders: part #2
- A post 描述对数似然比:Surprise and Coincidence LLR 用于减少数据中的噪声,同时保持计算复杂度为 O(n)。
我使用的电影镜头数据文件(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 --输入u.data --输出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) 总的来说,我正在尝试确定建议 运行king,所以我正在使用 LLR。此外,我是否应该忽略推荐分数,只关注推荐项目的顺序(例如:第一个项目 运行ked 高于第二个)?
提前致谢。
LLR 不使用优势。从理论上讲,如果用户实际与某个项目进行了交互,这就是所需的全部指示。 LLR 将根据称为 Log Likelihood Ratio 的概率计算将该交互与其他用户的交互和分数相关联。它确实创造了优势,但只使用了交互次数。
答案
- 这可能是一个错误,也可能是因为您在一种情况下使用布尔值推荐器而在另一种情况下使用非布尔值。我可能是推荐人试图通过考虑这些值来提供 ratings。但是 none 如果你想优化 ranking 这真的很重要
- 除非您试图预测收视率,否则您真的永远不需要查看推荐权重,而现在这种情况很少发生。相信推荐的排名。
顺便说一句,Mahout 现在拥有一个完全新一代的推荐器,该推荐器基于使用搜索引擎提供推荐和 Mahout 计算模型。它比旧的 Hadoop 版本有很多好处,包括:
- 多模式:它可以在许多不同的项目集上摄取许多不同的用户操作。这允许您使用大量用户的点击流来推荐。
- 实时结果:它在 Solr 或 Elastic 搜索中有一个非常快速的可扩展服务器。
- 由于实时性,它可以向新用户或历史最近的用户推荐。较旧的 Hadoop Mahout 推荐器仅向训练数据中的用户和项目推荐——它们无法对训练中未使用的历史做出反应。新的推荐系统可以使用实时收集的数据,甚至是新用户的数据。
Mahout 1.0-snapshot 或更高版本中的新多模式推荐器在此处描述:
- Mahout site
- 一本免费的电子书,讲述了大意:Practical Machine Learning
- 一张幻灯片,讨论混合操作或其他指标:创建 Unified Multimodal Recommender
- 两个博客post:What's New in Recommenders: part #1 and What's New in Recommenders: part #2
- A post 描述对数似然比:Surprise and Coincidence LLR 用于减少数据中的噪声,同时保持计算复杂度为 O(n)。