协同过滤算法的优化研究
2018-11-09熊波元陈军华
熊波元, 陈军华
(上海师范大学 信息与机电工程学院,上海 200234)
1992年,xerox公司邮件系统通过协同过滤技术,对所有咨询的邮件进行分析,提取有价值的邮件,推荐给公司优先处理,这是对协同过滤算法最早的应用[1].1994年,GroupLens研究小组创建了MovieLens系统,对协同过滤算法的研究影响很大[2].
基于用户的协同过滤算法虽然应用广泛,但是用户相似性是通过用户的评分来计算的,评分与购买商品没有必然联系,因此通过这种方式计算得到的用户相似性,体现的是评分行为上的相似度,并不能直接代表用户在兴趣偏好上的相似度.对此,本文作者提出了改进方案,在原有用户相似性计算中加入用户兴趣偏差度因素,以期达到较为准确的相似度计算结果.
1 基于用户的协同过滤算法的优化
1.1 获取用户项目属性评分矩阵
1.2 计算用户兴趣度指数
统计数据中浏览行为的总次数与其用相同方法对应的有效购买总次数,然后将有效购买总次数除以浏览总次数得到浏览行为的有效购买占比w1,用相同方法计算出关注行为的有效购买占比w2和购买行为的有效购买占比w3.
将用户对某个品牌的某种行为操作次数乘以对应行为的有效购买占比,然后累加,得到用户兴趣度指数.
1.3 计算品牌偏好
品牌偏好计算公式如下:
(1)
其中,Iua是用户u对品牌a的兴趣指数.
根据品牌偏好,可以得到用户品牌偏好矩阵,每行中的数据是用户对各个品牌的偏爱度,以此计算用户间兴趣偏差度:
(2)
其中,n是品牌的数量,Lua是用户u对品牌a的偏好值,Lva是用户v对品牌a的偏好值.
1.4 计算用户相似性
矩阵Q中的每行数据代表一个用户向量,通过余弦相似性、修正的余弦相似性及Pearson相关相似性,计算得到用户评分相似度,再乘以用户兴趣偏差度,最终得到用户相似性.
1.5 最近邻居集合
采用Top-N的方式寻找目标用户的最近邻居集合,即计算出每个用户与目标用户之间的相似性,取相似性值最大的前k个用户组成集合,即最近邻居集合.
2 算法验证与分析
2.1 数据集
实验数据采用京东算法竞赛提供的真实数据,其中包括用户信息、商品信息、商品属性信息、用户评分信息、用户操作日志等数据.实验的数据中总共有983个用户、2398件商品和146198条评分记录,还有几十万条用户操作数据.
2.2 实验标准
选择平均绝对误差(MAE)作为验证标准.MAE是计算用户对项目的预测评分与用户的实际评分之间的偏差,计算公式如下:
(3)
其中,n为商品数量,Suk为用户u对商品k的预测评分,Quk为用户u对商品k的实际评分.M越小,说明推荐准确度越高.
2.3 实验结果分析
将实验的数据集随机分为5等份,将其中4份作为训练数据集,剩下的一份作为测试数据集,总共实验5次,每次实验都取不同的训练数据集和测试数据集进行实验,得到的5个结果再取平均值作为最后的实验数据,以此提高实验的准确性.
图1 相似性度量方法的比较
图2 不同算法用户评分预测的M值对比
对比了余弦相似性、修正的余弦相似性及Pearson相关相似性三种度量方法对算法M值的影响(图1).从图1中可以看出,随着最近邻居的数量的增加,三种度量方法对应的M值都在减小,推荐准确度在提高.相对而言,使用Pearson相关相似性公式计算用户相似性更为准确.因此,在后续比较算法的实验中,采用Pearson相关相似性公式计算用户相似性.
比较了不同算法下用户评分预测的M值(图2).从图2可知,随着最近邻居的增加,M值均先减小后趋于稳定,传统的基于用户的协同过滤算法和基于项目属性的协同过滤算法在最近邻居数为80后,才接近稳定,而改进算法在最近邻居数为60时,已趋于稳定.相对来说,改进后的算法收敛速度较快,其对应的M值整体相对于前两种算法较低,表示改进后的算法推荐准确度更高.从图2中还可以看出,改进后的算法在最近邻居数量为60时,推荐效果最好,推荐系统的准确性和复杂度达到最佳平衡.综上所述,改进后的算法的性能优于传统的基于用户的协同过滤算法和基于项目属性的协同过滤算法.
3 结 论
提出了一套协同过滤改进算法,对用户相似性计算方面进行优化,通过实验验证,相较于传统算法,改进算法能提高推荐系统的准确率.但本研究依然存在较多不足,如未能考虑实时性、多样性的平衡及智能化等问题,有待下一步研究工作加以解决.