第13卷第2期                 吕梁学院学报2023年4月Vol.13No.2                Journal of Lyuliang University
Apr.2023
·应用实践研究·收稿日期:2023⁃01⁃20
基金项目:山西省基础研究计划项目(20210302124330),忻州师范学院五台山文化生态研究院项目(2020133101)
第一作者简介:张 静(1978-),女,山东寿光人,讲师,研究方向为计算机视觉、深度学习、计算机应用技术.
基于小程序的图书推荐系统的设计与实现
张 静,胡宁玉,郝耀军,杨 铭
(忻州师范学院计算机系,山西忻州034000)
摘 要:针对数据存储技术的飞速发展导致信息过载,使得用户无法在短时间内快速、准确、有效地获取图书
有用信息和资源的问题,鉴于小程序使用的便捷性,本文利用基于项目的协同过滤推荐算法,设计并开发了一款基于小程序的图书推荐系统.该系统通过结合读者选择专业以及读者浏览历史,对图书种类及书目进行推荐,能有效节省读者搜索时间,进行个性化推荐图书信息资源.
关键词:协同过滤;图书推荐;小程序
中图分类号:TP317   文献标识码:A   文章编号:2095-185X(2023)02-0051-05
0 引言随着网络技术的发展以及移动应用的逐步普及,网络信息资源的浏览、获取变得更为便捷,这一变化正在改变着人们的生活方式,也在影响着人们的阅读习惯,手机阅读已逐渐成为人们一种新的习惯.人们可以浏览到的图书数量迅猛增长,如何让用户从浩如烟海的图书资源中到符合其需求的资源,成了目前系统开发者和研究者关注的问题之一.以搜索引擎为代表的信息检索技术和以推荐系统为代表的信息过滤技术是两类非常有潜力被人们用来解决信息过载问题的办法.搜索是一种主动化的行为,用户使用搜索引擎提供的结果具有同质化,同时个性化操作的空间是相对较小的,容易浪费用户时间精力且得不到想要的结果等问题.而推荐系统的优势远超搜索引擎,用户是被动化接受可能需要的信息,其核心是高精度的推荐算法,当前比较经典并应用较为广泛的算法是协同过滤算法.推荐系统[1]是缓解信息过载[2]问题的一种方法,可以有效地对信息进行过滤和筛选,在海量数据中到符合用户需求的信息资源以主动的方式提供给用户,而不是通过用户搜索获取信息,能够满足用户个性化需求.
基于平台开发的小程序以即用即走、方便快捷等优势,正在得到更多的应用用户和开发者的青睐.因此,设计并实现一个基于小程序的图书推荐系统,有着重要的实用价值.本系统旨在为用户提供高效、便利的阅读平台.系统通过用户的兴趣爱好选择以及阅读图书浏览记录的历史行为,为用户提供快速、准确的图书推荐的个性化推荐图书,提高用户的阅读兴趣,同时降低了图书成本,减少了资源的消耗及浪费,做到了真正的环保低碳.1 协同过滤推荐算法1.1 算法介绍协同过滤算法[3-4]基本思想是从用户(User)的历史行为数据中挖掘出使用者的喜好,根据不同的喜好向使用者推荐相似的物品.主要可分为两类:基于用户的协同过滤(User⁃based Collaborative Filtering)和基于项目的协同过滤[5-6](Item⁃based Collaborative Filtering),Use⁃based CF 是根据用户历史行为计算用户之间的相似度,为用户推荐与其喜好相同用户所喜欢的物品,如图1所示;Item⁃based CF 是根据用户历史行为计算物品之间的相似度,为用户推荐与其之前喜欢物品相类似的物品,如图2所示.这两类算法都需要构建的用
15
户和项目的二元矩阵,矩阵用来表示用户对项目的喜好程度,通过协同用户与项目的二元矩阵数据预测用户对其他项目的喜好程度构成推荐矩阵写文章的小程序
.图1 
基于用户的协同过滤推荐图2 基于项目的协同过滤推荐
  推荐过程主要依赖于相似度的计算,常用的几种计算方法有:
