一种基于稀疏数据预处理的协同过滤推荐方法
【技术领域】
[0001] 本发明涉及一种基于稀疏数据预处理的协同过滤推荐方法,属于互联网信息技术 领域。
【背景技术】
[0002] 随着互联网和信息技术的不断发展,人们逐渐从信息匮乏的时代步入了信息过剩 的时代。在这个时代里,无论是信息的生产者或是信息的消费者,都面临着巨大挑战,即作 为信息生产者,如何让自己的信息脱颖而出,受到广大用户的关注,是一件非常困难的事 情。作为信息的消费者,如何从海量的信息中找到自己感兴趣的信息也是一件非常复杂的 事情。因此,协同过滤推荐已成为了互联网信息技术的研究热点之一。
[0003] 协同过滤推荐的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的 信息,另一方面让信息能够展现在对它感兴趣的用户面前。为使协同过滤推荐能够产生精 确的推荐,保证推荐的实时性和有效性的要求,研究人员提出了各式各样的推荐方法。
[0004] 但是,随着协同过滤推荐规模的不断扩大,用户评分数据呈现出极端的稀疏性,比 如:在大型商务系统中,用户评分的项目一般不会超过项目总和的1 %。人们发现协同过滤 技术在对由用户历史信息得到的用户和项目评分矩阵进行用户(即项目)相似度计算时, 得到的结果不能让人满意,比如:一个用户由于是新用户或者其作出评分的项目过少,可能 会导致该用户和其他用户之间的相似度无法计算,从而不能作出有效推荐,导致推荐算法 精确度的下降。因此,在大型商务系统中,基于稀疏数据集的协同过滤推荐方法已经成为制 约推荐系统性能的一个关键因素,但是,如何对稀疏数据集进行合适的处理,已成为了一个 具有挑战性的问题。
[0005] 目前对推荐系统中稀疏数据集处理的方法包括:
[0006] (1)使用奇异值矩阵分解的预处理方法
[0007] 该方法首先构建稀疏用户和项目评分矩阵,接着对评分矩阵进行奇异值分解,获 得一个用户特征矩阵,并将其压缩到一个用户潜在因素空间。类似地,将每个项目也映射到 一个同样的潜在因素空间,然后根据每个用户的特征矩阵,预测用户对不同项目的评分,并 用这些预测评分来填充稀疏用户和项目评分矩阵中的用户未评分项目,使矩阵得以饱和。
[0008] (2)使用用户或者项目评分集均值的填充方法
[0009] 该方法首先构建稀疏用户和项目评分矩阵,接着计算每个用户或者项目的已评分 数据集的均值,并将各自的评分均值用来填充各自的未评分项。比如,我们计算得到用户A 历史评分均值,那么则将所有稀疏矩阵中用户A未评分的项目评分填充为A的历史评分均 值。这种方法会产生一个弊端,即用户A对那些未评分项目的预测评分都是相同的。
[0010] (3)使用用户或者项目评分集众值的填充方法
[0011] 该方法首先构建稀疏用户和项目评分矩阵,接着统计出每个用户或者项目的已评 分数据集的众值,并将各自评分数据集的众值用来填充稀疏数据中的未评分项,这种方法 可以体现出用户的评分喜好。但同样,使用该方法会出现多众值和无众值的情况。而本发 明能够很好地解决上面的问题。
【发明内容】
[0012] 本发明目的在于解决了上述现有技术的不足,提出一种基于稀疏数据预处理的协 同过滤推荐方法,该方法通过引入项目自身的特征属性信息,计算项目间特征属性相似度, 从而初步预测用户对未评分项目的评分,再对稀疏数据集的未评分项目进行混合填充预处 理,可以使得用户和项目评分矩阵完全饱和,有效解决了传统使用已评分数据集均值填充 未评分项带来的用户对项目评分一致的问题;有效解决了传统使用已评分数据集众值填充 评分项所造成的多众值或者无众值的问题。
[0013] 本发明解决其技术问题所采取的技术方案是:一种基于稀疏数据预处理的协同过 滤推荐方法,该方法包括如下步骤:
[0014] 步骤1 :根据用户对项目的历史评分数据构建稀疏的用户和项目评分矩阵,矩阵 中行代表用户,列代表项目;根据项目的自身属性信息构建项目特征属性矩阵,矩阵中行代 表项目,列代表特征属性;
[0015] 步骤2 :对各项目具有的特征属性赋予不同的权值,并且各项目所具有的特征属 性权值之和为1,即
i代表项目的第i个特征属性,η代表各项目所具有的特征 属性的个数,Wl代表项目的第i个特征属性所具有的权值大小;
[0016] 步骤3 :利用余弦相似性计算得到项目间特征属性相似度,并构建项目特征属性 相似度矩阵;
[0017] 步骤4 :设定阈值大小为0. 9,得到满足阈值的目标项目的相似项目集合,进而得 到用户在用户和项目评分矩阵中的已评分的数据集合以及对应的特征属性相似度值集合, 计算未评分项目的填充评分;
[0018] 步骤5 :利用计算得到的预测评分去填充稀疏用户和项目评分矩阵中用户未评分 项,最终得到一个饱和的用户和项目评分矩阵;
[0019] 步骤6 :对饱和的用户和项目评分矩阵采用KNN算法,计算得到每个用户对未评分 项目的最终预测值;选取预测值较大的项目,产生推荐列表。
[0020] 进一步的,本发明步骤2所述的特征属性都需要分配不同的权值。
[0021] 进一步的,本发明步骤4所述的用户和项目未评分项的填充值由项目特征属性计 算而来,所述计算过程包括:
[0022] 步骤4-1,根据得到的项目和特征属性相似度矩阵,设定阈值为0. 9,得到满足阈 值的目标项目的相似项目集合;
[0023] 步骤4-2,根据目标项目的相似项目集合,得到用户在用户和项目评分矩阵中的已 评分的数据集合以及对应的特征属性相似度值集合;
[0024] 步骤4-3,若得到的已评分数据集合为空集,则将目标项目的填充值设定为该项目 的均值;若得到的已评分数据集合非空,则将其与特征属性相似度值集合进行对位累积求 和计算,再除以已评数据集合中评分非零的个数,从而得到未评分项目的填充值。
[0025] 本发明能够应用于所有项目带有特征属性的协同过滤推荐系统。
[0026] 有益效果:
[0027] 1、本发明能够从项目自身的数据信息出发,通过引入项目自身的特征属性信息, 计算项目间特征属性相似度,从而初步预测用户对未评分项目的评分,再对稀疏数据集的 未评分项目进行混合填充预处理,可以使得用户和项目评分矩阵完全饱和,有效解决了传 统使用已评分数据集均值填充未评分项带来的用户对项目评分一致的问题;有效解决了传 统使用已评分数据集众值填充评分项所造成的多众值或者无众值的问题。
[0028] 2、本发明将项目的特征属性信息和已有稀疏用户-项目评分数据紧密结合在一 起,适用于所有项目带有特征属性的协同过滤推荐系统。
[0029] 3、本发明通过对用户的历史兴趣信息进行分析,根据得到的预测结果为用户提供 推荐,显著提高了推荐的精确性,并且该方法简单、数据采集方便。
【附图说明】
[0030] 图1为本发明的方法流程图。
[0031] 图2为本发明在不同邻居个数下协同过滤推荐的精度分析示意图。
[0032] 图3为本发明在不同邻居个数下协同过滤推荐的覆盖率分析示意图。
[0033] 图4为本发明在不同推荐个数下协同过滤推荐的覆盖率分析示意图。
【具体实施方式】
[0034] 下面结合说明书附图对本发明创造作进一步的详细说明。
[0035] 如图1所示,本发明是一种基于稀疏数据预处理的协同过滤推荐方法。由于KNN 算法是协同过滤推荐算法中常见的算法,下面将具体描述项目特征属性矩阵的构建、权值 分配、相似度计算以及未评分项目的预测填充值计算。
[0036] 本发明具体实施步骤,包括如下:
[0037] 步骤1 :根据推荐系统中项目自