一、推荐系统的结构
一个完整的推荐系统往往具有三个重要的模块:用户建模模块、推荐对象建模模块、推荐算法模块。
用户模型:用户模型的主要作用是构建用户画像,系统通过对用户在web页面的浏览、点击、评论等行为,手机APP的使用,GPS定位等,分析、计算用户的喜好特征,进而形成用户画像。
推荐对象模型:主要作用是将商品的信息比如:颜色、大小、款式等提取形成商品的属性标签,方便进行计算。
推荐算法:主要是把用户模型和推荐对象模型的信息通过某种系统的方法进行匹配,并对用户形成相应的推荐。推荐算法可根据用户的新需求进行改进,以不断适应推荐过程中的问题。
二、推荐系统的分类
1、基于协同过滤的推荐系统
基于协同过滤的推荐大体包括:基于项目的协同过滤(item-basedCF)、基于用户的协同过滤(user-basedCF)、基于模型的协同过滤算法[1-3]。
基于项目的协同过滤(item-basedCF):首先根据不同用户历史购买商品的评分信息计算出各项目之间的相似度,构建各项目之间的相似度矩阵;再找出与目标用户已购买的商品相似度大的项目,构建近邻项目集合。根据目标用户的历史偏好对近邻项目集合中的项目进行预测评分;最后根据项目预测评分对目标用户进行商品推荐。主要应用在电子商务网站。
如图1-2所示,用户1同时购买了物品a和c;用户2同时购买了物品a、b和c;用户3购买了物品a;由用户1和2可以看出人们在购买a的同时也购买了c。由此可以推断物品a与c之间有一种潜在的关系,所以对于当前只购买了物品a的用户来说,系统也可以向其推荐物品c。
基于用户的协同过滤(user-basedCF):推荐过程与基于项目的协同过滤大致相同。不同的是基于用户的协同过滤构建的是用户相似度矩阵,且推荐的商品是通过对近邻用户购买商品过滤得到的。
如图1-3所示,用户1同时选择了物品a和c;用户2只选择了物品b;用户3同时选择了物品a、c、d。且用户1和用户3相似,虽然用户1当前还未购买物品d,但由于用户1和3具有相同的爱好,所以用户1对物品d有着相同的喜好,因此可以断定用户1有很大的可能购买d。
典型的基于模型的协同过滤算法包括:基于聚类模型推荐算法[4]、基于矩阵分解的推荐算法[5]、基于潜在语义分析推荐算法[6]、基于神经网络与深度学习推荐算法[7]等。
2、基于内容的推荐系统
基于内容的推荐先是将商品分解为多个属性标签,然后基于用户历史购买行为信息计算出每个用户喜好的属性标签。针对所有待推荐商品,分别计算每个用户的喜好属性标签与每个待推荐商品的属性标签的相似度[8-20]。选取前k个相似度大的商品对用户进行推荐。
如图1-4所示,假设有三个用户1、2、3,用户1购买了物品a,用户2购买了物品b,用户3也购买了物品b。物品a具有属性标签:黄色、长裙;物品b具有属性标签:蓝色、帽子;对于待推荐的物品c具有属性标签:黄色、短裙。可以推测出购买物品a的用户和将要购买物品c的用户属性标签大致相同,因为物品a和b同时具有属性标签:黄色、裙子。这时系统可以推测用户1对物品a和物品c具有相似的喜好程度,所以系统可以将物品c推荐给用户1。
3、混合推荐系统
在推荐系统中,没有一种绝对完美的算法,可以准确无误的预测用户的喜好。只有权衡各算法之间的利弊,将两种及以上的算法进行融合,来弥补算法之间的不足,并且保持不同算法的优点。因此,真正的推荐场景往往是多个算法相结合进行混合推荐(Hybrid Recommendation)[11-14]。
三、不同推荐系统的优缺点
Reference
[1] Rui Chen, Qingyi Hua, et al. A Survey of Collaborative Filtering-Based Recommender Systems: From Traditional Methods to Hybrid Methods Based on Social Networks[J]. IEEE Access, 2018, 6: 64301-64320.
[2] Fernando Ortega, Diego Rojo, Priscila Valdiviezo,et al. Hybrid Collaborative Filtering Based on Users Rating Behavior. IEEE Access, 2018, 6: 69582-69591.
[3] Nana Yaw Asabere, Amevi Acakpovi, Mathias Bennet Michael. Improving Socially-Aware Recommendation Accuracy Through Personality[J]. IEEE Transactions on Affective Computing, 2018, 9(3): 351-361.
[4] Frémal S,Lecron F. Weighting strategies for a recommender system using item clustering based on genres [J]. Expert Systems with Applications,2017,77:105-113.
[5] 李春春,李俊. 基于ASVD的协同过滤推荐算法[J]. 小型微型计算机系统,2018,6(39):1286-1290.
[6] 黄震华,张佳雯,张波,等. 语义推荐算法研究综述[J]. 电子学报,2016,44(9):2262-2275.
[7] Zhenhua Huang,Chang Yu,Juan Ni,et al. An Efficient Hybrid Recommendation Model With Deep Neural Networks[J]. IEEE Access,2019,7,137900-137912.
[8] Choi, S. H., Jeong, Y. S.,et al. A Hybrid Recommendation Method with Reduced Data for Large-Scale Application[J]. IEEE Transactions on Systems, Man and Cybernetics. Part C: Applications and Reviews, 2010, 40(5): 557-566.
[9] Wu ML, Chang CH, Liu RZ. Integrating content-based filtering with collaborative filtering using co-clustering with augmented matrices[J]. Expert Systems with Applications, 2014, 41(6): 2754-2761.
[10] W Wang, Y Shi, F Sun. Content-Based Recommendation System Based on Vague Sets[J]. 2013 Fifth International Conference on Intelligent Human-Machine Systems and Cybernetics, 2013, 2:294-297.
[11] 于波,陈庚午,王爱玲,林川. 一种结合项目属性的混合推荐算法[J].计算机系统应用,2017,26(1):147-151.
[12] 牛振东,王帅,王诗航,陈杰. 新闻事件的分布式混合推荐算法[J]. 北京理工大学学报,2017,37(7):721-726.
[13] 邹凌君,陈崚,李娟. 时间加权的混合推荐算法[J]. 计算机科学,2016,43(11A):451-454.
[14] Xiaofeng Zhang,Huijie Liu,Xiaoyun Chen,et al. A novel hybrid deep recommendation system to differentiate user’s preference and item’s attractiveness[J]. Information Sciences,2020,519:306-316.