用户特征和项目属性相融合的协同过滤推荐算法

2018-04-26 05:03段立峰
微型电脑应用 2018年4期
关键词:冷启动协同矩阵

段立峰

(陕西工业职业技术学院 物流管理学院,咸阳 712000)

0 引言

随着电子商务的发展,人们从网上进行购物频率的越来越高,如何在保证产品质量的条件下,尽可能的满足用户需要,是电子商务系统急需要解决的一个问题。而协同过滤推荐可以对用户的特征进行描述,找到用户通常喜欢的东西,为相应的用户提供针对性服务,因此设计性能优异的协同过滤推荐算法一直是学者关注的焦点[1,2]。

针对电子商务推荐法的问题,多年来,学者们进行了许多广泛的研究,当前已经提出了多种有效推荐算法,它们大致可以划分为3类,分别为内容分析的推荐算法、协同过滤的推荐算法(CF)和混合推荐算法[4],相对其它类型的推荐算法,其中协同过滤推荐算法的使用最为广泛,成为当前一个重要的研究方向。在实际应用中,推荐算法存在明显的局限性,如:(1) 数据稀疏问题;(2) 冷启动问题。针对这些问题,一些学者提出了许多改进的协同过滤推荐算法,一定程度上改善了推荐精精度,但是仍然存在一缺陷,为此取得了更好的推荐精度一直是追求的目标。

针对当前协同过滤推荐算法存在推荐精度低、冷启动等难题,为了改善协同过滤推荐的效果,设计了用户特征和项目属性相融合的协同过滤推荐算法,该算法根据用户特征和项目属性对评分相似度进行估计,并根据估计根据得到协同推荐的结果,最后选择MovieLens数据集协同过滤推荐算法的性能进行了分析,以验证该算法的有效性和优越性。

2 传统协同过滤推荐算法

当前有许多协同过滤推荐算法,最常用的为基于用户的协同过滤推荐算法,其工作原理为:将用户感兴趣的项目推荐相似爱好用户,项目的评分一般从“最近邻居集”物项目评分加权得到,工作步骤为:

(1) 设有m个用户,n个项目,首先要构建用户-项目评分之前的矩阵R=(rij)m×n,该矩阵主要反映用户对项目偏好,其中rij为用户i对项目j的评分,矩阵一般形式如表1所示。

表1 评分矩阵

(2) 对不同用户间的相似度进行估计,根据估计结果对用户进行排序,形成一个“邻居集”。从邻居集中选择k个与目标用户与最相似的用户,组成“最近邻居集”。

(3) 根据“最近邻居集”对某个目标项目进行评分,然后进行加权,根据项目加权值实现推荐。

(1)

当前相似性度计算式有3种:它们分别如下:

(2)

其中,rix和rjx表示用户i和j对项目x的评分值。

(2) Pearson相关性:该相似性只虑用户共同评分的项目集合,设用户i和j共同评分的项目集合为Iij(Iij=Ii∩Ij),则有式(3)。

(3)

(3) 修正的余弦相似性:在标准余弦相似性的基础上,考虑不同用户间评分差别,设用户i和j共同评分的项目集合为Iij(Iij=Ii∩Ij),则有式(4)。

(4)

3 本文算法

当前协同过滤推荐算法存在一定的局限性,为改善协同过滤推荐算法的推荐效果,提出了基于用户特征和项目属性相融合的协同过滤推荐算法,具体如下。

引入一个非线性函数表示用户评分相似度,使评估结果更加客户,则用户评分相似度为式(5)。

(5)

每个用户均有自己的偏好度,此此引入平均评分表示用户对某个目标的偏好,项目偏好度的相似度为式(6)。

(6)

当两个用户对一个项目的评分相同时,为了区别两个用户,引入用户评分相似度的置信度,其为式(7)。

(7)

其中,Ii表示用户i评价的项目集合。

综上所述,相似度最终计算公式为式(8)。

(8)

当前算法只考虑已有用户相关信息,没有充分利用新用户信息,易出现冷启动问题,为此引入sigmoid函数对用户属性和用户评分推荐结果进行融合,设用户i的特征向量为Attri=(ai1,ai2,…,ain),如果户i和j的第m个属性相同,simAttr(i,j,m)=1,不然simAttr(i,j,m)=0,那么用户i和j属性的相似度为式(9)。

simAttr(i,j)=∑m∈Attrwm·simAttr(i,j,m)

(9)

其中,wi是第i个属性的权值。

用户特征与项目属性融合结果为式(10)。

sim(i,j)=α·simAttr(i,j)+β·simscore(i,j)

(10)

式中,α和β分别表示权值。

基于用户特征和项目属性相融合的协同过滤推荐的工作步骤为

(1) 收集项目属性信息,估计项目属性的值,产生一个项目属性矩阵。

(2) 收集用户对项目的评分信息,估计所有用户评分的值,产生一个用户评分矩阵。

(3) 对项目的属性矩阵和用户评分矩阵进行融合,建立用户一项目的评分相似度矩阵;

(3) 根据相似度矩阵选近邻,并计算未评分项目x的值,根据结果实现推荐方案,计算公式具体为式(11)。

(11)

其中,NK是与用户最相似的K个邻居;rki是用户k对x的评分。

4 实验结果与分析

