综合用户属性和相似度的协同过滤推荐算法

2019-11-19 07:20农艺唐忠
微型电脑应用 2019年11期
关键词:精度矩阵协同

农艺, 唐忠

(广西医科大学 信息与管理学院, 南宁 530021)

0 引言

随着Internet的快速发展,人们可以网络技术获取自己需要的数据,同时每天Internet上的数据量呈指数形式增加,如何用户要从网上选择购买一个产品,搜索的时间相当长,而且有可能无法找到用户真正喜欢产品,给用户带来很大困扰,在该应用背景下,出现电子商务在线推荐系统[1-3]。在电子商务在线推荐系统中,协同过滤推荐算法设计是最为关键的老板说,因此成为了电子商务研究领域中的一个重要研究方向[4,5]。

最初,人们设计了基于用户的协同过推荐算法,通过对用户访问的历史记录进行评分矩阵,预测出用户可能喜欢的产品,主要应用于网上电影的推荐,该算法存在可扩展性不足问题;随后有学者提出了基于内容的推荐算法,其根据用户和项目之间关系生成相应的评分矩阵,然后根据评分矩阵之间的匹配得到相应的推荐结果,但是其存在数据稀疏问题,而且推荐实时性比较差。为了解决数据稀疏问题,有学者提出了协同过滤推荐算法,相于其它类型的推荐算法,协同过滤推荐算法的推荐精度高,速度也得到了得升,如出现了用户评分差异性和相关性的协同过滤推荐算法、基于置信度加权的单类协同过滤推荐算法、基于改进用户相似性度量和评分预测的协同过滤推荐算法[8-10],在实际应用中,这些算法同样存在各自的缺陷,如:冷启动问题、推荐误差大问题等[11]。

为了解决当前协同过滤推荐算法中存在的错误大、速度慢等缺陷,以获得更优的协同过滤推荐效果,设计了综合用户属性和相似度的协同过滤推荐算法,并采用具体数据进行了协同过滤推荐仿真测试。本文算法加快了减少了协同过滤推荐时间,协同过滤推荐速度得到了明显加快,降低了协同过滤推荐误差,推荐精度要远高于其它协同过滤推荐算法,结果验证了本文协同过滤推荐算法优越性。

1 传统协同过滤推荐算法

当前协同过滤推荐算法很多,每一种算法有自己的长处,同时也存在相应的局限性,基于用户的协同过滤推荐算法比较经典,使用范围比较广泛,下面对其进行相应的描述,了解传统协同过滤推荐算法工作过程,其划分为3个阶段:数据初始化阶段、计算相似度阶段、项目评分预测与推荐阶段。

1.1 数据初始化阶段

数据初始化阶段主要建立为建立填充用户-项目评分矩阵,具体形式如式(1)。

(1)

式中,N和M分别为用户数和项目数。

在式(1)中,行表示用户对项目的评分,列表示某个项目各个用户的评分。

1.2 计算相似度

相似度用于描述两个用户之间的相似度程度,相似度计算是最为关键的持术,当前相似度计算方法相当多,它们有各自的适用范围。最具代表性的为向量余弦法和皮尔逊相关系数法,其中基于向量余弦法的用户u、v间相似度计算如式(2)。

(2)

式中,Iuv表示u、v的共同评分集合。

基于皮尔逊相关系数法的用户u、v间相似度计算如式(3)。

(3)

1.3 项目评分预测与推荐

得到相似度值后,根据相似度对用户进行排序,找到最大K个相似度用户作为目标用户的邻居,然后根据K个邻居预测目标用户对该项目的评分,具体为式(4)。

(4)

根据评分最大的若干项目作为目标用户的推荐结果。

2 本文协同过滤推荐算法的设计

传统协同过滤推荐算法没有考虑用户的差异性,推荐精度低,为了解决传统协同过滤推荐算法存在的缺陷,本文提出综合用户属性和相似度的协同过滤推荐算法。

2.1 用户评分相似度计算改进

采用非线性函数描述用户u和v对项目i的评分相似度,具体为式(5)。

(5)

2.2 用户属性相似度

设用户u的用户属性为Attri=(ai1,ai2,…,ain),n为属性的个数,若用户u和v的第m个属性相同,则是有SIMAttr(u,v,m)=1,否则SIMAttr(u,v,m)=0,用户u和v的相似度为式(6)。

