一个简单的协同过滤推荐算法

  • Post author:
  • Post category:其他


1、推荐系统简介


个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。

2、推荐系统分类


2.1

基于内容的推荐(Content-based Recommendation)




基于内容的推荐系统的核心思想是挖掘被推荐对象的信息。

基于内容的推荐算法的前提假设是:如果用户喜欢物品a,那么用户也应该会喜欢与a类似的物品。





由于笔者的目的是侧重于介绍协同过滤推荐算法,所以对基于内容的推荐算法举个简单的例子一带而过:







假设一首歌有:名称、歌手、风格、作曲人这4个属性。如果用户Alice对Michael 的歌曲Beat It评分很高,那么系统会分析Beat It这首歌的属性,随后系统就可能会向Alice推荐Michael的歌曲Dangerous,因为Dangerous与Beat It有很多共同之处:歌手都是Michael,风格都是摇滚。



总的来讲,基于内容的推荐,利用的是被推荐对象自身的属性信息,利用这些信息来聚类,例如将众多的歌曲按风格聚类,得到蓝调风格的歌曲集合、摇滚风格的集合、田园风格的集合等等,当用户表示喜欢某一首歌曲时,系统会分析这个歌曲属于哪个风格,如果这个歌曲属于摇滚风格,那么系统就会从摇滚风格的集合中挑选出一些歌曲,将其推荐给用户。当然,这只是一种思路,实际的基于内容的推荐比我描述的要更复杂更详细,有兴趣的朋友可以深入研究一下,我以后有空也会把基于内容的推荐算法做一个详细介绍。


2.2协同过滤推荐 (Collaborative Filtering Recommendation)



协同过滤算法是推荐系统中应用最为广泛和成功的算法。


协同过滤推荐算法的前提假设是:如果用户a与用户b均对一系列相同的物品表示喜欢,那么a极有可能也喜欢b用户喜欢的其他物品。


在协同过滤推荐的过程中:

用户首先

为每个项目进行评价打分

,通过计算不同用户评分之间

的相似程度,可以找到

最近邻居,根据最近邻居的评价,产生推荐——这是协同过滤算法的主要思想。









举例来讲,假设在音乐推荐系统中,一共有

4

个用户,7个音乐,每个用户对每个音乐的


评价矩阵


如下:


</



版权声明:本文为EXLsunshine原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。