一个简单的协同过滤推荐算法
1、推荐系统简介
个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。
推荐系统主要处理的有两类内容:一个是User,一个是Item。系统的目标也很明确,就是向User推荐Item。
应用了推荐系统的例子有很多,比如:知名的电商:Amazon,全球有名的在线影片租赁商:Netflix,国内的新闻应用:今日头条。
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)
All About That Bass | Shake It Off | Black Widow | Habits | Bang Bang | Don't Tell 'Em | Animals | |
Alice | 4 | 5 | 1 | ||||
Bob | 5 | 5 | 4 | 4 | 2 | ||
John | 2 | 1 | 5 | 4 | |||
David | 3 | 3 |
![](http://images0.cnblogs.com/blog/581999/201410/311907358471557.jpg)
![](http://images0.cnblogs.com/blog/581999/201410/311930427538781.png)
将第二步得到的一些Alice从未听过的音乐的预测分值进行排序,选择前10个分值最高的音乐推荐给Alice,大功告成!
由于是初次结束推荐算法,所以文中难免有错误,欢迎大家指正~我也会再抽时间更新一些关于推荐算法的文章~