(1)皮尔森(Pearson)相关系数:用来衡量两个数据集合是否在一条线上面,可以反映两个变量线性相关程度,针对非线性数据会有误差.两组量相似性可表示为公式(1).
sim x ,y ()=∑x ?I ij R i ,x (-R I -)(R j ,x -R J -) 
∑x ?I ij (R i ,x -R I -)2 ∑x ?I ij (R j ,x -R j -)2(1)  其中,I ij 表示两个用户有过共同评分的项目,R i ,x 和R j ,x 分别表示用户对项目x 的评分,R I -和R J -分别表示用户评分的平均值.
(2)余弦相似度:用向量空间中两个向量夹角的余弦值度量两个个体间差异的大小.相似度公式可表示
为(2).sim x ,y ()=∑n i =1R x ,i R y ,i 
∑n i =1R 2x ,i  ∑n i =1R 2y ,i (2)  其中,R x ,i 和
R y ,i ,分别表示用户x 和用户y i .
(3)杰卡德(Jaccard)相似系数:通过计算两个集合A 和B 交集元素的个数在A 、B 并集中所占的比例来衡量两个集合相似度的一种指标.相似度公式可表示为(3).
sim i ,j ()=(3)  其中,N (i ),N (j )分别表示用户i 和用户j 根据实际情况,本系统采用余弦相似度计算物品间的相似性从而实现个性化推荐.
1.2 算法过程协同过滤主要根据用户的现有评分为用户推荐项目.要分为以下两步[7]:
(1)根据用户历史行为的评价数据以及行为在推荐过程中所占比重及评分,构造系统整个空间的二维矩阵及评分矩阵R.矩阵列为用户U ,行为项目或物品I ,交叉对应的值为用户对某项目的评分,评分根据推荐比重以及行为次数得到,如果用户未对项目评分则项目值设为0;(2)使用评分矩阵R ,计算物品之间的相似度矩阵S ;(3)计算评分矩阵R 与相似度矩阵S 的乘积,得出推荐矩阵;
(4)对已经推荐过或者进行过历史操作的物品进行过滤,选出用户可能喜欢的N 个项目做出推荐.
25
1.3 算法实例
1.3.1 评分矩阵
实例根据用户选择专业与浏览历史为用户推荐图书定义用户行为权重,专业兴趣标注分类权重60%,最近浏览分类权重20%,最多浏览分类权重20%.当前用户A、B、C对6本书籍的评分,根据用户选择
专业以及浏览历史行为计算用户-物品的评分矩阵如表1所示.例如:用户A浏览过图书1、4、5,图书2为其标注所选专业书籍.
1.3.2 相似度矩阵
根据用户-物品评分矩阵R,采用余弦相似度方法来计算物品间的相似性,物品-物品的余弦相似度矩阵,如表2所示.
表1 用户-物品评分矩阵R
图书A B C 12.002.0 26.02.00 3008.0 42.002.0 502.00 62.02.00
表2 物品-物品相似度矩阵S
图书123456 110.670.71100.5 20.67100.670.320.89 30.71010.7100.5 410.670.71100.5 500.320010.71 60.50.8900.50.711
1.3.3 推荐矩阵
根据用户的历史行为可以确定该用户阅读的书籍,再通过书籍之间的相似度确定用户未浏览过的书,
哪些有可能成为用户需要的书,从而进行推荐.计算用户-物品评分矩阵R与物品-物品的相似度矩阵S的乘积得到推荐矩阵,如表3所示.
1.3.4 过滤推荐矩阵
推荐矩阵对比评分矩阵,对已经进行过推荐的物品进行过滤,设置用户已经浏览、查看等行为的元素为
0,如表4所示.
表3 推荐矩阵
图书A B C
19.02.349.66
210.474.422.68
32.82010.82
49.022.349.66
53.314.050
69.375.22
表4 过滤推荐矩阵
图书A B C 102.340 2002.68 32.8200 402.340 53.3100 600
2
图3 小程序MINA框架示意图
系统将给用户推荐与其之前喜欢物品相似的物品,例
如:给A用户推荐图书5和3,如果数目过多可以按评分高
低排序,选择排序前N的图书.
2 图书推荐系统的设计与实现
2.1 系统框架
小程序开发框架为开发者提供简单、高效的方式在微
信中开发具有原生APP体验的服务.MINA框架是一款轻
巧的渐进式小程序框架,框架分为两部分:视图层
(View)、逻辑层(App Service)、层间的数据传输和事件系
统[8].框架提供视图层语言WXML和WXSS,以及基于
JavaScript的逻辑层.框架示意图如图3所示,第一部分为
页面视图层,其中用WXML文件搭建页面的基本视图结
构,用WXSS文件控制页面的表样式;第二部分为App
35
Service 应用逻辑层,该层提供页面渲染所需数据,实现页面交互处理逻辑,即实现数据管理、网络通信、生命周期管理和页面路由.2.2 业务流程设计系统分为小程序客户端和后台管理系统,用户登录客户端可以向用户实现个性化图书推荐,点击图书可阅读图书内容,图书分类页面可以进行图书检索、查看每个专业全部图书,图书书架页面可以查看用户加入书架的图书列表,在我的页面用户可以看到最新的一条浏览记录、可以修改注册时选择的专业兴趣标注、可以退出账号登录;后台管理系统可以实现专业管理、书籍管理以及用户管理.业务处理流程如图4所示
.图4 业务处理流程图
2.3 系统的实现系统采用Item -based CF 对用户进行图书的个性化推荐,基本思想是预先根据用户的历史偏好数据计算图书之间的相似性,把与用户喜欢的图书相类似的图书推荐给用户,若无历史数据则按用户注册是所选专业进行随机推荐,评分以用户的浏览记录以及选择的专业兴趣标注为基础进行图书推荐.
系统在开发者工具中采用原生框架MINA 进行前端开发,以Nginx +MySQL +PHP 为后台框架提供服务支持.用户登录后可选择兴趣专业如图6所示,第一次登录将进行随机推荐,二次登录后根据兴趣专业以及浏览书目进行推荐如图6所示,系统内图书根据专业创建不同类别图书,如图7所示,系统为每个用户创建个人书架,可将用户阅读书目加入书架方便以后阅读,如图8所示
.
图5 
专业兴趣标注图6 
图书推荐图7 
图书分类图8 个人书架3 结束语本文设计并实现了基于小程序的图书推荐系统,在本设计中利用了协同过滤技术进行推荐.推荐信息结合了用户的历史浏览行为,并通过兴趣专业选择一定程度上解决了冷启动问题,得到个性化推荐结果.在小程序中进行阅读,易用又方便,加入推荐功能更能提高用户阅读兴趣,从而有效提高全民阅读率.系45
统将可以从两方面进行提高:1)细化评分矩阵,提取更多能体现用户兴趣的特征作为评分项,目前特征提取还是用人工标注的方法,可以用深度学习提取特征对系统进行改进;2)随着系统应用推广读者用户数据以及图书数据都会迅速增长,若系统读者用户评价量不足就会使得用户评价矩阵出现稀疏性进而影响推荐效果.下一步将会采用矩阵分解[9]技术,分解用户-项目评分矩阵降为两个低秩矩阵,利用分解后的矩阵进行进一步的预测.
参考文献院
[1]于蒙,何文涛,周绪川,等.推荐系统综述[J/OL].计算机应用,2022(6).
[2]刘君良,李晓光.个性化推荐系统技术进展[J].计算机科学,2020(7).
[3]Sarwar B,Karypis G,Konstan J,et al.Analysis of recommendation algorithms for e⁃commerce[C]∥Proceedings of the2nd ACM Conference on Electronic Commerce,ACM,2000.
[4]赵俊逸,庄福振,敖翔,何清,蒋慧琴,马岭.协同过滤推荐系统综述[J].信息安全学报,2021(5).
[5]杨震,司书勇,李超阳.基于用户隐式兴趣模型的信息推荐[J].山东大学学报(理学版),2017(1).
[6]高斐,陈德礼,严涛.利用内容推荐和协同过滤算法实现个性化评估[J].安徽大学学报(自然科学版),2022(2).
[7]王亮.基于协同过滤技术的电子商务个性化系统研究[D].上海:华东师范大学,2008.
[8]吕清婷.基于小程序在测绘项目管理上的应用[J].现代测绘,2021(6).
[9]东苗,王启宗.基于矩阵分解和层次聚类的协同过滤推荐算法[J].电子技术与软件工程,2020(17).
Design and Implementation of Book Recommendation System Based
on WeChat Mini Programs
ZHANG Jing,HU Ning⁃yu,HAO Yao⁃jun,YANG Ming
(Department of Computer Science,Xinzhou Normal University,Xinzhou Shanxi034000,China)
Abstract:In view of the information overload caused by the rapid development of data storage technology,users are unable to obtain the useful information and resources of books quickly,accurately,and effectively in a short time.In view of the convenience of using WeChat Mini Programs,this paper uses the Item⁃based Collaborative Filtering Rec⁃ommendation Algorithm to design and develop a book recommendation system based on WeChat Mini Programs.The system can effectively save readers’search time and recommend personalized book information resources by combi⁃ning readers’choice of majors and readers’browsing history to recommend book types and bibliographies. Key words:collaborative filtering;book recommendation;WeChat Mini Programs
55

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。