刘文佳 张骏
摘 要:随着互联网的快速发展,电影的海量供给和用户多样化的需求间的矛盾日趋突出,将个性化推荐技术和电影系统的有机结合对用户和运营商来说是一个双赢的局面。主要研究协同过滤算法在电影推荐系统中的应用,协同过滤是目前应用最为广泛且成功的一种推荐技术,但也暴露出诸多问题,比如数据稀疏性、用户兴趣变化等。通过对基于项目的协同过滤算法的分析,分别引入了共同评分权重函数和时间权重函数对相似度计算方法和预测评分计算方法进行了改进,并通过在Movielens数据集上验证了改进的协同过滤算法较传统的协同过滤在推荐准确度上有了明显的提升。
关键词:协同过滤;电影推荐;相似度;时间因子
中图分类号:F49 文献标识码:Adoi:10.19311/j.cnki.1672-3198.2018.17.028
1 引言
隨着信息技术的快速发展,互联网上的资源呈现指数级的增长态势,“信息过载”问题愈发突出。“信息过载”是数据量剧增后的一种必然结果,针对此问题,相关专家学者相继提出了以分类目录、搜索引擎、推荐系统为代表的解决方案。不同于前两种解决方案,需要提前知晓用户的需求,方能提供信息的查询结果;推荐系统通过挖掘用户的行为数据,建立用户兴趣模型,从而主动地提供信息个性化的信息服务,逐渐受到学术界和工业界的关注和研究。目前,Amazon的图书推荐、Facebook的好友推荐、今日头条的新闻推荐以及YouTube的视频推荐等,均取得了不俗的成绩。
以电影、电视剧、自制剧等代表的网络视频已经成为网民信息获取和文化消费的主要形态之一,是满足人民群众精神文化需求的重要渠道之一。据中国互联网络信息中心(CNNIC)发布的第41次《中国互联网络发展状况统计报告》显示:截止至2017年12月,我国网络视频用户规模达5.78亿,较2016年增长了6个百分点,在中国各类互联网应用,视频类应用程序持续保持前5名的位置。这也充分说明以电影为代表的视频领域仍具有很大的发展前景。
而通常人们较难准确地表达自己的需求,其次互联网上的电影资源日趋庞大,使得电影的海量供给和用户多样化的需求之间的矛盾日益突出,此时个性化推荐技术与电影系统的有机结合显得尤为重要,既能帮助用户快速地发现其喜爱的电影,减少用户搜索电影的盲目性;同时用户对电影推荐系统的忠诚度的提升又能助力运营商以VIP付费服务、广告投放等手段增加经济收益。目前,基于协同过滤的推荐算法、基于内容的推荐算法、基于关联规则的推荐算法被广泛应用到电影推荐系统中,其中协同过滤算法以其对推荐对象无结构要求、能新异发现等优点在电影推荐系统中应用最为广泛。因此,本文主要研究协同过滤算法及其在电影推荐系统的应用。
2 相关工作
2.1 传统的协同过滤算法
协同过滤算法主要分为两类:(1)基于内存的协同过滤,其理论基础是KNN模型,根据相似邻居来产生推荐;(2)基于模型的协同过滤,其理论基础是机器学习,通过优化设定指标来建立最优模型来产生推荐。已有研究表明,基于内存的协同过滤能获得更好的推荐准确度,但暴露出诸多问题:数据稀疏性、用户兴趣变化、可拓展性差等;基于模型的协同过滤具有更好的可拓展性,但由于模型需要离线构建,不能较好地反映用户的实时兴趣,因此,在推荐质量上不如基于内存的协同过滤。
基于内存的协同过滤主要包括基于用户的协同过滤和基于项目的协同过滤,其基本思想大致相同,区别在于相似度的计算,基于用户的协同过滤根据用户相似度来产生推荐,基于项目的协同过滤根据项目相似度产生推荐。由于电影推荐系统中,电影的数目的增长不如用户量的增长速度,因此,电影相似度相比用户相似度要稳定,不需实时更新;同时,用户对电影的需求个性化程度相对较强,且不似新闻,对推荐的时效性要求高,因此,基于项目的协同过滤算法更适合于电影推荐系统中。基于项目的协同过滤的实现步骤主要分为四个步骤。
(1)收集用户对电影的评分数据,构建用户——电影评分矩阵。
(2)计算电影间的相似度。
(3)与目标电影相似度最大的K部电影作为其最邻居电影集合。
(4)邻居电影对目标用户未评分电影的评分及相似度计算目标用户对未评分电影的预测评分,通常采取中心加权平均值的方法计算目标用户u对未评分电影的预测评分p(u,i) ,见式(2)所示,记ri、rj分别表示对电影i、电影j评过分的用户的评分平均值。
2.2 协同过滤算法存在的问题
随着系统中用户数目和项目数目的不断增长,传统的协同过滤算法也暴露出诸多问题:数据稀疏性、用户兴趣变化、冷启动和可拓展性等。本文主要分析协同过滤算法在数据稀疏性和用户兴趣变化对推荐质量的影响,并在前人的研究成果的基础上,提出相应的改进方案。
2.2.1 忽略共同评分规模的影响
在现实生活中,系统中的用户评分数据是极为稀疏的,据Amazon的统计,用户对图书的评价数据不超过全部书籍的2%。当用户评分数据极为稀疏时,共同评分项目的规模大都偏小且不一致,此时可能会出现相似度过度估计的问题。
下面将以一个简单的例子说明修正的余弦相似度度量项目相似度时,因数据稀疏而导致出现相似度计算结果与实际情况偏差较大的情况。表1模拟了五组用户的评分数据,评分规则为5分制,分值越高,表示用户对项目的喜好程度越高,“—”表示用户对该项目没有评分。
根据式(1)计算Item1和其他项目的相似度,计算结果如表2所示。
从表2可知,sim(Item1,Item2)=1.0>sim(Item1,Item3),而结合表1可知,同时对Item3和Item1评分的用户数目大于对Item2和Item1评分的用户数目,且评分趋势大体相同,理应sim(Item1,Item2)
2.2.2 忽略用户兴趣变化的影响
时间作为一种上下文信息,与用户的兴趣密切相关,时间因素对用户兴趣的影响主要体现在以下三个方面:(1)用户兴趣的变化,用户的兴趣会随着时间、个人阅历等外在因素的影响而发生漂移;(2)商品具有生命周期。如新闻和音乐的生命周期就不同,新闻的时效性较强,用户通过会关注当前的特点新闻,因此新闻的生命周期一般较为短暂;(3)商品的季节性。蔬菜、瓜果类物品具有明显的时令性,应对这种具有季节特性的商品做过滤处理。
本文的研究对象是电影,电影不同于新闻,其生命周期相对较长,也没有较为显著的季节性特征,因此,本文将从用户兴趣变化出发,研究时间因素对电影推荐的影响,通过引入时间权重函数改进预测评分的计算方法,突出用户的近期评分对推荐结果的影响。
3 改进的协同过滤算法
3.1 引入共同评分权重函数的相似度计算
针对上述因数据稀疏性而导致的相似度计算偏差的问题,J.Herlocker等人(2002)、Ma等人(2007)在不改变数据稀疏性的前提上,相继提出了MAX改进策略、MIN改进策略, MAX改进策略见式(3)所示,MIN改进策略见式(4)所示,γ表示共同评分项的数目的阈值。
J.Herlocker、Ma通过实验验证了上述改进策略能提升推荐准确度。但是也存在一些问题,即阈值γ的值不易获取,需要通过反复的实验方能确定,且在面临不同规模大小的数据集时,其γ的取值也不同。因此,通过预先设置共同评分项的数目的阈值的方法的可拓展性不强。本文在前人的研究成果的启发下,定义了如下变量:对电影i的用户评分向量为Ui、对电影j的用户评分向量为Uj,同时对电影i和电影j的用户评分向量为Ui∩Uj,则电影i和电影j的共同评分权重函数fi,j可定义为如式(5)所示。
共同评分权重函数fi,j是对Jaccard系数的一种改进,充分考虑了个人评分数目和共同评分数目的差异。将fi,j和修正的余弦相似度融合,能缓解传统的相似度计算方法对共同评分项的数目不敏感的问题,因此,在修正的余弦相似度的基础上,见式(1)所示,引入共同评分权重函数fi,j的电影i和电影j的相似度sim'(i,j)可表示为式(6)所示。
3.2 引入时间权重函数的预测评分计算
为保证推荐结果符合用户的近期兴趣,即用户的近期评分行为更能体现用户兴趣,因此,应对用户的评分行为进行时间加权处理,使得近期评分具有更大的时间权重。本文在计算预测评分时,引入logistic时间权重函数,运用logistic函数对用户的评分进行时间加权。基于时间的权重函数ftu,i表示电影i对用户u的时间权重,则ftu,i的计算方法可定义为式(7)所示。
Herlocker在其论文中提到,相似度小于等于0的项目对于推荐精度的影响甚微,在计算预测评分时,过滤掉相似度小于等于0的項目。因此,引入时间权重函数f(tu,i)的预测评分p'(u,i)的计算公式如式(8)所示。
3.3 改进的协同过滤算法的流程描述
在上述改进点的基础上,改进的协同过滤算法的步骤可概括为如下三点。
(1)构建带有时间戳的用户——电影评分矩阵;
(2)将共同评分权重函数融入到相似度的计算中,利用式(6)计算电影间的相似度,接着依据KNN模型的思想,生成目标电影的k部近邻电影;
(3)将时间权重函数融入到预测评分的计算中,分别利用式(8)计算目标用户对其未评分电影的预测评分,最后将预测评分最高的N部电影作为推荐列表,呈现给用户。
4 实验结果及分析
4.1 实验数据集
本文实验采取Movielens数据集来验证改进的协同过滤算法的有效性。Movielens数据集是Grouplens研究项目组创建并维护的,已被广泛应用于协同过滤、推荐系统等科学研究当中。本实验选取了其中的小规模数据集—movielens-100k作为实验数据集,该数据集包含了943位用户对1682部电影的10万条评分数据,其中每名用户至少对20部电影进行过评分,电影的评分标准为1到5的整数评分值,评分值越大,表示用户对该电影的喜好程度越高。数据集的稀疏度为(1-100000/(943*1682))=93.7%。
4.2 评测指标
本实验中主要研究电影推荐系统中的预测评分,因此采取平均绝对偏差(Mean Absolute Error,简称MAE)作为度量推荐质量的评测指标。MAE是通过计算预测评分与用户实际评分的差值来度量预测的准确性,见式(9)所示,是目前应用最广泛的推荐效果的衡量指标之一。
其中T表示预测评分的个数,rui表示用户u对项目i的实际评分,pui表示经推荐算法计算得出的用户u对项目i 的预测评分。MAE与推荐系统的推荐精度呈负相关关系,MAE的值越大,则推荐精度越低,MAE的值越小,其推荐精度越高。
4.3 实验过程及结果分析
本文采取离线实验的方式,将数据集以4:1的比例进行划分,80%的数据集作为训练集,20%的数据集作为测试集。为了防止评测结果出现过拟合的情况,利用五折交叉法进行交叉验证,每次使用不同的测试集,依次进行5次实验,最后取5次实验的评测指标的平均值作为最终的评测指标。
改进的协同过滤算法依次引入共同评分权重函数改进了传统的相似度计算方法,引入时间权重函数改进了预测评分的计算方法,其实验过程如图1所示。
为便于描述,将改进的协同过滤算法记作P-ICF,传统的协同过滤算法记作T-ICF。在本实验中,将邻居的数目从10增加到80,步长为10,依次计算基于P-ICF和T-ICF的MAE值,实验结果如表3所示,对应的MAE曲线如图2所示。
结合表3和图2可知,随着邻居数目的增加,基于P-ICF的MAE值均小于基于T-ICF的MAE值,即引入共同评分权重函数和时间权重函数的协同过滤算法较传统的协同过滤算法拥有更高的推荐准确度,从而验证改进的协同过滤算法的有效性。
同时,实验结果也表明:随着最近邻的数目的不断增加,平均绝对误差MAE会呈现先下降,再趋于平稳甚至上升的趋势,说明邻居的数目的取值不是越大越好。如P-ICF在邻居的数目小于30的范围内时,MAE逐渐减少,超过30后,MAE值基本不变甚至出现上升趋势。这是因为如果邻居数目的取值较大时,会引入一些噪声数据,使得那些原本相似度较小的电影成为了目标电影的邻居。因此,应根据实际情况设置合适的邻居数目。
5 结论
本文主要研究了协同过滤算法在电影推荐系统中的应用。通过对传统的协同过滤算法的局限性,分别从相似度计算方法和预测评分的计算方法进行了改进,提出引入共同评分权重函数改进了相似度计算方法,缓解了因数据稀疏性而导致的相似度过度估计的问题;引入时间权重函数改进了预测评分的计算方法,增强了用户近期评分的时效性。最后通过实验,验证了改进的协同过滤算法的有效性,其推荐准确度高于传统的协同过滤算法。同时,本文也存在一些不足,在考虑用户兴趣变化时,未对用户的长期兴趣和短期兴趣进行区分,接下来将分别从用户的长期兴趣和短期兴趣构建兴趣模型,以期提高推荐精度。
参考文献
[1]王娜, 陈会敏.泛在网络中信息过载危害及原因的调查分析[J].情报理论与实践, 2014,(11):20-25.
[2]Bao X.Applying machine learning for prediction, recommendation, and integration, 2009[C].
[3]朱扬勇, 孙婧.推荐系统研究进展[J].计算机科学与探索,2015,(05):513-525.
[4]中国网络视听节目服务协会.2017中国网络视听研究发展报告[R].成都: 2017.
[5]中国互联网信息中心.第41次中国互联网络发展状况统计报告[R].北京: 2017.
[6]Barragáns-Martínez A B, Costa-Montenegro E, Burguillo J C, et al.A hybrid content-based and item-based collaborative filtering approach to recommend TV programs enhanced with singular value decomposition[J].Information Sciences, 2010,180(22):4290-4311.
[7]汪靜, 印鉴.基于共同评分和相似性权重的协同过滤推荐算法[J].计算机科学, 2010,37(2).
[8]王益.基于用户兴趣特征变化的旅游路线个性化推荐技术研究[D].武汉:武汉理工大学, 2015.
[9]范顺忠, 陈浩.基于兴趣感知和时间因子的个性化菜品推荐[J].计算机应用研究, 2018,(02):358-361.
[10]Herlocker J, Konstan J A, Riedl J.An Empirical Analysis of Design Choices in Neighborhood-Based Collaborative Filtering Algorithms[J].2002,5(4):287-310.
[11]Ma H, King I, Lyu M R.Effective missing data prediction for collaborative filtering: International ACM SIGIR Conference on Research and Development in Information Retrieval[C].2007.
[12]Su H, Lin X, Yan B, et al.The Collaborative Filtering Algorithm with Time Weight Based on MapReduce: International Conference on Big Data Computing and Communications[C].2015.