计算机应用研究
ApplicationResearchofComputers
Vol.25No.1Jan.2008
协同过滤的一种个性化推荐算法研究
郭艳红,邓贵仕
(大连理工大学系统工程研究所,辽宁大连116023)
倡
摘 要:在分析传统推荐算法不足的基础上,提出一种稀疏矩阵下的个性化改进策略。首先进行一对一的个性化预测,得到虚拟用户评分矩阵,在此基础上再进行综合预测。该方法避免了传统推荐算法中推荐值与用户相似度不密切相关的弊端,提高了协同过滤的预测精度,尤其是在矩阵极端稀疏情况下的预测精度。最后通过实验验证了算法的有效性和优越性。
关键词:协同过滤;稀疏矩阵;相似度;个性化推荐
中图分类号:TP391 文献标志码:A 文章编号:1001唱3695(2008)01唱0039唱03
Improvedpersonalizedrecommendationalgorithmincollaborativefiltering
(InstituteofSystemsEngineering,DalianInstituteofTechnology,DalianLiaoning116023,China)
GUOYan唱hong,DENGGui唱shi
Abstract:Thispaperanalyzedthedisadvantagesofthetraditionalcollaborativefilteringandadvancedakindofpersonalizedpredictivestrategy:onetoonepredictiontocorrectthissituationtoimprovethepredictiveaccuracyinsparsematrix.Toprovethesuperiorityoftheproposedalgorithm,thispaperusedcosinesimilarityandpearsonsimilaritytomeasurethesimilarityamongusersandthenproducedthepredictionsusingtraditionalcollaborativefilteringandthenewpersonalizedpredictivealgo唱rithm.Theexperimentalresultsprovethevalidityandsuperiorityoftheproposedalgorithmatlast.Keywords:collaborativefiltering;sparsematrix;similarity;personalizedrecommendation 协同过滤算法不依赖于商品的语义描述,只根据用户的意tem)中应用最广泛和成功的技术。但是协同过滤推荐系统中见或行为即能产生推荐,是目前推荐系统(recommendersys唱
协同过滤基于以下假设:人与人之间存在偏好和兴趣上的相似;人对事物的偏好是具有稳定性的,因此可根据过去的偏好预测未来的选择。
user2F
user3
ABC
G
项目空间巨大,导致矩阵极端稀疏。传统的推荐算法在高维稀疏矩阵上进行运算往往导致不准确的推荐,从而影响系统的应用和推广。本文从协同过滤的推荐算法入手,指出传统推荐算
法在矩阵稀疏情况下的不足,进而提出一种新的个性化推荐策略,通过算法进行模拟,改进了精度。
DE
1 协同过滤算法及分析
1畅1 协同过滤工作原理
在实际生活中,对于不熟悉的问题或事物,人们往往要咨
user1
图1协同过滤原理图1畅2 协同过滤算法的步骤近邻、产生推荐
[2]
一般说来,协同过滤算法可以分为构建用户档案、寻找最
三步。
询自己的朋友或是信任的人,根据他们的判断和看法和作出自己的选择。
协同过滤就是模拟这个过程,根据用户的行为和其他用户的行为(评分、评论、购买历史、浏览次数、在某一网页上的停留时间等)的比较,找出最相似的邻居,根据与之最相似邻居的兴趣或偏好预测出该用户的兴趣或偏好,以帮助其进行决策的一种算法。
图1显示了协同过滤的原理
[1]
1)构建用户档案 收集用户的评分、评价行为等,并进行数据清理、转换和录入,最终形成用户对各种项目的评价矩阵,如表1所示。其中:Rij代表第i个用户Ui对商品Ij的评分。一般说来,0≤Rij≤5。分数越高,用户对该项目的认可度越高。
表1 用户评分矩阵
用 户user1…
useri
item145…//
item254…//
商 品………………
……………/
itemn-1
/55…5
itemn4/3…4
。其中用户1、2和3都对
项目A、B和C表现出兴趣,如这三个用户都评价了电影A、B和C,这种重合表明他们有相似的兴趣。因此,可以认为向用户2推荐D和E是比较可行的,因为D和E都被用户1和3所喜欢。
…usern
收稿日期:2006唱11唱21;修回日期:2007唱02唱29 基金项目:国家自然科学基金资助项目(70671016,70272050)
作者简介:郭艳红(1977唱),女,博士研究生,主要研究方向为电子商务推荐系统、知识管理方法和技术(guoyanhongmail@sina.com);邓贵仕(1945唱),教授,博导,主要研究方向为电子商务方法和技术、复杂系统建模和方针、信息系统方法和技术.
・40・计算机应用研究第25卷
2)寻找最近邻居 在这一阶段,计算目标用户与数据库内各个用户的相似度,寻找相似度最高的作为最近邻居集。一般说来,可采用pearson相关度公式(式(1))、cosine相关度公式(式(2))以及修正的余弦相关度(式(3))计算用户之间的相似度。
sim(i,j)=u∈钞Ii,j
(Ri,u-Ri)(Rj,u-Rj)/
(
u∈钞Isim(a,i,i)j
(Ri,u-Ri)2
u∈钞I=cos(a,i)=(aii),/
j
(Rj,u-Rj)2)
(1)sim(i,j)=‖a‖‖-Ri‖u∈钞Ii,j
(R(2)i,u-Ri)(Rj,uj)/
2
u钞∈Ii
(Ri,u-
Ri)u钞∈Ij
(Rj,u-Rj)
2
(3)
在式(2)的余弦相似性中,a和i分别代表用户Ua和Ui
的评分向量。在式(1)(3)中,Ri,u和Rj,u分别代表用户i和j对项目u的评分;Ri和Rj代表用户i和j的平均评价值。用户i和j评价过的项目集合分别用Ii和Ij表示,两者的交集Iij=Ii∩Ij。
3)预测阶段 通过最近邻居集产生推荐,传统的推荐算法一般有如下两种:
Pa,y=钞u∈N
sim(a,u)Ru,y/u钞∈N
|sim(a,u)|
(4)Pa,y=Ra+u∈钞Na
sim(a,u)(Ru,y-Ru)/u∈钞Na
|sim(a,u)|
(5)
其中:Pa,y代表目标用户对项目y的预测值;Ru,y代表目标客户a的最近邻居集内的用户u对项目y的评价。这里的目标用户a的最近邻居集由Na表示,所以u∈Na。
式(4)和(5)的区别是后者考虑到了不同用户的评价风格问题。
1畅3 协同过滤算法是把用户与项目关联起来形成一个矩阵稀疏矩阵下的协同过滤算法分析
,由
于项目空间巨大,这个矩阵往往是极端稀疏的。据统计,电子商务系统中,用户评价过的数目往往不超过这个系统商品数目的1%。因此,表1中绝大部分是未知项。
在用户评分矩阵非常稀疏的情况下,通过相似度计算得到的用户最近邻居中,往往只有很少的用户对某个项目j作出评价。如果只有一个用户对项目作出评价,式(4)和(5)就可推导如下:
Pa,y=钞simu∈N(sima,u()aR,u)Ru,y/u钞∈N
|sim(a,u)|=
u,y/
sim(a,u)=Ru,y(6)
Pa,y=Ra+u钞∈Na
sim(a,u)(Ru,y-Ru)/u钞∈Na
|sim(a,u)|=Ra+
sim(a,u)(Ru,y-Ru)/
sim(a,u)=Ra+(Ru,y-Ru)(7)
这说明当最近邻居集内只有一个用户对某一项商品产生了非零评价时,最终的预测值将与相似度无关,只与这个用户的原始评价有关。但实际情况并非如此。
更进一步,如果这个向量代表的用户i是许多乃至所有用户的最近邻居,那么对所有目标用户而言,对某一项目的推荐值都为这个用户的原始评价值。如果这个用户对某一项目的评价为5,那么所有用户都会根据这个用户的评价值得到为5的推荐值。这个项目将成为排行榜上的第一名(topone),这是不准确的。因为这个推荐仅仅是根据一个用户对这个项目产生的比较极端的评价;相反,如果这个用户对某一项目产生一个极端低的评价,如1,那么这个项目也就永远不能有机会推荐给其他人。这两种情况都是非常不符合实际情况的。上述两种情况由于数据集的巨大而时有发生。传统的推荐算法
在矩阵稀疏的情况下,严重影响了系统的推荐精度,降低了系统的可信度。
22畅 1 改进的个性化推荐策略及算法
在矩阵稀疏的情况下个性化的推荐策略及原理
,传统推荐算法在一定程度上抹煞了
用户间的相似度对推荐结果的影响。尤其是当最近邻居集内只有一个用户对某个项目产生评价时,最后的推荐精度大大降低。
在现实世界中,人们常常咨询朋友或信任的人。他们的推荐往往是一对一的行为,即找到一个相似的用户,根据目标客户与相似客户的相似度产生对某一项目的预测值;再找到一个相似的用户,根据它们之间的相似程度产生一个预测值……,直到找完所有的相似用户;最后根据每个相似用户产生的预测值产生最后的预测值。这个过程如图2右侧所示;左侧部分为传统推荐算法的推荐过程。
最
邻居的评价
最近邻居的评价一对一预测虚拟评最分近邻居矩阵目标用户相似度
相似度传的均值推荐
个性化的推荐图2传推荐算法与新推荐算法的推荐过程2畅2 根据个性化推荐算法
2.1节的分析,个性化推荐算法可分为两个步骤,即一对一的个性化预测和综合相似度的最终预测。
根据一对一的原理,本文对传统的两种推荐算法进行改
进,即目标客户对某个项目的评价是根据最近邻居集内的每个邻居产生一个评价;最后根据所有对这个项目产生过评价的最近邻居再次引入相似度,产生一个综合评价。这个个性化的推荐算法如式(8)所示。
pai,a)(pi,y=pa+sim(i,y-pi) pi,y≠00
p0(8)
i,y=
其中:i∈N′,N为最近邻居集,N′彻N是所有对项目y评价不为0的用户集;pia
,y代表目标客户a的最近邻居集内的用户i对项目y的预测值;pa和p分别代表目标客户和最近邻居集内用户i的评价均值;sim(i,a)代表目标客户a与最近邻居集内用户i的相似度;pi,y代表用户i的对项目y的评价值。
根据2.1节,在得知每个相似度用户对项目y的预测值的基础上,综合各自的相似度可得最后的目标客户对项目y的预测值为
pa,y=[i钞∈N′
sim(i,a)×pai,y]/
i钞∈N′
|sim(i,a)|(9)
由于选取最为相似的邻居作为最近邻居集,而负的相似度值意味着两个用户很不相似。可以认为,在计算预测值时,所取的最近邻的相似度值都为正,即sim(i,a)≥0,则有如下推导:
pa,y=钞i∈N′
sim(i,a)×[pa+sim(i,a)(pi,y-pi)]/i钞∈N′
sim(i,a)=
[i钞∈N′
sim(i,pa)×pa+钞i∈N′sim(i,a)2×
(pi,y-pa)]/i钞∈N′
sim(i,a)=a+钞i∈N′
sim(i,a)2×(pi,y-pa)/i钞∈N′
sim(i,a)
(10)
33畅 1 实验结果与分析
为了验证算法的有效性数据集的筛选
,采用GroupLens工作组提供的公
第1期郭艳红,等:协同过滤的一种个性化推荐算法研究・ 41・
开数据集(http://movielens.umn.edu/)。MovieLens是由美国名尼苏达大学GroupLens工作组研究人员开发的基于Web的研究型推荐系统,它用于接收用户对电影的评价,并提供相应的电影推荐列表。自1996年推出以来,取得了很大的成功;目前该系统的用户已经超过43000人,用户评价的项目超过1600个。本文也使用了MovieLens提供的用户评分数据用于算法测试。
本文采用MovieLens工作组提供的ml数据集。它由943个用户的10000条1~5的评价数据组成。数据集有1682个电影项目,每个用户至少对20个电影项目作出评价。
整个实验数据集进一步划分为训练集和测试集。为此,引入变量x作为测试集占整个数据集的百分比。本文选用x=0.2,即在整个数据集中,训练集占80%,测试集占20%,即训练集为100000×80%=80000条数据,测试集为100000×20%=20000条数据。
为了保证实验的准确性,重复实验五次。每次测试集的数据都各不相同。为了度量整个数据集的稀疏性,引入稀疏度的概念,其定义为用户未评价数据占整个数据集的比例。本文所
用数据集的稀疏度为(943×1682-100000)/(943×1682)×100%=93.7%
3畅2 RS度量标准
measure)的评价方法一般有统计精度度量(statisticprecision
决策支持精度度量方法中的平均绝对偏差(decisionsupportMAEmeasure(mean)
[3,4]
absolute两种。
error)和统计精度度量通过计算推荐数据与真实评价数据之间数值上的差别来衡量推荐结果的好坏。最常用的是MAE法。设测试集内目标客户的推荐数据集为Pa={pa,jǖj=1…n},目标客户的真实评价集为Ra={ra,jǖj=1…n}。对于每一个不为零的预测—评价对棟pN
a,j,ra,j棡,都有MAE=钞|pa,j-ra,j|N。其中:N为测试集内目标客户a的预测值和真实评价值都l/不为0的项目个数。MAE越小,推荐精度越高。
由于MAE方法简单、易于理解和操作,本文采用MAE的方法度量预测的精度。3畅3 实验过程
1)相似度公式的选取
式(1)~(3)是协同过滤算法常用的三种度量相似度的公式。为了获得较好的实验结果,本文分别用这三种公式对测试集和训练集用户之间的相似性进行计算。值的分布如表2所示。
从表2中可以看出,相似度分布最差的是修正的余弦相似度。在0~1内,分布比较集中在[0,0.15],比例高达87%,这说明用此公式计算出的用户之间的相似度过低。用这种公式得不到计算结果的占1.5%,计算结果小于等于0的占11.2。之所以这样,是因为修正的余弦相似性公式的分子部分要计算两个用户之间共同评价过的项目。而在稀疏矩阵的情况下,两个用户共同评价过的项目非常少,分子的值非常小,甚至没有;余弦相似性的分母部分是两个用户共同评价过的项目空间,这部分值相对于分母而言显得过大。因此导致整个相似度公式的值非常小,与实际情况不相符。Pearson相关度和余弦相似度计算公式各有优缺点。余弦相似度公式可以得出所有用户
之间的相似度,但相似度值相对来说集中在[0,0.5]。Pearson相关性相似度公式由于在分子分母上计算的都是两个用户共同评价过的项目,相似度值相对来说分布较分散。从表中可看出[0,1]内都有分布。另一方面,由于要计算两个用户共同评价过的项目,pearson相关相似性公式得不出计算结果的为2畅31%。
表2三种相似度值与个数分布表范公
式
余弦相似性修正的余弦相似性
0.1 4886665 7086601 706在以上分析的基础上,通过对余弦相似度和pearson相关相似度两种公式对的预测精度进行比较,结果如图3所示。 从图3中可以看出,不论应用哪一种传统的预测算法(考虑评价风格与否),余弦相似度都表现出比pearson相关相似度良好的预测精度。这是因为在稀疏矩阵项目空间下运算,两个用户共同评价过的项目数量很少,根据很少的共同评价过的项目来判断两个用户相似与否,可信度并不高。所以虽然表1的pearson相似度表现出良好的分布特性,但实际的预测值并不理想。另一方面,图3再次证明余弦相似度的有效性。 基于以上分析,笔者在以后的实验中,采用余弦相似性对用户的相似度进行度量。 2)实验结果及分析 为了验证本文算法的有效性,以式(4)和(5)作为对照,分别以余弦相似性和pearson相关相似性作为相似度度量标准计算其MAE。最近邻居个数为1~30,与本文提出的个性化推荐算法(PCF)进行比较。实验结果如图4所示。其中:TCF1代表传统的协同过滤算法且不考虑评价风格的影响,即式(4)所示;TCF2代表传统的协同过滤算法并且考虑评价风格的影响,即式(5)所示;PCF为本文提出的个性化协同过滤算法。从图中可以看出,PCF的预测精度是最好的,并在不同邻居个数的情况下表现出良好的稳定型;TCF1次之;TCF2精度最差。 1.20.81 0.951 0.850.90.60.40.750.80.20.650.70 0.6 1357cosine蛳CF14cosine8最蛳CF2近邻12pearson个数16蛳CF120pearson蛳CF2 图4TCF1最9近邻1113151719 基于余弦TCF2 个数 相似性的PCF协同图3不同相似度的预测精度比较过滤推荐算法的精度比较另外,在邻居个数很少的情况下,本文的个性化推荐算法的精度与传统推荐算法相比有着明显的优越性。当选取的最近邻超过12个时,本文算法的预测精度与传统(下转第58页) ・58・3 模拟实验 计算机应用研究第25卷 4 结束语 SN算法。其基本思想就是在保证网络拓扑的边连通度大于1 本文通过深入的分析,结合计算机图论的知识提出了ER唱 为了测试该算法的性能,利用网络模拟器OPNET搭建网络拓扑结构对它进行模拟,并与标准洪泛算法和RSN算法的性能进行比较。算法性能比较包括两个指标:网络洪泛LSAs的总数量和失效节点对网络拓扑的影响。模拟器随机产生的网络拓扑包含15个网络节点、25条链路。在限定30s内,任何一个节点随机地发生改变而洪泛LSAs,统计网络节点发送的LSAs的总数量。 由图4的模拟结果可以看出,ERSN算法发送的报文数量比标准的洪泛算法减少了45%,比RSN算法减少了30%,大大减少了报文的发送数量,减轻了网络负载。 B伊10 ERSN2.5RSN 原始拓扑23 4 的情况下,尽可能地减少每个路由器的链路数目,从而减少需要洪泛的LSAs。因为算法减少的只是每个路由器发送的冗余LSAs的数量,所以不会降低洪泛的可靠性,但可以有效降低发 送的LSAs数量。它大大降低了链路状态路由协议给网络带来的负载。参考文献: [1]HUITEMAC.RouingintheInternet[M].NJ:Prentice唱Hall,1995: 127唱149. [2]AHOA,LEED.HierarchicalnetworksandtheLSAN唱squaredprob唱 leminOSPFrouting[C]//ProcofIEEEConferenceonGLOBECOM.[3]RFC3623,GracefulOSPFrestart[S]. NewYork:IEEEPress,2000:397唱403. ADGIJECFH1.50.501 [4]SHAIKHA,DUBER,VARMAA.Avoidinginstabilityduringgrace唱 05 10 15 t/s 20 25 30 KLfulshutdownofOSPF[C]//ProcofIEEEConferenceonINFOCOM.[5]NARVAEZP,SIUKY,HONGYT.Localrestorationalgorithmfor link唱stateroutingprotocols[C]//Procofthe8thIEEEConferenceon352唱357.[6] ComputerCommunicationsandNetworks.Boston:IEEEPress,1999:MIYAMURAT,KURIMOTOT,AOKIM.Enhancingthenetworkscalabilityoflink唱stateroutingprotocolsbyreducingtheirfloodingPress,2003:263唱271.版社,2003:56唱82. [8]谢政.网络算法与复杂性理论[M].长沙:国防科学技术大学出版 社,2003:139唱157. [9]MOYJ.OSPF:anatomyofanInternetroutingprotocol[M].Boston: Addison唱Wesley,1998:72唱83. overhead[C]//ProcofIEEEConferenceonHPSR.Torino:IEEE[7]殷剑宏,吴开亚.图论及其算法[M].北京:中国科学技术大学出 NewYork:IEEEPress,2002:397唱403. 图3ERSN算法得到的网络拓扑图4模拟结果假设模拟器产生的网络拓扑的每个节点都随机失效。当任意一个节点失效时,网络拓扑被分割成的两个部分,统计网络中存在多少个这样的节点。由表1可以看出,标准洪泛算法和ERSN算法中不存在这样的节点:当这个节点失效时,网络被分割成的两个部分,从而使节点的链路状态数据库不能统一。RSN算法中存在两个这样的节点:当这两个节点失效时,RSN算法不能使节点统一它们的链路状态数据库,从而保证洪泛的可靠性。 表1 比较失效节点个数 算法标准ERSNRSN 失效节点个数 020 [10]RFC1195,UseofOS1IS唱ISforroutinginTCP/IPanddualenviron唱 ments[S]. (上接第41页)推荐算法(考虑不同用户之间的评价风格)的预定。下一步的工作是把该算法应用到具体的系统中,检验其实际运行的效果。参考文献: [1]HERLOCKERJ,KONSTANJ,BORCHERSA,etal.Analgorithmic frameworkforperformingcollaborativefiltering[C]//ProcofConfe唱renceonResearchandDevelopmentinInformationRetrieval.NewYork:Springer,1999:263唱266. 测精度相比,保持了一致。当用户个数大于12后,无论是哪种算法,预测精度都没有明显的变化。 通过分析可知,当用户的最近邻个数很少时,对要预测的项目往往只有更少的用户对之作出评价,即此时对这个项目的评价是极端稀疏的。本文算法由于充分考虑了用户的相似度对最后结果的影响,取得了较好的推荐结果。 4 结束语 在分析协同过滤推荐原理的基础上,笔者提出了一种个性化的推荐策略和算法,即在最近邻居集的范围内,根据每个最近邻居与目标客户的相似度,先对各个项目产生一个预测值;然后根据各自的相似度,在预测值的基础上产生一个综合的最后推荐值。实验证明这种算法在矩阵稀疏的情况下,可以取得很好的推荐精度,并且在不同邻居个数的情况下,结果比较稳 [2]GOLDBERGD,NICHOLSD,OKIBM,etal.Usingcollaborativefil唱 teringtoweaveaninformationtapestry[J].CommunicationsoftheACM,1992,35(12):61唱70. [3]SARWARB,KARYPISG,KONSTANJ,etal.Item唱basedcollabora唱 tivefilteringrecommendationalgorithms[C]//Procofthe10thInter唱295. nationalWorldWideWebConference.NewYork:Springer,2001:285唱 [4]邓爱林,朱杨勇,施伯乐.基于项目评分预测的协同过滤算法[J]. 软件学报,2003,14(9):1621唱1628.
因篇幅问题不能全部显示,请点此查看更多更全内容