推荐引擎

探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法

这一生的挚爱 提交于 2019-12-05 15:26:58
聚类分析 什么是聚类分析? 聚类 (Clustering) 就是将数据对象分组成为多个类或者簇 (Cluster),它的目标是:在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。所以,在很多应用中,一个簇中的数据对象可以被作为一个整体来对待,从而减少计算量或者提高计算质量。 其实聚类是一个人们日常生活的常见行为,即所谓“物以类聚,人以群分”,核心的思想也就是聚类。人们总是不断地改进下意识中的聚类模式来学习如何区分各个事物和人。同时,聚类分析已经广泛的应用在许多应用中,包括模式识别,数据分析,图像处理以及市场研究。通过聚类,人们能意识到密集和稀疏的区域,发现全局的分布模式,以及数据属性之间的有趣的相互关系。 聚类同时也在 Web 应用中起到越来越重要的作用。最被广泛使用的既是对 Web 上的文档进行分类,组织信息的发布,给用户一个有效分类的内容浏览系统(门户网站),同时可以加入时间因素,进而发现各个类内容的信息发展,最近被大家关注的主题和话题,或者分析一段时间内人们对什么样的内容比较感兴趣,这些有趣的应用都得建立在聚类的基础之上。作为一个数据挖掘的功能,聚类分析能作为独立的工具来获得数据分布的情况,观察每个簇的特点,集中对特定的某些簇做进一步的分析,此外,聚类分析还可以作为其他算法的预处理步骤,简化计算量,提高分析效率,这也是我们在这里介绍聚类分析的目的。

深入推荐引擎相关算法

时光毁灭记忆、已成空白 提交于 2019-12-05 03:07:34
在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法。它以其方法模型简单,数据依赖性低,数据方便采集 , 推荐效果较优等多个优点成为大众眼里的推荐算法“No.1”。本文将带你深入了解协同过滤的秘密,并给出基于 Apache Mahout 的协同过滤算法的高效实现。 Apache Mahout 是 ASF 的一个较新的开源项目,它源于 Lucene ,构建在 Hadoop 之上,关注海量数据上的机器学习经典算法的高效实现。 点击下面地址阅读全文: http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/ 来源: oschina 链接: https://my.oschina.net/u/129540/blog/14612

Apache Mahout中推荐算法Slope one源码分析

℡╲_俬逩灬. 提交于 2019-12-05 03:05:33
关于推荐引擎 如今的互联网中,无论是电子商务还是社交网络,对数据挖掘的需求都越来越大了,而推荐引擎正是数据挖掘完美体现;通过分析用户历史行为,将他可能喜欢内容推送给他,能产生相当好的用户体验,这就是推荐引擎。 推荐算法Slope one的原理 首先 Slope one是一种基于项目的协同过滤算法( Item-based Recommendation ),简单介绍这种算法(若理解有误,欢迎大家更正, I am just a beginner ):根据用户们对产品的喜好程度,来将产品分类;举个简单例子:比如有10个用户, 其中有9个人即喜欢产品A,也喜欢产品B,但只有2个人喜欢产品C;于是可以推断产品A和产品B是属于同类的,而产品C可能跟它们不是一类。 好了话不多讲,让我们看看Slope one吧! Slope one是通过用户们对每个产品的评分,来计算产品间的一个差值;这种计算是通过 线性回归 f ( x ) = a x + b 到 的 , 其中a = 1,正如它的名字Slope one(斜率为一);另外用户的评分,在Slope one中 是必不可少的。这里举 例看看它的计算方式:下面是一张用户对书籍的评分表 书 1 书 2 书 3 用户 A 5 3 2 用户 B 3 4 未评分 用户 C 未评分 2 5 书1是否适合推荐给用户C,需要通过Slope one 计算出一个值来判定

探索推荐引擎内部的秘密,第 2 部分: 深入推荐引擎相关算法

依然范特西╮ 提交于 2019-12-04 01:57:16
集体智慧和协同过滤 什么是集体智慧 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web 应用中利用集体智慧构建更加有趣的应用或者得到更好的用户体验。集体智慧是指在大量的人群的行为和数据中收集答案,帮助你对整个人群得到统计意义上的结论,这些结论是我们在单个个体上无法得到的,它往往是某种趋势或者人群中共性的部分。 Wikipedia 和 Google 是两个典型的利用集体智慧的 Web 2.0 应用: Wikipedia 是一个知识管理的百科全书,相对于传统的由领域专家编辑的百科全书,Wikipedia 允许最终用户贡献知识,随着参与人数的增多,Wikipedia 变成了涵盖各个领域的一本无比全面的知识库。也许有人会质疑它的权威性,但如果你从另一个侧面想这个问题,也许就可以迎刃而解。在发行一本书时,作者虽然是权威,但难免还有一些错误,然后通过一版一版的改版,书的内容越来越完善。而在 Wikipedia 上,这种改版和修正被变为每个人都可以做的事情,任何人发现错误或者不完善都可以贡献他们的想法,即便某些信息是错误的,但它一定也会尽快的被其他人纠正过来。从一个宏观的角度看,整个系统在按照一个良性循环的轨迹不断完善,这也正是集体智慧的魅力。 Google:目前最流行的搜索引擎,与 Wikipedia 不同

推荐系统思考小结(基于Mahout)

浪子不回头ぞ 提交于 2019-12-03 16:21:57
最近一直学习Mahout和推荐引擎相关的知识,一直想搞清楚,什么样的推荐系统的架构才是合理,既能对海量数据进行复杂运算,又能及时响应做出推荐。在网上发现一篇对推荐系统结构讲解的很好的文章 数: 据驱动销售——个性化推荐引擎 ,里面提到这样的思想 “ 数据的特性对我们的架构设计起到了一个非常关键的作用,因为我们可以使用完全不同的方式来将静态数据和动态数据分开处理,再合并分析 ”,对于一个数据挖掘初学者的我,很受启发。 同时,自己也在思考,若结合实际的推荐系统中,针对不同的协同过滤算法,如何来划分动态、静态数据,它们是怎样的结构,怎么存储的,又是怎么合并分析的。根据文章作者对推荐系统的设计思路,结合Mahout的源码实现,我似乎找到了一些相似之处,来解释上面的问题。 首先,仔细缕一遍Mahout产生推荐的算法流程: 1. 原始数据,Mahout中所有协同过滤算的的输入数据,都要求这样的结构(UserID、ItemID、 Preference )为一条记录,表示一个用户对某一个商品的喜爱程度;怎么得出这样的结果,Mahout并没实现,值需要你输入;一般来讲是通过分析用户各类行为日志记录,结合一些特征属性,计算出来。 2. 根据不同的协同过滤算法,得到用户与用户的关系(基于用户的) 或 商品与商品的关系(基于商品的);这时的数据结构,更像是矩阵:UserAID(ItemAID)