基于大数据的书籍推荐分析系统的设计与实现

2024-06-26 04:25石丰源程钢
电脑知识与技术 2024年14期

石丰源 程钢

摘要:随着互联网技术的飞速发展,大数据时代已经来临。在该背景下,如何有效地利用海量数据为读者提供个性化的书籍推荐成为一个亟待解决的问题。文章将介绍一个基于大数据的书籍推荐分析系统的设计与实现。该系统通过采用大数据技术和数据可视化技术,采集书籍数据并对书籍数据进行可视化展示,同时收集、存储和处理读者的搜索行为数据、阅读历史等,运用ALS(Alternating Least Squares) 协同过滤算法实现书籍推荐,从而为用户推荐感兴趣的书籍。该系统不仅提高了用户的阅读满足感,也为用户提供了更加精准、个性化的阅读推荐服务。

关键词:书籍推荐;书籍可视化;ALS

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)14-0066-04 开放科学(资源服务)标识码(OSID) :

0 引言

随着互联网技术和大数据技术的迅猛发展,数字化时代已来临,人们的生活方式发生了巨大的变化。其中,阅读方式的改变尤为显著。越来越多的人选择利用移动设备,通过电子书平台阅读各种类型的书籍,这为人们提供了便利,但同时也带来了另一个问题:书籍的种类繁多,读者往往难以从海量书籍中找到自己感兴趣的书籍。这便形成了信息过载的问题。为了解决这个问题,需要开发一种能够根据读者的阅读历史和书籍特征来为读者提供个性化推荐的系统。同时,也能根据图书的基本数据信息进行可视化展示,便于读者在海量书籍数据中筛选书籍,过滤不感兴趣的书籍。

1 研究现状

1.1 个性化推荐算法

推荐系统是一种信息过滤系统,旨在通过对用户的行为进行分析,从而预测用户对某个项目(如商品、电影、文章等)的可能喜好程度,并向用户推荐他们可能感兴趣的项目,从而为用户的选择、决策提供参考依据。推荐系统最初主要用于电子商务领域,用于向消费者精准推送用户感兴趣的商品,从而刺激消费者的购买欲。随着推荐系统的发展,它们被广泛应用于各个领域,并出现了一系列支持此类推荐系统的算法。最常用的算法包括基于内容的过滤、协同过滤及混合推荐等算法。

Cai等人[1]提出一种基于知识挖掘的多目标优化推荐算法,该算法可以利用知识挖掘技术来提取用户和物品的知识,并将其用于多目标优化。Gutowski等人[2]介绍了一种新的算法组合Gorthaur-EXP3,旨在通过选择最佳算法来最大限度地提高全局准确性和多样性,从而平衡推荐算法中的准确性-多样性困境。Zeeshan 等人[3]提出了一种基于特征的多准则推荐系统,该系统结合了基于内容和协作过滤的方法来提供基于多准则的推荐。Dat等人[4]通过提出一种基于高斯混合模型的新推荐算法来提高概率推荐问题的准确性,从而解决了基于内容的推荐系统中的分布问题。赵等人[5]提出了一种统一、全面和高效的推荐算法框架RecBole。RecBole提供了一个统一的接口来开发和评估推荐算法,并支持多种流行的推荐算法,涵盖28个基准数据集和73个推荐模型的推荐系统库。

1.2 可视化技术

可视化技术是指将数据或信息转换为图形、图像或动画等可视形式的技术,以便人们可以更容易地理解和分析数据。可视化技术可以应用于许多领域,例如科学、工程、商业和教育。

可视化在图书推荐中的应用是近年来备受关注的一个话题。数据可视化已经应用于各个领域,包括书评和数据分析。在书评的背景下,可视化可以帮助读者理解复杂的数据集,并就阅读哪本书做出明智的决定[6]。有效的数据可视化技术,如策略性的颜色使用和斜率图,可以简化信息并提高理解。除了传统的书评,可视化技术也被用于其他领域,如音乐教育。例如,Denis Chang 的《爵士吉他Fretboard Visualiza?tion》一书使用视觉辅助工具来帮助吉他手理解音乐理论并提高他们的演奏技巧[7]。此外,可视化在数据分析和通信中的应用一直是数据科学领域的一个热门话题。《大局:如何使用数据可视化做出更好的决策》等书强调了使用视觉辅助工具解释数据和做出明智决策的重要性[8]。关于在可视化中使用以人为本的语言和深思熟虑的数据标签的建议强调了数据通信中伦理考虑的重要性[9]。总的来说,在图书推荐和其他领域使用可视化技术在提高理解、沟通和决策方面显示出了希望。

2 系统详细设计

2.1 系统架构设计

书籍推荐分析系统采用大数据技术和数据可视化技术来实现,整体架构设计如图1所示,主要包含数据采集、数据存储、数据处理和分析以及数据应用四个层次。系统采用Flask框架、ECharts可视化工具、Python 语言、jQuery、Bootstrap、JavaScript 等技术来完成书籍数据的可视化功能,使用Spark、机器学习来完成书籍推荐功能的实现,并且使用MySQL完成系统中数据的存储和管理。

