【问题标题】:Recommender System: Is it content-based filtering?推荐系统:是基于内容的过滤吗?
【发布时间】:2015-12-26 23:56:39
【问题描述】:

谁能帮我澄清一下。

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    您确实在使用混合动力车,与Universal Recommender 大致相同。要进行纯粹基于内容的推荐,您必须实现两种方法

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

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

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

    【讨论】:

    • 谢谢帕特。我还有一个问题,对于您建议的第一种方法(个性化推荐),如果用户已经指定了他们喜欢的标签,这可以用任意分数来完成吗?
    • 通常,基于内容的方法中的分数是相似性分数,例如多维术语向量之间角度的余弦或 mahout 作业的对数似然比分数。搜索引擎在通过术语分析器运行它们之后使用 TF-IDF 加权术语频率(对它们进行词干和 n-gram)。用户仅通过表现出兴趣来评分,然后使用内容的相似性。如果您有用户偏好/评分,那么协同过滤可能会更好。
    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 2011-09-04
    • 2019-01-08
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    相关资源
    最近更新 更多