APP下载

融合项目属性和用户兴趣迁移的协同过滤算法

2022-06-14李豆豆汪学明

计算机仿真 2022年5期
关键词:计算方法矩阵评分

李豆豆,汪学明

(贵州大学计算机与科学技术学院,贵州 贵阳 550000)

1 引言

为了缓解信息过载问题,推荐系统依据历史评分数据对用户的兴趣偏好进行有效预测,并作出个性化推荐。而作为推荐系统领域的主流算法,协同过滤算法仍然还有着很多亟待解决的问题。一方面,用户和项目规模的逐渐增加,不同项目的用户评分数据可能较少,由此而构建的用户-项目评分矩阵会面临着严重的稀疏性[1],相似度的计算结果会直接影响到近邻用户的选取。另一方面,依赖用户历史评分数据作出的推荐,反映的是用户过去的兴趣偏好,却体现不出兴趣的时效性。对于新加入的项目或者用户,因为不具有用户以往评分数据,不能进行相似度计算,也存在着冷启动问题[2]。针对传统协同过滤算法的不足之处,众多专家学者都致力于提出改进优化方案。

Wang[3]等人通过考虑用户间的不对称性和项目间的相似性,提出了一个非线性相似度量模型,缓解了数据的稀疏性。Qi[4]等人针对最近邻用户选取不准确问题,提出了一种融入信任关系和用户特征相结合的改进方案,有效的提高了推荐精度。Chen[5]等人考虑同一项目用户单一评分尺度问题,引入平衡因子改进余弦相似度计算的方法,优化了用户相似度的准确性。Luo[6]等人引入用户的局部和全局相似性的概念,提出了通过权重函数平衡两种最近邻预测评分的方法。Li[7]等人将用户的属性特征、用户的兴趣与用户相关评分信息相结合,新的相似度量公式进行推荐。武[8]等人在考虑用户的基本属性的基础上,通过用户显隐相似度,结合用户评分相似度,构建用户相似度模型,精确了近邻用户的选取,提高了推荐质量。Patra[9]等人利用Bhattacharyya系数寻找用户之间的相似性,综合评价信息定位稀疏评价数据集中活跃用户的有效邻居,提出了一种基于邻域的新相似度量方法。Liao[10]等人提出了基于权重的时间相似度计算方法,有效反映了用户的兴趣,提高了推荐的精度。Zhu[11]等人基于用户的历史评分和项目属性信息设定用户的选择标准,并将这些标准结合到选择用户的优化框架中,缓解了冷启动问题。李[12]等人考虑用户共评项目和用户间的评分差异,通过引入修正因子,对传统相似度计算方法进行改进。缓解了推荐的不准确性。Wei[13]等人提出了基于离散量和用户兴趣接近度的协同过滤算法,通过将离散内容与兴趣度结合起来,在极端数据稀疏的情况下,仍然能够提供良好的推荐效果。

在上述学者研究的基础上,本文在引入项目分类属性的同时考虑用户的兴趣相关因素。在用户-项目评分的基础上,体现用户对项目属性特征的偏好,引入时间权重函数间接呈现出其兴趣变化,融合两者相似度,得到最终相似度计算方法。实验结果表明,与传统协同过滤算法相比,改进后的算法提高了相似度量的精度,带来了较好的推荐效果。

2 传统协同过滤算法

传统协同过滤算法依赖历史评分数据,为用户推荐兴趣相似的项目,其主要流程图如图1所示。

图1 传统协同过滤算法流程图

2.1 构建用户-项目评分矩阵

基于用户对项目的历史评分数据,假设数据集中共有m个用户、n个项目分别用U={U1,U2,U3,…,Um},I={I1,I2,I3,…,In}表示,构建m×n维用户评分矩阵,用户U1对项目Ij评分值用Ni,j表示,用1到5的整数表示实际评分值,分数与用户的喜好呈显正相关。用户-项目评分矩阵如表1所示。

表1 用户-项目评分矩阵

2.2 选择近邻用户

本文以基于用户的协同过滤算法为例,对近邻用户集合生成过程进行如下描述:通过目标用户与其它用户之间的相似度的计算,找到与目标用户u近邻用户集合Ku={u1,u2,u3,…,uk},它由u的K个最相似邻居用户组成。常用的相似度计算方法如下。

Jaccard相似度:主要考虑用户之间的共评项目的数量,Jaccard系数的大小在一定程度上反映着相似度的大小,值越大,相似度越高。Jaccard相似度计算方法如式(1)所示

(1)

Pearson相似度:Pearson相关系数表示两个变量间的相关性,两者的相关性取决于绝对值的大小。Pearson相关相似度计算方法如式(2)所示

(2)

2.3 预测评分并产生推荐

在获得目标用户K个近邻用户集合后,可以根据预测评分公式对其未评分过的项目进行预测,并对得到的预测分数按值进行依次排列,选择TopN推荐给目标用户,计算方法如式(3)所示

(3)

3 本文算法

3.1 用户对项目属性偏好相似度计算