2.2 系统功能模块设计

通过结合用户需求分析以及系统功能特点,系统主要由书籍数据自动爬取、书籍数据分析与可视化、书籍推荐等功能模块构成。

2.2.1 书籍数据自动获取与处理

在书籍推荐分析系统中,爬虫技术扮演着至关重要的角色,它是数据采集的核心环节。通过高效的爬虫技术,能够从豆瓣图书获取丰富的书籍信息,从而为用户提供更全面、准确的推荐服务。在书籍推荐分析系统中,主要从豆瓣图书的新书速递、热门一周榜、Top250等页面获取书籍数据。使用Python的Request 请求库和XPath语法来解析豆瓣图书的网页,并通过XPath语法获取图书的相关信息。在获取到书籍数据后,由于数据可能存在不规范的情况,需要对数据进行空值填补和重复值删除等处理。此外,利用Ajax传参和后端Flask接收参数的技术,实现了自动爬取和一键清洗数据的功能。

2.2.2 书籍数据分析与可视化

在系统中,利用Python的Pandas库以及其他相关库对书籍的各个字段进行深入分析,从而得出可供书籍可视化的数据。在前端页面展示部分,采用JavaS?cript和Bootstrap等技术来构建用户界面,同时在前端页面中嵌入ECharts,并进行了相关配置。在后端处理过程中,使用Flask模板将渲染结果传递到前端页面,并通过Jinja2将查询到的数据传递到前端页面,从而实现数据可视化。此外,利用Flask的相关函数实现系统的登录和注册功能。这样,用户可以通过注册自己的账户来访问和使用图书推荐系统。

2.2.3 书籍推荐功能

推荐功能采用ALS(Alternating Least Squares) 作为协同过滤算法,分别根据MySQL中的用户评分表和图书数据集计算用户图书推荐矩阵以及图书相似度矩阵。

1) 用户图书推荐矩阵。利用LFM(Latent FactorModel) 模型的训练结果,生成一个推荐矩阵。该矩阵包含当前用户对所有图书的预测评分。首先,通过将用户ID和图书ID进行笛卡尔积,得到所有可能的用户-图书组合(uid,bid) 的元组。接下来,利用已经训练好的ALS模型,对这些组合进行预测,得到相应的预测分值。通过对预测分值进行排序,获得一个有序的图书列表。最终,选择分值最高的前12个图书,将它们作为当前用户的推荐。LFM原理矩阵图如图2所示。

2) 图书相似度矩阵。通过应用ALS算法,从用户对图书的评分数据中学习图书的潜在特征,计算图书相似度矩阵。在相似度计算阶段,该系统采用余弦相似度作为度量标准,具体计算如公式(1) 所示。筛选并保留相似度较高的图书对,最终从相似图书中选取分值最高的前8个,作为当前图书的推荐结果。这种推荐方式不仅考虑了图书之间的相似性,也提供了更加个性化的用户体验。

3) 模型优化与调优。通过将原始数据集划分为训练集和测试集(比例为0.8∶0.2) ,使用Spark MLlib 库中的ALS对训练集进行训练,并对rank、iterations和lambda参数进行调优。其中,rank为模型隐语义因子的个数,iterations为迭代的次数,lambda是ALS的正则化参数。最终根据均方根误差RMSE(Root MeanSquare Error) 进行评估,选取最优参数。均方根误差计算公式如公式(2) 所示。

2.3 数据库设计

在书籍推荐分析系统中,数据存储是一个至关重要的环节。它不仅关乎数据的安全性,还直接影响到查询性能和系统的可扩展性。为了满足这些需求,本系统选择了MySQL作为数据存储载体。MySQL是一个广泛使用的关系型数据库,它提供了强大的数据存储、查询和导出功能。系统通过Python的PyMySQL库连接到MySQL数据库,并根据爬虫获取的图书数据来设计数据库及数据表,如图3所示。在数据表和字段的设计过程中,充分考虑了数据的结构和查询需求,从而确保数据的组织和查询效率。

3 系统主要功能模块实现

3.1 首页页面

首页可以看到系统的总体概况,展示了书籍的各种类型以及数量最多的书籍类型。同时,还特别展示了评分最高的书籍,这些都是读者们极力推荐的好书。此外,评论最多的书籍也在这里列出。在页面的下方,有两个图表。第一个图表清晰地展示了各种类型图书在图书推荐系统中的占比,可以一目了然地看出哪种类型的图书最丰富。第二个图表则展示了图书的评分分布,可以从中了解系统中的图书质量情况。首页界面如图4所示。

3.2 数据爬取页面

在数据爬取页面,有“爬取”和“清洗”两个功能,如图5所示。首先,在页面中间的输入框中,输入想要获取图书信息的网址;然后,点击“爬取”按钮,系统就会从网站上爬取最新的图书数据。数据爬取完成后,刷新页面,就可以在下方的展示列表中看到新获取的图书数据,这些数据会以表格的形式呈现出来。此外,由于新书刚刚上架,可能会有一些信息尚未完全填写,因此会出现空值。可以通过点击“清洗”按钮,系统会自动清理这些空值。再次刷新页面,就可以看到清洗后的图书数据。

