内容简介:协同过滤科普(4)
协同过滤的分类
当得到指定用户或者内容的邻居后,我们就可以利用这些数据信息为用户进行详细的推荐了。前面提到过,协同过滤算法可以分成三类:基于用户的协同过滤,基于内容项的协同过滤和基于模型的协同过滤。
1.基于用户的协同过滤
基于用户的协同过滤(User-based CF)是最早被提出来的算法,是根据用户对不同内容的喜好程度找到他的邻居用户,然后将这些邻居喜欢的内容 排序 推荐给指定用户。具体流程是首先利用相似矩阵的行向量,即代表每个用户对所有内容的喜好程度,来计算得出每个用户间的相似度,然后根据相似性结果找出K个最近的邻居用户,再根据邻居的相似性程度对他们进行加权,利用权重和他们对内容的喜好程度,预测指定用户可能也会喜好的内容,最终得出一个经过排序的内容列表作为该指定用户的推荐。Fig 5给出了一个实例,将用户A作为指定用户,根据他的用户行为,系统可以得出他对不同内容项的喜好程度,利用这些信息找到他的邻居,示例中用户C即为用户A的邻居用户,所以将用户C喜好的内容D推荐给用户A。
Fig 5.png
基于用户的协同过滤适用于一些新闻,微博或其他媒体的推荐系统,因为对于这些推荐系统来说,内容项的数量是远远多于用户的数量,而且内容更新很快,所以与计算内容项间的相似性相比,我们计算用户间的相似性可以大大地减小计算量。
2.基于内容项的协同过滤
基于内容项的协同过滤(Item-based CF),它与基于用户的协同过滤区别主要在于,它是通过计算内容项之间的相似性,而非计算用户间的相似性来得到指定用户的推荐列表。具体步骤为首先利用相似矩阵的列向量,即代表所有用户对内容项的喜好程度,来计算得出内容项间的相似度,然后利用指定用户的历史喜好信息,得出一个排序的相似内容项列表作为推荐预测。Fig 6也给出了一个示例,根据所有用户的喜好记录,喜欢内容B的用户大部分也喜欢内容D,也就是说内容B的邻居是内容D,而指定用户A喜欢内容B,所以根据基于内容项的协同过滤,我们可以预测用户A也应该会喜欢内容D。
Fig 6.png
基于内容项的协同过滤适用于电子商务网站,如淘宝,京东,当当网等。因为这些网站的用户数量是海量的,而商品内容的数据相对比较稳定,因此计算内容项间的相似性可以减小计算量,也不需要频繁地进行更新。
3.基于模型的协同过滤
基于模型的协同过滤(Model-based CF)是目前较为流行的协同过滤类型,它的思想和前面两个类型有较大的区别。基于用户的协同过滤和基于内容项的协同过滤都属于基于记忆(Memory based)的协同过滤算法,它们难以处理大量的数据集,所以不适用于一些对时效性要求高的应用。而基于模型的协同过滤可以胜任该任务,它可以利用用户和喜好内容间的历史数据,预测出用户和未知内容之间的喜好关系,最后找出喜好程度最高的内容推荐给指定用户。基于模型的协同过滤主要利用了机器学习的方法,对样本的用户喜好数据进行建模,并将训练好的模型来预测未知的用户喜好信息,最终得出推荐。它的复杂度一般较高,因为对模型进行训练和评估需要花费大量的时间和精力。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Collective Intelligence
Toby Segaran / O'Reilly Media / 2007-8-26 / USD 39.99
Want to tap the power behind search rankings, product recommendations, social bookmarking, and online matchmaking? This fascinating book demonstrates how you can build Web 2.0 applications to mine the......一起来看看 《Programming Collective Intelligence》 这本书的介绍吧!