推荐系统方法之协同过滤
来源:互联网 发布:软件测试知识点总结 编辑:程序博客网 时间:2024/05/02 04:27
现如今,推荐系统的应用无处不在,亚马逊、当当、淘宝....都使用了推荐系统。
推荐系统算法主要有以下三种:
1.基于人口统计学的推荐
2.基于内容的推荐
3.协同过滤
在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法。
什么是协同过滤
协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。
换句话说,就是借鉴和你相关人群的观点来进行推荐,很好理解。
协同过滤的实现
在协同过滤中,有两种主流方法:基于用户的协同过滤、基于物品的协同过滤
基于用户的协同过滤算法主要包括两个步骤:
(1)找到和目标用户兴趣相似的用户集合;
(2)找到这个集合中的用户喜欢,且目标用户没有听说过的物品,并将此物品推荐该目标用户。
对于步骤(1),计算两个用户之间兴趣的相似度,给定用户A和用户B,他们的相似度可通过余弦相似度来计算:
其中: N(A)为用户A喜欢的物品的集合,N(B)为用户B喜欢的物品的集合。
该公式分子的含义为:用户A和用户B共同喜欢的物品的个数
该公式分母的含义为:用户A喜欢的物品的个数乘以用户B喜欢的物品的个数,再开根号
比如,A喜欢{a,b,d},B喜欢{a,c},那么用户A和用户B的相似度为:
下图给出了一个例子,对于用户 A,根据用户的历史偏好,找到和用户A兴趣相似的用户-用户 C,然后将用户 C 喜欢的物品 D 推荐给用户 A。
基于物品的协同过滤算法主要包括两个步骤:
(1)计算物品之间的相似度;
(2)根据物品的相似度和用户的历史行为给用户生成推荐列表。
对于步骤(1),计算两个物品之间的相似度,给定物品i和物品j,它们的相似度可通过余弦相似度来计算:
其中: N(i)为喜欢物品i的用户的集合,N(j)为喜欢物品j的用户的集合;
该公式分子的含义为:既喜欢物品i又喜欢物品j的用户的个数;
该公式分母的含义为:喜欢物品i的用户的个数乘以喜欢物品j的用户的个数,再开根号。
下图给出了一个例子,对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出用户 C 可能也喜欢物品 C。
注意:两个物品产生相似度是因为它们共同被很多用户喜欢。
- 推荐系统方法之协同过滤
- 推荐系统之协同过滤
- 推荐系统之协同过滤
- 推荐系统之协同过滤概述(转载)
- 推荐系统之协同过滤概述
- 推荐系统之协同过滤概述
- 推荐系统之协同过滤概述
- 推荐系统之协同过滤概述
- 推荐系统之协同过滤概述
- 推荐系统之协同过滤实现
- 推荐系统之协同过滤概述
- 推荐系统算法之协同过滤算法
- 推荐系统之协同过滤(CF)
- 推荐系统-协同过滤
- 推荐系统协同过滤
- 《推荐系统》--协同过滤推荐
- [推荐系统]协同过滤介绍
- 推荐系统 --- 协同过滤算法
- shell学习:显示、读取或拼接文件内容:cat命令用法
- 100个常用Linux命令
- FragmentPagerAdapter与FragmentStatePagerAdapter差异
- 数据结构与程序架构(四)
- Android标题栏的去除和全屏
- 推荐系统方法之协同过滤
- 《大型网站技术架构》读书笔记 - 网站的技术升级路线
- 体验类中的指针
- 23种设计模式之python实现--Composite模式
- VMware tools的用途及安装
- 微信营销该如何做
- AJAX - 向服务器发送请求
- Eclipse背景颜色修改
- mac上搭建hadoop2.3.0云平台