一种基于项目属性评分均值的协同过滤推荐方法

文档序号:8922688阅读:341来源:国知局
一种基于项目属性评分均值的协同过滤推荐方法
【技术领域】
[0001] 本发明涉及一种协同过滤推荐方法,尤其涉及一种基于项目属性评分均值的协同 过滤推荐方法。
【背景技术】
[0002] 随着Internet和电子商务的迅猛发展,"信息爆炸"和"信息过载"问题越来越严 重,用户很难从海量的信息中找到自己真正需要的信息。推荐系统可以在用户目的不明确 的情况下帮助用户找到可能感兴趣的信息并推荐给用户。协同过滤是现行推荐系统中应用 最广泛最成功的技术之一,但其需要维护一个存储用户偏好的数据库。因此,随着系统中用 户和项目数量的不断增加,协同过滤面临严峻的用户评分数据稀疏性、推荐实时性、可扩展 性挑战,推荐质量迅速下降。针对上述问题,迫切需要一种能够提高推荐质量的推荐方法。

【发明内容】

[0003] 针对协同过滤推荐算法在单一评分数据集上存在预测精度低的问题,本发明研制 一种基于项目属性评分均值的协同过滤推荐方法。
[0004] 本发明其特征在于,包括以下步骤:
[0005] (1)用户-项目属性评分矩阵的构造。定义项目的属性集为A={AyA2,…,Ak,… A^Aki{ai,a2,…,at}。需要注意的是,对于某一项目的属性Ak,其可能有多个取值。例 如,一部电影既是动作片又是科幻片,一件商品既是女装又是户外等。设用户对第k个属性 Ak的评分矩阵为G,表示如下:
[0007] 其中,m为用户数量,t是属性Ak值的数量。
[0008] 确定用户对各属性值的评分,S卩gu。采用均值法:即以用户对具有某一属性值的 项目的评分的均值作为其评分,定义如下:
[0010] 其中,N代表用户i评价过的Ak=a^的项目的数量,rh代表用户对Ak=a^的项目 的评分。
[0011] 由定义可知,每个用户对每个属性值的评分至多只有一个值,例如,用户A对喜剧 电影的评分为4 ;如果A没有看过悲剧电影,则其没有该项评分。
[0012] (2)项目属性的确定。主要从以下两个方面进行度量:
[0013] 数据稀疏度:用户评分数据矩阵中未评分条目所占的百分比,其公式定义如下:
[0015] 其中,队为评分总量,m为矩阵的行数(用户的数量),n为矩阵的列数(项目或者 项目属性值的数量)。
[0016] 数据减少率:用户-项目属性评分相比用户-项目评分所减少的数据量的比率,定 义如下:
[0018] 其中,Na为用户-项目属性评分的数据量,N。为用户-项目评分的数据量。
[0019] (3)推荐的生成。对多个预测评分求均值作为最终评分,并选取Top T项目推荐给 用户。
【附图说明】
[0020] 图1是基于项目属性评分均值的协同过滤推荐方法实施流程图。
[0021] 图2是数据集描述图.
[0022] 图3是数据集1上各项目属性推荐和直接评分推荐的MAE对比图。
[0023] 图4是数据集2上各项目属性推荐和直接评分推荐的MAE对比图。
[0024] 图5是数据集3上各项目属性推荐和直接评分推荐的MAE对比图。
[0025] 图6是数据集1上项目属性组合评分推荐和直接评分推荐的MAE对比图。
[0026] 图7是数据集2上项目属性组合评分推荐和直接评分推荐的MAE对比图。
[0027] 图8是数据集3上项目属性组合评分推荐和直接评分推荐的MAE对比图。
【具体实施方式】
[0028] 为更好地理解本发明,下面结合附图和【具体实施方式】对本发明进行更为详细描 述。在以下的描述中,当现有技术的详细描述也许会淡化本发明的主题内容时,这些描述在 这儿将被忽略。
[0029] 图1是本发明基于项目属性评分均值的协同过滤推荐方法实施流程图。在本实施 例中,本发明的基于项目属性评分均值的协同过滤推荐方法包括以下步骤:
[0030] 首先,构建用户-项目评分矩阵;确定属性数量,采用均值方法构造用户-项目属 性评分矩阵(数量与选取的属性的数目相同);然后,在每个属性评分矩阵上计算用户之间 的皮尔逊相似度,并选取相似度最高的K个用户作为相似邻居;接下来,根据K个邻居的过 往评分预测目标用户对目标项目的评分;这样,当所有属性评分矩阵的预测完成时,我们会 得到目标用户对每个目标项目的一组预测评分,我们将这些评分加权后作为最终评分;最 后,选取最终评分最高的前T个项目推荐给用户。
[0031] 本发明采用MovieLens数据集,包括2113个用户对10109部电影的855598条评 分。其中评分数据从1到5,评分越高,表示用户对电影越喜欢。为了分析实验数据集的样 本量成倍增加时对方法性能的影响,本发明从数据集中随机抽取三个训练数据集(250位 用户对250部电影的10000条评分,500位用户对500部电影的60000条评分及1000位用 户对1000部电影的200000条评分),对应每个训练集抽取部分数据作为测试集,数据条数 分别为300、600和2000。
[0032] (1)属性选取
[0033] 本发明选取稀疏度较低且减少率相对较高的属性,各数据集的描述如图2所示。 本发明选择的属性为:类型、拍摄地1和拍摄时间。
[0034] (2)将均值方法的预测和直接评分的预测结果对比
[0035] 将均值评分方法的预测结果和直接评分的预测结果进行比较,在数据集1、数据集 2和数据集3上的结果分别如图3、图4和图5所示。可以发现,在系统用户较少时,采用均 值方法构造的各个属性评分矩阵的推荐精度不总高于直接评分,但当系统用户较多时,其 推荐精度一直保持较高水平。
[0036] (3)将均值方法的预测进行组合与直接评分的预测结果对比
[0037] 对均值方法在各属性上产生的预测评分取均值后和直接评分的预测结果进行比 较,在数据集1、数据集2和数据集3上的结果分别如图6、图7和图8所示。可以发现,将 评分组合后的推荐精度总体上优于直接评分,但是随着邻居用户的增多,推荐精度有轻微 波动。
[0038] 尽管上面对本发明说明性的【具体实施方式】进行了描述,但应当清楚,本发明不限 于【具体实施方式】的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利 要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思 的发明创造均在保护之列。
【主权项】
1. 一种基于项目属性评分均值的协同过滤推荐方法其特征在于,主要包括以下步骤: (1) 用户-项目属性评分矩阵的构造。定义项目的属性集为A = (A1, A2,…,Ak,…AJ, Ak= {a i,a2,…,at}。需要注意的是,对于某一项目的属性Ak,其可能有多个取值。例如,一 部电影既是动作片又是科幻片,一件商品既是女装又是户外等。设用户对第k个属性Ak的 评分矩阵为G,表示如下:确定用户对各属性值的评分,即gu。采用均值法:即以用户对具有某一属性值的项目 的评分的均值作为其评分,定义如下:由定义可知,每个用户对每个属性值的评分至多只有一个值,例如,用户A对喜剧电影 的评分为4 ;如果A没有看过悲剧电影,则其没有该项评分。 (2) 项目属性的确定。主要从以下两个方面进行度量: 数据稀疏度:用户评分数据矩阵中未评分条目所占的百分比,其公式定义如下:数据减少率:用户-项目属性评分相比用户-项目评分所减少的数据量的比率,定义如 下:(3) 推荐的生成。对多个预测评分求均值作为最终评分,并选取Top T项目推荐给用 户。2. 根据权利要求1所述的基于项目属性评分均值的协同过滤推荐方法其特征在于: 权利要求1中(1)所述m为用户数量,t是属性Ak值的数量,N代表用户i评价过的Ak =a』的项目的数量,r h代表用户对A k= a j的项目的评分。 权利要求1中(2)所述队为评分总量,m为矩阵的行数(用户的数量),η为矩阵的列 数(项目或者项目属性值的数量),Na为用户-项目属性评分的数据量,N。为用户-项目评 分的数据量。
【专利摘要】一种基于项目属性评分均值的协同过滤推荐方法。为解决传统协同过滤推荐算法在单一评分数据集上的推荐精度低等问题,提出一种基于项目属性评分均值的推荐方法。首先构造用户-项目评分矩阵,然后采用均值方法构造用户-项目属性评分矩阵、确定项目属性。其次基于每个属性评分矩阵,计算目标用户与各用户的皮尔逊相似度,得到目标用户的最近邻居集。然后针对每个最近邻居集,在用户-项目评分矩阵上完成对目标用户对目标项目的初步评分预测。最后,将多个初步预测评分取平均值作为最终的预测评分,将评分最高的T个项目推荐给目标用户,完成推荐。实验结果表明,该算法能有效提高单一评分数据集上的推荐精度。
【IPC分类】G06F17/30
【公开号】CN104899321
【申请号】CN201510342385
【发明人】龚安, 高洪福, 高云, 唐永红, 曾雷
【申请人】中国石油大学(华东)
【公开日】2015年9月9日
【申请日】2015年6月19日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1