基于CLSVSM的电影评分预测及其推荐应用研究

2020-07-13 05:53牛奉高王恩慧徐倩丽
关键词:相似性矩阵预测

牛奉高,王恩慧,徐倩丽

(山西大学 数学科学学院,山西 太原 030006)

0 引言

在当前大数据、信息爆炸的时代,人们很难找到自己真正需要或者可能感兴趣的信息。推荐系统的产生就是为了解决这一问题。目前,不仅仅是电商网站,新闻、音乐、影视等许多网站都加入了适合自己平台的推荐系统,这样有利于让用户发现他需要或者感兴趣的信息,同时信息平台也可以把自己的特色项目展示给用户,实现用户和平台的双赢[1]。推荐系统中用户对项目的评分数据是最能直观地反映用户偏好和用户期望的信息。随着各大信息平台前景的不断提升,项目数量和用户数量都急剧上升,并不是每个用户对其体验过的项目都评分,也不是所有商品都有相应的用户对其评分,因此用户-项目评分矩阵就会极其稀疏,这就会影响用户或者项目的相似性度量,进而影响推荐系统的推荐精准度。

随着推荐算法的改进与提升,解决数据稀疏性问题的方法也相应增多。文献[2]将用户评分的均值差引入对用户的相似度计算中,并将相似向量的均值引入评分矩阵并实现降维。文献[3]提出了将k近邻算法引入传统的协同过滤算法中,分步填充用户-项目评分矩阵,有效地缓解了数据稀疏性的问题。文献[4]通过分析传统项目间相似性度量方法存在的缺陷,引入基于项目的评分预测,提高了推荐精度。文献[5]在计算项目之间相似度时引入评分值以及特征向量,提高了推荐质量。文献[6]用Adaboots算法,通过引入阈值,将评分预测问题转化为分类问题,通过加权思想训练出多个模型并且集成起来做最终的评分预测。

以上文献提出的解决推荐系统数据稀疏性问题的方法有一定的缓解效果,但是还存在评分矩阵填充度不高或者信息失真等的问题,因此本文在传统的基于项目的相似性推荐算法中引入CLSVSM模型,通过项目间的共现强度计算预测评分,补全评分矩阵,最后进行项目推荐。

1 传统基于项目评分的推荐算法

1.1 传统基于项目评分的推荐算法思想

基于项目评分的推荐算法也称为基于项目的协同过滤推荐算法,该算法的核心思想是向用户推荐与他们曾经喜欢的项目相似的项目。该算法分为两步:一是计算项目之间的相似度;二是通过物品的相似度和用户-项目评分矩阵为用户生成推荐列表。两个项目之间的相似性度量思想是计算样本之间的“距离”。项目i与项目j的相似性一般记为sim(i,j)。相似度的值越小,项目间的相似性就越高[7]。度量项目之间的相似性主要分为以下3种:

(1)

(2)Pearson相关系数相似性:设Ui,j为对项目i和项目j共同评分过的用户集,则计算项目i与项目j之间的相似性sim(i,j)公式表示为:

(2)

(3)修正的余弦相似性:余弦相似度只考虑了向量维度方向上的相似,而未考虑到用户评分空间问题。在公式(1)的方法中对每个维度减去平均值。设Iij为对i和j共同评分过的全部用户集,Ii和Ij分别表示对i和j打分过的所有用户,则计算项目i与项目j的相似性sim(i,j)公式为:

(3)

计算出项目之间的相似度以后,通常用公式(4)计算用户u对项目j的喜好程度:

(4)

式中,N(u)表示用户喜欢的项目合集;S(j,K)是前K个与项目j最相似的项目合集;wji表示项目i和项目j的相似度;rui表示用户u对项目i的喜好程度(文章中如果用户对电影评分,则认为rui=1)。

1.2 传统推荐系统评分预测算法

项目之间的相似度计算需要用到用户对项目的评分,但是用户-项目评分矩阵稀疏很使得推荐系统的推荐精准度难以提高。评分预测不仅要填充稀疏矩阵,关键是提高评分预测的精确度。评分预测问题最基本的数据集就是用户评分数据集,评分记录可以表示为一个三元组(u,i,r),表示用户u给项目i赋予了评分r。评分预测一般是使用离线数据实验,预测用户对未体验过的项目的喜好程度[8]。通常获取用户历史评分数据以后,将数据集分成两部分,一部分是训练集,另一部分是测试集。根据训练集建立用户兴趣模型来预测测试集中的用户评分[9]。传统的评分预测算法一般有以下3种:

(1)平均值方法:平均值预测算法是利用评分平均值预测用户对项目的评分,又分为以下两种算法:

a.全局平均值:它定义为训练集中所有评分记录的评分平均值:

(5)

式中,U表示用户,i表示项目,rui为用户u对项目i的评分,Train表示训练集。

b.用户分类对项目分类的平均值:该算法是在全局平均值的基础上,定义两个分类函数,一个是用户分类函数φ,一个是项目分类函数φ。φ(u)定义了用户u所属的类,φ(i)定义了项目i所属的类。该算法的思想是利用训练集中相同集合的用户对相同集合的项目评分的平均值预测用户对项目的评分:

(6)

(2)基于相似用户(项目)的方法:

基于相似用户(项目)的算法包括以下3种预测方法:

a.基于用户的算法思想是,预测一个用户对一个项目的评分,需要加入和这个用户兴趣相似的用户对该项目的评分:

(7)

b.基于项目的算法思想是:在预测用户u对项目i的评分时,需要加入用户u对和项目i相似的其他项目的评分:

(8)

2 基于CLSVSM的项目评分预测模型

2.1 共现潜在语义向量空间模型(CLSVSM)

牛奉高等人[10]在2014年提出了利用共现潜在语义向量空间模型(Co-occurrence Latent Semantic Vector Space Model,CLSVSM)来进行文献聚合,通过共现分析方法挖掘潜在语义。通常在文本库中,如果一些词经常同时出现(共现)在同一文本中,则认为这些词具有极强的相关联性。同时这些词的集合出现的频率越高,那么它们的相关程度就越大,并且表示出一定的语义概念[11]。

共现潜在语义向量空间模型中最大共现强度这一概念解决了高维篇-词矩阵的稀疏性。它是将传统矩阵化为布尔矩阵,赋予0和1权重的文本表示模型进行语义补充,权重表示为某一关键词在文本中是否出现,构建文本的篇-词矩阵[12]。表示关键词的共现矩阵为:c=AT·A=(cij)m×m,当i=j时,cij为第i个关键词与第j个关键词出现的总频次。根据共现矩阵,计算关键词之间的共现相对强度矩阵:

(9)

2.2 基于CLSVSM的项目评分预测模型

基于CLSVSM的推荐算法思想是:首先通过CLSVSM对评分信息中的项目进行共现分析,挖掘项目之间的共现潜在信息,然后利用挖掘出来的信息对原始评分矩阵(用户-项目评分矩阵)进行补全,从而降低评分矩阵的稀疏度,使项目相似度的计算更加准确。最后基于补全的评分矩阵计算出项目相似度进行评分预测,生成推荐。

利用CLSVSM对项目进行共现分析的步骤为,先将原始数据生成用户-项目评分矩阵,把矩阵中有评分的设为1,缺失部分设为0形成一个布尔矩阵[13]A,然后利用公式c=AT·A=(cij)计算项目的共现矩阵,最后根据共现矩阵以及公式(10)就可以得出项目之间的共现相对强度矩阵B。

共现分析后进行原始评分矩阵的补全,利用项目共现潜在关系补全原始评分矩阵的方法是加权平均法:以项目之间的共现强度作为标准,先找到用户u评分过的项目集T以及u对它们的评分合集Ru,T={rut|t∈T},然后将项目T中的项目与该用户没有评分过的项目i之间的共现强度集合Bi,T={bit|t∈T}作为权重,计算Ru,T的加权平均,并把结果作为填补信息,填入用户-项目评分矩阵中。记新的评分矩阵为RQ,建立如公式(11)的模型补全原始评分矩阵,最后根据基于项目间权重的评分预测算法得出预测评分模型并进行评分预测。文章将基于RQ矩阵进行推荐的IBCF称为CLSVSM_IBCF算法。

(10)

式中,U是电影合集,T为用户i看过的电影合集,k是用户i看过的其中一部电影,Bjk为电影j和电影k之间的共现强度。

3 电影评分及预测实验

3.1 实验数据