传统协同过滤算法中,以选取具有共评项目的近邻用户,依据预测评分的结果进行的推荐,忽略了项目属性相关因素。而项目本身通常具有明显的类别属性,在一定程度上会影响用户的评分,并间接反映用户的兴趣分布。特定特征的项目往往潜在的表现出着用户的兴趣爱好,其对项目属性评分数据可作为后台数据被准确记录。因此,通过挖掘用户行为偏好的隐式数据,采用计算用户对项目属性评分值来定义用户的兴趣级别,建立用户—属性评分矩阵,通过计算用户间的相似度,构建用户-项目属性偏好相似度。

3.1.1 建立项目分类属性矩阵

假设项目的分类属性构成一个集合,A={ Attr1,Attr2,… Attrk}每一个项目的特征可以用集合中一个或者多个分类属性来描述,如表2为项目分类属性矩阵A(n,k),如果Ai,j值为1时表示项目i有属性j,为0时表示项目i不具有属性j。

表2 项目分类属性矩阵A(n,k)

3.1.2 建立用户-项目属性评分矩阵

结合项目属性特征数据和用户评分数据,选择k个相关属性描述项,构建m×k维用户-项目属性评分矩阵。项目的属性共享项目的评级,即项目的属性与项目具有相同的评级,如果用户对项目i评分为t,项目i有属性a,则评分矩阵S(u,a)中评分值为t。如果用户对项目j的评分为c,项目j也有属性a,则评分矩阵S(u,a)评分值为t+c。如果用户不对项目i进行评分,或者项目没有属性a,则评分矩阵S(u,a)评分值为0。其中,相关属性评分矩阵如表3所示。其中Si,j表示用户对项目属性的总评分值。

表3 建立用户-项目属性评分矩阵S(u,a)

根据用户-项目属性评分矩阵,计算用户对项目属性之间的相似度,计算方法如式(4)所示。

(4)

3.2 时间因素

时间是影响用户兴趣改变重要因素之一,用户短期内访问的项目,反映着用户的兴趣偏好,长期未访问,表明着用户的兴趣在改变,通过艾宾浩斯遗忘曲线赋予权值的不同,用来模拟用户兴趣随着时间所发生的动态变化。其中用户u对项目i的兴趣变化权重函数可用式(5)表示。

(5)

其中,t1为用户u首次对项目评分的时间,ti为用户u对项目i进行评分的时间,T表示用户对系统使用时间,即结束与开始时间差值的时间跨度

通过将时间权重函数与Pearson相似度计算公式相结合构造新的相似度。

SimT(u,v)

(6)

3.3 改进后的用户相似度量模型

根据上述方法,通过将引入时间权重函数改进后的Pearson相似度与用户对项目属性偏好相似度计算方法相结合,构造新的相似度量模型,如式(7)所示。

Sim(u,v)=λSimI(u,v)+(1-λ)SimT(u,v)

(7)

其中,SimI(u,v)表示用户u和v对项目属性偏好相似度SimT(u,v)表示引入时间权重函数改进后的Pearson相似度,Sim(u,v)表示表示用户u和v最终相似度计算方法,可变参数λ∈[0,1]是加权因子,用来平衡两者相似度的比重。

3.4 预测评分

由式(8)计算出用户间的相似度,选取前K个用户组成近邻用户集合,计算得到用户u对项目i的预测评分,选取分数TopN项目推荐给目标用户u。计算方法如式(8)

(8)

3.5 算法流程

通过将用户对项目属性偏好相似度与引入时间权重函数改进Pearson相似度计算方法相结合,得到更为精确的预测评分,然后进行相关推荐,具体算法步骤如下。

输入:目标用户u,用户评分信息,项目-属性矩阵A(n,k),用户-项目属性评分矩阵S(u,a),参数λ,用户对项目评分时间。

输出:对目标用户u的预测评分矩阵。

Step1:由项目的类别属性相关信息,建立用户-项目属性评分矩阵;

Step2:根据式(4)计算出用户对项目属性兴趣相似度SimI(u,v);

Step3:引入时间权重函数,与Pearson相似度结合,表现出用户的兴趣随着时间发生的变化,利用式(6)构造新的相似度SimT(u,v);

Step4:将Step2与Step3得到的相似度SimI(u,v)和SimT(u,v),利用式(7),通过λ取不同的值,以调整两者所占比重,得到经过改进后更为精确的相似度量Sim(u,v)的计算结果;

Step5:根据Step4得到的Sim(u,v)计算结果,选取K个最为相近的用户组成近邻用户集;

Step6.利用式(8)计算出预测评分,形成预测评分矩阵,并选择评分TopN的项目进行推荐。

4 实验结果及分析

4.1 数据集

为了证明改进协同过滤算法的有效性,实验采用MovieLens100K开源数据集,由943个用户对1682部电影的评分数据的组成,评分的范围为[1,5],其中,电影的属性信息包括动画、喜剧、戏剧、科幻、恐怖、动作、冒险等19种类型,分数的高低代表着用户的兴趣级别。数据集的稀疏性为1-1000/(943×1682)=93.69%,随机选取80%作为训练集,20%作为测试集。

