数据稀疏问题严重制约着协同过满推荐系统的发展。对于大型商务网站来说,由于产品和用户数量都很庞大,用户评分产品一般不超过产品总数的1%,两个用户共同评分的产品更是少之又少,解决数据稀疏问题是提高推荐质量的关键。
为了提高推荐质量,许多研究人员都试图缓和数据稀疏问题。他们从不同的角度对用户和产品信息进行分析、处理,降低数据的稀疏程度。这些算法各有利弊。
1.基于项目的协同过滤推荐算法
传统的协同过滤推荐算法是通过计算用户之间的相似性,寻找与目标用户兴趣相似的一组用户,作为目标用户的最近邻居。然而,由于数据的极端稀疏性,两个用户共同评分的产品非常少,得到用户之间的相似性很有可能为0。因此,出现了基于项目的协同过滤推荐技术。
基于项目的协同过滤推荐算法,从产品角度进行分析,寻找与目标产品相似的产品集合,然后进行预测和推荐。它基于一个假设,即用户对与其感兴趣产品相似的产品也感兴趣。由于项目间的相似性相对稳定,而通常项目的数量比用户数量少,这样可以减少计算量,降低数据稀疏性。
2.降低矩阵维数的技术
降低矩阵维数的技术可对原始稀疏数据直接进行数据处理,降低数据稀疏性。主要算法有单值分解、聚类等。
2.1单值分解
单值分解算法利用矩阵的单值分解原理,对用户—产品矩阵进行分解,从而降低矩阵的维数,抽取出主要信息。
2.2聚类
单值分解通过矩阵运算降低数据稀疏性,聚类则是通过一些聚类算法将产品或用户聚成若干具有共同性质的类;然后在小的聚类数据中产生推荐。聚类算法有很多,如用K-means对用户的聚类算法。K-means算法是目前最通用的快速聚类算法。
3.基于内容的协同过滤算法
以上介绍的算法都是建立在用户对产品评分的基础上,在一定程度上都缓和了数据稀疏带来的问题。基于产品内容的协同过滤算法与前面介绍的几种算法的不同之处,是考虑到了产品本身的信息。由于增加了信息量,可以有效提高推荐质量。
参考论文:协同过滤推荐系统中数据稀疏问题的解决 吴 颜1,沈 洁1,顾天竺1,陈晓红1,李 慧1,2,张 舒1