为了测试本文提出的协同过滤推荐算法的性能,在Intel 4核 3.0GHz,4GB RAM,200GB硬盘,Win7 的OS实验平台上进行了仿真实验,选择VC ++ 6.0编程实现协同推荐算法的程序,选择协同过滤推荐测试的标准数据——MovieLens作为研究目标,同时在相同实验条件下,采用文献[12]的协同过滤推荐算法作为对比算法,分析本文算法的优越性。协同过滤推荐的结果选择平均绝对误差(MAE)和均方根误差(RMSE)进行,MAE计算公式为式(12)、(13)。

(12)

(13)

式中,n表示测试样本数量。

RMSE的计算公式为式(14)、(15)。

(14)

(15)

两种协同过滤推荐算法的测试实验结果,如图1所示。

(a) MAE的值

(b) RMSE

它们均进行5次实验。对图1的推荐结果进行分析可以发现,相对于文献[12]的算法,MAE和RMSE的值均有所下降,本文算法提高了协同推荐的精度,这是因为本文算法同时考虑了用户特征和项目属性,建立了理想的协同过滤推荐模型,改善了协同过滤推荐结果,能够满足用户的实际应用要求。

由于当前协同过滤推荐算法均存在冷启动的缺陷,为了需要分析本文算法解决冷启动问题的能力,去掉一个评分信息,对冷启动场景进行仿真模拟,然后统计两种协同过滤推荐算法的MAE值,结果如图2所示。

图2 对冷启动问题的测试结果

从图2可以发现,本文协同过滤推荐算法不存在冷启动问题,较好的克服对比算法存在的局限性,具有更广泛的应用范围。

不同数据稀疏度条件下的MAE值统计结果如图3所示。

图3 不同稀疏度下的算法性能对比

对图3的MAE值变化曲线进行分析可以知道,随着数据稀疏度不断的增加,MAE值不断的变大,即协同过滤推荐误差不断增加,那么协同过滤推荐的精度不断下降,但是在同样的数据稀疏情况下,本文协同过滤推荐算法的MAE值要明显小于文献[12]算法的MAPE,实验结果表明,本文协同过滤推荐算法具有更好的数据稀疏鲁棒性。

在电子商务系统的协同过滤推荐过程中,工作效率十分关键,为此分析统计它们每次找到最优协同推荐结果的迭代步数,结果如图4所示。

图4 算法的工作效率测试

对图4的迭代步数进行对比,本文算法用更少的迭代步数找到了最优的协同过滤推荐结果,加快了协同过滤推荐速度,协同过滤推荐的效率更高。

5 总结

协同推荐算法一直是电子商务推荐系统研究中的重点,由于电子商务的不断发展,当前协同推荐算法的局限性越来越明显,为了改善协同推荐的结果,提出了用户特征和项目属性的协同过滤推荐算法,并采用VC++ 6.0实现协同推荐算法的仿真实验。结果表明,该算法解决了当前协同推荐算法存在的冷启动难题,大幅度提升了协同推荐的精度,而且协同推荐效率得到了明显的改善,具有十分广泛的应用前景。

[1] Perugini S, Marcos. Recommender systems research: A connection-centric survey [J]. Journal of Intelligent Information, 2013, 2(1): 137-143.

[2] 朱岩, 林泽楠. 电子商务中的个性化推荐方法评述[J]. 中国软科学, 2009(2):183-192.

[3] Herlocker L, Konstan J, Terveen L, et al. Evaluating collaborative filtering recommender systems [J]. ACM Transactions on Information Systems, 2004, 22(1):50-53.

[4] Kim H N, Ji A T, Ha I, et al. Collaborative filtering based on collaborative tagging for enhancing the quality of recommendation[J]. Electronic Commerce Research and application, 2010(9):73-83.

[5] 冯勇,李军平,徐红艳,等. 基于社会网络分析的协同推荐方法改进[J].计算机应用, 2013, 33(3):841-844.

[6] 李春,朱珍敏,高晓芳.基于邻居决策的协同过滤推荐算法[J].计算机工程, 2010, 36(13): 34-36.

[7] Kim BM , L iQ , Park C S, et al. A new approach for combining content-based and collaborative filters[J]. Journal of Intelligent Information System, 2006, 27(1): 79-91.

[8] 罗辛,欧阳元新,熊璋. 通过相似度支持度优化基于K近邻的协同过滤算法[J].计算机学报, 2010,33(8):1437-1445.

[9] 陆兴华,陈平华.基于定量递归联合熵特征重构的缓冲区流量预测算法[J].计算机科学,2015, 42(4): 68-71.

[10] 焦东俊,孟祥武.Apache Mahout协同过滤算法评估方法的改进[J].济南大学学报(自然科学版),2016,30(1):47-50.

[11] Chen Zhimin, Jiang Yi, Zhao Yao. A collaborative filtering recommendation algorithm based on user interest change and trust evaluation [J]. International Journal of Digital Content Technology and its Applications, 2010, 4(9): 106-113.

[12] 韦素去,业宁,吉根林,等.基于项目类别和兴趣度的协同过滤推荐算法[J].南京大学学报(自然科学版),2013,49(2):142-149.

[13] 赵琴琴,鲁凯,王斌. SPCF:一种基于内存的传播式协同过滤推荐算法[J].计算机学报,2013,36(3):671-676.

猜你喜欢
冷启动协同矩阵
轻型汽油车实际行驶排放试验中冷启动排放的评估
家校社协同育人 共赢美好未来
Evaluation of Arctic Sea Ice Drift and its Relationship with Near-surface Wind and Ocean Current in Nine CMIP6 Models from China
基于学习兴趣的冷启动推荐模型
蜀道难:车与路的协同进化
“四化”协同才有出路
三医联动 协同创新
初等行变换与初等列变换并用求逆矩阵
矩阵
矩阵