3.3 图书地区和类型分析页面

这里是了解全球图书分布和类型的页面。在这个页面呈现了图书数量排行前五的国家的各类型图书的占比,可以一目了然地了解各个国家的图书类型分布情况。在页面的右上方,设置了一个搜索框,可以在这里输入感兴趣的国家。点击查询按钮后,图书推荐系统会立即将图书数据按照输入的国家进行分类,并以直观的方式呈现出来,如图6所示。

3.4 搜索推荐页面

在搜索推荐页面能够发现新书和探索相关书籍。在搜索框中输入感兴趣的图书名称,然后点击搜索按钮,系统会立即找到相关的图书,并在下方展示出这些图书的详细信息。除此之外,还呈现了一个独特的评分功能。在每本图书的信息下方,可以看到一个评分区域,用户可以在这里为图书打分。这个评分将会被系统记录,并作为“猜你喜欢”推荐算法的重要依据。在页面的最下方,提供了一系列的图书推荐。这些推荐是根据搜索的图书的特征,通过ALS算法精心挑选出来的,页面如图7、图8所示。

3.5 猜你喜欢页面

猜你喜欢页面是一个个性化推荐页面,它根据用户对书籍的评分为用户推荐关联性较大的书籍。页面如图9所示。

3.6 数据展示页面

在数据展示页面能够查看数据库中存储的图书数据,以清晰、直观的列表形式展示了图书数据。在页面的左边,可以自由设置页面显示的图书数据数量。此外,在每个图书信息的顶部提供了一个排序功能。只需点击相应的图标,就可以按照选择的项目对图书进行排序,从而更方便地找到需要的信息。页面如图10所示。

3.7 可视化大屏页面

通过点击登录页面上的可视化大屏展示连接,可以跳转到图书可视化页面。这个页面以滚动列表的形式展示了图书的详细数据。页面的中心是一个旋转的地球模型,生动地展示了系统中各个国家的图书数量。同时,页面下方列出了图书数量排名前十的国家。页面的左下角展示了各类别图书占比数据,能清楚地看到小说和历史文化两种类型占比较大。页面如图11所示。

4 总结

基于大数据的书籍推荐分析系统采用大数据技术、数据可视化和人工智能技术相结合,采集、处理、分析和展示豆瓣图书信息,通过多维度角度来分析当前市面上的新书、畅销书等,并采用ALS协同过滤算法实现书籍推荐,帮助读者推荐感兴趣的书籍,辅助读者选择自己喜欢的书籍。该系统实现了书籍数据自动采集、一键数据清洗、数据分析和处理、书籍推荐、数据多元化大屏展示等功能。通过深度分析读者的阅读行为,系统能够为每位读者实现量身定制的推荐,使其能够更好地融入个性化的阅读世界中。这不仅提高了用户的阅读满足感,也为用户提供了更加精准、个性化的阅读推荐服务。

参考文献:

[1] CAI X J,HU Z M,CHEN J J.A many-objective optimization rec?ommendation algorithm based on knowledge mining[J].Informa?tion Sciences,2020(537):148-161.

[2] GUTOWSKI N,AMGHAR T,CAMP O,et al.Gorthaur-EXP3:bandit-based selection from a portfolio of recommendation al?gorithms balancing the accuracy-diversity dilemma[J].Informa?tion Sciences,2021(546):378-396.

[3] ZEESHAN Z, UL AIN Q, BHATTI U A, et al. Feature-based multi-criteria recommendation system using a weighted ap?proach with ranking correlation[J]. Intelligent Data Analysis,2021,25(4):1013-1029.

[4] VAN DAT N,VAN TOAN P,THANH T M.Solving distribution problems in content-based recommendation system with Gauss?ian mixture model[J]. Applied Intelligence, 2022, 52(2): 1602-1614.

[5] ZHAO W X,MU S L, HOU Y P,et al.RecBole:Towards A Uni?fied, Comprehensive and Efficient Framework for Recommen?dation Algorithms[C].CIKM,2021.

[6] EVERGREEN S.Data Visualization Book Reviews[M].London:Routledge,2023.

[7] CHANG D.Jazz Guitar Fretboard Visualization[M].Chicago:Hal Leonard,2017.

[8] WEXLER S.The Big Picture: How to Use Data Visualization to Make Better Decisions―Faster[M].O'Reilly Media,2021.

[9] URBAN INSTITUTE. Do No Harm Guide: Applying Equity Awareness in Data Visualization[EB/OL].[2024-01-05].https://www. urban. org/research/publication/do-no-harm-guideapplying-equity-awareness-data-visualization.

【通联编辑:谢媛媛】

基金项目:南通市基础科学研究和社会民生科技计划项目(2022)( 项目编号:JCZ2022083)