1 简介
今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于协同过滤算法的高考推荐系统。
1. 协同过滤的算法思想
1.1. 基于内容的推荐中不足之处
基于内容的推荐方法用户易于理解,简单有效,但是它的缺点也十分明显。
- 它要求内容必须能够抽取出有意义的特征,且要求这些特征内容有良好的结构性
- 推荐精度较低,相同内容特征的物品差异性不大。因为以上这些原因,在推荐系统中基于内容的推荐往往会和其他方法混合使用。
1.2. 协同过滤算法思想推导
比如你想看一个电影,但是不知道具体看哪一部,你会怎么做?
- 问问周围兴趣相似的朋友,看看他们最近有什么好的电影推荐。(基于用户)
- 看看电影的相似程度,比如都喜欢看僵尸片,那就会找电影名带有僵尸、丧尸之类的电影。(基于物品)
比如到玩具店去给小男孩选玩具,应该怎么选?
- 我看到大部分小男孩都在玩变形金刚,给他买个变形金刚怎么样?(基于用户)
- 我知道这个小男孩有很多乐高模型,给他买一个最新版的乐高模型怎么样?(基于物品)
由此可以推导出协同过滤算法思想,如下所示:
- 协同过滤算法就是基于上面的思想,主要包含基于用户的协同过滤推荐算法以及基于物品的协同过滤推荐算法。
- 基于物品的协同过滤算法的核心思想:给用户推荐那些和他们之前喜欢的物品相似的物品,用户U 购买了A 物品,推荐给用户U 和A 相似的物品B /C /D
- 基于用户的协同过滤算法的核心思想:是先计算用户U 与其他的用户的相似度,然后取和U 最相似的几个用户,把他们购买过的物品推荐给用户U
1.3. 使用协同过滤算法的步骤
- 收集用户偏好。
- 找到相似的用户或者物品。
- 计算推荐。
- 评估
1.4. 使用协同过滤算法中需要注意的点
这里的基于物品的协同过滤和之前的基于内容的推荐算法不一样,基于内容的推荐算法仅仅考虑物品的内容特征,而协同过滤包括物品+用户
这里的基于用户的协同过滤和之前的基于人口统计学推荐算法不一样,基于人口统计学推荐算法考虑的是用户的基本属性(用户画像),基于用户的协同过滤考虑的是用户的对于物品的评价(喜好)
协同:用户与用户之间、用户和网站之间等进行不断的互动,慢慢过滤掉自己不感兴趣的物品,从而满足自己的需求。
2. 协同过滤的推荐方法
协同过滤和基于内容这2种方法对比:
基于内容(Content based,CB)主要利用的是用户评价过的物品的内容特征,而基于协同过滤(Collaboraitive Filtering,CF)方法还可以利用其他用户评分过的物品内容
CF可以解决CB的一些局限
- 物品内容不完全或者难以获得时,依然可以通过其他用户的反馈给出推荐
- CF基于用户之间对物品的评价质量,避免了CB仅依赖内容可能造成的对物品质量判断的干扰
- CF推荐不受内容限制,只要其他类似用户给出了对不同物品的兴趣,CF就可以给用户推荐出内容差异很大的物品(但有某种内在联系)
协同过滤的方法分类:
基于近邻的协同过滤:
- 基于用户(User-CF)
- 基于物品(Item-CF)
基于模型的协同过滤:
- 奇异值分解