论文部分内容阅读
导购网站将大量优惠商品信息集中展示出来,为广大消费者的购买和商家的营销提供了很大的便利。现有的导购推荐系统为了解决评分矩阵的稀疏性问题,主要采用平均数、众数等默认值去填充评分矩阵,缺乏对导购网站个性化特点的利用,导致推荐准确率偏低。另外,现有的导购推荐系统为了加快在线计算速度,大都采用划分聚类算法对用户进行聚类,虽然划分聚类算法时间复杂度较低,但极易陷入局部最优解且对簇的形状不敏感,进而在邻居用户查找过程中引入错误的邻居用户,导致推荐准确率的下降。针对以上问题,提出了基于用户聚类的个性化导购推荐算法。在算法的矩阵填充和用户聚类过程中,分别提出了一种利用朴素贝叶斯算法进行矩阵填充的方法和一种改进的聚类算法。最后,在实现了各个功能模块的基础上进行了系统的性能测试。论文主要工作如下:(1)导购推荐系统的需求分析与功能设计。分析了导购推荐系统的需求,设计了数据收集模块、行为量化模块、个性化推荐模块和热门推荐模块等主要功能模块。数据收集模块用于收集商品属性,并利用Ajax技术收集用户行为数据,为个性化推荐提供数据基础;行为量化模块将用户的各种行为按照相应权重加权求和,量化成评分,为相似度计算和用户聚类提供条件;个性化推荐模块采用了论文提出的基于用户聚类的个性化导购推荐算法进行个性化推荐;热门推荐模块将近期销量较高的商品推荐给用户。(2)基于用户聚类的个性化导购推荐算法。提出了一个包含商品类别筛选、矩阵填充、用户聚类和生成推荐等步骤的完整的个性化推荐算法。在矩阵填充过程中,针对平均数、众数等默认值填充方法导致推荐准确率低的问题,提出了一种利用朴素贝叶斯算法进行矩阵填充的方法。用商品属性作为朴素贝叶斯的特征,将多级评分预测转化成多元分类,初步预测出未操作商品的评分,填入稀疏的评分矩阵;在用户聚类过程中,针对划分算法容易陷入局部最优解和对簇的形状不敏感的问题,提出了一种基于密度划分准则的二分K均值算法。利用二分K均值算法以缓解局部最优问题,在划分前利用DBSCAN算法找出子簇最多的簇,将该簇作为二分K均值算法中进一步划分的簇,以解决划分算法对簇的形状不敏感的问题。(3)导购推荐系统的实现与性能测试。基于Java和Mahout实现了各个功能模块。分别进行了聚类和推荐的性能测试,实验表明,基于密度划分准则的二分K均值算法比已有聚类算法在聚类纯度上有所提高,基于用户聚类的个性化导购推荐算法相比已有推荐算法在平均绝对误差上降低了约12%,在准确率和召回率上各提升了约5%。