基于XGBoost的图书馆混合推荐模型研究与应用
2022-03-18王日花
王日花
关键词:图书馆;混合推荐;XGBoost;模型;信息推送
摘 要:随着信息技术的发展,图书馆传统的推荐方式难以满足广大读者的个性化需求,单一的推荐算法在海量数据处理面前的缺陷也愈发明显,协同过滤是解决图书推荐问题的重要方法。文章分析了基于用户和基于物品的两种协调过滤算法,借助XGBoost梯度树状开源框架对协同过滤结果持续优化,提出了一种融合用户和物品的混合推荐模型,并利用中国传媒大学图书馆的借阅数据进行了仿真实验,与单一基于用户的协调过滤算法对比,混合推荐模型提升了推荐的精准率、召回率和F1值,验证了推荐模型的有效性。
中图分类号:G250文献标识码:A文章编号:1003-1588(2022)01-0104-05
图书馆是高校教学和科研的重要服务部门,在中国传媒大学“双一流”建设大背景下,如何发挥图书馆的作用,是摆在图书馆员面前的重要职责。移动互联网和信息技术的飞速发展,倒逼图书馆要本着一切为用户服务的宗旨,以建设智慧图书馆为创新改革目标,强化特色服务,拓展新兴业态,全面构建公共文化服务体系创新平台。
图书推荐是图书馆运营和管理水平的服务评价内容之一,现行的推荐更多是基于流行度的推荐,即将最热的TOP N图书广而告之,不能体现千人千面的精准推荐,制约着图书馆的创新发展。协同过滤的推荐方法是主流的模式,被广泛应用于各个行业,具有可实施性。
笔者基于用户和基于物品的两种单一协调过滤算法,借助XGBoost这一优化的分布式梯度增强库,分析用户和物品的两维度信息进行选型,提出了一种图书馆混合推荐模型,对中国传媒大学图书馆2019年1月到2021年5月的图书借阅等流通原始数据进行分析,相对于仅基于用户的单一协同过滤算法,仿真数据表明笔者提出的混合模型提升了推荐性能,具有实现灵活和便捷的特点,可在图书馆领域实施推广。
1 图书馆推荐算法概述
推荐算法起源于20世纪90年代,随着互联网、大数据和人工智能技术的演进,推荐算法的应用范围越来越广泛[1]。推荐算法伴随搜索引擎的迭代升级,通过关键词可以找到用户想要的资源。但是,当用户都不清楚自己的需求时,推荐算法就有了用武之地。推荐算法分为基于流行度的、基于内容的、基于关联规则的[2]、基于协同过滤的、基于模型的和混合的推荐算法等。
其中,基于流行度相对简单,即通过统计周期内物品的浏览或借阅次数,将TOP N的图书及时推送给用户,没有考虑用户的个性化需求。基于内容的协同过滤是最初的常用推荐机制,即采集内容的元数据,将与内容相关的物品推荐给用户,这种方法避免了稀疏性和冷启动等问题,但存在内容重复推送的问题。基于关联规则的推荐模式起源于Apriori和FP-Growth算法,如梳理那些常被大多數用户购买的物品合集,在合集内进行互相推荐,缺点是计算量大、效率不高。基于此,混合推荐算法汲取了各种算法的优势,更具实际操作条件,逐渐被国内外的研究者广泛关注[3]。
2 图书馆协同过滤推荐模型对比分析
协同过滤的推荐算法从字面意义上理解是在协同下完成推荐的过程,是“物以类聚、人以群分”的思想在算法上的体现[4],从用户和物品两个方面,包括基于用户的协同过滤(User-based Collaborative Filtering)和基于物品的协同过滤(Item-based Collaborative Filtering)两种。
基于用户的协同过滤主要考虑用户的喜好,以用户为中心,忽略物品本身的属性;将用户对每个物品的喜好建立向量,并计算不同用户之间的欧几里得距离,距离相近的用户即是邻居用户;收集单个用户的喜好,将这些邻居用户喜好的物品汇总排序,并将靠前的物品推荐给邻居用户中其他人。基于用户的协同过滤为目标用户寻找与他相似度较高的近邻用户,并按照这些近邻用户的购买记录推测出目标用户可能喜欢的物品合集[5]。与之相仿,基于物品的协同是采集用户对物品的喜好,建立用户偏好行为类型,是以物品而非以用户为中心,物品与不同用户之间组成向量;用欧几里得公式计算出不同物品向量之间的距离,在一定阈值范围内的物品为相似物品,可以推荐给用户。
就适用场景而言,基于用户的协同过滤算法主要考虑相似度矩阵的计算成本,适合用户数较少的场景,时效性较强,抗数据稀疏度能力和可扩展性强。基于物品的协同过滤算法适合物品数较少的情况,容易发现新的喜好点,推荐的精准率相对高。就冷启动来说,对于新用户没有物品喜好的记录,或对于新物品没有用户使用信息,均不适用协同过滤算法,需要当用户和物品的交互数据量达到一定值时,才可以进行推进。因此,适时地总结基于用户[6]的和基于物品的协同过滤推荐方法的性能,提出混合模型的设计思路,即根据用户和物品的数据量,灵活进行融合推荐算法选型,取长补短,充分发挥两种算法的优势,可在一定程度上增强推荐效果。
3 基于XGBoost的图书馆混合推荐模型构建
3.1 XGBoost原理介绍
XGBoost是一种集成的学习加法模型,其模型一般选择树模型,也可选择逻辑回归模型等,是一种优化了的分布式梯度增强库,具有实现高效灵活的特点。XGBoost还是一种机器学习算法,在Gradient Boosting框架下实现,广泛应用于大数据和人工智能的生产领域。XGBoost具有良好的可扩展性,在常用的分布式环境中部署,如Hadoop等,可以用来处理海量数据。研究表明,相较于传统的推荐算法,XGBoost在防止过拟合、支持并行化、克服数据稀疏性、交叉验证等方面都有明显的性能提升,同时会降低系统的响应时间。笔者利用XGBoost的上述技术特点,融合基于用户的和基于物品的协同过滤推荐算法,提出了一种混合型的图书馆推荐算法模型。
3.2 基于XGBoost的混合推荐模型构建
构建基于XGBoost的图书馆混合推荐模型的核心在于模型选择和优化,即如何根据数据源的实际进行不同的选型,模型构建见下页图1。如果用户数远小于物品数,就采用基于用户的协同过滤算法得到候选集A,对候选集A进行XGBoost再优化处理得到TOP N推荐列表。如果用户数和物品数相当,就分别采用基于用户和基于物品的协同过滤算法得到候选集A和B,将候选集A和B混在一起进行XGBoost处理得到结果。如果物品数远小于用户数,就采用基于物品的协同过滤算法得到候选集B,对候选集B进行XGBoost处理得到推荐列表。当然,上述三种选型模式均离不开数据前后处理的支撑,包括前期需要对数据进行去重、去噪等预处理,统计分析建立大宽表等;过程中得到的候选集也需要经过融合和过滤等处理得到推荐的结果TOP N。
传统的协同过滤算法产生的TOP N列表主要利用隐性反馈得出,并未依赖评分数据(读过是1、否则是0),这就使两种算法的组合候选集没有顺序之分,不能区别哪些图书更有可能被用户喜欢。笔者提出的混合推荐模型融合基于用户的和基于物品的两种协同过滤算法的推荐结果,得到候选总集,通过评分预测模型对候选总集进行排序,而不是单独依赖用户的评分,使混合模型给出的推荐结果TOP N更能体现用户和物品两方面的信息,更接近用户的真实推荐需求,后面的仿真也验证了笔者提出的算法有更好的表现。
综上,单一算法在推荐上一般会缺乏稳定度和精度,因此,主流的研究倾向于把多个算法结合起来,即混合推荐算法。基于XGBoost的混合推荐从用户和物品两个方面考量,更接近用户的真实期望,容错性更高。混合模型使数据在到达一定规模时,依然保证推荐效果,并缓解了数据稀疏性问题。此外,该模型依靠用户的评分数据进行过滤融合,提升了训练速度和效率[7]。
4 计算机仿真与实验分析
4.1 數据源和仿真工具
笔者的算法测试实验数据采用中国传媒大学图书馆借还记录,包含2019年1月到2021年5月的真实借阅和流通数据,选取借阅次数≥8的用户,约占总用户74.3%,取其最后5次记录作为测试数据,其余数据作为训练数据。对借阅次数适当的限制,使用户借阅的数据特征相对充分,更有利于刻画用户偏好特征。
实验场景设置根据数据源的数量和分类等统计信息,选用合适的技术框架,将图书馆的借阅记录数据、书籍详细信息数据以及用户详细信息数据进行关联匹配,形成多维度借阅记录数据,融合构建所用数据集。实验涉及的协同过滤和相关XGBoost算法的实现均采用Python编程语言,评分预测模型借助基于XGBoost框架实现。
4.2 性能评价指标
推荐模型的衡量指标选取精确率、召回率和F1值。精确率和召回率分别从不同角度衡量了分类准确度,精确率(Precision,P)指的是查准率,代表的是真实发生的用户借阅记录在最终N个推荐结果占了多少比例,即真正正确的占所有预测为正的比例;召回率(Recall,R)也称查全率,召回率代表最终N个推荐结果中有多少比例来自真实发生的用户借阅记录,即真正正确的占所有实际为正的比例。F1值(F1-Measure,F1)是综合评价指标,可以被看作是模型精准率和召回率的加权平均,且F1值越大表明模型的性能越好。
精确率、召回率和F1值的数学定义如下:
P=AA+B(1)
R=AA+C(2)
F1=2·P·RP+R(3)
其中,A代表推荐的结果中真实发生借阅行为的数,B代表推荐的结果中没有发生借阅行为的数,C代表被借阅了而没有被本模型推荐的数。
4.3 基于用户的协同过滤算法实验分析
基于用户的协同过滤算法是对比算法,本实验考察隐含特征维度M和邻居数量K对基于用户的协同过滤算法性能的影响,并根据结果选择最佳的参数。使用召回率、精准率和F1值三个评价标准对实验结果进行评估,不同K值和不同隐含特征维度M下的基于用户的协同过滤算法表现实验结果见下页图2、图3。
在隐含特征维度M分别选取80、110、140、170、200的情况下,邻居数量K分别选取5、10、20、40、80,经统计实验结果得出结论;基于用户的协同过滤算法与隐含特征维度M、邻居数量K均表现出强相关性,即在实验范围内隐含特征维度M和邻居数量K对协同过滤算法的性能评价指标精准率、召回率和F1值基本呈正相关。
4.4 基于XGBoost的混合推荐模型的仿真分析
本实验主要选择最优的参数训练XGBoost混合模型,XGBoost混合模型存在多种参数,其中较重要的四个参数和数值选取原则如下:树的最大深度max_depth,数值过大会产生过拟合现象,太小就会发生欠拟合;学习率learning_rate数值过大会造成无法收敛,过小不能体现全局最优;叶子节点中最小的样本权重和min_child_weight,树的拟合程度指标是回归模型中叶子最小样本节点数;迭代计算次数num_round也就是生成多少基模型。
四个参数的优化顺序本着先全局后局部的基调,影响局部的参数不是有限优化的目标。首先,在学习速率learning_rate较高的情况下,确定相对应迭代计算次数num_round,这是宏观上影响较大的两个参数;其次,优化另外两个比较重要的参数max_depth(一般取值为3~10)和min_child_weight(一般取值为1~6),使用grid search选取最优的两个值;再次,选取的学习率learning_rate的值为0.01,num_round的值为1,200,max_depth的值为3,min_child_weight的值为4。
笔者采用Tf-Idf方法对实验对象进行向量化,提取隐含特征向量,其中ngram_range为(2,2),即要提取的n-gram的长度为2,max_df为0.5,表示使用最多50%的数据进行向量构建;min_df为10,即忽略出现次数少于10的特征。
选取邻居数K为5,隐含特征维度M选取200,仿真得出本文提出模型的精准率、召回率和F1值,F1值相对于基于用户的协同过滤算法提升了17.7%。选取邻居数K为10,隐含特征维度M选取200,仿真得出笔者提出模型的精准率、召回率和F1值,F1值相对于基于用户的协同过滤算法提升了15.7%。对比分析发现,笔者提出的基于XGboost的混合模型相对于基于用户的协同过算法,F1值有提升,说明了模型的有效性。仿真数据来源于中国传媒大学图书馆近两年半真实的借阅数据,数据量受限,在一定程度上影响效果的表现;如果增加数据量,会使仿真值更有实操意义。性能对比见表1。
5 结语与展望
笔者分析中国传媒大学图书馆近两年半的真实借阅数据,提出了一种基于XGBoost的图书馆混合推荐模型,可以在图书借阅管理、内容阅读推荐等场景中推广应用。展望未来,云计算、5G和智能化等新型产业成为国家新基建的重要内容,图书馆领域需要融合行业的技术积累提升服务水平,图书推荐离真正意义上的“千人千面”还有距离。
鉴于模型使用的数据来源相对单一,后续研究可将电子资源使用信息、用户的其他个性化行为数据等进行录入和统计,拓展提出模型的数据源广度和深度;可以将时间衰减因子、用户收藏和购买偏好等一并考虑进去,也可将多模态信息用于推荐模型,在用户行为序列预测等方面优化提出的模型。图书馆要通过对模型推荐算法领域的深挖,利用好机器学习、深度学习等最新成果,扩展模型的应用范围,提升用户感知。此外,图书馆应及时将推荐的算法应用于生产,图书馆员对模型的使用情况及时进行评价反馈,如考虑用户的喜好会随着时空改变等因素,不断进行模型演进,赋能智慧图书馆建设。
参考文献:
[1] 秦川,祝恒书,庄福振,等.基于知识图谱的推荐系统研究综述[J].中国科学,2020(7):937-956.
[2] 楊恒,王思丽,祝忠明,等.基于并行协同过滤算法的领域知识推荐模型研究[J].数据分析与知识发现,2020(6):15-21.
[3] 李铁军,颜端武,杨雄飞.基于情感加权关联规则的微博推荐研究[J].数据分析与知识发现,2020(4):27-33.
[4] 梁思怡,彭星亮,秦斌,等.时间上下文优化的协同过滤图书推荐[J].图书馆论坛,2021(3):113-121.
[5] 刘军军.用户协同过滤个性化图书推荐算法的改进与实现[J].图书情报导刊,2021(1):38-42.
[6] 李丹,高建忠.基于用户画像的图书馆推荐服务初探[J].图书馆,2019(7):66-71.
[7] 何婧,胡杰.融合矩阵分解和XGBoost的个性化推荐算法[J].重庆大学学报,2021(1):78-87.
(编校:崔萌)
1328501705314