是基于项目还是基于内容的协作过滤?

时间:2015-06-15 00:07:08

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

我目前正在开发一个现有系统,该系统推荐的项目类似于用户喜欢的旧项目。

它使用交替最小二乘协同过滤来查找用户和项目的特征向量。然后,它使用项目的特征向量,并使用余弦相似性度量来查找与之类似的项目。

但是,我想澄清这是基于项目的CF还是基于内容的过滤?我倾向于两者都是。由于它使用相似性度量来比较项目,但项目是否​​在特征向量的内容上?

谢谢,

2 个答案:

答案 0 :(得分:1)

如果我理解你从类似用户的项目数据中提取项目的特征向量,那么它就是纯粹的item-based CF

为了进行基于内容的过滤,应该使用项目本身的功能:例如,如果项目是电影,基于内容的过滤应该利用诸如电影的长度或其导演等特征,但不是基于其他用户偏好的功能。

答案 1 :(得分:0)

我想您的倾向是正确的,您正在将内容过滤和协作过滤结合起来。如果您使用的是基于内容的内容,则项目和用户的向量可以称为数据的x_i(如数据点),而输入数组中表示用户i对项目j给出了多少评级的单元格A_ij可以称为义。 您正在使用余弦相似度来查找项目和用户-用户之间的相似度。 我想在您的情况下,您应该进行协作。

尝试建立项目矩阵,然后计算余弦相似度。