当前位置:轶方文库网 > 专题范文 > 公文范文 >

一种2阶段联合预测的协同过滤推荐算法

时间:2023-09-12 10:35:04 来源:网友投稿

杨北辰 余 粟 陈 乐

(上海工程技术大学电子电气工程学院 上海 201620)

随着各种智能设备的普及,人们既是信息的消费者也是生产者,大量数据信息构成人类生活的第五空间——网络空间[1],其中,海量的数据使得人们难以寻找满足自身需求的信息或商品[2].个性化的推荐系统应运而生,通过分析用户的历史行为和即时需求预测人们可能偏好的信息或商品[3].

主流的推荐系统使用基于内容的推荐[4]、多模型混合推荐[5]和协同过滤推荐[6-7].协同过滤推荐建立在用户与商品交互之上,如评分等行为,是目前推荐系统中研究和应用最为广泛的技术之一[8-9].协同过滤主要分为2种:基于物品和基于用户,核心思想都是相似对象[10-11].

传统的协同过滤推荐算法面临一些现实困境,包括评分数据稀疏性、相似性度量局限性、用户评分偏好缺失性等问题.为了解决这些问题国内外专家进行了深入研究.朱磊等人[12]采用用户评分偏好模型和物品属性,改进用户间原始评分数据的偏好差异性,但是原始评分数据的稀疏性改善较差以及相似性修正因素部分欠缺;
邓爱林等人[13]提出先基于项目的协同过滤补全评分空值,再基于用户的共同评分作出推荐,但是没考虑传统物品或用户相似性度量本身存在的缺陷;
岳希等人[14]融合基于物品的协同过滤填值和基于用户的协同过滤预测,改善评分数据的稀疏性和推荐精度,但是缺乏用户评分偏好考量;
肖文强等人[15]通过引入时间权重、流行物品权重等因素对物品相似度和用户相似度加以修正,提高了推荐精度.

综合分析已有的协同过滤技术后,本文提出一种2阶段联合预测的协同过滤推荐算法.一方面,采用基于物品的预测得分填充评分矩阵,改善数据稀疏性,同时对物品相似性引入时间权重因子,增加填值精度;
另一方面,利用用户评分偏好模型构建评分偏好矩阵,以此计算用户偏好得分,同时对用户相似性引入用户共同评分数权重,最后联合基于物品的预测得分和基于用户的偏好得分作为目标用户的综合预测得分.

协同过滤算法的2种主要模式其应用环境不同,在实际使用过程中其使用性能有明显区别.例如,电商网站的商品推荐更适合采用基于物品的协同过滤推荐,因其项目数相对用户数更加稳定且数量较少,而资讯类网站更适合采用基于用户的协同过滤,因其用户数相对项目数更加稳定且数据较少.无论在哪种协同过滤算法实现的推荐系统中,用户或物品的相似性度量对于推荐质量都具有决定性的影响[16-17].相似性度量是由多方面计算得到的,如对象的属性集和特征向量以及系数等,常用的相似性度量有修正余弦相似系数和皮尔逊相关系数等.本文选择最为常用的皮尔逊相关系数对2种基础协同过滤算法作出描述.

1) 基于物品的协同过滤算法.

物品s,o基于Pearson相关系数的相似度为

sim(s,o)=

(1)

由前k个近邻物品的预测评分:

(2)

2) 基于用户的协同过滤算法.

用户u,v基于Pearson相关系数的相似度为

sim(u,v)=

(3)

由前k个近邻用户的预测评分:

(4)

但是,上述2种基础协同过滤算法在实际应用中存在诸多弊端,2种推荐算法的原始评分数据存在稀疏性,相似性度量方式仍有缺陷,用户在评分时存在个人喜好等问题,这些都会对用户或物品之间的相似性度量产生较大误差,从而影响推荐精度.因此,本文提出一种2阶段联合预测协同过滤算法,首先分别对2种预测模型进行优化,然后联合基于物品的预测得分和基于用户的偏好得分作为目标用户的综合预测得分.

2.1 基于物品预测得分填值

1) 物品相似度修正策略.

物品的时间属性和用户喜好的阶段性对实现精准推荐具有重要指导意义.例如,用户在短期内交互的物品具有更高的相关性,同类物品出现时间越短物品间相关性越高.因此,本文在物品相似度的计算中引入时间权重因子Ts,o.其定义如下:

Ts,o=e-(|tu,s-tu,o|+|ts-to|),

(5)

其中:tu,s为用户u对物品s的评分时间;
tu,o为用户u对物品o的评分时间;
ts和to分别为物品s,o的出现时间.由式(5)可知,用户对2物品的评分时间差和2物品出现的时间差越短,时间权重因子越大.

基于时间权重因子对物品相似度度量方式作出改进如下:

