1分钟了解协同过滤,pm都懂了
project架构方向的程序猿。看到推荐/搜索/广告等和算法相关的技术,心中或多或少有一丝胆怯。但认真研究之后。发现事实上没有这么难。
今天的1分钟系列,给大家介绍下推荐系统中的“协同过滤”,绝无不论什么公式,保证大伙弄懂。
什么是协同过滤(Collaborative Filtering)?
答:通过找到兴趣相投。或者有共同经验的群体。来向用户推荐感兴趣的信息。
举例。怎样协同过滤。来对用户A进行电影推荐?
答:简要过程例如以下
找到用户A(user_id_1)的兴趣爱好
找到与用户A(user_id_1)具有同样电影兴趣爱好的用户群体集合Set<user_id>
找到该群体喜欢的电影集合Set<movie_id>
将这些电影Set<Movie_id>推荐给用户A(user_id_1)
详细实施步骤怎样?
答:简要过程例如以下
(1)画一个大表格。横坐标是全部的movie_id,纵坐标全部的user_id,交叉处代表这个用户喜爱这部电影
http://mmbiz.qpic.cn/mmbiz_jpg/YrezxckhYOyX5wfsD9TdibFmicOBhTr04AIIc1InhzTkQl83wQiajKd1QqicphMXb76HGSEhZ9JIU7XEUavaUicxicFw/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1" alt="640?
wx_fmt=jpeg&wxfrom=5&wx_lazy=1" />
如上表:
横坐标,如果有10w部电影。所以横坐标有10w个movie_id。数据来源自数据库
纵坐标,如果有100w个用户,所以纵坐标有100w个user_id,数据也来自数据库
交叉处,“1”代表用户喜爱这部电影,数据来自日志
画外音:什么是“喜欢”,须要人为定义,比如浏览过,查找过,点赞过,反正日志里有这些数据
(2)找到用户A(user_id_1)的兴趣爱好
https://mmbiz.qpic.cn/mmbiz_jpg/YrezxckhYOyX5wfsD9TdibFmicOBhTr04ASib9sXy8gXiaTr7TpxRrcxjgPtg2ARV34ut1bNmahgl1zscv2ApzsD8g/640?
wx_fmt=jpeg" alt="640?
wx_fmt=jpeg" />
如上表,能够看到,用户A喜欢电影{m1, m2, m3}
(3)找到与用户A(user_id_1)具有同样电影兴趣爱好的用户群体集合Set<user_id>
wx_fmt=jpeg" alt="640?
wx_fmt=jpeg" />
如上表。能够看到,喜欢{m1, m2, m3}的用户,除了u1。还有{u2, u3}
(4)找到该群体喜欢的电影集合Set<movie_id>
如上表。具备同样喜好的用户群里{u2, u3},还喜好的电影集合是{m4, m5}
画外音:“协同”就体如今这里。
(5)未来用户A(use_id_1)来訪问站点时,要推荐电影{m4, m5}给ta。
协同过滤大致原理如上。希望大家有收获。
推荐文章:
1分钟了解协同过滤,pm都懂了的更多相关文章
- 推荐系统算法学习(一)——协同过滤(CF) MF FM FFM
https://blog.csdn.net/qq_23269761/article/details/81355383 1.协同过滤(CF)[基于内存的协同过滤] 优点:简单,可解释 缺点:在稀疏情况下 ...
- 推荐召回--基于用户的协同过滤UserCF
目录 1. 前言 2. 原理 3. 数据及相似度计算 4. 根据相似度计算结果 5. 相关问题 5.1 如何提炼用户日志数据? 5.2 用户相似度计算很耗时,有什么好的方法? 5.3 有哪些改进措施? ...
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- 协同过滤 CF & ALS 及在Spark上的实现
使用Spark进行ALS编程的例子可以看:http://www.cnblogs.com/charlesblc/p/6165201.html ALS:alternating least squares ...
- CF(协同过滤算法)
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- 协同过滤(CF)算法
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- 协同过滤的R语言实现及改进
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 协同过滤算法是推荐系统最常用的算法之一,本文将介绍一种方法来使它可以在大型数据集上快速训练. 协同过滤算法(CF)是构建推荐系统时最常用的技 ...
- 从item-base到svd再到rbm,多种Collaborative Filtering(协同过滤算法)从原理到实现
http://blog.csdn.net/dark_scope/article/details/17228643 〇.说明 本文的所有代码均可在 DML 找到,欢迎点星星. 一.引入 推荐系统(主要是 ...
- 推荐召回--基于物品的协同过滤:ItemCF
目录 1. 前言 2. 原理&计算&改进 3. 总结 1. 前言 说完基于用户的协同过滤后,趁热打铁,我们来说说基于物品的协同过滤:"看了又看","买了又 ...
随机推荐
- iOS富文本组件的实现—DTCoreText源码解析 渲染篇
本文转载至 http://blog.cnbang.net/tech/2729/ 上一篇介绍了DTCoreText怎样把HTML+CSS解析转换成NSAttributeString,本篇接着看看怎样把N ...
- 如何将一个项目打成war包?
如何将一个项目打成war包?进入该项目所在目录jar -cvf myProjec.war myProject
- SALT+HASH撒盐加密
#region 撒盐加密 string salt = Guid.NewGuid().ToString(); byte[] passwordAndSaltBytes = System.Text.Enco ...
- ATM技术基本原理
1 术语.定义和缩略语 1.1 术语.定义 术语/定义 说 明 ATM层 位于B-ISDN/ATM网络协议参考模型的第二层,完成交换.路由选择和信元复用功能.ATM层的基本处理单位是信元. AA ...
- vue工具 - vue-cli安装使用流程
1.全局安装vue-cli cnpm i vue-cli -g 2.监测安装版本 vue -V 大写V : version 3.指定目录下新建项目 vue init webpack [项目名] 按自 ...
- Elasticsearch 学习之 Marvel概念
概要 含义如下: 搜索速率:对于单个索引,它是每秒查找次数*分片数.对于多个索引,它是每个索引的搜索速率的总和. 搜索延迟:每个分片中的平均延迟. 索引速率:对于单个索引,它是每秒索引的数量*分片数量 ...
- PhpDocumentor
phpDocument是一个通用的生成PHP文档的工具,他本身也是用PHP写的,跟JAVADoc有些相似,但他有不同于PHPDoc,他比PHPDOC要快,而且能够解析的PHP范围更广,他本身包含了11 ...
- Weibull分布(韦伯分布、威布尔分布)
log函数 从概率论和统计学角度看,Weibull Distribution是连续性的概率分布,其概率密度为: 其中,x是随机变量,λ>0是比例参数(scale parameter),k> ...
- 9.4Django
2018-9-4 17:19:13 昨天和基友玩到了十点 一路溜着玩喝豆腐脑,谈谈人生!感触颇深! 越努力,越幸运! 关于 Django的一开始的配置东西! 2018-9-4 19:42:27 201 ...
- DISTINCT 与 GROUP BY 的比较
看了很多文章,这两个SQL语句在不同的数据库上面的实现上可能有相同或有不同,但是应当要明确它们在功能概念上的区别,最终得出结论: GROUP BY 用来使用聚集函数获得值,比如 AVG, MAX, M ...