可扩展性、数据的稀疏性及用户的冷启动问题是传统的协同过滤推荐算法所面临的主要问题。由此提出一种基于矩阵分解和Meanshift聚类的协同过滤推荐算法:首先将原始矩阵使用奇异值分解(SVD)方法进行矩阵分解,较好地对原始数据进行降维,然后使用Meanshift (均值漂移)聚类对所有的物品进行聚类,最后在聚类后的类别中结合改进的基于物品的协同过滤算法,进而减少邻居商品的搜索范围。此方法不仅提高了推荐速度,还良好地解决了用户冷启动问题及数据稀疏问题,在MovieLens 1M数据集上相比于传统的基于物品的协同过滤算法MAE值最多下降了4.52%。
人们现在处在一个科技飞速进步的“大数据”时代,移动互联网技术的日新月异,不仅为人们的生活提供了极大的便利,同时也带来了海量的数据信息资源。然而面对如此庞大的信息资源,如何有效地利用这些资源自然成了近些年来研究者们研究的热点问题之一。而作为普通用户面对大量的数据时常常不知如何更好更快地选择自己所需要的信息,比如在音乐平台选择自己喜欢的类型的歌,在电子商务平台中选择想要购买的商品等。推荐系统应运而生,它在信息过滤、信息细化以及向用户提供个性化服务中发挥了显著作用,提供了一种崭新的信息服务模式[1]。推荐系统中目前较为主流的推荐算法是协同过滤推荐[2] (Collaborative Filtering, CF)。
面对用户的数量往往远远大于物品数量的现象,用户的冷启动问题[3]成为了一个比较严重的问题。
杨秀梅[4]等在新闻推荐系统中提出基于用户上下文信息的方法,也改善了用户的冷启动问题,提升了用户的满意度。高玉凯[5]等提出了一种基于协同矩阵分解的用户冷启动推荐算法,来缓解推荐算法在用户冷启动上面临的情况。
杨圩生[6]等使用基于信任环的用户冷启动推荐, 不仅有效解决了用户冷启动问题, 还提高了推荐的准确率。
但是现在很多用户更倾向于操作简单的直接评分而非字字需要思考输入的评论, 这就导致了大多数情况下我们并没有过多的相关数据可以进行分析。
数据的逐渐增多引起的可扩展性问题[7]也比较严重,因此国内外很多研究人员将聚类这一方法结合到协同过滤推荐算法中,来改善各种推荐算法的性能。Birtolo [8]等提出了一种基于模糊C 均值的物品协同过滤推荐算法,实验证明有较好的推荐性。Sarwar [9]等提出了基于用户的k-means 聚类协同过滤推荐算法, 良好地改善了传统基于用户的协同过滤推荐算法的性能。
邓爱林[10]等使用基于项目聚类的协同过滤算法,有效提高了推荐系统的实时响应速度。林建辉[11]等采用了基于SVD 与模糊聚类的协同过滤推荐算法提高了推荐的质量。王伟[12]等通过SVD 与K-means 聚类结合的协同过滤算法来提升推荐效果。
可是对于k-means 聚类等一系列需要提前设定簇数K 的聚类方法而言,如果簇的数量选择不当有时将有