基于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.推荐算法——基于物品的协同过滤算法基于用户的协同过滤算法在用户增长的时候,相似度计算的计算会越来越困难。基于物品的算法给用户推荐他们之前喜欢的物品相似的物品。 算法步骤 计算物品之间的相似度 根据物品的相似度和用户的历史行为给用户生成推荐列表 相似度公式如下: wij=|N(i)∩N(j)||N(i)||N(j)|?...https://www.imooc.com/article/27099
2.基于用户的协同过滤和基于物品的协同过滤的区别"""原始呈现的矩阵是:用户m x 物品n 基于用户的协同过滤:用户相似度矩阵m x m 点乘 用户m x 物品n = 用户m x 物品n基于物品的协同过滤:用户m x 物...https://www.jianshu.com/p/d00095735550
1.协同过滤算法在电商推荐系统中的应用:原理与实践协同过滤算法在电商推荐系统中的应用:原理与实践1. 背景介绍1.1 问题由来随着电子商务的飞速发展,在线购物平台的推荐系统已经成为用户获取商品信息的重要手段。推荐系统能够根据用户的浏览历史、购买记录和兴趣偏好,向用户推荐其可能https://blog.csdn.net/2405_88636357/article/details/143904879
2.协同过滤算法腾讯云开发者社区协同过滤算法是一类常用于推荐系统的算法,它基于用户之间或物品之间的相似性进行推荐。主要分为两种类型:基于用户的协同过滤和基于物品的协同过滤。以下是对这两种协同过滤算法的详细讲解: 1. 基于用户的协同过滤 1.1 思想 基于用户的协同过滤是通过分析用户之间的相似性来进行推荐。该算法的基本思想是:如果用户A和用户...https://cloud.tencent.com/developer/article/2389581
3.推荐系统算法实战协同过滤CF算法(CollaborativeFiltering...协同过滤分为基于用户的协同过滤和基于标的物(物品)的协同过滤两类算法。下面我们对协同过滤的算法原理来做详细的介绍。 推荐算法种类很多,但是目前应用最广泛的就是协同过滤算法。 协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分...https://blog.51cto.com/u_15236724/5968286
4.PythonDjango网页界面协同过滤推荐算法实现商品管理与推荐python这种算法通常分为两类:基于用户的协同过滤和基于物品的协同过滤。 基于用户的协同过滤:这种方法首先找出与目标用户兴趣相似的其他用户,然后根据这些相似用户的喜好来推荐物品给目标用户。 基于物品的协同过滤:与之相反,这种方法先找出与目标物品相似的其他物品,然后把这些物品推荐给那些喜欢目标物品的用户。 现在,让我们...https://www.jb51.net/python/305546cjo.htm