推荐系统:它是基于内容的过滤吗?

时间:2015-09-29 13:17:29

标签: machine-learning recommendation-engine collaborative-filtering predictionio content-based-retrieval

有人可以帮我澄清一下。

我目前正在使用协同过滤(ALS),它返回一个推荐列表,其中包含与推荐项目相对应的分数。除此之外,如果项目包含与用户喜欢的内容相对应的标签,例如“浪漫电影”,我会提高分数(+0.1)。对我来说,这被认为是一种混合协作方法,因为它通过基于内容的过滤提升了协作过滤结果(如果我错了,请纠正我)。

现在,如果我在不进行协作过滤的情况下采用相同的方法,该怎么办?它会被视为基于内容的过滤吗?因为我仍然会根据每个菜肴的内容和属性推荐菜肴,这些菜肴的内容和属性对应于用户喜欢的内容(例如“浪漫电影”)。

我之所以感到困惑的原因是因为我看过基于内容的过滤,他们应用了Naive Bayes等算法,这种方法类似于对项目的简单搜索(在内容上)。

1 个答案:

答案 0 :(得分:5)

不确定你可以做你的建议,因为没有CF就没有得分。

你确实在使用混合动力,与Universal Recommender非常相似。要做纯粹基于内容的建议,您必须实现两种方法

  • 个性化推荐:在这里,您必须查看用户首选项目的内容,并查找具有相似内容的项目。这可以通过使用诸如Mahout spark-rowsimilarity作业之类的东西来创建项目模型:list-of-similar-items然后使用搜索引擎索引结果并使用用户的首选项ID作为查询。这被添加到Universal Recommender。
  • “喜欢这个的人也喜欢这些”:例如,这些项目与正在查看的项目类似,并且对所有用户都相同。它们不是个性化的,因此对于没有历史记录的匿名用户也很有用。这可以使用与上面相同的索引ID来完成,但使用与被视为查询的项类似的项。有人可能会认为只使用类似的项目本身,但通过将它们用作查询,您可以将分类提升放在搜索引擎查询中并提升返回的项目。这已经在Universal Recommender中有效,但类似的项目尚未出现在模型中。

那说混合内容与协同过滤几乎肯定会产生更好的结果,因为CF在数据可用时效果更好。唯一一次依赖基于内容的推荐是当您的目录是一次性项目,从来没有获得足够的CF交互或您有丰富的内容,其寿命很短,如突发新闻。

BTW任何想要帮助将基于内容的纯部分添加到Universal Recommender的人都可以联系ActionML.com

的新维护者