基于协同过滤算法的新闻推荐系统的设计与实现
2024-04-06张扬彭明坤蔡莉金力孙大勇
张扬 彭明坤 蔡莉 金力 孙大勇
关键词:新闻推荐系统;总体结构设计;协同过滤算法
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2024)03-0060-02
0 引言
当前人们获取新闻的方式已从传统的报纸端转向数字新闻端。面对浏览器中海量的新闻内容,如何快速有效的阅读到自己感兴趣的信息,已成为当前亟待解决的问题,为此开发了基于每位读者阅读兴趣的新闻推荐系统,以提高人们阅读新闻的效率。
1 系统设计思路
系统最终要求管理者能够通过简洁的前端页面完成相关的新闻发布,同时也能从多角度思考理解大众用户的需求,以方便浏览者随时随地阅读所感兴趣的新闻。这就要求在设计系统时,应从数据收集、相似度计算、用户集合筛选、新闻推荐以及反馈优化等方面进行考虑以实现基于用户行为的个性化新闻推荐需要[1]。
本系统采用Java作为编程语言,运行于Windows 平台,应用程序部署于Tomcat上,对于服务器上的数据使用MySQL接口以实现交互式响应,最终效果呈现于服务器上,使用Navicat Premium连接MySQL数据库,从而使各个功能以图形化界面展示。
2 系统总体结构设计
2.1 系统总体结构
系统设计了新闻后台管理者和浏览用户两个角色。对应总体结构如图1所示。
2.2 新闻发布顺序
本系统中,新闻发布是主要特性。为了完成新闻的添加工作,管理员首先需要通过输入账号密码登录管理后台进入新闻管理的主页。接着,通过新闻管理选项,选择新闻编辑,然后在网页中编辑新闻标题、类别、内容等信息,并点击提交[2]。最后,管理员需要刷新服务器缓存,以完成新闻添加。这些步骤按照特定的时间顺序进行,确保新闻添加的顺利完成。
3 系统采用的核心算法
从系统的核心功能考虑,采用了基于用户的协同过滤算法以实现新闻推荐功能。该算法的优点是简单易懂,个性化程度高。然而,该算法存在数据稀疏性和冷启动问题。为了解决这些问题,系统同时采用基于统计的热点推荐和标签随机推荐来解决数据稀疏性和冷启动问题,从而解决了新用户登录或系统刚实施而无法进行个性化推荐的问题[3]。
基于用户的协同过滤是一种常见的推荐算法,它基于用户之间的相似性来进行推荐。本系统是根据用户对新闻的评分,为目标用户找到评分相同或者相近的用户,这些评分相同或者相近的用户称之为目标用户的近邻用户,然后在这些近邻用户中找出目标用户没有评分行为同时近邻用户同时有评分行为的新闻,最后将这些新闻推荐给目标用户。
基于用户的协同过滤算法推荐过程可分以下4个步骤进行。
步驟1:构建用户-新闻评分矩阵
根据用户对新闻的评分数据,M个用户和N个项目最大有M×N条用户对项目的评分数据,记为矩阵MN,在计算机语言中可以通过一个二维数组来表达array,用户用数组下标0-M表示,项目用数组下标0-N表示,矩阵MN图形如表1所示(新闻评分:0~5;0表示用户对项目没有评分;M=53,N=152) 。
步骤2:计算用户之间相似度
根据余弦算法计算用户之间相似度,余弦相似度计算公式如下:
通过以上过程,再结合热点推荐和标签推荐算法,将最终推荐结果通过前端展示给用户,以此实现个性化新闻推荐。
4 系统软件设计
系统使用JAVA语言编写,后台数据库是MySQL,采用比较主流的SSM框架搭建。
4.1 后台数据库设计
在系统的开发阶段,后台数据暂且存放于轻量级的数据库MySQL中,主要设计了管理表、用户表、新闻类型表、评分记录表等表格。
4.2 前端界面设计
系统大致分为前端和后端模块。用户通过前端页面浏览新闻,新闻管理员在后台对新闻发布编辑修改。以下分别介绍几个模块的相关功能。
4.2.1 前台用户功能模块
用户通过注册、登录首页后,可以查看新闻列表、热点推荐、个性化推荐、设置用户信息等内容,并进行相关操作。例如当用户点击新闻后,在新闻首页的搜索栏输入标题,进行查询,新闻信息可以看到新闻类型、封面图片、添加时间、添加收藏评论、新闻内容、新闻评分分析等信息,然后可以点击收藏或者评论等操作。当用户点击新闻时,相关推荐板块根据当前新闻所属新闻类型进行随机推荐。相关推荐界面如图2 所示。
在系统的首页中显示有热点新闻和个性化推荐两个板块。其中热点新闻根据新闻被收藏数量降序推荐。个性化推荐基于用户的协同过滤算法进行推荐[6]。
4.2.2 后台管理员功能模块
管理员登录系统后,可以看到系统相关数据统计、用户管理、新闻类型管理、喜好标签管理、评分记录管理、收藏记录管理、评价记录管理、浏览记录管理等进行相应的操作管理,管理员功能如图3所示。
管理员点击新闻管理后在新闻管理页面对标题、新闻类型、发布时间、新闻内容等信息进行查询,新增或删除新闻等操作。当管理员点击系统数据,可以查询用户数量、新闻类型数量、新闻数量、评分记录数量、收藏记录数量以及评论记录数量。
5 结论
开发的个性化新闻推荐系统在试用期间,运行流畅,能在第一时间将用户所感兴趣的信息推送到面前,效果令人满意。
在下一步的工作中,将在系统中尝试使用基于多种推荐算法的混合推荐算法,以提高推送新闻的精准度,同时采用增加屏蔽关键字技术,提高新闻推荐系统的智能化程度。
【通联编辑:闻翔军】