一种基于改进聚类和Spark框架的个性化推荐方法及系统技术方案

技术编号:21629893 阅读:95 留言:0更新日期:2019-07-17 11:23
本发明专利技术公开了一种基于改进聚类和Spark框架的个性化推荐方法,包括:确定有效的评分数据集;利用Canopy算法对项目进行聚类预处理,生成至少一个Canopy聚类中心;初始化FCM算法的聚类中心,对每个项目利用隶属度计算公式更新其对聚类中心的隶属度,并根据更新的隶属度更新聚类中心,迭代直至满足停止条件,确定最终聚类集合;分别计算目标项目与最终聚类集合中每个聚类中心的相似度,选取大于等于预设相似度阈值的相似度对应的聚类集合中的项目组成候选项目空间,计算目标项目与候选项目空间中各个项目之间的相似度,寻找目标项目的K最近邻集合;获取用户对目标项目的偏好预测值,并利用top‑N推荐方法选取偏好预测值较高的N个项目进行推荐。

A Personalized Recommendation Method and System Based on Improved Clustering and Spark Framework

【技术实现步骤摘要】
一种基于改进聚类和Spark框架的个性化推荐方法及系统
本专利技术涉及大数据的个性化推荐领域,并且更具体地,涉及一种基于改进聚类和Spark框架的个性化推荐方法及系统。
技术介绍
移动互联网的快速发展标志着人类进入大数据时代,严重的信息过载使得用户很难便捷地获取所需信息,在此背景下,个性化推荐技术应运而生。协同过滤是运用最成功和最广泛的推荐技术之一,主要分为基于用户的协同过滤和基于项目的协同过滤两大类。由于项目更新速度相对较慢并且项目的数目远小于用户数目,使得计算项目相似度开销远远比计算用户相似度开销小。在实际推荐系统中,用户不可能对所有项目进行评分,拥有用户评分的项目只能占项目总数的1%-2%左右。基于稀疏的用户-项目评分矩阵计算最近邻居集将直接导致推荐不准确。寻找目标项目的K个最近邻居是协同过滤算法的核心部分。度量两个项目相似程度的常用方法是Pearson相关系数,但该方法不能显示这种相似程度的可靠性。因为可能会出现项目间共同评过分的用户交集过小但Pearson相关系数很大的情况。此外,在大数据背景下,协同过滤推荐算法还存在可扩展性差、推荐效率低的问题。因此对算法进行并行计算,提高运算效率,加速推荐结果的产生显得十分必要。目前的数据并行处理平台有Hadoop和Spark两种。Spark是一套开源的、基于内存的可以运行在分布式集群上的并行计算框架。相比Hadoop,它的Job中间输出和结果可以保存在内存中,减少了访问硬盘I/O次数,更具高效性,所以实现基于改进聚类和改进项目相似度计算的协同过滤推荐算法在Spark上的并行化运行,对于快速、准确地为用户提供个性化推荐具有重要的理论价值和参考意义。
技术实现思路
本专利技术提供了一种基于改进聚类和Spark框架的个性化推荐方法及系统,以解决如何快速、准确地为用户提供个性化推荐的问题。为了解决上述问题,根据本专利技术的一个方面,提供了一种基于改进聚类和Spark框架的个性化推荐方法,其特征在于,所述方法包括:对用户-项目评分矩阵进行数据预处理,确定有效的评分数据集,其中所述评分数据集包括:用户数据、项目数据和评分数据;利用Canopy算法对项目进行聚类预处理,生成至少一个Canopy聚类中心;根据所述至少一个Canopy聚类中心集合初始化FCM算法的聚类中心,对每个项目利用隶属度计算公式更新其对聚类中心的隶属度,并根据更新的隶属度更新聚类中心,迭代直至满足停止条件,确定最终聚类集合;分别计算目标项目与最终聚类集合中每个聚类中心的相似度,选取大于等于预设相似度阈值的相似度对应的聚类集合中的项目组成候选项目空间,并利用加权Pearson相关系数计算目标项目与候选项目空间中各个项目之间的相似度,寻找目标项目的K最近邻集合;根据所述目标项目的K最近邻集合,获取用户对目标项目的偏好预测值,并利用top-N推荐方法选取偏好预测值较高的N个项目进行推荐。优选地,其中所述对用户-项目评分矩阵进行数据预处理,确定有效的评分数据集,包括:过滤掉所述用户-项目评分矩阵中不符合条件的评分数据,并利用文本文件将符合条件的评分数据按行读入,确定初始的评分数据集,并设置分区数;利用map将所述初始的评分数据集中的每条评分记录分别转换为<Uid,(Iid,Rating)>键值对的形式,其中Uid为项目编号,Iid为用户编号,Rating为评分;利用map将所述以<Uid,(Iid,Rating)>键值对形式存在的每条评分记录分别转换为<Iid,(Uid,Rating)>元素格式,确定有效的评分数据集。优选地,其中所述根据所述至少一个Canopy聚类中心集合初始化FCM算法的聚类中心,对每个项目利用隶属度计算公式更新其对聚类中心的隶属度,并根据更新的隶属度更新聚类中心,迭代直至满足停止条件,确定最终聚类集合,包括:步骤1,根据所述至少一个Canopy聚类中心集合初始化FCM算法的聚类中心vi,确定聚类数目c,模糊指标m和容许误差阈值ε;步骤2,利用隶属度计算公式更新每个项目对聚类中心的隶属度步骤3,根据所述隶属度利用聚类中心计算公式更新聚类中心步骤4,将所述聚类中心和更新的聚类中心进行比较,若||vi(p+1)-vi(p)||<ε,则停止计算,确定最终聚类集合;否则,返回步骤2,直至||vi(p+1)-vi(p)||<ε,确定最终聚类集合。优选地,其中所述隶属度计算公式为:其中,为第p+1次迭代时第i个聚类中心相对于第k个项目的隶属度;为第p次迭代后第i(i=1,2,...,c)个聚类中心和第k(k=1,2,...,n)个项目之间的距离。优选地,其中所述聚类中心计算公式为:其中,xk为第k个项目的得分向量。优选地,其中所述利用加权Pearson相关系数计算项目间的相似度,包括:其中,rui和ruj分别表示用户u对项目i和项目j的评分;和分别表示项目i和j的平均评分;Uij为共同评价过项目i和项目j的用户集合;num为Uij里元素的个数;a是项目间评分用户交集大小的阈值。优选地,其中所述根据所述目标项目的K最近邻集合,获取用户对目标项目的偏好预测值,包括:其中,pui为用户u对目标项目i的偏好预测值,n为目标项目的K最近邻集合,为目标项目i的平均评分;sim(i,j)为目标项目i和j的相似度;ruj为用户u对项目j的评分。根据本专利技术的另一个方面,提供了一种基于改进聚类和Spark框架的个性化推荐系统,其特征在于,所述系统包括:数据预处理单元,用于对用户-项目评分矩阵进行数据预处理,确定有效的评分数据集,其中所述评分数据集包括:用户数据、项目数据和评分数据;Canopy聚类中心生成单元,用于利用Canopy算法对项目进行聚类预处理,生成至少一个Canopy聚类中心;最终聚类集合确定单元,用于根据所述至少一个Canopy聚类中心集合初始化FCM算法的聚类中心,对每个项目利用隶属度计算公式更新其对聚类中心的隶属度,并根据更新的隶属度更新聚类中心,迭代直至满足停止条件,确定最终聚类集合;K最近邻集合确定单元,分别计算目标项目与最终聚类集合中每个聚类中心的相似度,选取大于等于预设相似度阈值的相似度对应的聚类集合中的项目组成候选项目空间,并利用加权Pearson相关系数计算目标项目与候选项目空间中各个项目之间的相似度,寻找目标项目的K最近邻集合;推荐单元,用于根据所述目标项目的K最近邻集合,获取用户对目标项目的偏好预测值,并利用top-N推荐方法选取偏好预测值较高的N个项目进行推荐。优选地,其中所述数据预处理单元,对用户-项目评分矩阵进行数据预处理,确定有效的评分数据集,包括:过滤掉所述用户-项目评分矩阵中不符合条件的评分数据,并利用文本文件将符合条件的评分数据按行读入,确定初始的评分数据集,并设置分区数;利用map将所述初始的评分数据集中的每条评分记录分别转换为<Uid,(Iid,Rating)>键值对的形式,其中Uid为项目编号,Iid为用户编号,Rating为评分;利用map将所述以<Uid,(Iid,Rating)>键值对形式存在的每条评分记录分别转换为<Iid,(Uid,Rating)>元素格式,确定有效的评分数据集。优选地本文档来自技高网
...

