3

有人可以帮我澄清一下。

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

现在,如果我在不进行协作过滤的情况下采用相同的方法怎么办?它会被认为是基于内容的过滤吗?因为我仍然会根据用户指定他们喜欢的每道菜的内容和属性来推荐菜品(例如“浪漫电影”)。

我感到困惑的原因是因为我已经看到了基于内容的过滤,它们应用了诸如朴素贝叶斯等算法,这种方法类似于对项目的简单搜索(在内容上)。

4

1 回答 1

5

不确定您是否可以按照您的建议进行操作,因为没有 CF,您将无法提高分数。

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

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

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

顺便说一句,任何想要帮助将纯基于内容的部分添加到 Universal Recommender 的人都可以在ActionML.com联系它的新维护者

于 2015-09-29T22:38:32.353 回答