4.2 评价标准

平均绝对误差:作为准确性度量标准之一,MAE反映出的是推荐系统的预测评分和用户的实际评分之间的偏差,将用户的实际评分分集合定义为{pu,1,pu,2,…,pu,n}其预测评分集合定义为{ru,1,ru,2,…,ru,n},则计算公式为

(9)

其中,Pu,i表示用户u对项目i的实际评分,ru,i表示用户u对项目i的预测评分,N表示测试集中的项目个数。

召回率:推荐项目中实际预测到的物品数占推荐出物品数的比例,即预测到用户感兴趣的物品数与其喜欢物品数的比例,反映的是推荐的准确性,其计算公式为

(10)

其中,U表示用户集合,R(u)表示依据训练数据对用户进行的相关推荐,T(u)表示用户在测试集上的行为列表。

覆盖率:推荐系统推荐出来的物品数占总物品的比例,反映着推荐的多样性和物品的概率分布,计算公式为

(11)

其中,Nk表示为用户u推荐项目集合中的项目的个数,N表示测试集中的项目个数。

4.3 结果与分析

4.3.1 平衡因子λ对MAE的影响

根据本文提出的相似度量模型,可变参数λ对相似度计算结果产生非常重要的影响,因此要消除平衡因子λ对推荐结果的影响,在选择最近邻居数为30时,随λ取值的不同,MAE的变化情况下如图2所示。

图2 平衡因子λ对MAE的影响

由图2可以看出,随着平衡因子λ值从0.1增至0.9,预测评分曲线呈现先降低后上升的趋势,当λ值为0.3时,算法的MAE值最小,此时既考虑项目类别属性会影响到相似度的计算,也考虑到了用户对项目的评分时间的不同,反映出的兴趣也不同。

4.3.2 不同算法之间对比

将本文提出改进的相似度计算方法记为UIC-CF与Jaccard、Pearson传统相似计算方法以及文献[14]计算方法(Proposed)在平均绝对误差(MAE)、召回率(Recall)、覆盖率(Coverage)等方面进行对比,其中,最近邻居范围为[10,50],实验结果如图3、图4、图5所示。

图3 四种算法的MAE对比图

MAE反映了用户预测评分与实际评分之间平均差异,从图3可以看到随着最近邻居数量的增加,四种算法的平均绝对误差逐渐减小。改进的算法的MAE小于Jaccard、Pearson传统相似度计算方法与文献[14]中提出的相似度计算方法,因为基于权重函数的引入,强调了用户最近访问项目的兴趣偏好,同时也避免了忽略早期相关数据信息,有效的反映了用户兴趣,提高了推荐的准确率。

图4 四种算法的Recall对比图

由图4可以看出改进的协同过滤算法的召回率要高于其它三种相似度计算方法,在考虑用户对项目属性偏好的同时考虑用户的兴趣迁移,推荐出的物品反映的是用户真正的偏好,有效挖掘出了用户的兴趣。

图5 四种算法的Coverage对比图

图5为4种算法在Movielens数据集中覆盖率的对比图,与其它三种相似度计算方法相对比,本文提出改进的算法有着相对较高的覆盖率。这是由于构建了项目-属性矩阵,引入了项目属性,当项目评分矩阵稀疏,导致近邻用户选取不准确时。此时,提取用户评价的项目属性,利用用户对项目属性偏好的相似性和所确定近邻用户的搜索范围,在理论上保证推荐覆盖范围增加,提升推荐的多样性。

由以上实验的对比分析可以看出,用户对项目属性偏好与以及其的兴趣变化被作为重要考虑因素,改进后的算法(UIC-CF)是有效可行的,其在平均绝对误差、召回率、覆盖率等方面均优于传统协同过滤算法,能带来较好的推荐效果。

5 结束语

本文为了有效挖掘用户兴趣,缓解数据稀疏的缺陷,通过构建项目-属性分布矩阵反映用户对特定特征项目的偏好信息,并在此基础上进一步引入时间权重函数量化用户兴趣变化,最后,构建新的相似度量模型,实验结果表明,改进后的方法反映了用户的偏好,适应了用户兴趣随时间而变化,有效的降低平均绝对误差,提高覆盖率和召回率,缓解了数据的稀疏性,提高了推荐精度,改善了推荐效果。

由于新的相似度量模型要使用项目属性相关信息,属性的选择在实践中可能面临一些障碍,因此,要实现对新场景的应用,需要有特定的项目属性。

猜你喜欢

计算方法矩阵评分
槽道侧推水动力计算方法研究
车联网系统驾驶行为评分功能开发
基于示踪气体法的车内新风量计算方法研究
极限的计算方法研究
APACHEⅡ评分在制定ICU患者护理干预措施中的应用研究
双周最佳阵容
多项式理论在矩阵求逆中的应用
第二重要极限的几种计算方法
双周最佳阵容
矩阵