基于 SVD 的协同过滤电影推荐算法
2022-04-29宋龙生王家乐倪胜巧
宋龙生 王家乐 倪胜巧
摘要:信息过载的问题愈发严重在大数据时代针对不同用户提高电影推荐系统的推荐性能一直存在巨大的挑战为了有效地解决信息过载和用户体验满意度低的问题需要选择合适的个性化推荐算法文章概述了主流的机器学习推荐算法并通过实验比较分析了各算法的优缺点针对推荐算法普遍存在的冷启动和数据稀疏性问题提出了相应的解决方案
关键词:电影推荐;协同过滤(CF);冷启动;奇异值分解(SVD)
中图法分类号:TP391文献标识码:A
Collaborative filtering movie recommendationalgorithm based on SVD
SONG Longsheng',WANG Jialel,NI Shengqiao1.2
(1.College of Information Science and Technology,Tibet University,Lhasa 850000,China:
2.College of Computer Science,Sichuan University,Chengdu 610065,China)
Abstract:Nowadays, the problem of information overload is becoming more and more serious. In the sea of big data, it has been a huge challenge to improve the recommendation performance of moie recommendation system for different users. In order to effectively solve the problems of information overload and low user experience satisfaction, it is necessary to choose an appropriate personalized recommendation algorithm. In this paper, the mainstream machine learning recommendation algorithms are summarized, and the advantages and disadvantages of each algorithm are compared and analyzed through experiments. Finally, corresponding solutions are proposed to solve the common problems of cold start and data sparsity in recommendation algorithms.
Key words: film recommendation, collaborative filtering(CF), cold start, singular value decomposition(SVD)
1 引言
近年來,随着互联网的飞速发展,影视产业的数量和种类激增且发展迅猛,“电影过载”的问题愈发严重,导致用户寻找自己喜欢的电影需要浪费很多时间。因此,在互联网信息过载和多数用户需求不明确的时代背景下,如何在海量的影视资源中,针对不同用户提供个性化的推荐是亟待解决的问题。
2 推荐算法分类
(1)基于流行度的推荐算法
流行度即热度,基于流行度的推荐算法最常见的就是将各个榜单中的热点内容(微博热搜、TopN 商品)推荐给用户,流行度的衡量有多种方式,如在一段时间内某个商品页面或者电影的点击率、观看率、完播率、用户的互动/反馈次数等。社会因素和从众心理因素也可能影响物品的流行度。
(2)基于内容的推荐算法
基于内容的推荐系统来源于最早的信息检索系统,它的主要原理是首先根据物品的元数据,抽取出一些特征来表示该物品(item),然后根据用户过去的特征数据,来学习出此用户的喜好特征(profile),最后通过比较前两步得到的用户 profile 与候选 item 的特征数据,为该用户推荐一组相关性最大的 item。
(3)基于协同过滤的推荐算法
协同过滤推荐算法在推荐系统中被广泛应用,其一般用于用户给物品进行评分的系统中,通过用户对物品的评分来学习并刻画用户喜好。目前,协同过滤推荐系统分为基于用户的协同过滤推荐( User?Based CF)和基于物品的协同过滤推荐( Item?Based CF)[ 1] 。
(4)基于模型的推荐算法
基于模型的推荐方法有很多,常用的模型包括 Aspect Model ,pLSA ,LDA 、聚类、 SVD ,Matrix Factorization ,LR,GBDT 等,虽然其训练时间更长,但是推荐结果准确率更高,结合特征工程则可以达到更好的效果。
(5)基于关联规则的推荐算法
基于关联规则的挖掘算法主要从 Apriori 和 FP?Growth两个算法发展而来。该算法的优势是通过较少的用户反馈量就可以学习过滤到机器难以自动分析的内容,提高了内容分析的精确性。劣势是存在冷启动和稀疏性的问题,容易过度推荐热点物品。
(6)混合推荐算法
在现实生产应用中,推荐系统基本不会使用单一的推荐算法来完成推荐任务,因此需要具体分析与结合不同的场景,选择几种合适的算法进行不同策略的算法加权混合使用。
3 推荐算法问题的解决
3.1 冷启动问题
(1)提供非个性化的推荐:给新用户首先提供收藏榜、排行榜等多样化化数据,用户进行多次筛选,等到积累了一定的用户数据和行为时再推荐。
(2)利用用户的注册信息:包括性别、年龄、职业等数据,并且提供多种注册与登录方式,如利用社交账号登录,这可以在用户授权的情况下导入该用户在不同社交账号上的一些个性化社交数据,利用已经构建的用户画像进行冷启动。
(3)利用用户的手机等兴趣偏好进行冷启动,如了解用户手机上安装了哪些 APP,从而构建更加完整的用户画像。
(4)采用专家标注来完善物品信息,以便计算物品相似度、对用户进行问卷调查。
3.2 数据稀疏性问题
(1)用户聚类:把相似的用户聚类以减少用户量。融合谱聚类和多因素影响的兴趣点推荐方法[2]使用自适应谱聚类方法对用户进行分组,将组内用户访问过的兴趣点组成待推荐集合,计算待推荐集合中兴趣点的吸引力评分,向用户推荐评分较高的兴趣点,执行效率和准确率均得到提高。
(2)数据降维:使用降维技术对关系矩阵进行压缩。若干重要数据类型的降维方法研究[3]提出了一种基于分位数距离协方差的充分降维方法,不依赖于线性条件,并且对异方差具有鲁棒性,大大提高了模型预测的准确性。
4 个性化电影推荐方法
本文使用 GroupLens 实验室收集在明尼苏达大学的 MovieLens?100K 数据集,包含943个用户对1682部电影的10000条评分(1~ 5分),使用 train_test_split 函数划分数据集(训练集占70%,测试集占30%),并构建用户?物品矩阵,评价指标选用均方根误差:
4.1 基于 item 的协同过滤算法
构建评分矩阵后,我们需要计算两部电影间相似度,预测指定用户对指定电影的评分。首先找出与电影 i id 相似的电影 i items,然后从这些相似的电影 i items 中筛选出被用户 u_id 评分过的电影 u_items,最后结合电影 i id 与电影 i items 的相似度和用户 u id 对电影 u_items 的评分,预测 u_id 对 i_id 的评分。评分预测公式为:
其中,相似度算法先采用余弦距离计算。最终在训练集:测试集为3:1 的情况下,训练集预测 RMSE =3.470,测试集预测 RMSE=3.468,发现均方根误差很大,
为了减小误差,需要改变相似度算法采用欧氏距离计算并且增加训练集比例为4 ∶1,改变后发现训练集预测 RMSE=3.339,测试集预测 RMSE=3.336,训练结果略有提升但并不明显,因而在此例中使用基于 item 的协同过滤推荐系统并不理想。
4.2 基于 User 的协同过滤算法
基于 User 的协同过滤算法具体实现为:首先找出与用户 u id 相似的用户 u ids,然后从这些相似的用户 u_ids 中筛选出对电影 i_id 评分过的用户 u_items ,最后结合用户 u id 与用户 i items 的相似度预测用户 u_id 对电影 i_id 的评分。为了使某一部电影的所有用户评分一致,需要对所有的用户评分做归一化处理。评分预测公式为:
其中,训练集预测 RMSE=3.163386705146778,测试集预测 RMSE =3.3922642153746834,发现基于 User?CF均方根误差相较于基于 Item?CF 有了一定提升,改变相似度算法采用欧氏距离计算并且增加训练集比例为4:1后,训练集预测 RMSE =3.093,测试集预测 RMSE=3.330。根据结果发现,在基于 User?CF 中,测试集上的预测效果普遍不如在训练集上的预测结果,但是均比基于 Item?CF 预测效果更好。
4.3 基于 SVD 的协调过滤算法
SVD 即奇异值分解,其原理为:任意一个 m × n 的矩阵 A 都可以像 A = U ∑ VT 一样分解,其中得到的 U 是一个 m × m 的方阵(里面的向量是正交的,U里面的向量称为左奇异向量),∑是一个 m × n 的矩阵(除了对角线的元素都是0 ,对角线上的元素称为奇异值),V^T 是一个 n × n 的矩阵(里面的向量也是正交的,V 里面的向量称为右奇异向量),从而可以通过特征值和特征向量求解矩阵特征。评分预测函数p 使用特征向量的点积,因此有:
然而,由于电影评分只在区间[1 ,5],因此预测函数 P 修正为:
最终,在训练集:测试集为4 ∶1时训练之后,训练集预测 RMSE=2.326619342693467,测试集预测 RMSE =2.326619342693467,相较于改进过后的基于 Item?CF 和基于 User?CF,RMSE 由3.33降低至2.33左右,不论是训练集还是测试集,训练结果都有明显提升。
4.4 三大协同过滤算法结果对比分析
表1 为以上三种推荐算法的 RMSE 实验结果,根据表1 可以得出总结:基于 User?CF 的相似度矩阵为943×943,远小于基于 Item?CF 的相似度矩阵1682×1682,并且测试集只有训练集的四分之一,导致测试集矩阵比训练集的矩阵小得多。所以,基于 User?CF 推荐系统更适用于用户少、物品多、时效性较强的场合,并且能够根据人与人的相似性来发现“惊喜”或推荐新的信息。基于 SVD 的协调推荐算法预测效果突出,唯一的不足就是其难以解释,但不失为是一种非常好的推荐算法。
5 结语
首先,本文總结了主流的推荐算法,分析比较了几种算法的优缺点。然后,论述了基于 item、基于 User、基于 SVD 的三大协同过滤算法,得到其推荐预测效果为 SVD>User>item ,改进分析了三种协同过滤算法的具体实现。最后,针对推荐算法存在的冷启动和数据稀疏性问题,进行分析并提出了解决方案,笔者将在后续研究中对推荐算法存在的其他问题进行深入探析。
参考文献:
[1] 吴金李.基于协同过滤的购物网站推荐系统研究与实现[D].镇江:江苏大学,2017.
[2] 郭蕾,刘文菊,王赜,等.融合谱聚类和多因素影响的兴趣点推荐方法[ J/OL].[2022?05?12].http://kns.cnki.net/ kcms/detail/10.1478.G2.20220228.2021.004.html.
[3] 程浩洋.若干重要数据类型的降维方法研究[ D].合肥:中国科学技术大学,2021.
作者简介:
宋龙生(2000—) ,本科,研究方向:计算机软件开发。王家乐(2001— ),本科,研究方向:计算机软件开发。
倪胜巧(1982—) ,博士,副教授,研究方向:计算机专业教育、机器学习(通信作者)。