APP下载

基于Boosting框架的推荐系统架构与优化

2020-08-03刘彦伯温雪岩徐克生于鸣

现代电子技术 2020年8期
关键词:系统架构推荐系统系统优化

刘彦伯 温雪岩 徐克生 于鸣

摘  要: 现如今推荐算法已得到广泛应用,但大多数推荐算法均存在各自的局限性。针对这一问题,提出一种基于Boosting框架的推荐系统架构,以多种基本推荐算法为基础,集成一个强推荐系统。将基于Boosting的推荐系统,在MovieLens 100K中进行测试。测试与分析结果表明,该系统测试结果显示Precision达到39.44%,比原来提高8.63%。因此,集成的推荐系统能够有效提升推荐效果,为用户提供良好的用户体验。

关键词: 推荐系统; 系统架构; 系统优化; Boosting框架; 系统集成; 系统测试

中图分类号: TN911?34; TP391                   文献标识码: A                      文章编号: 1004?373X(2020)08?0019?03

Architecture and optimization of recommendation system based on Boosting framework

LIU Yanbo1, WEN Xueyan1, XU Kesheng2, YU Ming1

(1. School of Information and Computer Engineering, Northeast Forestry University, Harbin 150040, China;

2. Harbin Institute of Forestry Machinery, State Forestry Administration, Harbin 150086, China)

Abstract: Nowadays, the recommendation algorithms have been widely used in various fields, but most of them have their own limitations. A recommendation system architecture based on Boosting framework is proposed to solve this problem, by which a strong recommendation system is integrated on the basis of a variety of basic recommendation algorithms. The Boosting?based recommendation system is tested in MovieLens 100K. The testing and analysis results show that the precision of the system reaches 39.44%, which is 8.63% higher than that of the original system. Therefore, the integrated recommendation system can effectively improve the recommendation effect and provide users with a good experience.

Keywords: recommendation system; system architecture; system optimization; Boosting framework; system integration; system testing

0  引  言

随着网络的发展与信息时代的来临,网络上各类的信息数据逐渐扩大。面对大幅增长的信息,用户通常不清楚自身所需的信息是否存在或如何获取信息。且用户难以从中选出实际有用的信息,从而出现信息超载问题[1]。为此,各学者提出了推荐系统,其可根据用户的信息,如以往的消费记录、爱好等,将用户感兴趣的商品或新闻推荐给用户[2?3]。

推荐系统现已广泛应用于较多领域[4],但各种推荐系统均存在不同的问题。例如,基于ItemCF[5]的推荐系统,只分析了该用户以往感兴趣或相似的商品,而并不能显式地得到其他用户的判断情况;而基于UserCF[6]的推荐系统,则依赖于和该用户兴趣相似的其他用户喜好[7]。为更加全面地分析用户的喜好,并进一步提升用户满意度与推荐效果。本文引入Boosting算法的思想,其主要是将多个分类器组合在一起,构成一个分类效果更强的分类器[8]。文中指在基于UserCF算法的推荐与时间上下文的推荐[9?10]为基础,提出一种基于Boosting的推荐系统架构。

1  基于Boosting框架的推荐系统

基于Boosting框架的推荐系统是将较多基本推荐系统相集成,形成一个效果优良的推荐系统。在本文中,将采用基于ItemCF算法的推荐、UserCF算法的推荐和时间上下文的推荐作为基本推荐系统,如图1所示。

1.1  基本推荐算法

在本节中,将依次介绍集成的推荐系统中3个基本推荐算法:基于ItemCF的推荐、基于UserCF的推荐和基于时间上下文的推荐。

1.1.1  基于ItemCF的推荐

ItemCF的核心思想是,给用户推荐其过去消费商品的相似商品。基于ItemCF的推荐算法主要分为两个步骤:

1) 计算商品之间的相似度

用户感兴趣的商品通常局限于某几个类别,在同一用户消费清单上的不同商品,一般认为其位于有限的商品类别中;在不同用户消费清单上的相同商品,一般认为其属于同类别的商品。因此,有较大的相似度。商品之间的相似度计算公式为:

式中:[Wi,j]表示商品i和j之间的相似度;[Ni]表示喜欢商品i的用户集合;[Ni]表示喜欢商品i的用户个数。

2) 计算用户U对一个商品的兴趣

利用式(2)计算用户对商品的兴趣。

式中:[Pu,j]表示用户u对商品j的兴趣;Sj,k表示和商品j相似度较高的前k个商品;Nu表示用户u消费过的商品;ru,i表示用户u对商品i的评分。

1.1.2  基于UserCF的推荐

UserCF的核心思想是,具有相同爱好的用户可能会喜欢同样的商品。因此,将与当前用户有相同爱好的其他用户消费过的商品推荐给他。基于UserCF的推荐算法主要包括两个步骤:

1) 找到与目标用户具有相同喜好的用户集合

不同的用户相同的消费产品越多,则说明这些用户的兴趣爱好越相似。UserCF就是利用这种用户行为的相似性来计算兴趣相似度,计算公式为:

在UserCF算法中,[Wu,v]表示用户u和用户v的相似度;Nu表示用户u消费过商品的集合;Nv表示用户v消费过商品的个数。

2) 找到用户集合中其他用户消费过,但当前用户没有消费过的商品

给用户推荐与其具有相同喜好的K个用户消费过的商品,首先找到K个用户喜欢而用户没有消费过的商品,计算用户对这种商品的感兴趣程度并进行排序。然后,给用户推荐兴趣程度较高的几种商品。用户对某种商品的兴趣程度计算公式为:

