文档章节

推荐算法:协同过滤算法的介绍

G
 Galanodel
发布于 2017/05/05 09:35
字数 1012
阅读 69
收藏 3

一、什么是推荐算法

互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展而

带来的网上信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息

的使用效率反而降低了,这就是所谓的信息超载(informationoverload)问题。解决信息超载问题的一个办法

是推荐系统。

推荐系统,就是通过分析用户的行为,兴趣偏好,进行个性化计算,由系统发现用户的兴趣点,最终将用户感兴

趣的信息、产品等推荐给用户的个性化信息推荐系统。

推荐系统不仅能为用户提供个性化的服务,还能和用户之间建立密切关系,让用户对推荐产生依赖。

推荐系统现已广泛应用于很多领域,其中最典型并具有良好的发展和应用前景的领域就是电子商务领域。

 

二、什么是协同过滤

协同过滤,CF (Collaborative Filtering)是推荐系统中的一种推荐算法

主要有两个基本的算法:基于用户的协同过滤( user-based CF) 和 基于项目的协同过滤( item-based CF )

 

1)基于用户的协同过滤推荐机制

机制原理:基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。

它的基本假设是:喜欢类似物品的用户可能有相同或者相似的偏好。

上图示意出基于用户的协同过滤推荐机制的基本原理:
假设用户A喜欢物品A,物品 C,用户B 喜欢物品B,用户C喜欢物品A,物品C和物品 D;从这些用户的历史喜好信息中,我们可以发现用户A和用户C的偏好是比较类似的,同时用户C还喜欢物品D,那么我们可以推断用户A可能也喜欢物品D,因此可以将物品D推荐给用户A。

 

2)基于项目的协同过滤推荐机制

机制原理:根据所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。

上图示意出基于项目的协同过滤推荐机制的基本原理:
对于物品A,根据所有用户的历史偏好,喜欢物品A 的用户都喜欢物品C,得出物品A 和物品C 比较相似,而用户C 喜欢物品A,那么可以推断出用户C 可能也喜欢物品C。

基于项目的协同过滤推荐和基于内容的推荐其实都是基于物品相似度预测推荐,只是相似度计算的方法不一样,前者是从用户历史的偏好推断,而后者是基于物品本身的属性特征信息。

 

3)两种算法的总结

最初的时候基于项目的协同过滤推荐机制是在基于用户的机制上改良的一种策略。
对于电商类站点中,项目的个数是远远小于用户的数量的,而且项目的个数和相似度相对比较稳定,这样基于项目的机制会比基于用户的实时性更好一些。
但是对于新闻,社交,博客类网站,情况是相反的,这类网站项目数量是海量的,并且更新十分频繁的,这时候选用基于用户的机制会更稳定一些。
所以选择哪种推荐策略要看具体的应用场景。

© 著作权归作者所有

G
粉丝 2
博文 72
码字总数 49356
作品 0
海淀
高级程序员
私信 提问
推荐算法概览

推荐算法概览(一) 为推荐系统选择正确的推荐算法非常重要,而可用的算法很多,想要找到最适合所处理问题的算法还是很有难度的。这些算法每种都各有优劣,也各有局限,因此在作出决策前我们...

hblt-j
2018/01/23
112
0
各大平台的推荐系统原来是靠他来完成的,太牛了

1. 推荐系统概述 电子商务网站是个性化推荐系统重要地应用的领域之一,亚马逊就是个性化推荐系统的积极应用者和推广者,亚马逊的推荐系统深入到网站的各类商品,为亚马逊带来了至少30%的销售...

h8b6pk7m7r8
2017/11/27
0
0
各大平台的推荐系统原来是靠他来完成的,太牛了

1. 推荐系统概述 电子商务网站是个性化推荐系统重要地应用的领域之一,亚马逊就是个性化推荐系统的积极应用者和推广者,亚马逊的推荐系统深入到网站的各类商品,为亚马逊带来了至少30%的销售...

h8b6pk7m7r8
2017/11/30
0
0
智能教育深度学习推荐系统---1.2.合成推荐算法CKE解读和算法实现1

在推荐系统构建中,人们最常用的方法当属协同过滤推荐算法。协同过滤推荐算法仅需要考虑用户和待推荐条目的交互关系,算法可以处理毫不费力地同时应用于电影推荐、图书推荐、音乐推荐等,而无...

最老程序员闫涛
2018/08/26
0
0
推荐系统之用户行为分析

最近读了项亮博士的《推荐系统实践》,在此对用户行为分析这章做一个总结。 用户行为介绍 基于用户行为的推荐,在学术界名为协同过滤算法。 协同过滤就是指用户可以齐心协力,通过不断地和网...

超级个体颛顼
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部