我正在为1000万用户构建基于项目的推荐系统 率类别超过20种可能的类别(新闻类别,如政治, 运动等...) 我想为他们每个人推荐至少另一个 他们不知道的类别(没有评级)。
我运行了GenericUserBasedRecommender并要求提供建议 每个用户,但它看起来非常长:每分钟可能有1000个用户。 我的问题是:
1-我可以在hadoop上运行相同的GenericUserBasedRecommender吗? 真的更快?我看到并运行了一个带有命令行的ItemBasedRecommender 集群,但我宁愿运行基于用户的集群。
1,5 - 我看到很多用户没有一个建议。确定用户是否获得推荐的算法标准是什么?我认为可能是那些没有得到推荐的用户只能给出一个评分,但我不明白为什么。
2-还有另一种更聪明的方法可以解决我的问题吗?也许是一些聚类 解决方案而不是推荐?我不确切地知道如何。
3-最后,当我说那些没有命令行的算法时,我是对的 是不是与hadoop一起使用?
感谢您的回答。
答案 0 :(得分:0)
有时您不会获得某些项目或用户的推荐,因为它们重叠的项目很少。它也可能是用户数据可能“足够”的情况,但他的行为/使用模式非常独特和/或与数据中的流行趋势不一致。
您可以尝试LogLikelihood或Tanimoto基于ItemSimilarity。
您可以研究的另一件事是基于矩阵分解的模型。您可以使用ALSWR Factorizer生成建议。该方法将原始用户项矩阵分解为用户特征,项目特征和对角矩阵, - >然后降低维度 - >然后重新构建最接近具有相同等级的原始矩阵的矩阵。您可能会丢失此方法的某些数据,但用户项矩阵中的缺失值会被估算,您可以获得估计偏好/推荐值。
如果您拥有这些功能而不仅仅是隐式评级,那么您可以尝试使用聚类技术,也许可以从分层聚类开始。
我没有得到你的最后一个问题。