第31卷第2期 2014年2月 计算机应用研究 Application Research of Computers V01.31 No.2 Feb.2014 综合用户特征和项目属性的协作过滤推荐算法术 孙龙菲,黄梦醒 (海南大学信息科学技术学院,海口570228) 摘要:通过分析传统协作过滤推荐算法面临的数据集稀疏性问题及当前解决方法的优缺点,在基于项目的协 作过滤推荐算法的基础上,提出了一种综合用户特征和项目属性的协作过滤推荐算法。通过分析不同特征的用 户对项目的各种属性的兴趣度,综合已评分的项目属性预测未评分项目,降低数据集的稀疏性,提高项目相似度 计算的准确性。在MovieLens数据集上的实验结果表明,在数据极端稀疏的情况下,能够有效地降低数据集稀疏 性,并在一定程度上缓解了协作过滤推荐算法中的冷启动问题,提高了推荐算法的预测准确度。 关键词:协作过滤;稀疏性;用户特征;项目属性 中图分类号:TP391;TP301.6 文献标志码:A 文章编号:1001—3695(2014)02—0384—04 doi:10.3969/j.issn.1001—3695.2014.02.015 Collaborative filtering recommendation algorithm based on user characteristics and item attributes SUN Long—fei.HUANG Meng—xing (College of Information Science&Technology,Hainan University,Haiku 570228,China) Abstract:After analyzing the sparsity of traditional collaborative filtering algorithm and the merit and demerit of current solu— tions.this paper proposed a collaborative filtering recommendation algorithm based on user characteristics and item attributes which was mainly based on the item—based collaborative algorithm.It predicted the unrated items by analyzing different users’ interests to various attributes of items and integrating the attributes of rated iterns to reduce the sparsity of data sets.and then to improve the accuracy of items’similarity calculation.The experimental results based on MovieLens data set show that the sparsity of extreme data sets can be reduced effectively,to a certain extent the proposed algorithm alleviates the cold starting problem in collaborative filtering algorithm and achieves better prediction accuracy. Key words:collaborative filtering:sparsity;user characteristics;itern attributes 过滤推荐算法要好些,因为在实际应用当中用户的数量要远远 0 引言 在互联网的发展下,电子商务的发展日益壮大,人们现在 比项目的数量多,即可认为每个项目被用户评价的数量多于每 个用户评价项目的数量,相对基于用户的协作过滤推荐算法来 说相似性的计算更准确,并且项目之间的相似度相对于用户之 可以足不出户便可购买到自己喜欢的东西。但随着商品信息 的增加,达到了一个信息过载的时期,用户在挑选商品的时候 就像是大海捞针一般,花费了大量的时间和精力,这也是当前 间的稳定些。但在基于项目的协作过滤算法中,数据稀疏性问 题仍是提高推荐质量面对的主要问题。 针对上述问题,国内外研究学者作了大量的研究。文献 [1]提出采用资源关系密度作为描述评分矩阵的一个指标,并 提出一种虚拟用户填充方法。文献[2]提出一种新的相似度 计算方法,针对不同的目标项目选择不同的邻居。文献[3]提 出了在项目聚类基础上计算用户全局相似度并利用重叠度因 电子商务所面临的一个难题。推荐系统(recommender system) 是解决信息过载的有效手段,而协作过滤推荐算法是当前应用 最广泛的个性化推荐算法之一,但数据稀疏性、冷启动、扩展性 成为该算法亟待解决的问题。如何降低数据稀疏性问题,以提 高推荐质量是近年来一个研究的热点问题。 子调节局部相似度的协作过滤推荐算法。文献[4]提出根据 基于项目和基于用户相似性计算,自适应地选择近邻对象作为 1 相关研究 ( 推荐群并结合预测目标的信任子群,进而通过不确定近邻因子 协作过滤算法的基本思想是通过与目标用户有相似兴趣 分析度量进行推荐。这些算法均有效地提高了推荐质量,但没 有考虑项目属性,只单一地考虑了用户评分。然而在实际生活 中,不同的项目属性决定了用户的偏好,因此对于项目属性的 预测能够提高推荐精度。 偏好的其他用户对目标项目的评价来判断该评价是否对目标 用户有价值,以进一步决定是否将目标项目推荐给目标用户。 协作过滤推荐算法分为基于用户的推荐算法和基于项目的推 荐算法。基于项目的协作过滤推荐算法相对基于用户的协作 收稿日期:2013—04—25;修回日期:2013—06—17 基于项目之间相似性的兴趣点推荐算法 利用项目及项 基金项目:国家自然科学基金资助项目(71161007);国家教育部社科基金资助项目 (10YJCZH049);海南省自然科学基金资助项目(612132);海南省重点科技计划资助项目(ZDXM20120061) 作者简介:孙龙菲(1988一),男,陕西韩城人,硕士,主要研究方向为个性化服务、数据与知识工程(sun123 slf@163.con);黄梦醒(1974一),男,河 南信阳人,教授,主要研究方向为数据与知识工程、云计算与物联网、个性化服务等. 第2期 孙龙菲,等:综合用户特征和项目属性的协作过滤推荐算法 ・385- 目类别包含的项目评分次数计算项目之间的兴趣度,并结合传 统相似度减小评分数据稀疏的负面影响。计算项目之间的相 似度时结合项目之间的评分相似性和项目属性的相似性文献 其中: 是用户的平均评分;sim(i√)是项目i和 的相似度 n 表示当前项目的邻居数。当R =0时,则R 。一R =0。 通过加权因子得到项目的最终相似性 ,此方法可提高相似 度计算的准确性,但在计算项目属性的相似性时仅考虑了项目 3基于项目的协作过滤算法及综合属性特征预测 3.1用户特征 在实际的推荐系统中,用户一般会填写自己的基本信息, 如性别、年龄、职业等,而通过这些信息在一定程度上可预测出 包含的属性,未考虑到属性评分。通过已评估的项目评估值填 充项目属性矩阵…,然后通过项目属性的均值、方差预测未评 估的项目,并将结果填充到用户项目评分矩阵,结合传统相似 度计算,有较好的推荐效果。利用项目分类从评分矩阵中抽离 用户的兴趣。考虑到每个实际系统中要求用户填写的信息内 容不一,因此本文主要利用用户的性别、年龄、职业三个基本属 性特征来分析用户的兴趣、爱好。 出维度更小的评分矩阵不仅提高了预测效率,而且在聚类的基 础上提高了算法的预测精度 ;通过结合内容多级分类与兴 趣多级分类构造项目分类,进而提高算法的推荐质量 ;利用 项目分类信息预测未评分项目 …,并计算类内用户间相似度 进行有效推荐。但是这些方法存在两个缺点:a)在数据极端 稀疏的情况下,很难通过项目属性准确地预测到其他项目的 值;b)没有考虑到普遍的评分,仅考虑了个人对项目的评分。 然而在实际的社会活动中,用户对事情的判断往往会按照普遍 的看法。本文受此启发,不仅考虑到项目属性特征,还考虑到 用户的特征,分析不同特征的用户对项目各种属性的兴趣度, 对项目属性矩阵预填充普遍评分,通过项目属性预测填充用户 项目评分矩阵,在一定程度上缓解了数据的稀疏性,提高了算 法的推荐质量。 2 基于项目的协作过滤推荐算法 2.1相似度计算 基于项目的协作过滤推荐算法主要是通过目标项目的近 邻项目评分预测其评分,其中主要用到相似度计算。相似度计 算方法有以下三种: a)余弦相似度 sim( , ) ) 其中:sier( , )表示项目i与 之间的相似度,f和 表示被同一 用户评分的项目i和 的评分向量。 b)皮尔逊相关系数(Pearson correlation coefficient) s — (2)  ̄/∑ u ( 厂 )  ̄/∑ ,(vu,厂 其中: 表示项目i和 共同被评分过的用户集合, 表示对 项目i的平均评分。 e)约束的皮尔逊相关系数 s㈨ = 斋  ̄/∑ “ ( 一 )  ̄/∑ (u0. ,J 一 ) ㈩ 其主要是由评估数据的中间数据进行替换,例如1~5中, 3就是中间数。这个方法考虑到了积极评估和消极评估。 上述三种方法都有较高的准确性,但为了与文献[7]提出 的算法作比较,采用一致的算法,本文采用余弦相似度计算方 法来计算项目之间的相似度。 2.2评分预测 评分预测是基于项目的协作过滤推荐算法中最关键的一 步,其好坏也将决定着该算法推荐质量的好坏。本文选用如下 计算方法: (4) 用户的性别分别用F和 表示,集合Gender={F,M}。 通过男性、女性来关注项目的不同类型。 由于用户年龄过多,因此对用户年龄划分阶段 。将用 户年龄分为七个阶段,用户的年龄集合age={age。,age ,age,, age4,age5,age6,age7}。其中age 表示第i阶段(i∈[1,7]), age1表示0~6岁,age2表示7~12岁,age3表示l3~18岁, age 表示19~30岁,age 表示3l~40岁,age6表示41~60岁, age 表示大于60岁。 结合Et常经验,职业可分为多种不同类型的职业,包括医 生、学生、律师等。职业集合为OCCU={OC,,OC:,…,OC },其中 oe,表示某个类型的职业,n表示职业的总数。 3.2项目属性特征 项目属性特征决定了用户的兴趣、偏好,通过分析项目的 属性特征即可得到用户的兴趣偏好。一般地,用户对某个项目 感兴趣主要是被该项目的某个属性或某些属性所吸引而导致。 例如,某个用户对喜剧、动作的电影感兴趣,而有一部电影是动 作也是喜剧类型,所以用户对这部电影相对其他类型的电影比 较感兴趣。而在数据稀疏的情况下,通过分析、计算用户对项 目的哪些属性感兴趣,即可通过这些属性特征来预测用户对包 含这些属性项目的评估值,从而在一定程度上缓解数据的稀 疏性。 项目的属性集合attr={a。,a ,…,a },其中a 表示项目 属性集合的第i属性,m表示项目的属性集合中属性总数。每 个项目所包含的属性可能是其中的一种或多种。 3.3算法步骤 a)建立用户项目评分矩阵,并将用户对项目的评分值填 充到矩阵matrixl中,如表1所示。 表1用户项目评分矩阵 表1中,行表示n位用户,列表示m条项目,r 表示用户“ 对项目 的评分,1≤i≤m,1≤ ≤n,一般r 肭值是在0—5分。 若用户“ 没有对项目 评分,则r =0。 、 b)确定项目的属性并建立属性集attr={a ,a:,…,a }, 其中a 表示属性集合中的第i属性,m表示属性集合中属性 总数。 c)从matrixl获取用户对项目的评分,针对每个用户u ∈U ・386・ 计算机应用研究 第31卷 (U表示用户集合)建立项目屙l生评分矩阵matrix2,如表2所示。 表2“。的项目属性评分矩阵 户对1 682部电影的评分,其中每个用户至少对20部进行了 评分:评分值在(1,2,3,4,5)中任取一值。 本文使用MAE方法度量预测准确度,主要通过计算测试 数据集中用户的预测评分与实际评分之间的平均偏差来度量 预测算法的准确性,可以直观地度量推荐质量,MAE越小,推 荐质量越高。MAE定义为 MAE: : l_ _ ㈩ (7) 表2中: : 【r ≠O且attrj∈attr ;r 表示用户n对项 4・2结果分析 0 其他 目i的评分;attrj表示属性j;attr 表示项目i包含的属性集合。 d)针对每个不同特征的用户对不同类型项目的兴趣度, 为项目属性矩阵预填充相应的普遍评分。例如u 对于attr。、 attr2比较感兴趣,那么u。对应的项目属性矩阵attr。、attr2这两 列中未评分的进行预填充数据,考虑到了积极评估和消极评 估,取中间值avg作为填充数据。 avg={fl÷ n为奇数 (5) 、 n为偶数 其中:n表示评分区间的最大值。 e)计算每列的均值和方差,其中仅计算不为0的项目属 性,将每列的计算结果分别填充到均值和方差矩阵中,如表3、 4所示 表3 Matrix2的均值矩阵 方差矩阵中,若某列的方差值超过给定的阈值,则将其方 差值置为0。 f)在用户项目矩阵中,若用户/3,对项目item 没有评分,并 且在项目属性矩阵中项目item 的属性值不为0,则可通过属性 值计算出用户u对项目item 的评分。计算公式如式(6)所示。 1 Var 。 P :∑avg^× ,k∈X (6) ∑_ⅢI— var 其中:avg 表示item 某个属性的平均值;var 表示item 某个 属性的方差值;varx表示item 包含的属性集中某个属性的方 差值; 表示item 包含的属性集。 g)将每个预测的项目评分值填充到对应的用户项目评分 矩阵中。 h)计算项目之间的相似度,并且对目标用户预测,产生 推荐。 4实验结果及分析 4.1 数据集与度量标准 测试采用MovieLens站点提供的数据集(http://movie— lens.umn.edu/)。目前,该站点的用户已经超过45 000人,用 户评分的电影超过6 600部。 本实验的测试数据有100 000条评分记录,包括943个用 1)基于不同特征的用户兴趣对比实验分析 本实验利用MovieLens数据集中的100 000条数据作为实 验数据集,其中电影的类型分为19种,包括动作、喜剧、惊悚、 爱情等。为了方便分析对比数据,将电影的19种类型依次对 应0、l、…、18。因为不同年龄阶段的用户的评分数量差距较 大,为了将数据结果图显示得更加明显,将评分数据进行归一 化,并确定不同年龄段用户显示的区间段,此方法不失实际实 验结果的真实性。 在图1中对比分析了不同年龄段的用户对电影类型的喜 爱程度,其中,纵坐标中0~0.5表示7~12岁,0.5~1表示 13~18岁,1~1.5表示19~3O岁,1.5~2表示31—40岁,2— 2.5表示41~60岁,2.5~3表示60岁以上。从图1中可以看 出每个年龄段的用户对电影的不同类型评分数量,其中年龄段 7~12岁的用户对于电影类型5、4、1、2、8(喜剧、儿童、动作、冒 险、剧情)评分数量较多,因此可判定对于这5种电影类型比 较感兴趣,而其他年龄段的用户对于电影类型8、5、1、16、14 (剧情、喜剧、动作、惊悚、浪漫)比较感兴趣。 3 2.5 2 1.5 l 0 5 U 2 4 6 l0 l2 l4 l6 l8 电影类型 图1各年龄段用户的兴趣对比 在图2中对比分析了男性和女性对于各种类型电影的兴 趣程度,从图中可以看出男性、女性的用户均对电影类型8、5、 1、16、14(剧情、喜剧、动作、惊悚、浪漫)比较感兴趣。 电影类型 图2不同性别用户的兴趣对比 在对不同职业的用户进行分析时,首先将用户职业划分为 21种,包括学生、老师、律师等,因职业类型过多,为此,分开两 个图来展示,此方法不失实际实验的分析结果。在图3、4中显 示了各种类型职业的用户对于各种类型电影的兴趣程度,从图 中可以看出各种类型职业的用户均对电影类型8、5、1、16、14 (剧情、喜剧、动作、惊悚、浪漫)比较感兴趣。 第2期 45oo 孙龙菲,等:综合用户特征和项目属性的协作过滤推荐算法 4O00 35o0 30【x】 ・387・ 比传统算法的MAE值小,随着近邻数的增加,MAE值减小,并 且USERITEM-CF逐渐比ITEM—CF的MAE值更小,预测精度 < 250() 20o0 150o l0o0 更高,但当近邻数超过60、70时,由于噪声数据增加,预测精度 3 H ×l 肼 稍微降低,因此在选取近邻数时应选择适当的近邻数。同样, 在200个和300个用户的实验中也取得了类似的结果,并且结 果更加明显。在不同实验中,本算法均取得较高的预测准确率。 5o0 电影类型 不同职业用户的兴趣对比 .< 电影类型 图4不同职业用户的兴趣对比 三种不同特征测试对比结果表明,用户特征中性别和职业 对于不同类型电影的兴趣度的影响程度不大,而用户特征年龄 中7~12岁的用户对于喜剧、儿童、动作、冒险、剧情比较感兴 趣,其他年龄段的用户对于剧情、喜剧、动作、惊悚、浪漫比较感 兴趣。因此在普遍评分预填充时用户年龄在7~12岁的对喜 剧、儿童、动作、冒险、剧情属性对应的列填充平均分,而在其他 年龄段的对剧情、喜剧、动作、惊悚、浪漫属性对应的列填充平 均分。因为使用的测试数据集的评分区间是在[1,5],故取平 均分为3分。 2)综合用户特征和项目屙 的协作过滤推荐算法实验分析 本实验的目的是对综合用户特征和项目属性的协作过滤 推荐算法USERITEM—CF与传统的协作过滤算法及近期业界 相似的较领先的研究进行比较。选择传统的Item—Based协作 过滤算法,记为IBCF,并与文献[7]提出的算法记为ITEM—CF 进行比较分析。为了提高测试结果的真实性,每组测试用户都 是随机选择一定数量的用户,其中随机抽取100、200、300用户 组成实验数据集,并对每组数据按照8:2的比例划分训练集和 测试集,实验中的横坐标表示近邻数,纵坐标表示MAE作为度 量标准。实验结果如图5~7所示。 1 1 1.05 l 薹00.9 0.85 0.7 近邻数 图5各种算法比较(100用户) 近邻数 图6各种算法比较(200用户) 从图中可以看出,在随机抽取的不同数量用户的数据集 中,本文提出的算法都可以获得更低的MAE值。在随机抽取 100个用户的实验数据中,USERITEM-CF和ITEM—CF算法都 近邻数 图7各种算法比较(300用户) 5结束语 本文通过分析传统的协作过滤推荐算法面临的数据集稀 疏性问题及当前解决方法的优缺点,提出了综合用户特征和项 目属性的协作过滤推荐算法,主要利用不同特征的用户对于项 目的不同属性的喜爱程度,对项目属性矩阵预填充,然后通过 项目属性矩阵预测未评分的项目并填充到用户项目矩阵中,降 低数据集的稀疏性。实验结果表明,该方法可以有效地降低数 据集的稀疏性,并在一定程度上缓解了协作过滤推荐算法中的 冷启动问题,提高了推荐的质量。 参考文献: [1]董丽,邢春晓,王克宏.用于稀疏数据集的协作过滤算法[J].清 华大学学报,2009,49(10):1725-1728. [2]CHOI K,SUH Y.A new similarity function for selecting neighbors for each target item in collaborative fihering[J].Knowledge—Based Systems,2013,37:146—153. [3]韦素云,业宁,朱健,等.基于项目聚类的全局最近邻的协同过滤 算法[J].计算机科学,2012,39(12):149—152. [4]黄创光,印鉴,汪静,等.不确定近邻的协同过滤推荐算法[J]. 计算机学报,2010,33(8):1369-1377. [5]邹永贵,望靖,刘兆宏,等.基于项目之间相似性的兴趣点推荐方 法[J].计算机应用研究,2012,29(1):116-118,126. [6]孙金刚,艾丽蓉.基于项目属性和云填充的协同过滤推荐算法 [J].计算机应用,2012,32(3):658—660,668. [7]WANG Ming—jia,HAN Jin—ti.Collaborative filtering recommendation based on item rating and characteristic information prediction[C]// Proc of the 2nd International Conference on Consumer Electronics, Communications and Networks.[S.1_]:IEEE Computer Society, 2012:214—217. [8]wu Ye—kui,TANG Zhi—hao.Collaborative filtering system based On classiifcation and extended K—means algorithm『J].Advances in In- formation Sciences and Service Sciences,2011,3(7):187- l94. [9]wu Ye—kui,YAO Jian—rong,TANG Zhi—hao,et a1.Collaborative fil— tering based on multi-level item category system[J].Journal of Convergence Information Technology,2012,7(7):64-71. [1O]熊忠阳,刘芹,张玉芳,等,基于项目分类的协同过滤改进算法 [J].计算机应用研究,2012,29(2):493-496. [1 1]FANG Mei—yu,ZHENG Xiao—lin,CHEN De—ren.A personalized re— commender algorithm based on fuzzy relation reputtaion model[C]// Proc of International Joint Conference on Service Sciences.[S.1.』: IEEE Computer Society,201 1:193—197.,