推荐系统入门:作为Rank系统的推荐系统(协同过滤)
知乎:如何学习推荐系统?
案例:推荐系统实战? 数据准备;实现推荐栏位;重构接口;后续优化。
简书:实现实时推荐系统的三种方式?基于聚类和协同过滤;基于Spark;基于Storm;基于Kiji框架。
精品博客,事无巨细:推荐系统:协同过滤collaborative filtering 基于内容的推荐content-based,协同过滤collaborative filtering,隐语义模型(LFM, latent factor model)推荐。这篇博客主要讲协同过滤。事无巨细,有条不紊。
自从1992年施乐的科学家为了解决信息负载的问题,第一次提出协同过滤算法,个性化推荐已经经过了二十几年的发展。
推荐系统概述和常用评价指标
1.1 推荐系统的特点
在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是:
(1)重要性:UI >数据 >算法,就是推荐系统中一味追求先进的算法算是个误区,通常论文研究类的推荐方法有的带有很多的假设限制,有的考虑工程实现问题较少,推荐系统需要大量的数据整理和转化,同时更需要考虑公司业务特性以及与现有系统的集成,方能形成推荐系统和业务之间的良性循环;
(2)推荐系统离线测试很好,上线后要么没有严格的测试结果而只能凭感觉,要么实际效果差强人意,我想主要缘于离线测试比较理想,而在线AB冠军测试无论对于前端还是后台要求都很高,没有雄厚的研发实力难以实现;
(3)推荐系统受到的外部干扰因素特别多(季节、流行因素等),整个系统需要不断的迭代更新,没有一劳永逸的事情。
Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可下免费 使用。Mahout项目是由 Apache Lucene社区中对机器学习感兴趣的一些成员发起的,他们希望建立一个可靠、文档翔实、可伸缩的项目,在其中实现一些常见的用于 聚类和分类的机器学习算法。该社区最初基于 Ngetal. 的文章 “Map-Reduce for Machine Learning on
Multicore”,但此后在发展中又并入了更多广泛的机器学习 方法,包括Collaborative Filtering(CF),Dimensionality Reduction,Topic Models等。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。
在Mahout的Recommendation类算法中,主要有User-Based CF,Item-Based CF,ALS,ALS on Implicit Feedback,Weighted MF,SVD++,Parallel SGD等。
其它
一:混合推荐系统类型
(1)加权型:就是将多种推荐技术的计算结果加权混合产生推荐。(2)转换型:根据问题背景和实际情况采用不同的推荐技术。(3)合并型:同时采用多种推荐技术给出多种推荐结果,为用户提供参考。(4)特征组合:将来自不同推荐数据源的特征组合起来,由另一种推荐技术采用。(5)瀑布型:后一个推荐方法优化前一个推荐方法。(6)特征递增型:前一个推荐方法的输出作为后一个推荐方法的输入。(7)元层次型用一种推荐方法产生的模型作为另一种推荐方法的输入。
二. 推荐系统的十个关键点
1、充分运用显式\隐式反馈数据:数据是一切推荐系统的基础。良好的推荐效果一定是来自于丰富而准确的数据。
2、 多种方法的融合
经过多年的发展,很多种推荐算法被提出来。常见的推荐方法,从大类上分,有基于历史行为(Memory-based)的方法、基于模型(Model-based)的方法、基于内容(Content-based)方法等。在Memory-based方法这个方向,又可进一步细分为基于物品的协同过滤算法(item-based collaborative filtering)、基于用户的协同过滤算法(user-based collaborative filtering)、关联规则(association rule)等;Model-based方法常用的包括Random
Walk、pLSA、SVD、SVD++等。每种方法在具体实施时,针对不同的问题又有很多不同的实现方案,例如在基于物品的协同过滤算法(item-based collaborative filtering)中,item之间相似度计算公式(Similarity)也可能有很多很多种变化。
在系统推荐的结果以外,还有一类传统的方式是通过专家进行推荐。这些专家可以是一些有经验的编辑,也可以是社区中意见领袖等。这些领域专家推荐的结果,在很多实际应用中,可以作为算法推荐结果的有益补充。
事实上,在实践中并没有任何一种方法在实践中始终占据压倒性的优势,它们各有千秋,分别有其各自合适的应用场景,因此因地制宜根据不同的场景,挑选不同的方法,并有机的结合起来,能让推荐效果得到极大的提升。常见的融合方法包括Restricted Boltzmann Machines(RBM), Gradient Boosted Decision Trees(GBDT),Logistic Regression(LR)等,这方面历次推荐竞赛中有很多相关文章,可以看到为了提升推荐效果,将不同算法的结果能够取长补短,各自发挥价值,是极为有效的。
3、重视时间因素:用户的行为是存在很强的时间规律的。
4、特定推荐场景使用地域特征:有一些推荐场景是和用户所处地域密切相关的,尤其对一些LBS、O2O的应用来说,一旦离开地域这个特征,那么智能推荐的效果根本就无从谈起。
5、 SNS关系的使用:社交网络近年来得到了突飞猛进的发展,用户不再是单纯的内容接收者,而是能够主动的建立用户之间的关系。
6、 缓解冷启动问题:冷启动是推荐系统最为悠久的一个问题,伴随推荐系统诞生至今。这是因为推荐系统效果提升的关键天然在于数据,而当新用户、或新物品等刚上线时,由于积累的数据极为稀少,大量方法在最初这段时间难以生效。
7、 推荐结果的展现方式:推荐系统绝不仅仅局限于推荐算法和架构,而是一个完整的系统。其中推荐结果的展现方案是这个系统中极为重要的一环。
8、明确优化目标和评估手段:在原有推荐效果的基础上精益求精,更进一步。优化目标和评估手段的确定是解决这个问题的关键所在。
9、时效性问题:正所谓“天下武功,唯快不破”,推荐系统要能及时捕捉用户需求的变化,反馈到模型中,并及时响应用户请求,实时提供在线服务。
10 、大数据挖掘和性能优化
总结:智能推荐系统是一个系统工程,依赖数据、架构、算法、人机交互等环节的有机结合,形成合力。
三、基于物品的协同过滤的Item协同系统的MapReduce实现
文章的UML图比较好看.....
四、搜索引擎的查询意图分析(关联分析)
通用搜索VS垂直搜索:
通用搜索特点:
抓取互联网上一切有价值的页面,同意建立索引,以关键字匹配为基本检索方式,以网页title和summary为展现方式
google, 百度,搜狗,搜搜,有道
垂直搜索特点:
以一特定类别为主题,只抓取与主题相关信息,根据主题特点有针对性的建立相应的索引检索方式,筛选方式,以及展现方式
机票搜索,地图搜索,购物搜索(一淘)……
解决方法:通用搜索引擎 + 垂直搜索引擎
意图识别
推荐系统入门:作为Rank系统的推荐系统(协同过滤)的更多相关文章
- (数据挖掘-入门-3)基于用户的协同过滤之k近邻
主要内容: 1.k近邻 2.python实现 1.什么是k近邻(KNN) 在入门-1中,简单地实现了基于用户协同过滤的最近邻算法,所谓最近邻,就是找到距离最近或最相似的用户,将他的物品推荐出来. 而这 ...
- 推荐系统算法学习(一)——协同过滤(CF) MF FM FFM
https://blog.csdn.net/qq_23269761/article/details/81355383 1.协同过滤(CF)[基于内存的协同过滤] 优点:简单,可解释 缺点:在稀疏情况下 ...
- Music Recommendation System with User-based and Item-based Collaborative Filtering Technique(使用基于用户及基于物品的协同过滤技术的音乐推荐系统)【更新】
摘要: 大数据催生了互联网,电子商务,也导致了信息过载.信息过载的问题可以由推荐系统来解决.推荐系统可以提供选择新产品(电影,音乐等)的建议.这篇论文介绍了一个音乐推荐系统,它会根据用户的历史行为和口 ...
- SparkMLlib—协同过滤推荐算法,电影推荐系统,物品喜好推荐
SparkMLlib-协同过滤推荐算法,电影推荐系统,物品喜好推荐 一.协同过滤 1.1 显示vs隐式反馈 1.2 实例介绍 1.2.1 数据说明 评分数据说明(ratings.data) 用户信息( ...
- Andrew Ng机器学习课程笔记--week9(下)(推荐系统&协同过滤)
本周内容较多,故分为上下两篇文章. 本文为下篇. 一.内容概要 1. Anomaly Detection Density Estimation Problem Motivation Gaussian ...
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- 电影推荐系统---协同过滤算法(SVD,NMF)
SVD 参考 https://www.zybuluo.com/rianusr/note/1195225 1 推荐系统概述 1.1 项目安排 1.2 三大协同过滤 1.3 项目开发工具 ...
- 推荐系统-协同过滤在Spark中的实现
作者:vivo 互联网服务器团队-Tang Shutao 现如今推荐无处不在,例如抖音.淘宝.京东App均能见到推荐系统的身影,其背后涉及许多的技术.本文以经典的协同过滤为切入点,重点介绍了被工业界广 ...
- 使用Python3.7配合协同过滤算法(base on user,基于人)构建一套简单的精准推荐系统(个性化推荐)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_136 时至2020年,个性化推荐可谓风生水起,Youtube,Netflix,甚至于Pornhub,这些在互联网上叱咤风云的流媒体 ...
随机推荐
- BZOJ 1230 Usaco2008 Nov 开关灯
[题意概述] 给出一个01序列,初始时序列全为0,每次有修改操作或询问操作,修改操作要求把L~R区间中的0变成1,1变成0,查询操作要求输出L~R区间的1的个数 [题解] 线段树. 每次区间修改把区间 ...
- 【Codeforces 466C】Number of Ways
[链接] 我是链接,点我呀:) [题意] 让你把数组分成3个连续的部分 每个部分的和要一样 问你有多少种分法 [题解] 先处理出来num[i] 表示i..n这里面有多少个j 满足aft[j] = af ...
- Python 2 声明变量 输入输出 练习
变量: 代指,用于将具体信息对应到一个值,便于反复使用时方便调用.例如 name = ("斯诺登") 变量声明规则:以字母开头的 字母数字下划线的组合.且不能是python代 ...
- Spring Data Jpa-动态查询条件
/** * * 查看日志列表-按照时间倒序排列 * * @author: wyc * @createTime: 2017年4月20日 下午4:24:43 * @history: * @return L ...
- centos7 安装vsftpd的步骤
感觉非常坑,依照网上说的没一个都測试了,可一直都报错. 不断的又一次安装不下10次,最后一次最终測试出了正确的方法. #官网配置说明## https://security.appspot.com/vs ...
- 2.3-STP生成树
2.3-STP生成树 单点失效(signle point of failure)及其解决方法: 当两个Segement之间只有一条物理连接时就有可能出现单点失效→ 单方面的故障导致全网 ...
- POJ 2891 Strange Way to Express Integers 中国剩余定理解法
一种不断迭代,求新的求余方程的方法运用中国剩余定理. 总的来说,假设对方程操作.和这个定理的数学思想运用的不多的话.是非常困难的. 參照了这个博客的程序写的: http://scturtle.is-p ...
- 一个简单RPC框架是怎样炼成的(I)——开局篇
开场白,这是一个关于RPC的相关概念的普及篇系列,主要是通过一步步的调整,提炼出一个相对完整的RPC框架. RPC(Remote Procedure Call Protocol)--远程过程调用协议, ...
- 新手玩个人server(阿里云)
阿里云如火如荼的0元活动,事实上一開始我仅仅是去直播吧看阿森纳vs贝西克塔斯.姑且算是一种乱入,url这样的奇妙的东西应该是万维网的最真实的写照.当然那是上周第一会回合的事了.可是故事却如此的类似.并 ...
- 【Ubuntu】基本操作 (条目=11)
定义 NAME 为要操作的对象名 定义 DIR 为文件所在的绝对路径 所有操作默认在普通用户下进行 所有软件包默认是指Debian包(deb包) 1.查看进程 top 2.强制结束进程 PID由top ...