周双杰 高凤玲 孙知信
摘 要:推荐系统已经在日常生活中扮演着举足轻重的角色,单一的推荐系统往往会存在冷启动、数据稀疏等问题,该文将各推荐服务的结果通过动态权重的方式加以调整并混合,避免单一算法带来的问题,提升个性化推荐效果。将大数据技术和推荐算法结合,设计并实现基于大数据的商品混合推荐系统。最后使用Amazon的数据集进行系统测试,该文提出的动态权重混合方式比传统线性混合拥有更好的性能。
关键词:推荐系统 混合推荐 动态权重 个性化推荐
中图分类号:TP391.3 文献标识码:A文章编号:1672-3791(2021)04(a)-0032-03
Commodity Hybrid Recommendation System based on Dynamic Weight
ZHOU Shuangjie1 GAO Fengling2 SUN Zhixin1
(1.School of Modern Posts, Nanjing University of Posts and Telecommunications, Nanjing, Jiangsu Province, 210000 China; 2.China Electronics System Engineering NO.2 Construction Co., Ltd.,
Wuxi, Jiangsu Province, 214135 China)
Abstract: Recommendation systems have played an important role in daily life. A single recommendation system often has problems such as cold start and data sparseness. This article adjusts and mixes the results of each recommendation service through dynamic weights to avoid a single algorithm. To improve the effect of personalized recommendation. Combine big data technology and recommendation algorithm to design and implement a product hybrid recommendation system based on big data. Finally, use Amazon's data set for system testing. The dynamic weight mixing method proposed in this article has better performance than traditional linear mixing.
Key Words: Recommendation system; Hybrid recommendation; Dynamic weight; Personalized recommendation
單一的推荐算法往往存在各种各样的局限性,因此一个推荐系统往往由多种推荐算法组成,这些不同的算法能够对信息达到不同的过滤效果。最常见的有内容过滤(Content based,CB)、协同过滤(Collaborative Filtering, CF)、关联规则(Association Rules)等。内容过滤需要提取对象的关键词作为标签并计算相似度来使用,协同过滤只需通过用户的历史行为数据进行推荐,包括基于物品(ItemCF)与基于用户(UserCF)的推荐,而关联规则发挥了“啤酒与尿布”效应,通过挖掘海量用与商品之间的规则进行推荐。以上推荐算法若单独使用,都会存在准确度不足或是冷启动的问题,但如果针对不同场景,将不同的算法结果加以混合,或是将某推荐算法的结果使用另一个推荐算法继续运算,都能在某种程度上克服单一算法带来的局限性。
1 混合推荐简介
在如今推荐系统中,混合方法的使用已变得更加普遍[1],单一推荐技术仅适用于解决简单的推荐问题,而不适用于复杂的场景,每一种传统的推荐方法在向目标用户生成推荐时都会遇到各种问题,例如:协同过滤在增量数据上的表现不够出色[2],但通过结果的线性混合可以获得更高的精度[3],混合推荐系统以不同方式组合两个或多个推荐策略,以从其互补优势中受益[4]。除了线性混合外,也有元级混合推荐技术[5],以分层的方式结合了协作方法和基于内容的方法,提升推荐效果。
2 动态权重混合推荐算法
细粒度的权重控制能够提升推荐精度[6],该文提出的动态权重混合推荐算法会针对每个用户建立推荐质量模型,将各个推荐算法的结果采用线性混合的方式加以混合,再输出给用户使用,首先对所有的结果进行过滤和标记,然后对所有推荐服务产生的商品评分进行归一化处理:
(1)
是推荐算法k对用户u推荐商品i经过归一化的推荐得分,k(u,i)代表推荐算法k对用户u推荐商品i的推荐分数,kmax代表该算法对用户u推荐的最高分,kmin代表该算法对用户u推荐的最低分。
将经过归一化的得分乘以权重系数,得到最初质量评分加权公式:
式(2)中,Score为用户u对应推荐商品i的得分:λ为推荐算法k对于用户u的权重,λ0=1/n。由于线性混合参数是固定的,因此效果不够理想,不同场景下的不同推荐算法产生的效果难以达到预期,难以形成个性化的推荐效果,为了提升混合效果,对线性混合对混合方式加以改良,引入动态参数调整机制,通过用户行为对权重λ不断调整。
(3)
式(3)中,P(k,u)为推荐算法k推荐出的商品被用户u选择的次数,当一个推荐算法被用户选择的次数越多时,它的比重会变得更高。所有权重和始终为1。
(4)
但即使权重经过线性调整,公式单纯的分数计算会导致被多个推荐服务推荐且推荐得分高的商品过于靠前,而被多个推荐服务推荐,但推荐得分低的商品则会靠后,因此需要让被推荐次数少的商品得到更有意义的排名,首先计算商品被推荐动态系数。
(5)
式(5)中,N为了已经被推荐过的商品的去重集合,C为所有商品被推荐过的总集合;D为每个商品被推荐的平均次数;然后将原来的归一化得分进行贝叶斯平均数修正,得到最终得分。
(6)
式(6)中,为每个商品的平均推荐得分;C(i)为当前商品i被推荐的总次数,最后即得到改进后的用户u对应推荐商品i的最终得分。
3 仿真实验与结果分析
根据公式(6)计算出所有的Score(u,i)'之后,对每个用户生成的Score进行排序,得到最终的推荐序列,以用户A为例,在经过多次选择之后,用户A的λk会不断变化,其推荐服务比例见图1。
用户在经过4次选择之后,不同的推荐服务比重有所变化,并且ALS协同过滤对该用户能够起到较好的效果,但该用户对近期热门以及动态感知的反应并不及ALS协同過滤。图2为动态权重与线性权重对比。
从表1结果中可以看出,经过用户多次选择之后,动态权重混合推荐相比线性权重混合表现更好,证明了不同用户的确对不同的推荐方案组合存在不同的敏感性。
4 结语
为了提升多种推荐算法的混合推荐效果,该文在现有线性混合的基础上,提出了基于动态权重的混合推荐方法,在Amazon数据集中进行实验,验证该方法的有效性。该方法根据用户对推荐结果的偏好程度来不断改善推荐结果的权重因子,以契合不同用户对于不同推荐算法的敏感程度,不断提升个性化推荐效果。
参考文献
[1] Santana M R.O., Melo L C., Camargo F H.F., et al. Contextual meta-Bandit for Recommender Systems Selection[C]//Fourteenth ACM Conference on Recommender Systems,2020:444-449.
[2] 蒋伟.推荐系统若干关键技术研究[D].电子科技大学,2018.
[3] Zuo T, Zhu S, Lu J. A hybrid recommender system combing singular value decomposition and linear mixed model[C]//Science and Information Conference. Springer, Cham,2020:347-362.
[4] ano E, Morisio M. Hybrid recommender systems: A systematic literature review[J].Intelligent Data Analysis,2017,21(6):1487-1524.
[5] Immaneni N, Padmanaban I, Ramasubramanian B, et al. A meta-level hybridization approach to personalized movie recommendation[C]//2017 International Conference on Advances in Computing, Communications and Informatics (ICACCI).IEEE, 2017:2193-2200.
[6] 王茄力.基于Spark的混合推荐系统[D].中国科学技术大学,2017.