基于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.协同过滤算法深入解析:构建智能推荐系统的核心技术然而,协同过滤算法也存在一些局限性。例如,冷启动问题(Cold Start Problem),当新用户或新物品加入系统时,由于缺乏足够的评分数据,协同过滤算法难以准确地推荐相关物品。此外,数据稀疏性(Data Sparsity)也是协同过滤算法面临的一个挑战,由于用户-物品评分矩阵中大部分元素都是缺失值,这可能导致预测准确性较低。 https://developer.aliyun.com/article/1267365
3.通过社交网络关系的图卷积协同过滤实现的产品推荐方法它是一种轻量级的gcn网络构建模型,它舍弃了传统gcn的特征变换和非线性 激活,并通过实验验证了这两种操作对协同过滤是无效的。lightgcn通过在用户-物品交互矩阵 上进行线性传播来学习用户和物品的嵌入,最后将所有层学习到的嵌入的加权和作为最终嵌入。 lightgcn的提出虽然解决了上述方法存在的问题,但是它只限于处理用户-...https://www.xjishu.com/zhuanli/55/202111235556.html
1.基于物品的协同过滤算法(ItemCF)原理以及代码实践从前面的讨论可以看到,在协同过滤中两个物品产生相似度是因为它们共同出现在很多用户的兴趣列表中。换句话说,每个用户的兴趣列表都对物品的相似度产生贡献。那么是不是每个用户的贡献都相同呢? 假设有这么一个用户,他是开书店的,并且买了当当网上80%的书准备用来自己卖。那么他的购物车里包含当当网80%的书。假设当...https://blog.csdn.net/a15835774652/article/details/136583397
2.从原理到落地,七大维度读懂协同过滤推荐算法上面一节简单介绍了协同过滤的思想,基于协同过滤的两种推荐算法,核心思想是很朴素的”物以类聚、人以群分“的思想。所谓物以类聚,就是计算出每个标的物最相似的标的物列表,我们就可以为用户推荐用户喜欢的标的物相似的标的物,这就是基于物品(标的物)的协同过滤。所谓人以群分,就是我们可以将与该用户相似的用户喜...https://cloud.tencent.com/developer/article/1487831
3.第二章:基于物品(模型)的协同过滤基于物品的协同过滤又称为基于模型的协同过滤,不需要保存所有的数据,而是通过构建一个物品相似度模型来获取结果。 修正的余弦相似度 我们使用余弦相似度来计算两个物品的距离。考虑到“分数膨胀”现象,我们会从用户的评价中减去他所有评价的均值,获得修正的余弦相似度。 s(i, j) 表示物品 i 和 j 的相似度,分子...https://www.jianshu.com/p/74adaf07fa14
4.改进的基于物品的协同过滤推荐算法协同过滤物品相似度用户-物品评分矩阵准确率 分类号: TP399(计算技术、计算机技术) 资助基金: 国家自然科学基金(61702368)国家自然科学基金(61170174)国家自然科学基金(91646117)天津市自然科学基金(17JCYBJC15200)天津市自然科学基金(15JCYBJC46500)国家科技重大专项(15ZXZNCX00050) ...https://d.wanfangdata.com.cn/periodical/tjlgxyxb201901006
5.GitHub一个基于SSM框架与物品的协同过滤算法(ItemCF)的简单电子书推荐系统. Contribute to Sicmatr1x/EMAN development by creating an account on GitHub.https://github.com/Sicmatr1x/EMAN/
6.系列学习——推荐算法综述基于物品的协同过滤和基于用户的协同过滤相似,它使用所有用户对物品或者信息的偏好(评分),发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。基于物品的协同过滤可以看作是关联规则推荐的一种退化,但由于协同过滤更多考虑了用户的实际评分,并且只是计算相似度而非寻找频繁集,因此可以认为基...https://maimai.cn/article/detail?fid=242703356&efid=xCTosL0-evQLVNwAlACgEw
7.推荐系统系列之推荐系统概览(上)亚马逊AWS官方博客本质上是矩阵补全的思路,也正是因为基于矩阵的处理,只要用户或者Item有变化,甚至action有变化,可能需要重新计算或者重新训练(业界当前有一些方法做增量协同过滤或者近实时协同过滤)。基于协同过滤的召回策略,细分为如下三种方式:基于用户的协同过滤/UserCF;基于物品的协同过滤/ItemCF;基于模型的协同过滤。http://aws.amazon.com/cn/blogs/china/recommended-system-overview-of-recommended-system-series-part-1/
8.机器学习推荐算法之协同过滤(基于物品)案例+代码机器学习推荐算法之协同过滤(基于物品)【案例+代码】,目录协同过滤算法(基于物品)案例解说总结代码实操每文一语协同过滤算法(基于物品)基于用户的协https://blog.51cto.com/u_15172991/5428305
9.PythonDjango网页界面协同过滤推荐算法实现商品管理与推荐python这种算法通常分为两类:基于用户的协同过滤和基于物品的协同过滤。 基于用户的协同过滤:这种方法首先找出与目标用户兴趣相似的其他用户,然后根据这些相似用户的喜好来推荐物品给目标用户。 基于物品的协同过滤:与之相反,这种方法先找出与目标物品相似的其他物品,然后把这些物品推荐给那些喜欢目标物品的用户。 现在,让我们...https://www.jb51.net/python/305546cjo.htm