基于Hadoop平台的个性化新闻推荐系统的设计AET

(广西科技大学鹿山学院电气与计算机工程系,广西柳州545616)

关键词:Hadoop;MapReduce;聚类;个性化;Mahout

中图分类号:TP301.6文献标识码:ADOI:10.19358/j.issn.16747720.2016.23.006

引用格式:韦灵,黎伟强.基于Hadoop平台的个性化新闻推荐系统的设计[J].微型机与应用,2016,35(23):21-23,27.

0引言

1协同过滤算法介绍

个性化推荐主要分为协同过滤推荐、基于内容推荐、混合推荐。个性化推荐本质上是把用户与物品进行联系,使得用户能够发现自己所喜爱的物品,使得物品能够被所喜欢的用户所了解[7]。关于协同过滤的一个最典型的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那么通常的做法就是问问周围的朋友,看看最近有什么好的电影推荐。在询问时,都习惯于问与自己爱好相似的朋友,这就是协同过滤的核心思想。协同过滤推荐与传统的基于内容过滤推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成对该指定用户对此信息的喜好程度预测。协同过滤主要分为基于用户的协同过滤和基于物品的协同过滤。

1.1基于用户的协同过滤算法

俗话说“物以类聚、人以群分”,拿看电影这个例子来说,如果你喜欢《蝙蝠侠》、《碟中谍》、《星际穿越》、《源代码》等电影,另外有个人也喜欢这类电影,而且他还喜欢《钢铁侠》,则很有可能你也喜欢《钢铁侠》这部电影。所以说,当一个用户A需要个性化推荐时,可以先找到与他兴趣相似的用户群体G,然后把G喜欢的、并且A没有听说过的物品推荐给A,这就是基于用户的协同过滤算法。

1.2基于物品的协同过滤算法

基于物品的协同过滤算法(ItemCF)是业界应用最多的算法,主要思想是利用用户之前有过的行为,给用户推荐和之前物品类似的物品。依然以电影为例,如果喜欢《蝙蝠侠》的用户有A、B、C和D,喜欢《碟中谍》的用户有A、C、D。那么可以认为《蝙蝠侠》和《碟中谍》拥有相似的用户群体,则很可能B用户也会喜欢《碟中谍》这部电影,于是推荐《碟中谍》给B用户。这就是基于物品的协同过滤算法。

2协同过滤算法用户的模型构建

协同过滤算法所需要的数据结构是用户id+新闻id+评分,为了将数据库中的数据形成这样的数据结构,通过查询新闻表的用户表来确定所查询的用户是否在其中,然后得到该用户浏览过的所有新闻id,最后对该新闻的喜爱程度进行预测。根据式(1)计算出Preference喜好值,其中Preference为预测的结果,ct为新闻聚类结果簇的个数,cn为当前新闻所在簇的新闻个数,unt为当前用户浏览过的新闻总数,nct为该新闻的浏览数。

3协同过滤算法物品的模型构建

其算法流程图如图2所示。

4个性化新闻推荐系统实现

基于Hadoop平台聚类算法的个性化新闻推荐系统,其目的是为让广大网民在浏览新闻时,为其提供一个个性化的新闻推荐系统。大量的信息使得用户找到自己需要的信息变得很困难。为了使互联网用户快捷地查找所需信息,个性化推荐系统的优势得到了体现,本文利用Hadoop的MapReduce模型实现并行快速地聚类海量新闻数据,大大提高了数据处理的速度,聚类使得新闻之间的相似度得以体现,再利用不同的协同过滤算法实现个性化的新闻推荐。系统使用了JSP、Servlet技术及Mahout开源项目编写程序,首先利用Java将新闻数据按约定格式处理并将其传到Hadoop的HDFS上,在安装好Hadoop的Linux端定时调用shell脚本聚类处理新闻,然后使用MySQL数据库存储数据,实现对新闻数据的协同过滤推荐处理。新闻推荐系统主要功能包括前台与后台的设计,图3所示为系统整体功能结构图,前台主要负责展示推荐的新闻信息结果和供用户浏览新闻;后台处理新闻数据,并将处理好的数据插入数据库供前台使用。

图4为新闻推荐流程图。选择基于用户的协同过滤推荐,系统将自动启动基于用户的协同过滤算法引擎进行数据的计算并将数据推送到页面中。同理基于物品的协同过滤算法相同。这个过程中查询所有人的浏览记录是通过多次的数据库查询得到的。

基于用户的协同过滤推荐系统效果如图5所示。

(2)当用户进行基于物品的协同过滤推荐操作时,将触发baseOnItemSert类,该类将查询出系统中的所有用户,并过滤掉admin这个测试用户,将所有的用户进行基于物品的协同过滤算法推荐,所有推荐结果存储在一个专门设计的newsModeBean类中,其他的操作基本与基于用户的协同过滤推荐一样。基于物品的协同过滤算法,提交数据的格式与基于用户的协同过滤算法一样。首先提取出所有的新闻,计算并建立新闻的共轭矩阵。然后使用用户向量点乘共轭矩阵可以得到推荐分数。

基于物品的协同过滤推荐系统如图6所示。

5结论

参考文献

[1]JIANGS,HONGWX.Averticalnewsrecommendationsystem:CCNS—anexamplefromChinesecampusnewsreadingsystem[C].ICCSE2014:Proceedingsofthe20149thInternationalConferenceonComputerScience&Education.Piscataway,NJ:IEEE,2014:1105-1114.

[2]杨武,唐瑞,卢玲.基于内容的推荐与协同过滤融合的新闻推荐方法[J].计算机应用,2016,36(2):414-418.

[3]刘金亮.基于主题模型的个性化新闻推荐系统的研究与实现[D].北京:北京邮电大学,2013.

