我正在尝试使用基于项目的协同过滤来进行产品推荐。根据买家是否购买了物品,矩阵全部为1和0,我使用余弦相似性来识别类似的产品。
在我正在测试的数据中,有超过2K的产品,许多产品可用于不同的时间。有些已经可以使用,有些在过去可用,但已不再可用,有些只是最近才可用。
我注意到长时间可用的产品往往与其他长时间可用的产品相匹配(流行的最受欢迎的产品)。类似地,不太受欢迎且长时间不可用的项目倾向于获得也不太受欢迎的良好匹配。在许多情况下,流行的产品有时候不受欢迎的产品没有。
http://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf本文关于亚马逊的伪代码似乎只是考虑了那些在寻找类似于X的物品时购买物品X的人(虽然这可能是我的误解)。这在一定程度上纠正了这个问题,但可能甚至过度纠正了这个问题,因为它忽略了许多可能购买了商品Y并且没有购买商品X的人。
是否有人在这些条件下尝试过基于项目的协同过滤,您对如何处理具有不同可用性的产品有任何建议吗?
答案 0 :(得分:0)
我记得在一些类似的数据集上使用mahout库并使用推荐器。我最终将特定领域知识注入推荐引擎,如“动作书中的Mahout”所描述的那样。 (章节'注入特定于域的信息')。我和IDRescorer'做了类似的事情。 class(参考上面提到的书来理解上下文),它根据你提供的逻辑删除了一些建议,也可以根据其他逻辑提高推荐率。在我的情况下,我刚刚决定删除不再可用的项目的推荐,并提出类似于特定用户感兴趣的项目的推荐(在用户的配置文件中指定)。我相信你可以为你的任务使用相同的想法。