(6)

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

2.3 用户属性和与用户评分相似度的整合

用户属性和用户评分相似度整合为式(7)。

SIM(u,v)=α·SIMAttr(u,v)+β·SIM(u,v)

(7)

式中,α,β表示权重。

2.4 综合用户属性和相似度的协同过滤推荐步骤

Step1:对项目信息进行收集,并建立项目矩阵。

Step2:对评分信息进行收集,同时建立评分矩阵。

Step3:根据Step1和Step2的项目矩阵和评分矩阵建立用户—项目评分矩阵。

Step4:用户-项目评分矩阵计算用户属性和与用户评分相似度,根据相似度和K个近邻得到最优推荐方案。

3 协同过滤推荐算法的性能分析

3.1 实验环境

为了分析综合用户属性和相似度的协同过滤推荐算法的有效性,采用Java语言编程实现协同过滤推荐算法,仿真实验环境如表1所示。

表1 协同过滤推荐仿真实验参数

3.2 实验数据以及协同过滤推荐算法

为了使综合用户属性和相似度的协同过滤推荐算法的仿真结果具有说服力,选择标准数据集Movielens作为测试对象,随机从中选择500个样本作为训练样本,200个样本作为测试样本,共进行5次仿真实验,每一次选择的训练样本和测试样本是不是一样的,但是数量相同的。标准数据集Movielens具体描述如表2所示。

表2 标准数据集Movielens的具体描述

为了验证合用户属性和相似度的协同过滤推荐算法的优越性,在相同实验环境下,采用相同的数据集,选择文献[10]的协同过滤推荐算法和文献[11]的协同过滤推荐算法进行对比实验。采用协同过滤推荐精度和协同过滤推荐时间对实验结果进行分析。

3.3 协同过滤推荐效果比较

统计综合用户属性和相似度的协同过滤推荐算法和文献[10]、文献[11]的协同过滤推荐算法实验结果,每一种算法均进行5次仿真实验,它们的推荐精度如图1所示。

(a) 协同过滤推荐精度

(b) 协同过滤推荐误差

对图1的实验进行对比和分析,可以知道:

(1) 文献[10]、文献[11]的协同过滤推荐精度无低于90%,使得协同过滤推荐误差超过了10%,无法满足电子商务商品智能推荐的实际应用要求,因此实际价值相对较低。

(2) 综合用户属性和相似度的协同过滤推荐精度要高于95%,大幅度减少了协同过滤推荐误差,可以更好找到用户真正需要的商品,验证了本文提出的综合用户属性和相似度的协同过滤推荐算法的优越性。

3.4 协同过滤推荐效率比较

统计综合用户属性和相似度的协同过滤推荐算法和文献[10]、文献[11]的协同过滤推荐时间,同样均进行5次仿真实验,它们的推荐时间如图2所示。

图2 协同过滤推荐时间比较

对图2的协同过滤推荐时间可以知道,文献[10]的协同过滤推荐时间最长,而综合用户属性和相似度的协同过滤推荐时间最短,加快了协同过滤推荐速度,大幅度有效改善了协同过滤推荐效率。

5 总结

针对当前协同过滤推荐算法工作过程存在的局限性,以提高协同过滤推荐精度,提出综合用户属性和相似度的协同过滤推荐算法。首先综合考虑用户个性化特征建立用户属性评价矩阵,然后根据评价矩阵计算了用户之间的相似度,根据相似度实现商品推荐,最后采用Java编程实现协同过滤推荐仿真测试,本文算法的协同过滤推荐精度,可以帮助用户找到自己满意的商品,克服当前协同过滤推荐算法的弊端,协同过滤推荐时间短,可以用于在线推荐领域,具有广泛的应用前景。

猜你喜欢
精度矩阵协同
基于不同快速星历的GAMIT解算精度分析
输入受限下多无人机三维协同路径跟踪控制
家校社协同育人 共赢美好未来
热连轧机组粗轧机精度控制
“四化”协同才有出路
多项式理论在矩阵求逆中的应用
京津冀协同发展
以工匠精神凸显“中国精度”
矩阵
矩阵