【技术保护点】
1.一种基于改进聚类和Spark框架的个性化推荐方法,其特征在于,所述方法包括:对用户‑项目评分矩阵进行数据预处理,确定有效的评分数据集,其中所述评分数据集包括:用户数据、项目数据和评分数据;利用Canopy算法对项目进行聚类预处理,生成至少一个Canopy聚类中心;根据所述至少一个Canopy聚类中心集合初始化FCM算法的聚类中心,对每个项目利用隶属度计算公式更新其对聚类中心的隶属度,并根据更新的隶属度更新聚类中心,迭代直至满足停止条件,确定最终聚类集合;分别计算目标项目与最终聚类集合中每个聚类中心的相似度,选取大于等于预设相似度阈值的相似度对应的聚类集合中的项目组成候选项目空间,并利用加权Pearson相关系数计算目标项目与候选项目空间中各个项目之间的相似度,寻找目标项目的K最近邻集合;根据所述目标项目的K最近邻集合,获取用户对目标项目的偏好预测值,并利用top‑N推荐方法选取偏好预测值较高的N个项目进行推荐。

【技术特征摘要】
1.一种基于改进聚类和Spark框架的个性化推荐方法,其特征在于,所述方法包括:对用户-项目评分矩阵进行数据预处理,确定有效的评分数据集,其中所述评分数据集包括:用户数据、项目数据和评分数据;利用Canopy算法对项目进行聚类预处理,生成至少一个Canopy聚类中心;根据所述至少一个Canopy聚类中心集合初始化FCM算法的聚类中心,对每个项目利用隶属度计算公式更新其对聚类中心的隶属度,并根据更新的隶属度更新聚类中心,迭代直至满足停止条件,确定最终聚类集合;分别计算目标项目与最终聚类集合中每个聚类中心的相似度,选取大于等于预设相似度阈值的相似度对应的聚类集合中的项目组成候选项目空间,并利用加权Pearson相关系数计算目标项目与候选项目空间中各个项目之间的相似度,寻找目标项目的K最近邻集合;根据所述目标项目的K最近邻集合,获取用户对目标项目的偏好预测值,并利用top-N推荐方法选取偏好预测值较高的N个项目进行推荐。2.根据权利要求1所述的方法,其特征在于,所述对用户-项目评分矩阵进行数据预处理,确定有效的评分数据集,包括:过滤掉所述用户-项目评分矩阵中不符合条件的评分数据,并利用文本文件将符合条件的评分数据按行读入,确定初始的评分数据集,并设置分区数;利用map将所述初始的评分数据集中的每条评分记录分别转换为<Uid,(Iid,Rating)>键值对的形式,其中Uid为项目编号,Iid为用户编号,Rating为评分;利用map将所述以<Uid,(Iid,Rating)>键值对形式存在的每条评分记录分别转换为<Iid,(Uid,Rating)>元素格式,确定有效的评分数据集。3.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个Canopy聚类中心集合初始化FCM算法的聚类中心,对每个项目利用隶属度计算公式更新其对聚类中心的隶属度,并根据更新的隶属度更新聚类中心,迭代直至满足停止条件,确定最终聚类集合,包括:步骤1,根据所述至少一个Canopy聚类中心集合初始化FCM算法的聚类中心vi,确定聚类数目c,模糊指标m和容许误差阈值ε;步骤2,利用隶属度计算公式更新每个项目对聚类中心的隶属度步骤3,根据所述隶属度利用聚类中心计算公式更新聚类中心步骤4,将所述聚类中心和更新的聚类中心进行比较,若则停止计算,确定最终聚类集合;否则,返回步骤2,直至确定最终聚类集合。4.根据权利要求3所述的方法,其特征在于,所述隶属度计算公式为:其中,为第p+1次迭代时第i个聚类中心相对于第k个项目的隶属度;为第p次迭代后第i(i=1,2,...,c)个聚类中心和第k(k=1,2,...,n)个项目之间的距离。5.根据权利要求4所述的方法,其特征在于,所述聚类中心更新公式为:其中,xk为第k个项目的得分向量。6.根据权利要求1所述的方法,其特征在于,所述利用加权Pearson相关系数计算项目间的相似度,包括:其中,rui和ruj分别表示用户u对项目i和项目j的评分;和分别表示项目i和j的平均评分;Uij为共同评价过项目i和项目j的用户集合;num为Uij里元素的个数;a是项目间评分用户交集大小的阈值。7.根据权利要求1所述的方法,其特征在于,所述根据所述目标项目的K最近邻集合,获取用户对目标项目的偏好预测值,包括:其中,pui为用户u对目标项目i的偏好预测值,Kn为目标项目的K最近邻集合,为目标项目i的平均评分;sim(i,j)为目标项目i和j的相似度;ruj为用户u对项目j的评分。8.一种基于改进聚类和Spark框架的个性化推荐系统,其特征在于,所述系统包括:数据预处理单元,用于对用户-项目评分矩阵...

【专利技术属性】
技术研发人员:刘芬
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1