基于聚类和Slope One预测的协同过滤方法。针对传统协同过滤算法用户评分矩阵稀疏和扩展性问题,引入项目属性相似性改善Slope One预测模型,并将其与基于用户的聚类相结合应用于协同过滤推荐,以降低用户评分矩阵的稀疏性,提高目标用户最近邻居的查询速度,降低搜索开销。实验结果表明,本发明专利技术的协同过滤方法有效地提高了推荐质量。
【技术实现步骤摘要】
本专利技术涉及一种协同过滤方法,尤其涉及。
技术介绍
随着电子商务的发展,电子商务的信息过载问题越来越严重,海量的商品信息,必然带来信息的冗余。推荐系统可以模拟销售人员向客户推荐商品,因此在电子商务中得到广泛的应用。目前研宄人员提出了多种推荐方法,其中协同过滤推荐是推荐系统中最有效最成功的推荐算法。然而,在实际应用中,协同过滤推荐算法还存在一些局限性,随着系统规模的扩大和用户数量的增加,评分矩阵的维数不断增加,但实际评分数据稀少,导致推荐系统的实时性和准确度都有所降低,邻居用户的查找不够准确,从而影响推荐质量和效率。针对数据的稀疏性,很多学者提出了预先对评分矩阵填充的方法。这些方法在一定程度上降低了评分数据的稀疏性,提高了推荐的质量,但仍存在一些不足。综上所述,迫切需要研宄一种新的协同过滤方法。
技术实现思路
针对协同过滤推荐算法存在预测精度低,聚类准确性差等问题,本专利技术研制一种。本专利技术其特征在于,包括以下步骤:(I)根据皮尔逊相似度公式计算项目i和项目j的属性相似性,记为sims (i, j);(2)根据现有项目的既得评分,组成前述的评分矩阵,计算两个项目之间的评分相似性,记为simr (i, j);(3)将前两步所得结果进行线性组合,组合结果作为最终的综合相似性,记为sim(i,j):sim(i, j) = a Sims (i, j) + (1- α ) simr (i, j);(4)对sim(i, j)按从大到小排序。取相似度最大的前kn个项目作为邻居项目,从而得到目标项目的邻居项目集I = Ul,i2,i3-1kn},在这个邻居项目集的基础上,对目标用户运用加权SlopeOne算法进行预测,将预测评分填入空缺的评分矩阵。所述项目i和j的相同属性越多,相似度越高。当两项目具有完全相同的属性时,我们可认为这是同一个项目;所述α代表项目属性所占的比重,其中a e (0,I),可以根据经验或者专家建议进行调节,得到最优的推荐结果。【附图说明】图1是实施流程图。图2是本专利技术SlopeOne模型与传统SlopeOne模型MAE对比图。图3是本专利技术和传统SlopeOne模型在数据集上的对比图。图4是引入用户聚类的推荐和传统协同过滤推荐的MAE对比图。图5是引入用户聚类的推荐和传统推荐的对比图。图6是10个目标用户下本专利技术方法和传统协同过滤推荐的MAE对比图。图7是10个目标用户下本专利技术方法和传统协同过滤推荐实验对比。图8是15个目标用户下本专利技术方法和传统协同过滤推荐的MAE对比图。图9是15个目标用户下本专利技术方法和传统协同过滤推荐实验对比。图10是4种方法实验结果对比图。【具体实施方式】为更好地理解本专利技术,下面结合附图和【具体实施方式】对本专利技术进行更为详细描述。在以下的描述中,当已有的现有技术的详细描述也许会淡化本专利技术的主题内容时,这些描述在这儿将被忽略。图1是本专利技术实施流程图。在本实施例中,本专利技术的包括以下步骤:首先验证基于项目属性相似的SlopeOne预测模型对协同过滤推荐的有效性,然后验证用户聚类对协同过滤推荐的有效性,最后验证基于以上两者结合的算法对推荐质量是否提尚。本专利技术采用Movielens数据集,该数据集包括943个用户对1682部电影的100000条评分。其中评分数据从I到5,评分越高,表示用户对电影越喜欢。为了对比本文算法效果,减小实验误差,实验采用5折交叉法。每次从数据集中抽取250个用户和250部电影,组成I个训练数据集,对应训练数据集,抽取相应的I个测试数据集,总共抽取5组这样的数据集。实验过程采用以上5组数据集,分别对5个训练集和5个测试集进行实验,将实验结果取平均作为最终结果。(I)基于项目属性相似的SlopeOne预测模型有效性验证分别将传统SlopeOne模型和基于项目属性相似的SlopeOne预测模型应用到协同过滤推荐。选取15个目标用户,邻居用户数目分别从k = 10递增到k = 50,每次增加10个。分别对5组数据进行实验,最后取平均值作为实验结果,用图2-图3表示,实验结果表明,基于项目属性相似的SlopeOne预测模型应用于推荐系统后,推荐误差明显小于传统SlopeOne预测的推荐。同时,计算过程大大简化,减小了计算开销,推荐效率得到提高。(2)基于用户特征的聚类有效性验证将引入用户聚类的推荐算法与传统协同过滤推荐算法进行对比实验。本专利技术的初始聚类是根据用户的年龄划分为7个聚类,然后不断进行迭代,将聚类后的用户应用到协同过滤推荐中。选取15个目标用户,邻居用户数目分别从k = 10递增到k = 50,每次增加10个。分别对5组数据进行实验,最后取平均值作为实验结果,用图4-图5表示,实验结果表明,引入用户特征聚类的推荐算法的推荐误差明显减小,在取较少的邻居用户时,就可取得较好的推荐结果。在邻居用户数目继续增大时,推荐误差增大或不稳定,这是因为聚类过程使用户空间变小,在邻居用户数目过大时,用户间的实际相似度已经很低,并非真正意义的最近邻,从而影响推荐结果。因此,实际应用中不宜选取过多的邻居用户。(3)基于SlopeOne预测模型和聚类的协同过滤算法有效性验证将基于SlopeOne预测模型和聚类的协同过滤算法与传统的协同过滤推荐算法进行对比实验。分别对5组数据进行实验,最后取平均值作为实验结果。实验采用逐渐增加目标用户数目的形式,对每组数据集分别取10、15个目标用户进行实验,并取每组用户误差平均值作为结果。随目标用户数目的增大,有利于平衡误差。每次实验,目标用户都是随机抽取。从图6-图7可以看出,当选取10个目标用户时,本专利技术提出的方法不论最近邻居数目的多少,都优于或近似于传统算法。尤其是在最近邻居数目少的情况下,效果更明显。由图8-图9可以看出,随着相似邻居数目的增加,本专利技术提出的方法从整体上要优于传统协同过滤推荐算法,并且当相似邻居数目达到20时,推荐已经比较稳定。同时,邻居用户数目的减少,使搜索空间减小,可大大提高推荐的效率。取以上15个目标用户,将本专利技术方法、传统推荐算法、只引入基于项目属性相似的SlopeOne预测模型的推荐算法和只引入基于用户特征聚类的推荐算法的实验结果数据绘制在同一张折线图上,比较其MAE,实验对比如图10所示。将本专利技术方法与只引入基于项目属性相似SlopeOne预测模型的推荐算法或只引入基于用户特征聚类的推荐算法对比可知,虽然后面二者比传统算法在精度上有所提高,但是随着邻居用户数的增大,推荐效果的提升有限,推荐质量不稳定。这是由于数据过于稀疏的情况下,通过本专利技术SlopeOne或聚类处理以后,虽然在一定程度上排除了不相关用户的影响,但也对数据进行了降维,当最近邻居数目过大以后,用户实际的相似程度却变得很低,导致当邻居用户数目过大时,推荐质量降低。而本专利技术方法弥补了以上两种算法的不足,降低了数据稀疏程度,缩小相似邻居搜索空间,既提高推荐效率,又提高了推荐的精度,使推荐更有效。尽管上面对本专利技术说明性的【具体实施方式】进行了描述,但应当清楚,本专利技术不限于【具体实施方式】的范围,对本
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本专利技术的精神和范围内,这些变化是显而易见的,一切利用本专利技术构思的专利技术创造均在本文档来自技高网...
【技术保护点】
基于聚类和Slope One预测的协同过滤方法,其特征在于,包括以下步骤:(1)根据皮尔逊相似度公式计算项目i和项目j的属性相似性,记为sims(i,j);(2)根据现有项目的既得评分,组成前述的评分矩阵,计算两个项目之间的评分相似性,记为simr(i,j);(3)将前两步所得结果进行线性组合,组合结果作为最终的综合相似性,记为sim(i,j):sim(i,j)=αsims(i,j)+(1‑α)simr(i,j);(4)对sim(i,j)按从大到小排序。取相似度最大的前kn个项目作为邻居项目,从而得到目标项目的邻居项目集I={i1,i2,i3…ikn},在这个邻居项目集的基础上,对目标用户运用加权SlopeOne算法进行预测,将预测评分填入空缺的评分矩阵。
【技术特征摘要】
【专利技术属性】
技术研发人员:龚安,高云,高震,唐永红,高洪福,刘亚囡,
申请(专利权)人:中国石油大学华东,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。