论文部分内容阅读
在众多推荐技术当中,协同过滤推荐算法以其良好的推荐效果和推荐性能成为众多推荐系统的核心算法。然而,传统的协同过滤算法仅通过用户评分数据进行分析计算,推荐精度较低。同时,现有研究多以单节点计算为主,面对海量数据,已不能满足可扩展性要求。因此针对算法推荐精度低与可扩展性差的问题,本研究对基于用户的协同过滤算法进行改进,并将改进算法基于Spark平台进行并行化的设计与实现,主要研究内容如下:1.提出了改进用户聚类的协同过滤算法。针对传统的协同过滤推荐算法仅通过评分数据进行分析计算,导致推荐精度较低的问题,根据用户对各项目类别的访问频率构建了用户的项目类别关注度模型,并从初始类中心选取与距离度量两方面改进模糊C均值聚类算法,在目标用户簇类内进行协同过滤推荐。实验结果表明,在近邻数取40,聚类个数为25时,该算法较传统的协同过滤算法平均绝对误差降低了3.41%。2.提出了融合用户兴趣因素的协同过滤算法。考虑到数据稀疏性与用户兴趣会随时间变化等问题,引入了矩阵填充与评分修正的数据预处理过程。针对改进用户聚类的协同过滤算法在相似度计算过程中没有充分考虑用户兴趣的问题,基于用户对项目类别的评分信息构建了用户间类别差异度模型,并以此改进传统的相似度计算,最终在改进的用户聚类的基础上,进行协同过滤推荐。实验结果表明,在同等聚类条件下,近邻个数取40时,该算法较基于改进用户聚类的协同过滤算法平均绝对误差降低了2.85%,说明该算法可以进一步提高推荐精度。3.设计了改进的基于用户的协同过滤算法的并行化实现方案。针对推荐系统的可扩展性问题,本研究按照算法处理流程,将结合用户聚类技术与用户兴趣因素改进的协同过滤算法划分为矩阵分片与评分修正填充、用户聚类、协同过滤推荐3个阶段,并针对每阶段任务对算法进行了并行化设计与实现。实验结果表明,在MovieLens-1m数据集下,4节点Spark集群上的算法运行时间比单节点减少了50.16%,证明基于Spark平台的算法并行化方案可以有效地解决系统的可扩展性问题。