基于内容与基于协作的过滤?

Posted

技术标签:

【中文标题】基于内容与基于协作的过滤?【英文标题】:Content based vs Collaborative based filtering? 【发布时间】:2019-10-05 20:36:21 【问题描述】:

基于内容的过滤 (CBF): 它基于产品/项目属性工作。假设 user_1 过去曾为某些商品下过订单(或点赞)。 现在我们需要识别这些订购商品的相关特征并将它们与其他商品进行比较以推荐任何新商品。 基于特征集寻找相似项目的著名模型之一是随机森林或决策树

协同过滤(CLF):它使用用户行为。假设 user_1 过去曾为某些商品下过订单(或点赞)。现在我们找到类似的用户。用户 过去订购/喜欢相同商品的人可以被视为相似用户。现在我们可以根据分数推荐一些类似用户订购的商品。 寻找相似用户的著名模型之一是 KNN

问题:假设我必须找到相似的用户,而不是基于他们在 CBF 中的行为(如我提到的),而是基于一些用户个人资料功能,例如 国籍/身高/体重/语言/工资等会被认为是CBF还是CLF?

我的第二个相关疑问是 CBF 或 CLF 都不适用于系统中的新用户,因为他没有在系统中进行任何活动。那是对的吗 ?相同的 系统是新的还是启动的情况,因为我们这里没有太多数据?

【问题讨论】:

【参考方案1】:

您可以将基于内容的方法视为回归问题,其中您将 x_i 作为数据点,将相应的 y_i 作为用户给出的评分。 您已经正确地陈述了 CLF,它使用用户-商品矩阵创建商品-商品或用户-用户矩阵,然后根据这些矩阵推荐产品/商品。

但在基于内容的情况下,您需要为每个用户构建一个向量。例如假设我们想为 netflix 用户创建一个向量。这个向量可以包括这个用户看过多少电影、他/她喜欢什么类型的电影、他是不是一个关键用户等特征。你提到的一些特征比如他的平均工资和其他的,这个向量将有一个y_i 将评分。这类推荐系统称为基于内容的推荐系统,这回答了您的第一个问题。

谈到您的第二个问题,其中当一个新的用户/项目出现在图片中时,那么如何向该用户推荐项目。这个问题被称为冷启动问题。在这种情况下,您可以使用该用户的地理位置来挑选他所在国家/地区的人们观看的热门项目并据此进行推荐。一旦他开始对这些***项目进行评级,那么您的 CLF 和基于内容的都可以正常工作。

【讨论】:

以上是关于基于内容与基于协作的过滤?的主要内容,如果未能解决你的问题,请参考以下文章

Python中使用pandas数据框和嵌套for循环的基于项目的协作过滤器的瓶颈

推荐算法简介:基于用户的协同过滤基于物品的协同过滤基于内容的推荐

基于协同过滤的推荐系统

向基于类的视图添加额外内容并对其进行过滤

推荐技术基于协同过滤的网络信息推荐技术matlab仿真

提供推荐——协作型过滤