[5]文鹏,蔡瑞,吴黎兵.一种基于潜在类别模型的新闻推荐方法[J].情报杂志,2014,33(1):161-166.

[6]项亮.推荐系统实践[M].北京:人民邮电出版社,2012.

[7]曹一鸣.基于协同过滤的个性化新闻推荐系统的研究与实现[D].北京:北京邮电大学,2013.

THE END
1.JavaWeb实现协同过滤推荐算法的电影推荐系统例如,当你在网上买衣服时,基于协同过滤的推荐引擎会根据你的历史购买记录或是浏览记录,分析出你的穿衣品位,并找到与你品味相似的一些用户,将他们浏览和购买的衣服推荐给你。? 基于关联规则的推荐引擎:它将推荐给用户一些采用关联规则发现算法计算出的内容。关联规则的发现算法有很多,如 Apriori、AprioriTid、DHP、...https://www.iteye.com/resource/u012998306-12589813
2.JAVA助力数字化营销:基于协同过滤算法实现个性化商品推荐...判断两个用户是否相似以及相似度为多少也是协同过滤算法的难点。最常用的两种判断方式如下: 用户购买商品有很大重合度。 用户浏览商品有很大重合度。 在ItemCF我们已经说过,任何合理的判断方法都可以作为相似度计算规则,下面我们以 “用户喜欢的物品有很大重合度” 来作为相似度计算规则。 https://www.jianshu.com/p/67bbce31375a
3.欧式算法之用户推荐的协同过滤推荐java版合肥房屋托管欧式算法之用户推荐的协同过滤推荐java版 packagecom.wk.xietongguolue;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;publicclassData {staticString[] films = { "十面埋伏", "一路向北", "那些年我们一起追过的女孩", "CCAV", "非诚...https://www.cnblogs.com/kunpengit/archive/2013/03/04/2942684.html
4.基于协同过滤算法图书推荐系统的设计与实现.pdf据双向绑定,数据与视图之间的同步更新,提高代码的复用率,方便管理维护代 码;后端用SpringBoot框架和MyBatis-Plus框架,简化开发体检;后台数据库 使用的是MySQL数据库管理系统,对数据进行存储和管理。 关键字:图书推荐;相似度;协同过滤算法 论文类型:工程设计 ...https://max.book118.com/html/2024/0217/7053136045006042.shtm
1.Java编程实现基于用户的协同过滤推荐算法代码示例java这篇文章主要介绍了Java编程实现基于用户的协同过滤推荐算法代码示例,具有一定参考价值,需要的朋友可以了解下。协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别...https://www.jb51.net/article/129181.htm
2.java毕业设计文章浏览阅读1.1k次,点赞32次,收藏5次。java毕业设计-基于协同过滤算法的电影推荐系统,包括代码、论文、答辩PPT,点赞、收藏、关注后留言,我们会按时间顺序赠送部分资源。_基于协同过滤算法的电影推荐系统http://t.9i0i.com/b/?zsd12379/article/details/142654788
3.java实现协同过滤算法,并附带测试集免费复制代码 关注/点赞/评论/收藏 下载海量资源 写文章/发动态/加入社区 立即登录 会员中心 消息 创作中心 学习中心成长任务 发布 共3个文件 java:2个 part-00151:1个 推荐系统 协同过滤算法 java实现协同过滤算法 需积分: 50144 浏览量2020-06-02上传12.8MBZIP ...https://download.csdn.net/download/qq_37267359/12490043
4.协同滤波算法java协同过滤算法改进协同滤波算法java 协同过滤算法改进 目标: 掌握NeuralCF比传统基于矩阵分解的协同过滤算法的改进点,以及算法的优点和缺点。 内容: 上篇学习了最经典的推荐算法:协同过滤,并基于矩阵分解得到了用户和物品的embeding向量。通过点积可以得到两者的相似度,可进行排序推荐。但传统协同过滤通过直接利用非常稀疏的共现矩阵进行...https://blog.51cto.com/u_16213630/10792946
5.用R解析Mahout用户推荐协同过滤算法(UserCF)粉丝日志RHadoop实践是一套系列文章,主要包括”Hadoop环境搭建”,”RHadoop安装与使用”,”R实现MapReduce的协同过滤算法”,”HBase和rhbase的安装与使用”。对于单独的R语言爱好者,Java爱好者,或者Hadoop爱好者来说,同时具备三种语言知识并不容 易。此文虽为入门文章,但R,Java,Hadoop基础知识还是需要大家提前掌握。 http://blog.fens.me/r-mahout-usercf/
6.一种局部协同过滤的排名推荐算法第46卷 第 5期 Vol.46 No.5 山东大学学报 (工学版) JOURNALOFSHANDONGUNIVERSITY(ENGINEERINGSCIENCE) 20O16ct.年210016月 文章编号:1672 3961(2016)05 0029 08 DOI:10 6040/j.issn.1672 3961 2 2015 008 一种局部协同过滤的排名推荐算法 黄丹,王志海,刘海洋 (北京交通大学计算机与信息技术学院,北京 100044...http://gxbwk.njournal.sdu.edu.cn/CN/article/downloadArticleFile.do?attachType=PDF&id=1545
7.协同过滤算法腾讯云开发者社区基于用户的协同过滤算法实现(Python示例) 假设我们有一个用户-物品矩阵user_item_matrix,其中行代表用户,列代表物品,矩阵中的值表示用户对物品的评分。我们的目标是预测用户未评分的物品。 代码语言:javascript 复制 importnumpyasnp from sklearn.metrics.pairwiseimportcosine_similarity ...https://cloud.tencent.com/developer/article/2389581