张雅科
(西安电子科技大学数学与统计学院,陕西西安 710071)
互联网作为信息时代的基础平台,承载了大量的信息资源。面对海量的信息资源,用户无法筛选出对自己有用的信息,这就是信息过载(Information Overload)问题[1]。为了解决信息过载问题,推荐系统应运而生。与传统的信息过滤技术搜索引擎相比,推荐系统无需用户提供搜索的关键词,而是通过分析用户历史行为记录发现用户潜在爱好,从而产生推荐,满足用户的个性化需求。
协同过滤推荐算法是推荐系统的主流算法,这种算法的基本思想是:用户会喜欢(不喜欢)与他兴趣相同(不同)的用户所喜欢的项目。协同过滤算法主要分为基于内存的算法和基于模型的算法。基于内存的协同过滤算法可分为基于用户的协同过滤算法(User-Based Collaborative Filtering,UBCF)和基于项目的协同过滤算法(Item -Based Collaborative Filtering,IBCF)。两种算法的关键都在于相似度的计算,不同的相似度计算方法会对目标用户产生不同的邻居集,进而影响推荐结果。文献[2]研究了评分和权重线性组合以优化相似度计算函数方法,其中权重通过遗传算法(Genetic Algorithm)迭代收敛到预定条件。文献[3]提出了对用户和邻近项目采用不同的权重方式来提高推荐的质量。文献[4]提出了聚类融合技术,首先应用两个著名的聚类技术Self-Organizing Maps(Som)和k-Means对用户进行聚类寻找相似用户群,然后分别用3种聚类融合算法(The Cluster-Based Similarity Partitioning Algorithm(CSPA),Hypergraph Partitioning Algorithm(HGPA)和Majority Voting对相似用户群进行融合得到综合相似关系群。最后,利用综合相似关系群为目标用户推荐项目。该方法改善了基于用户的协同过滤推荐算法面临的“冷启动”问题,而且提高了推荐系统的推荐精度。文献[5]将模糊语义模型融入到协同过滤推荐中,并提出了组合主观和客观用户观点的协同过滤算法(Aggregated Subjective and Objective Users'Viewpoint,ASOV)该算法在一定程度上解决了“冷启动”和数据稀疏性问题。文献[6]提出了改进的相似度技术、预测机制,将人口统计信息应用到相似关系群的查找,该方法改善了协同过滤推荐算法面临的“冷启动”问题。本文在相似度计算中加入模糊权重,得到相似度矩阵。在基于聚类的协同过滤算法的基础上,加入模糊权重的相似度方法提高了查找相似邻居的准确性,进而提升推荐效果。
在推荐系统中,定义用户评价矩阵Rm×n是一个m行n列的矩阵,其中包含m个用户的集合U={U1,U2,…,Um}和 n 个项目的集合 I={I1,I2,…,In}。Up∈U 是第p 个用户;Iq∈I为第q 个项目;rpq∈Rm×n是第p个用户对第q个项目的评分值。如果用户Up对项目Iq没有评价,则rpq=0,否则rpq为1~5的整数。rpq的大小体现了用户Up对项目Iq的偏好程度,rpq的值越大说明用户Up对项目Iq的越偏好。
协同过滤算法就是预测用户Up对未评分项目Iq的评分值rpq,称Up为目标用户,Iq为目标项目。协同过滤算法处理的对象是用户评价矩阵Rm×n。基于用户的协同过滤算法主要由两个过程组成:(1)计算用户之间的相似性,并根据相似性的大小找出目标用户的最近邻居集。(2)基于最近邻居集的评价值产生目标用户对未评分项目的预测评分值。基于项目的协同过滤算法与基于用户的思想相同,只是先计算项目之间的相似性,然后根据项目之间相似性的大小对未评分项目生成预测评分值。
在现实生活中,很多的评价系统要求用户使用数值的形式对项目进行评价。数值评价的方法来表征用户偏好程度,忽略了用户偏好中存在的不确定性[7]。例如,豆瓣的电影和音乐评分采用5星制,一星代表最差,五星代表最好。但用户的喜好程度并不能被精确表达,从这个方面讲,采用数值评分的推荐系统收集到的用户喜好信息是模糊、不精确和不完整的。另一方面,用户喜好信息和用户自己的理解、感知和辨别能力密切相关。一个单一的数值不能包含丰富的信息来表达用户喜好,也会导致推荐结果的不准确性。在这种情况下,采用模糊逻辑(Fuzzy Logic)的方法来获取用户喜好信息。
定义 设U是一个论域,如果给定了一个映射
则确定了一个模糊集A,其映射μA称为模糊集A的隶属函数,μA称为x对模糊集A的隶属度。
对于描述用户特征,可用评分值本身、用户平均评分值、用户评分偏差值和用户总评分值来表示,但评分值本身和评分偏差值更能表示用户的评分特征。针对5分制评价系统,对评分值和评分偏差值进行模糊化,并定义其隶属函数。
对于评分值的模糊化,采用图1的定义方法。对于偏差值的模糊化,采用图2的方法。每个具体的评分和评分偏差值都要经过相应的隶属函数转化为一个模糊向量。模糊向量中的元素个数由图中模糊集的个数决定[8],图1的三角模糊集隶属函数为
图1 评分三角模糊集隶属函数
图2 评分偏差梯形模糊集隶属函数
任取用户Ui和用户Uj共同评分过的推荐项目c∈Iij,对于向量 ric和 rjc关于推荐项目 c∈Iij的模糊权重[9]为
其中,dis(ric-rjc)表示向量ric和rjc之间的欧式距离;l为向量的维数;rkic为向量ric中的第k个元素。
分别用 very bad(vb)、bad(b)、fair(f)、good(g)、very good(vg)表示图2中5个梯形模糊集,类似图1可给出图2中各梯形模糊集的隶属函数,及相应的模糊权重。
在矢量空间模型下基于模糊权重的余弦相似性、相关相似性和修正的余弦相似的计算方法如下:
(1)基于模糊权重的余弦相似性(fcos)。改进的sim(Ui,Uj)为
(2)基于模糊权重的相关相似性(fcor)。改进的Pearson相关相似性为
(3)基于模糊权重的修正余弦相似性(fadj)。改进的修正余弦相似性sim(Ui,Uj)为
算法 基于模糊权重相似度的协同过滤算法
输入 用户—项目评分矩阵Rm×n,目标用户Ui,待评分的项目Ic,最近邻居查询个数knear。
输出 用户Ui对项目Ic的预测评分ric。
步骤1 在评分矩阵Rm×n中分别根据模糊加权相似度模型,计算用户的相似度矩阵和项目的相似度矩阵,并保存相应的用户相似度矩阵(m×m)和项目相似度矩阵(n×n)。
步骤2 根据与目标用户Ui的相似度高低,对邻居用户进行排序,找出前knear个用户作为相似邻居集。
步骤3 在相似邻居集s(Ui)中,依据邻居与目标用户Ui的相似度高低计算每个项目的推荐度,计算用户Ui对项目Ic的预测评分ric。
步骤4 选取预测评分值高的项目推荐给目标用户Ui。
上述基于用户协同过滤(UBCF)根据第一步相似度计算公式中是否加入模糊权重分为基于模糊权重的用户协同过滤(FUBCF)和UBCF。同样对于基于项目协同过滤也应用上述算法,只是在相似度计算时采用项目相似度矩阵。
实验使用的测试数据集是GroupLens研究产品组提供的一个电影评分数据MovieLens,该数据集中包含10万条记录,记录了943个用户对1 682部电影的评分。每个用户至少对20部电影进行了评分,评分范围从1~5,数值越高,表明用户对该电影的偏爱程度越高,反之则表明用户对该电影不感兴趣。用户通过对不同电影的不同评分表达了自己的喜好。
实验采用5折交叉验证法,将实验数据集平均分成5个互不相交的数据子集,其中训练集和测试集的数据比例为4∶1。每次实验选择其中一个数据子集作为测试集,其余4个数据集作为训练集。循环5次,取5次实验结果的平均值作为最终结果。5折交叉实验可以有效的降低数据集的不同对实验结果的影响。
本文采用平均绝对偏差MAE作为度量标准。MAE方法通过度量推荐系统对目标项目的预测评分与用户对该项目的实际评分之间的偏差反映推荐系统的准确性。MAE值越小,推荐系统的性能越好,在不同的knear值得到仿真关系图如下。
图3 3种相似度基于UBCF的比较图
图4 3种相似度基于IBCF的比较图
对于相似性的3种计算方法,分别运用UBCF/IBCF得出推荐结果,并与加上模糊权重后的结果进行比较。如图1所示,未加模糊权重前,基于3种相似度模型的UBCF随着邻居数的增加,MAE有所下降,但下降幅度较小,为5%百分点。相比之下,加上模糊权重后,MAE值都有明显降低,余弦相识度模型从0.75降到0.6;相关相似度模型和修正余弦相似度模型从0.67降到0.6。从图中可以看出MAE的值受邻居数目的影响较小,相关相似性和修正余弦相似性在基于无模糊权重的UBCF算法下,MAE值相似,但明显低于余弦相似性计算方法。基于模糊权重的UBCF算法下,3种相似度计算方法所得的MAE值基本相同,余弦相似度计算模型的MAE略低于其他两种相似度模型。图1说明,对于UBCF算法,加上模糊权重后MAE的都有所降低。尤其对于基于余弦相似度的UBCF算法,加上模糊权重后,MAE值下降最明显。
图2为加模糊权重的IBCF算法和IBCF算法的比较图。与图1的结果类似,加上模糊权重后的IBCF算法所得的MAE值明显低于IBCF算法。不同的是修正余弦相似度模型的MAE值最小,即推荐系统的准确度越高。
综合以上分析,加上模糊权重后的UBCFIBCF算法在推荐准确度得到了提高。说明引入模糊权重相似度计算模型的准确性和有效性。
本文用简单的方法对不同的评分值和评分偏差给出模糊权重,考虑了不同用户评分的差异性问题。提出了基于模糊权重相似性的UBCF、IBCF算法,改进了传统相似性度量方法存在的测量结果不够准确的问题。文中的隶属函数采用梯形分布,模糊数学中还有很多隶属函数的定义方法,怎样合理地对隶属函数进行定义,以及提出简单有效的协同过滤算法是今后研究的重点。
[1] Eppler M J,Mengis J.The concept of information overload:a review of literature from organization science,accounting,marketing,MIS,and related disciplines[J].The Information Society,2004,20(5):325 -344.
[2] Jesus Bobadilla,Fernando Ortega,Antonio Hernando,et al.Improving collaborative filtering recommender system results and performance using genetic algorithms[J].Knowledge -Based Systems,2011(24):1310 -1316.
[3] Ben Schafer J,Dan Frankowski,Jon Herlocker,et al.Collaborative filteringrecommendersystems[M].Heidelberg:Springer Berlin Heidelberg,2007.
[4] Chih - Fong Tsai,Chihli Hung.Cluster ensembles in collaborative filtering recommendation [J].Applied Soft Computing,2012(12):1417 -1425.
[5] Cheng Lichen,Wang Huaan.A fuzzy recommender system based on the integration of subjective preferences and objective information [J].Applied Soft Computing,2014(18):290-301.
[6] Blerina Lika,Kostas Kolomvatsos,Stathes Hadjiefthymiades.Facing the cold start problem in recommender systems[J].Expert Systems with Applications,2014,41(2):2065 -2073.
[7] Lü Linyuan,Matúš Medo,Chi Ho Yeung,et al.Recommender systems[J].Physics Reports,2012,50(1):1 - 49.
[8] Al- Shamri M Y H,Bharadwaj K K.Fuzzy- genetic approach to recommender systems based on a novel hybrid user model[J].Expert Systems with Applications,2008,35(3):1386-1399.
[9] Al- Shamri M Y H,Al-Ashwal N H.Fuzzy weighted pearson correlation coefficient for collaborative recommender system[C].Angers:Proceedings of the 15th International Conference on Enterprise Information Systems(ICEIS13),2013.