浅谈Mahout在个性化推荐系统中应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈Mahout在个性化推荐系统中应用

浅谈Mahout在个性化推荐系统中的应用   摘要:面对当今信息过载的问题,推荐系统发挥了重要的作用,构建一种基于Mahout的推荐引擎使推荐系统发挥更优的推荐效果。本文介绍了Mahout中的各种推荐算法的基本特点,基于某约会网站的数据示例,对几种推荐算法进行尝试性测试,从而找出最优的算法组合方案实现一个推荐引擎 关键词:推荐系统;Mahout;单机内存算法;组件 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)25-0171-02 随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代进入了信息过载的时代。推荐系统的出现可以帮助用户发现对自己有价值的信息,同时能够让信息展现在对它感兴趣的用户面前。个性化推荐系统依赖于用户的行为数据,目前被广泛地应用在包括电子商务、社交网络、电影和视频、音乐、个性化邮件和广告、基于位置的服务、阅读等领域中,从而提高相关网站的点击率和转化率。Mahout是来自Apache的、开源的机器学习软件库,主要提供了机器学习领域的推荐引擎(协同过滤)、聚类和分类算法的实现,为推荐系统的应用和研究提供了支持 本文通过对Mahout中的推荐算法进行研究,使用一个示例对推荐算法进行评估,从而找到一个有效的推荐程序应用到示例中,为用户实现推荐 1 Mahout的推荐算法 基于Hadoop分布式框架的机器学习算法库Mahout封装了多种机器学习算法的分布式实现,由多个组件混搭而成,各个组件的组合可以定制,从而针对特定应用提供理想的推荐。通常包括的组件如下:数据模型由DataModel实现;用户间的相似性度量由UserSimilarity实现;用户近邻的定义由UserNeighborhood实现;推荐引擎由一个Reommender实现。从数据处理能力上,Mahout推荐算法可以分为单机内存算法和基于Hadoop的分布式算法,本文仅讨论单机内存算法 1.1 推荐数据的表示 推荐引擎的输入是偏好数据(preference data),通常用(用户ID,物品ID,偏好值)的元组集合来表示。在Mahout中使用DataModel对推荐程序的输入数据进行封装,GernericDataModel是现有DataModel实现中最简单的,它通过程序在内存中构造数据表示形式,将偏好作为输入,将用户ID映射到这些用户数据所在的PreferenceArray(一个接口,表示一个偏好的聚合)上。若用户和物品的数据无偏好值时,可以使用GenericBooleanPrefDataModel来实现。基于文件的数据使用FileDataModel,从文件中读取数据,将所得的偏好数据存储到内存,即GernericDataModel中。基于数据库的数据用JDBCDataModel实现,若使用MySQL数据库,可以使用其子类MySQLJDBCDataModel 1.2 相似性度量 基于用户的推荐程序和基于物品的推荐程序都依赖于UserSimilarity这个组件,及用户或物品之间的相似性,缺乏对用户或物品的相似性定义的推荐方法是毫无意义的。相似度算法包括了欧氏距离相似度(EuclideanDistanceSimilarity)、皮尔逊相关系数相似度(PearsonCorrelationSimilarity)、曼哈顿距离相似度(CityBlockSimilarity)、对数似然相似度(LogLikehoodSimilarity)、谷本系数相似度(TanimotoCoefficientSimilarity)等 1.3 用户近邻 近邻算法适用于基于用户的协同过滤算法,选出前N个最相似的用户构成邻域,作为最终推荐参考的用户。近邻算法分为2种:基于固定大小和基于阈值的。NearestNUserNeighborhood实现基于固定大小的邻域,指定N的个数,如选出前10个最相似的用户;ThresholdUserNerghborhood实现基于阈值的邻域,指定比例,如选择前10%最相似的用户 1.4 推荐算法 Mahout的推荐算法以Recommender作为基础父类,实现类有基于用户的推荐算法、基于物品的推荐算法、基于物品的KNN的推荐算法、Slope-one推荐算法、基于奇异值分解(SVD)的推荐算法、基于聚类(TreeCluster)的推荐算法。推荐算法对比如表1所示 2 Mahout在推荐系统中的应用 上节介绍了Mahout提供的推荐算法,接下来讲述如何在数据集上使用Mahout开发推荐系统。首先分析样本数据,对数据做预处理,然后选取一个方法,收集数据、评估结果,多次重复这个过程,找到最优的推荐算法创建一个推荐引擎 本示例数据来自捷克的一个约会网站(

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档