Ts,o∈(0,1]:simT(s,o)=sim(s,o)·Ts,o.

(6)

2) 原始评分矩阵填值.

现实生活中,用户和产品之间、评价之间存在不对等关系,可能用户使用了大量产品,但是并没有对产品作出评价,因此,某些产品存在评价稀疏的状况,影响相似度的评价.故对于物品或用户相似性计算时,Uso或Iuv集合中的数据十分稀少甚至于没有.这样的情况会造成物品或用户相似性度量精度较低甚至于无法计算相似性.为了改善相似度稀疏的问题,本文算法对用户的选取模式采用全用户随机方式进行预测评分,已有评分用户可取预测值与原始值的均值,利用式(1)(2)(5)(6)将评分矩阵Anm转化为完整的评分矩阵comAnm.

2.2 用户评分类别偏好模型.

1) 用户评分偏好模型

在现实生活中,每个用户的评分喜好都存在客观上的差异[18].当不同用户对同一物品给出相同评分时,意味着评分要求严格的用户更加喜欢这个物品.这就导致了原始评分数据欠缺对用户评分偏好的细粒度划分.

假设有评分类别集合{r1,r2,…,rn} ,则用户u对于评分类别ri的偏好得分preRu,ri可以通过式(7)计算[9]:

(7)

其中:Nrjnri为用户u评分类别为ri的数量;
nu为用户u的所有评分数量.基于用户评分偏好模型,利用式(7)将完整的评分矩阵comanm中所有用户的不同类别评分值转化为用户评分类别偏好值,得到用户评分类别偏好矩阵prefanm.< p>

2) 用户相似度修正策略.

在实际应用中,用户相似性度量还存在一些问题,例如,当用户之间共同评分的物品数很少时,则用户间的相似性会很高,但该相似性的可信度很低;
当用户之间共同评分物品数较多但评分都偏低时,则基于高相似性的近邻用户作出错误的推荐.本节引入权重因子Wuv进行改进:

(8)

其中:Nuv为用户u和用户v的共同评分物品数;
Nmin为用户空间共同评分物品数的最小值,Nmin≥0;
Nmax为用户空间共同评分物品数的最大值;
Nu为用户u的物品数;
Nv为用户v的物品数.由式(8)可知,用户共同评分物品数越多则用户共同评分权重因子越大.

基于用户共同评分权重因子对传统用户相似性度量方式作出改进如下:

simC(u,v)=sim(u,v)·Wuv,

(9)

其中Wuv∈(0,1].

2.3 用户评分预测

用户对物品的偏好程度不同于用户对物品的评分,即使2个用户对某一物品的评分值相同,但2个用户对这一物品的偏好程度却有所差异.所以用户对物品的偏好得分prefPu,s如下:

(10)

其中:simC(u,v)为用户u和用户v之间的修正相似度;
Rv,s为用户v对物品s的评分;
Mk为用户u的前k个近邻用户集合.

结合上文,最终将联合基于物品的预测评分与基于用户的偏好得分计算用户u对物品s的综合预测评分finPu,s定义如下:

(Pu,s+prefPu,s),

(11)

其中:prefPu,s为用户u对物品s的偏好得分;
Pu,s为基于物品模型所得用户u对物品s的预测得分;
Mk和Nk分别为用户u的k近邻用户集和物品s的k近邻物品集.

2.4 算法描述

算法1.2阶段联合预测的协同过滤算法.

输入:初始评分矩阵Anm、物品与用户近邻个数k、推荐列表长度L;

输出:任意用户u的推荐列表.

1) 通过基于物品的协同过滤算法——式(1)(2)和物品相似度改进策略——式(5)(6)对每个用户计算Uso空间中用户对物品的预测评分,填补空值,若用户存在原始评分,则取预测评分和原始评分的均值作为新评分值,得到完整评分矩阵comAnm.

2) 由完整评分矩阵comAnm和用户评分偏好模型——式(7),计算用户评分偏好矩阵prefAnm.

3) 基于用户评分偏好矩阵prefAnm和近邻用户数k,由基于用户偏好的评分预测——式(10)和用户相似性改进策略——式(8)(9)计算用户u对所有物品的偏好得分.

4) 将用户u在步骤1)中的预测评分和步骤3)中的偏好得分联合——式(11),作为用户u对所有物品的综合评分,顺序排列,取前L个作为该用户的推荐列表.

3.1 实验数据集和算法评估指标

1) 实验数据集.

本文实验数据集采用Movie Lens 10M, 该数据集包含71 567位用户对10 681部电影的10 000 054条评分.实验时,将原始数据集以8∶2的比例划分为训练集和测试集,且取5次实验的算术平均值作为最终结果.

2) 评价指标.