电影行业一直保持着高速发展的态势,电影网站点击量也日益增长,因此文章以电影评分作为实验对象,选取了著名的Grouplens实验室成立的movielens站点中的数据集。推荐系统中许多推荐算法都是基于该数据集。movielens数据集不仅容易获取,数据信息也十分齐全,并且数据真实性高具有说服力。实验选取了movielens数据集中的ml-100k的数据集,其中包含了943个人对1 682部电影的评分记录,每人至少有20条评分数据,共10 000条评分记录,数据集还包括用户的个人信息和电影的标签信息,所有的信息都经过了脱敏处理。

3.2 实验流程

Step 1 将原始数据进行融合重铸,生成维数为943×1 682的user-item评分矩阵R;

Step 2 设矩阵R中有评分的项为1,缺失项为0,生成布尔矩阵[14];

Step 3 计算电影共现矩阵;

Step 4 基于CLSVSM生成电影共现强度矩阵;

Step 5 通过电影之间的共现强度矩阵,利用式(10)对原始评分矩阵进行补全;

Step 6 运用公式(4)推荐算法进行推荐。

文章实验对比算法是基于项目的相似度评分预测IBCF模型,通过随机抽样,进行了15次实验比较。把R矩阵中70%的评分数据设置为训练样本,把剩余30%的评分数据设置为测试样本,对于剩余30%的用户,将每个人所评分的项目分为已知(known)和未知(unknown)部分:

(1)known数据是抽10个已知,剩下的全标记为NA;known数据用来做预测,根据10个已知的评分预测剩下的电影评分;

(2)unknown数据是known的补集,把10个已知的标为NA,这样做的目的是为了用真实结果和known数据预测出来的结果作比较,进行模型评价。

3.3 实验结果

3.3.1 推荐算法测评指标

测试推荐系统中推荐算法的优劣通常用平均绝对误差(MAE)的值和均方根误差(RMSE)的值来进行判断[15]。

(1)MAE:对所有评估用户u∈U和测试集(testsetu)的所有物品,计算推荐得分rec(u,i)与实际分值rui的平均偏差,|testsetu|表示测试结果的个数,它的计算方法为:

(11)

(12)

式中,Test为测试集中用户对项目的评分数据集,|Test|为测试集结果的个数,评分预测的目的是要找到最好的模型最小化测试集的RMSE。

3.3.2 实验结果分析

文章实验通过对比传统的基于项目相似性评分预测算法与加入CLSVSM计算电影之间共现强度的基于电影之间权重的评分预测算法,文章采用的模型评价标准为MAE和RMSE,实验结果如图1和图2。图1直观地显示15次实验中,基于CLSVSM的项目推荐算法与传统的基于项目的评分预测推荐算法相比均具有最小的MAE。从图2可以看出传统基于项目的评分预测推荐算法均高于基于CLSVSM的项目评分预测推荐算法,对两种算法的15次实验结果的RMSE求均值,IBCF的MAE均值为1.483,CLSVSM-IBCF的MAE均值为1.221,新算法的MAE平均下降幅度为17.6%;IBCF的RMSE均值为1.094,CLSVSM-IBCF的RMSE均值为0.869,新算法的RMSE平均下降幅度为17.7%。表明文章所提出的算法预测值与真实值偏差小,提高了推荐系统的推荐精度。同时,通过表1可以看到,新算法的推荐结果稳定性优于传统算法,受数据波动影响较小。

表1 IBCF算法与CLSVSM-IBCF算法推荐精确度对比表

图1 两种评分预测算法MAE比较结果

图2 两种评分预测算法RMSE比较结果

4 结论

本文针对电影评分推荐系统中存在的数据稀疏问题,在深入分析传统基于项目的相似度评分预测算法的前提下,提出利用CLSVSM对用户评分信息进行更深层次的挖掘,将共现分析理论运用于推荐系统中,对传统基于项目评分的推荐算法进行改进。通过计算项目之间的共现矩阵和共现强度矩阵计算项目之间的相似度,在一定程度上弥补了评分矩阵稀疏性问题。从实验结果可以看出,文章的推荐算法优于传统相似性度量推荐算法,提高了推荐算法的精确度。

猜你喜欢
相似性矩阵预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
浅析当代中西方绘画的相似性
多项式理论在矩阵求逆中的应用
12个毫无违和感的奇妙动物组合
基于隐喻相似性研究[血]的惯用句
矩阵
矩阵