张家鑫,刘志勇,2,张琳,张倩,莎仁
(1.东北师范大学 信息科学与技术学院,长春 130117;2.东北师范大学 教育部数字化学习支撑技术工程研究中心,长春 130117;3.吉林大学 软件学院,长春 130012)
随着互联网基础设施建设的不断优化升级,移动端智能设备的不断普及,用户浏览互联网的体验有了巨大的提升,人们对互联网的需求日益增多,互联网已经完全融入了人们的生活,成为了与之密不可分的重要组成部分[1]。用户如何从大量数据中快速便捷选择出有效信息的需求日益增加,搜索引擎的出现初步解决了这一问题。但是,随着信息的爆发式增长,用户的需求往往较为模糊[2],所以如何通过用户的个人信息、浏览记录等为用户进行信息推送,减少因用户的模糊需求影响信息获取的效率,推荐系统的出现较好的解决了这一问题[3]。
推荐系统在1997年由Resnick和Varian提出,其中协同过滤推荐方法出现较早并且应用广泛,是推荐系统中最重要的推荐方法之一[4]。推荐系统广泛应用电子商务、电影和视频、音乐、社交网络、个性化阅读、个性化邮件、基于位置的服等领域,其中较为典型的包括Amazon、Netflix等。据Amazon统计,推荐系统的应用使平台的销量增加35%。Netflix公司曾在2006年举办Netflix Prize大赛,该大赛为了奖励可以提升Netflix平台的影片推荐效率[5]。推荐系统发展至今,由于用户的个人状态以及所处环境的差异,使得进行推荐的情景也不断增加,在视频和音乐推荐领域显得较为突出。以电影推荐为例,传统的协同过滤推荐方法在进行推荐时,只考虑了用户和项目的二维关系,忽略了包括环境因素、影片信息、观影感受等多维度影响因素,这会导致与用户的实际倾向存在一定的偏差[6],针对这种情况,本文提出了基于协同过滤的多维度电影推荐方法,主要改进如下:以电影推荐为例,首先通过回归模型确定有效的多维度因素以及维度内的属性,接下来通过进一步确定各维度属性对于预测评分的影响程度和权重,获得多维度预测模型,最后将多维度评分模型与传统协同过滤推荐模型结合,通过实验的方法,确定结合后的模型,验证模型推荐准确率。
为提升协同过滤推荐方法的推荐效率,许多研究者在传统协同过滤推荐方法的基础上进行了改进,例如:牛常勇等[7]通过SVD方法缓解数据集的稀疏与冷启动问题。王茜等[8]通过引入时间遗忘函数、拈度函数、用户特征向量,对协同过滤算法寻找用户的最近部居集合过程进行了改进,提高推荐的准确度。王晓军[9]构建基于分布式的混合协同过滤方法,缓解稀疏矩阵问题,改善推荐精度。邢哲等[10]提出了多维度自适应协同过滤推荐方法,该方法融合了基于项目、用户、评论的协同过滤模型,实现精准预测。张世显[11]等提出了引入时间维模型作为评分权重,解决了兴趣迁移的问题。
本文提出的改进方法与上述方法不同,通过引入对推荐结果可能有影响的多维度因素,利用回归分析的手段进行多维属性因素选取并构建多维度评分模型,最终与基于用户的协同过滤模型有机结合,构建基于协同过滤的多维度推荐模型。
协同过滤推荐方法的主要思想是利用他人的历史记录或项目评分为目标用户进行产品推荐或项目评分[12]。协同过滤推荐方法由以下三个步骤组成,包括构建用户-项目评分矩阵、寻找相似目标、预测评分进行推荐。
其中寻找向目标的方法为计算用户相似度计算,根据计算用户-项目评分矩阵(表1所示)寻找当前与用户Ui的最近邻相似用户。
表1 用户-项目评分矩阵
用户相似度的计算方式主要包括余弦相似度计算(Cosine-Based Similarity)、皮尔森相关系数(Pearson-Correlation Coefficient)、杰拉德系数(Jaccard),本文采用皮尔森相关系数。
设Iuv为用户u和用户v共同评分过的项目集合,则用户u和用户v的相似度度量方法如式1所示:
基于目标用户u与其他用户v的相似度,对其他用户相似度进行排序,取前k个为当前用户u的最近邻集合KNN-u,根据该集合预测用户u对项目i的评分,计算方式如式2所式:
式中,Ru.i和Rv.i分别表示用户u对项目i的评分和用户v对项目i的评分,分别表示用户u和用户v的平均评分,KNN-u代表目标用户u的最近邻集合。
线性利用数理统计中的回归分析来确定两种或两种以上变量之间相互依赖的关系,运用广泛[13]。本文选取多元回归模型进行维度确定,多元回归模型的一般形式如3所式:
式中,ε为随机误差,E(ε)=0。β0,β1,β2,…,βn为回归系数,若回归系数为正数,则表示y随着x的增大而增大,且x对y的影响程度与|β|成正比。
传统的推荐系统是基于用户-项目二维度量空间,未考虑情感信息、环境信息等相关信息,忽略了隐式反馈信息对预测评分的重要性,然而用户对项目的评分是由多个因素共同决定的,所以多维度推荐方法对推荐准确率能有一定的提高。
可以认为多维度推荐预测评分由用户与多维因素共同决定,故定义用户-多维度评分矩阵如式4所示:
定义d为多维度内的因素属性,dnm为维度Dn中的属性m,(dn1,dn2…dnm)∈Dn。
本文进行的多维因素分析是以视频推荐为背景,通过用户观看电影的多维信息因素进行数学模型的建立,最终确定哪些因素会影响用户对电影的评分。其中,多维度影响因素周边环境、观影时的心情、观影时的身体状况等相关信息组成。
对数据中可能影响评分的多维属性构建回归模型,将选取线性回归(Linear Regression)方式进行函数拟合,最终获得对评分影响较大的属性因素。线性回归模型通过RapidMiner工具进行模型构建,步骤如下:
(1)数据预处理,在读取数据后,利用Shuffle算子将样本随机打乱,并将原始数据分为两份,训练集用于建模,测试集用于模型评估。
(2)进行建模,将预测评分属性设为标签属性,利用Linear Regression、Apply model算子进行模型构建,Performance算子进行模型评价。
(3)获取线性回归模型结果,利用评价指标对模型表现进行评估,抽取对预测结果影响较大的属性。
通过初步回归分析,获得了有效的多维影响因素,接下来对已抽取的影响因素进一步回归分析,进而确定多维因素属性的权重。
假设获取有效的属性因素k个,记录各影响因素属性相关系数为β1,β2,…,βn,定义各属性因素权重为β1,β2,…,βn,因此定义各属性维度评分模型如式5所示:
式中,K为属性集合,rf表示属性因素f的属性值,βf为属性f的权重,ru,i,f为用户u对于项目i在属性f在下的预测评分。
定义多维度评分模型如式6所示:
可化简为式7:
式中,Ru,i,multi为用户u对于项目i的多维度预测评分。
个性化推荐中最为关键的环节是通过推荐模型计算出用户对未评分的项目进行评分预测。传统的协同过滤方法在进行评分预测时,仅仅考虑了用户和项目两个维度。为了将多维度影响因素添加到评分预测中,本文在原有协同过滤推荐方法的基础上提出了基于协同过滤的多维度推荐方法。
本文选取基于用户的协同过滤推荐方法进行实验比较,具体步骤如下:
(1)数据输入,获取用户评分矩阵M(u,i),根据矩阵计算用户相似度,得到与用户u相似的用户集合U。
(2)对于∀u∈U,找到与用户u相似的最高的k个最近邻v,最近邻用户集合为KNN(u,v,k)。
(3)选择出KNN集合中的商品,除去用户u已评分的商品,通过评分模型进行分数预测。
(4)数据输出,获取用户u对商品i的预测评分,按照预测值降序进行TOP-N推荐。
在传统的协同过推荐中,只考虑了相似用户对项目的评分从而计算目标用户的预测评分,该方法存在着预测评分获取单一、易受主观因素影响等问题,因此提出多维度协同过评分模型,在传统协同过滤方法的基础上添加多维度信息,充分考虑主客观因素,涵盖显式反馈信息与隐式反馈信息,使预测评分变得更加合理。举个简单的例子,假设用户u对影片a、b、c均进行了评分,其中对影片a、b评分略高于影片c,考虑到用户在观看影片c时的环境因素不同于观看影片a、b时,所以简单的认为用户u对影片a、b的喜好程度大于影片c的观点是片面的,不同用户的评分依据除了对影片本身的喜好程度之外也包含着用户的观影环境、观影心情等种因素影响,为解决这一问题,故提出了基于协同过滤的多维度电影推荐方法,在已知用户对影片评分的基础上进一步考虑多维度因素对于用户评分的重要程度。
通过将2.2中定义的多维度评分模型与基于用户的协同过滤评分模型进行拟合,构建基于协同过滤的多维度评分模型,定义模型如式8所示:
式中,R代表多维度协同过滤评分模型的预测评分,α为模型拟合系数,α∈(0,1)。
构建该评分模型的流程图如图1所示:
图1 基于协同过滤的多维度推荐方法流程图
本节主要是将本文提出的基于协同过滤的多维度推荐方法与传统的协同过滤推荐方法进行实验对比分析,以验证多维度推荐方法的有效性。分别通过数据集中的实验集和测试集来计算出两种推荐方法的推荐准确率,通过比较准确率验证改进方法的适用性。
本文选取的数据集为LDOS-CoMoDa,其中包含了121个用户对1232部电影的2296条评分记录。LDOS-CoMoDa数据包含了用户信息、影片信息、环境信息、评分信息等30个属性因素,通过回归分析后,最终选择出对预测评分影响较大的7个有效属性因素,并且根据有效属性定义了5个不同维度。具体定义维度-属性表如表2所示。
实验环境为:Windows 7操作系统,8GB内存,Intel(R) Core(TM) i7-6700HQ CPU 2.60GHz,实验程序使用Rapid Miner Studio 9.0开发。
推荐系统评价是验证推荐系统是否合格的重要环节之一,常用指标包括准确度与决策支持精度[14],本文主要使用统计精度度量中的平均绝对误差(Mean Absolute Error)来进行模型评价。
平均绝对误差(MAE)的评价方式为计算预测评分与实际评分二者的绝对平均误差,MAE越小,代表预测结果更趋近于真实值,即推荐结果较优。MAE评价公式如式9所示:
式中,| Test|为测试集合,pi表示用户对集合中各项目的实际评分,qi表示预测得分。
表2 多维度数据集维度-属性表
为了使测试结果更加准确,在进行基于用户的协同过滤方法与基于协同过滤的多维度推荐方法实验时,将数据集随机分为10份,轮流将其中9份作为训练集,1份作为测试集进行实验。
4.3.1 传统协同过滤实验
本文选取基于用户的协同过滤方法进行实验,实验中设定近邻数量k的取值范围为[5,100],采用区间渐进的方法,间隔为5,通过调整k值来观察实验结果。由图1可以看出,传统协同过滤推荐方法的MAE值在(0.92,0.99)范围内波动,当k=50时,MAE取最小值,MAE=0.921,此时该方法推荐效率最高。
图2 基于用户的协同过滤方法MAE
4.3.2 多维度协同过滤推荐实验
通过回归分析,首先选择出对预测评分影响较大的7个有效属性因素及属性权重(详见表2),进一步基于已选择的影响因素构建多维度评分模型,再通过式8,可构建基于协同过滤的多维度推荐模型。由于式8中的α未知,下面将通过实验的方法选取较优的α值使改进方法的MAE取值降至最低。
图3 基于协同过滤的多维度推荐方法MAE
通过图2所示,传统协同过滤方法在k=50时,MAE取值降至最低,故默认改进方法中协同过滤算法的k值保持不变。
实验中,设定改进的推荐方法中α取值范围为[0,1],采用区间渐进法,间隔为0.1,通过调整α取值,获得不同的改进方法MAE取值,实验结果如图3所示。可以看出,基于协同过滤的多维度推荐方法的MAE取值范围在(0.86,1.04)波动,当α取值为0.9时,MAE获得最小值,此时MAE=0.867,推荐效果最优。
推荐模型可以定义为如式10所示:
4.3.3 结果对比分析
通过上述实验,获得了传统协同过滤推荐方法与基于协同过滤的多维度推荐方法的实验结果,将实验结果汇总到图4中。选取实验结果中的MAE最优值和MAE平均值进行两种推荐方法的比较。在传统协同过滤推荐方法中,当最近邻k=50时,MAE值为0.921,此时该推荐效果最优。在基于协同过滤的多位推荐方法中,当拟合系数α=0.9时,MAE值为0.867,此时该推荐方法效果最优。
图4 平均绝对误差对比
在MAE均值方面,传统的协同过滤推荐方法中,最近邻k的取值范围为[5,100],在取不同k值情况下,该方法的MAE均值为0.932。基于协同过滤的多维推荐方法中,拟合系数α的取值范围[0,1],在取不同α值的情况下,该方法的MAE均值为0.919。
对比上述两种推荐方法,基于协同过滤的多维度推荐方法相比传统协同过滤推荐方法的推荐效果有一定的提升,其中最优MAE取值下降了约6%,MAE均值下降了约2%。
本文在传统协同过滤推荐方法的基础上通过线性回归确定了多维度影响因素及权重,并将多维度评分模型与传统协同过滤推荐方法相结合,提出了基于协同过滤的多维度电影推荐模型,最后通过LDOS-CoMoDa数据集进行验证。实验结果表明,本文提出的基于协同过滤的多维度电影推荐方法优于传统的协同过滤推荐,其中基于协同过滤的多维度电影推荐方法的最优MAE取值相比于传统方法下降了6%,MAE均值下降了约2%,说明合理引入多维影响因素会对推荐效果有一定的提高,从而侧面反应了影响用户的预测评分是受多种因素影响的,单一维度的预测方式不足以应对复杂的推荐场景。但是,本文提出的基于协同过滤的多维度电影推荐方法也存在着不足之处,回归分析采用的方法为线性回归,在应对离散数据时拟合效果较差,其次是场景选择是针对视频的推荐,在面对其他应用场景进行推荐时有一定的局限性。下一步将对以上问题进行总结,在未来的研究中将重点改善回归分析模型的选择适用性以及应用场景的丰富性。