式中:[Pu,i]表示用户u对商品i的感兴趣程度;Ni表示过去消费过商品i的用户;rv,i表示用户v对商品i的评分。

1.1.3  基于时间上下文的推荐

以上算法均未考虑时间因素,从而对推荐系统的准确率有一定影响。在得到用户消费的时间信息后,其可改进相似度计算,如下:

式中:[Tui]表示用戶u在时间[Tui]中消费过商品i;α表示时间衰减参数,其取值随系统用户兴趣的变化而变化,变化越快,取值越大,反之亦然。

时间信息不仅会影响相关表的计算,也会对推荐结果产生影响。用户当前消费的商品通常与最近该用户的消费相关,计算公式为:

式中,[T0]表示当前时间。

1.2  集成的推荐系统

XGBoost算法是当前最流行的集成算法之一,本文采用XGBoost算法框架构建集成推荐系统。

1.2.1  XGBoost算法

XGBoost算法主要是通过构建多个随机树提高预测效果。

XGBoost的预测模型为:

式中:K表示构建的随机树总个数;[fk(xi)]表示第k棵随机树,在本文中表示第k个基本推荐系统;[yi]表示推荐商品列表。

损失函数为:

式中:i表示样本;[lyi,yi]表示样本i的预测误差,误差越小越优;[Ωfk]表示树的复杂度,泛化能力的强弱与复杂度高低呈负相关。

1.2.2  基于XGBoost的推荐系统

XGBoost算法属于Boosting算法,其本质是将多个分类效果一般的分类器组合成一个分类效果较强的分类器。

推荐系统主要是将用户感兴趣的商品选出来推荐给用户,在一定层面上可视为对系统中的商品进行二分类,即用户感兴趣的商品与用户不感兴趣的商品。因此,本文将几个基本推荐算法作为商品的弱分类器进行串联,集成一个推荐效果较强的推荐系统。

2  试验和分析

2.1  试验数据集

基于Boosting的推荐系统将在公开数据集MovieLens 100K中进行测试。本文采用的MovieLens 100K数据集包括带时间信息的10万条评分,主要是943名观众对1 682部电影评论。文中选取部分数据如表1所示。

2.2  集成的推荐系统试验结果分析

采用TOP?N的方式对系统进行评估,使用N=5,10,15,20,25进行实验。经过实验,展示不同N值的准确度与覆盖率,如图2所示。

由图2a)可看出,基于Boosting框架推荐算法的推荐结果在TOP?5和TOP?10上比其他算法表现更优,准确度比基于ItemCF算法高出6%以上,其覆盖率在TOP?10上达到了74.319%。如表2所示,将基于ItemCF算法的推荐、基于UserCF算法的推荐和基于时间上下文的推荐集成为较强的推荐系统,Precision为39.44%,recall为24.52%,F1?measure为30.24%,在Precision,Recall,F1?measure这3种指标上均高于基本推荐算法。结果表明,基于Boosting框架的推荐系统具有实用性。

3   结  论

本文基于Boosting框架,将基于ItemCF的推荐算法、基于UserCF的推荐算法和基于时间上下文的推荐算法集成构建一个强推荐系统,并在MovieLens 100K数据集中对新算法进行测试分析。实验结果表明,基于Boosting的推荐系统对于用户推荐分析预测有效。从而更加全面地分析用户喜好,并进一步提升用户满意度与推荐效果。但本文的推荐系统仍存在难以应对的数据稀疏性问题,因此将在后续工作中做出改进。

参考文献

[1] 刘伟,刘柏嵩,王洋洋.海量学术资源个性化推荐综述[J].计算机工程与应用,2018,54(3):30?39.

[2] 王顺箐.以用户画像构建智慧阅读推荐系统[J].图书馆学研究,2018(4):92?96.

[3] WEI J, HE J H, CHEN K, et al. Collaborative filtering and deep learning based recommendation system for cold start items [J]. Expert systems with applications, 2017, 69: 29?39.

[4] 刘辉,郭梦梦,潘伟强.个性化推荐系统综述[J].常州大学学报(自然科学版),2017,29(3):51?59.

[5] 牛俊洁.教育资源个性化推荐系统的研究与实现[D].贵阳:贵州大学,2017.

[6] 潘丽芳,张大龙,李慧.基于用户的协同过滤(UserCF)新闻推荐算法研究[J].山西师范大学学报(自然科学版),2018,32(4):31?35.

[7] 张博伦.基于协同过滤的个性化推荐系统研究[D].西安:西安工业大学,2017.

[8] 陈爽爽.基于Gradient Boosting算法的癫痫检测[D].济南:山东大学,2013.

[9] 缪雪峰,陈群辉,胡罗凯,等.Spark平台下基于上下文信息的影片混合推荐[J].计算机工程与应用,2017(10):79?84.

[10] 丁祥武,张东辉.基于Spark的中文新词提取[J].计算机工程与设计,2017,38(11):303?309.

猜你喜欢

系统架构推荐系统系统优化
PS卧式转炉送风系统优化与实践
基于大数据分析的ETC系统优化探析
基于用户偏好的信任网络随机游走推荐模型
人工智能在智能机器人系统中的应用研究
基于云计算的多媒体网络学习平台系统架构
基于个性化的协同过滤图书推荐算法研究
个性化推荐系统关键算法探讨
火电厂循环水处理及系统优化探讨
浅谈Mahout在个性化推荐系统中的应用
某萤石矿开拓系统优化