针对slope one协同过滤算法中存在的数据稀疏性问题展开研究。提出一种基于余弦相似度加权的协同过滤算法(COSLOPE算法)。用加权slope one算法填充稀疏的评分矩阵后利用cosine算法计算用户之间的相似度,得出目标用户的近邻矩阵。通过近邻矩阵中拥有评分记录的用户来预测目标用户的项目评分,并进行推荐。该算法通过MovieLens数据集验证,MAE、RMSE 和MSE的值均优于传统Slope One算法。COSLOPE算法在有效解决数据稀疏性的同时亦提高了传统推荐算法的准确度并降低了算法响应时间。
互联网已成为人们获取信息资源的一条重要渠道,但网络数据纷繁复杂,简化对网络的探索过程, 提高网络信息的检索效率已逐渐成为诸多学者的研究热点[1]。协同过滤算法主要分为以下两种:基于项目的协同过滤推荐算法、基于用户的协同过滤推荐算法[2] [3]。在[4]中,研究者通过计算借阅用户的皮尔森相关系数,确定用户的最近邻聚类,从而形成用户与图书之间的推荐,该类推荐算法对缺乏用户评论数据的项目有效。赵文涛等从用户单属性相似性入手,计算权重并代入用户多属性维度中,用以增加评分矩阵的稠密性。在一定程度上解决了用户评分矩阵稀疏性的问题[5]。孔维良等人针对用户冷启动的问题,提出用加权贝叶斯算法对新用户进行扩展,再计算后验概率避免了推荐过程中先验概率计算可能带来的数据敏感性问题[6]。协同过滤推荐算法的核心是相似度计算,在实际应用中,由于用户和项目数量十分庞大,而用户往往仅对一小部分项目进行评分,这就导致用户项目评分矩阵的稀疏,使相似度计算的难度和不准确性大大增加[7]。
针对上述问题,为了改善数据稀疏性影响,提高相似度计算的准确度,将加权slope one 算法引入到传统的协同过滤算法中:首先,用加权slope one 算法对评分矩阵进行填充,接着利用cosine 余弦算法计算用户之间的相似度;然后,选取与目标用户相似度较高的前i 个用户作为其近邻用户集合,利用近邻用户已有的评分记录来预测目标用户对未评分项目的评分;最后,根据预测评分结果中预测评分较高的项目对目标用户进行个性化推荐。经过实验验证,基于余弦相似度的加权slope one 算法对推荐结果的精度有一定的提高。
2. 协同过滤推荐算法 相比较其他推荐算法,协调过滤算法具有以下两点优势[5]:第一,对推荐目标无特殊要求,无论是复杂亦或抽象的目标都能够进行推荐;第二,只需要用户历史评分数据,而不需要用户本身的相关属性信息。