论文部分内容阅读
随着信息技术和互联网的迅猛发展,人们进入了信息超载的时代。推荐系统是一个解决信息超载问题的有效工具,它根据用户的历史行为等记录,对用户的兴趣进行建模,然后利用创建的用户兴趣模型进行个性化推荐,把用户感兴趣的信息、产品等推荐给用户。协同过滤是推荐系统中采用最为广泛也是最为成功的推荐技术。针对协同过滤技术效果依赖于一个精确的相似度测度方法且其可伸缩性较差,不能处理大数据的问题,本文提出基于项目层次结构的推荐算法,并结合Madoop技术实现矩阵分解算法。主要工作如下:1)改进衡量相似度的余弦距离和皮尔逊相关系数的计算公式,避免计算目标用户与所有用户的相似度,从而避免了在整个用户空间中搜索最相近的K个用户。本文引入倒排索引数据结构,使查找目标用户最近邻的计算复杂度大大降低。实验表明,在确保与改进前最近邻结果一致的情况下,改进后的相似度计算公式能大大缩减查找目标用户最近邻的时间,大大提高推荐算法处理大数据的能力。2)提出了一种基于项目层次相似度的协同过滤算法。利用用户给部分项目标注的标签和项目类别进行自动扩展,建立所有项目的层次结构,然后利用建立的项目标签层次结构计算项目之间的相似性。实验表明,与传统的协同过滤算法比较,本文提出的基于项目层次相似度的协同过滤算法能够显著提高推荐系统处理大数据的能力,并且可以获得更优的RMSE效果。3)结合矩阵分解梯度下降算法的近似算法和MapReduce分布式计算框架,设计实现了一种基于MapReduce的矩阵分解推荐算法。实现矩阵分解算法主要需要实现矩阵乘法,本文对矩阵乘法的分布式实现进行了研究,详细分析了内积法、外积法和分块法,通过对比实验得出,矩阵乘法效率需要折中考虑单个工作节点的计算量和需要网络传输的数据量。