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

Recommender System: Is it content-based filtering?

谁能帮我解释一下。

我目前正在使用协同过滤 (ALS),它 returns 一个推荐列表,其分数与推荐项目相对应。除此之外,如果项目包含与用户指定的他们喜欢的标签相对应的标签,例如 "romantic movies",我将提高分数 (+0.1)。对我来说,这被认为是一种混合协作方法,因为它通过基于内容的过滤提高了协作过滤结果(如果我错了请纠正我)。

现在,如果我在不进行协同过滤的情况下采用相同的方法会怎么样?它会被视为基于内容的过滤吗?因为我还是会根据每个菜品的内容和属性来推荐菜品,这些菜品对应用户指定的喜欢的菜品(比如"romantic movies")。

我之所以感到困惑,是因为我见过基于内容的过滤,它们应用了朴素贝叶斯等算法,这种方法类似于对项目的简单搜索(在内容上).

不确定你是否可以按照你的建议去做,因为没有 CF 就没有分数可以提高。

您确实在使用混合体,与 Universal Recommender 非常相似。要进行纯粹基于内容的推荐,您必须实施两种方法

  • 个性化推荐:在这里你要查看用户喜欢的项目内容,并找到具有相似内容的项目。这可以通过使用诸如 Mahout spark-rowsimilarity 作业之类的东西来创建项目模型来完成:相似项目列表然后使用搜索引擎对结果进行索引并使用用户的首选项目 ID 作为查询。正在将其添加到通用推荐系统中。
  • "People who liked this also liked these":这些是与正在查看的项目相似的项目,例如,对所有用户都是相同的。它们不是个性化的,因此即使对于没有历史记录的匿名用户也很有用。这可以使用与上面相同的索引 id 来完成,但使用与被视为查询的项目相似的项目。人们可能会认为只使用相似的项目本身,但通过将它们用作查询,您可以将分类提升放在搜索引擎查询中并返回提升的项目。这已经在 Universal Recommender 中起作用,但类似的项目还没有出现在模型中。

也就是说,将内容与协作过滤混合几乎肯定会产生更好的结果,因为 CF 在数据可用时效果更好。唯一依赖基于内容的推荐的情况是当您的目录是一次性项目时,这些项目永远无法获得足够的 CF 交互,或者您拥有丰富的内容,而这些内容的生命周期很短,例如突发新闻。

顺便说一句,任何想要帮助将基于纯内容的部分添加到通用推荐器的人都可以通过 ActionML.com

联系它的新维护者