基于用户兴趣局部相似性的协同过滤推荐算法(一)(2008-09-23 14:37:08)
“协同过滤算法”的改进及其优缺点:
基于用户的协同过滤算法,利用用户-项评分矩阵,来预测用户评分,从而加以推荐。其基本思想是:首先为目标用户寻找兴趣相似的邻居用户,然后把邻居用户感兴趣的项目推荐给目标用户。
缺点是随着系统规模越来越大,用户评分数据稀疏度越来越大,准确度大大降低;
于是引入了基于项目评分预测的协同过滤推荐算法,通过计算项目间的相似性来预测未评分项目,从而增加了用户评分项目数量;但是,依据极其稀疏的评分矩阵计算出的项目间的相似性,其准确性不高,从而推荐的精确度也大打折扣。
于是又提出了通过奇异值分解(SVD)减少项目空间的维数,使得用户在降维后项目空间上对每个项目均有评分。但是,降维会导致信息的丢失,而且降维效果与数据集密切相关,在项目空间维数很高的情况下,降维的效果无法保证。
于是在基于存储和基于用户建模的基础上,有提出了一种平滑聚类的方法来克服稀疏性问题,他基于稀疏的用户评分矩阵,对用户进行聚类,同类用户间进行推荐。但由于用户之间个体的差异性,类别的多维性,聚类的标准难以把握等问题,会导致个性化推荐的精度降低。
还有提出基于影响集的协同过滤推荐算法。理论可以克服稀疏性问题,其中影响集的选取至关重要,如何界定用户的最近邻和逆最近邻,即影响集的选取规则的把握程度,直接影响着推荐质量。
下面是基于用户兴趣局部相似性的协同过滤推荐算法,仍是“协同过滤算法”的改进,仍存在着不足。
主要从项目本身的属性考虑,不同的项目,具有不同的属性,由于个体的差异,没有两个兴趣完全相同的人,但他们总会有某方面,或者几方面的兴趣相同点。本改进就是基于此。
步骤如下:
1>.整理同目标用户a的具有相同兴趣的用户群S(a),并记录共同感兴趣的项目集I
2>.设置阈值s,对所有用户u:
a)基于PCC计算相似度。
b)基于资源属性矩阵和用户评分矩阵,计算项目i同项目目标I的整体相关度,如值小于s,则从S(a)中删除用户u,动态修改S(a)
3>.设置阈值b,利用邻近用户集S(a),采用修正的基于用户协作过滤评分预测方法对大于b 和 小于b
的情况采用不同的推荐策略。
加载中,请稍候...