本文采用准确率和召回率进行算法评价.准确率和召回率定义如下:

(12)

(13)

其中:U为测试集所有用户集合;
F(u)为训练集上对目标用户u的推荐列表;
T(u)为目标用户u测试集上喜欢的物品集合.

此外,为了探究稀疏性给算法带来的影响,本文采用平均绝对误差评估在不同稀疏度数据集下的推荐质量,其定义如下:

(14)

其中:pi=(pi1,pi2,…,pim)为预测用户评分向量;
ri=(ri1,ri2,…,rim)为实际用户评分向量,MAE值越小推荐质量越高.

3.2 实验结果分析

为了充分验证本文算法具有更好的推荐精度,故将本文算法与相近算法横向对比,选取朱磊等人[12]提出的基于评分偏好与项目属性的协同过滤算法(PTP-Ttem-CF),该算法仅挖掘评分数据的内在属性而未有效改善数据稀疏性.岳希等人[14]提出的基于数据稀疏性的协同过滤算法仅从填值角度改善稀疏性,而未充分挖掘数据内在属性.相近算法的实验结果数据均在同一数据源、同一硬件配置和同一实验方式下复现而得.

1) 不同物品和用户近邻数k值下的性能对比.

实验时,取推荐列表为12,通过设置不同的k值来测试其对算法性能的影响,k取值范围[10,100],步长为10.实验结果如图1、图2所示:

图1 不同k值下各算法准确率对比

图2 不同k值下各算法召回率对比

由图1、图2实验数据可知,随着近邻用户数的增加,各算法的准确率和召回率均增加,而后趋于平稳,且当近邻用户数在40左右时,各算法具有较高的准确率和召回率.此外,无论k取何种值,本文算法表现均优于其余2种算法.

2) 不同推荐列表长度L下的性能对比.

实验中,近邻用户数k=40,L取值范围[6,48],步长为6.实验结果如图3、图4所示:

图3 不同L值下各算法准确率对比

图4 不同L值下各算法召回率对比

由图3、图4可知,随着推荐列表长度L的不断增加,各算法的准确率不断下降,召回率不断增加,且在不同L取值条件下,本文算法表现均优于其余2种算法.

3) 不同数据稀疏度下各算法的性能对比.

本文采用的数据集中,用户数n=943,物品数m=1 682,已有评分记录为90 570.数据稀疏度表示为用户评分数据中未评分项所占比例,定义如下:

(15)

实验中,取k=40,L=20,并从原始数据集中提取不同数量的已评分条数,测试在不同稀疏度下各算法的MAE值,进而分析各算法性能差异,实验结果如表1所示.

从表1可知,数据稀疏度的增加会使算法的MAE值不断增加,以0.943作为基准,作出不同稀疏度下各算法的MAE值增量,如图5所示.

表1 不同稀疏度下各算法MAE对比

图5 不同稀疏度下各算法MAE增量对比

由图5可知,随着稀疏度增加,本文优化算法的MAE增量值明显低于其余2种算法,验证了本文算法针对稀疏数据有更高的推荐精度.

本文针对传统协同过滤算法中存在的数据稀疏性、相似性度量局限性、用户评分偏好缺失性的问题,提出一种联合2阶段预测填值的协同过滤算法.通过基于物品的协同过滤填补空值,可以有效改善数据稀疏性.将用户评分偏好模型融合评分信息和偏好信息,并针对物品与用户的相似性度量作出改进,可以显著提高推荐精度,尤其在数据较为稀疏时表现更优.由于本文的用户偏好模型是基于用户评分数据,对用户的偏好描述不够完善,故将结合文本挖掘获取更多用户对物品的评论信息,利用更多的偏好特征词完善偏好矩阵,提高推荐精度.

猜你喜欢相似性度量物品一类上三角算子矩阵的相似性与酉相似性数学物理学报(2022年5期)2022-10-09鲍文慧《度量空间之一》上海文化(文化研究)(2022年3期)2022-06-28称物品小学生学习指导(低年级)(2022年5期)2022-05-31模糊度量空间的强嵌入数学年刊A辑(中文版)(2022年4期)2022-02-16“双十一”,你抢到了想要的物品吗?疯狂英语·初中天地(2021年11期)2021-02-16浅析当代中西方绘画的相似性河北画报(2020年8期)2020-10-27迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量数学年刊A辑(中文版)(2019年3期)2019-10-08谁动了凡·高的物品少年漫画(艺术创想)(2019年2期)2019-06-06低渗透黏土中氯离子弥散作用离心模拟相似性浙江大学学报(工学版)(2016年2期)2016-06-05地质异常的奇异性度量与隐伏源致矿异常识别中国学术期刊文摘(2016年1期)2016-02-13

推荐访问:协同 算法 过滤