基于三维协同过滤的C2C电子商务推荐系统
2013-07-25艾丹祥
艾丹祥,左 晖,杨 君
(1.广东工业大学管理学院,广东广州510520;2.广东工业大学经济与贸易学院,广东广州510520)
0 引言
电子商务推荐系统是互联网环境下解决信息过载和吸引客户的有效途径,已广泛应用于各种电子商务网站[1-2]。它通过分析用户的历史行为,发现用户的兴趣需求和购买模式,有针对性地进行商品或服务推荐。协同过滤是目前最成功的推荐技术之一[3]。传统的协同过滤推荐主要针对B2C(business to customer)电子商务模式设计,推荐过程只涉及两个维度: “用户和商品”,推荐的基本任务为:“计算用户和商品的相关度,并从商品集合中选择与用户相关度最高的若干商品进行推荐”[4]。然而这种二维协同过滤方法并不能较好地适用于C2C(customer to customer)电子商务中的推荐问题。C2C电子商务网站中不但存在大量的商品,还存在大量的卖家,且同一商品被多个卖家同时销售的情况非常普遍。这使得C2C网站中的买家面临的不仅是一组商品,而是一个由卖家和商品形成的销售网络。买家既要选择喜爱的商品,也要选择合适的卖家。因此C2C网站中的推荐问题变得更为复杂,涉及到买家、卖家和商品三个维度,推荐任务也变为:“计算买家、卖家和商品三者间的相关度,并从销售网络中选择与买家相关度最高的若干商品及销售该商品的卖家进行推荐。”由于二维协同过滤方法只能推荐商品而不能同时推荐卖家,因此其用于C2C网站时具有较大的局限性。通常C2C网站会提供一些简单的卖家筛选策略,如根据价格高低、信用度大小、销售量大小等属性对卖家进行排序。简单筛选策略虽然可以在一定程度上弥补二维协同过滤推荐的缺陷,辅助买家对卖家进行选择,但是它没有考虑买家选择商品和选择卖家的相关性,也没有考虑买家对卖家的个性化要求。
针对上述问题,本文对传统的二维协同过滤方法进行扩展,使其适用于C2C中“买家×卖家×商品”的三维推荐空间,并以此为基础设计基于三维协同过滤[5]的C2C电子商务推荐系统,为C2C买家推荐个性化的卖家和商品组合。
1 二维协同过滤推荐
传统的二维协同过滤技术依据“相似用户具有相似兴趣”的基本假设,在用户群中找到目标用户的相似用户,综合这些相似用户对某一商品的评价,形成目标用户对此商品的喜好程度预测[6]。相似用户通常被称为目标用户的“最近邻”,通过计算用户相似度来进行识别。协同过滤的基本过程包括以下3步[7]:
(1)用户建模[8]
协同过滤中典型的用户模型为“用户——项目”评分矩阵 (如表1所示),通过采集所有用户对所有项目的历史评分形成。
表1 “用户——项目”评分矩阵
评分值通常会被归一化,取值范围为 [0,1]或 [-1,1]之间,分值大小反映用户对项目感兴趣的程度,NULL表示用户没有对项目进行过评分。
(2)最近邻计算
最近邻是指与目标用户兴趣相似度最高的N个用户。获得最近邻的关键在于计算用户间的相似度。在协同过滤系统中,相似度通常基于两个用户对项目的共同评分来计算。测量用户相似度的方法有很多,其中最常用的两种是皮尔逊相关系数相似度和余弦相似度[9]。
(3)评分预测
一旦获得目标用户的最近邻,即可根据最近邻的历史评分计算目标用户对某项目的未知评分[10]。假设用户u对项目i的未知评分为r(u,i),则r(u,i)是N个最近邻对项目i的评分的聚合值
2 基于三维协同过滤的推荐系统
2.1 三维协同过滤基本思想
一种将二维协同过滤方法直接扩展到“买家×卖家×商品”三维推荐空间的方法是:将卖家和商品的组合视作一个项目,根据买家对此“项目”的共同评分计算买家最近邻并预测未知评分。但此方法在实际计算时的效果很难保证。由于同时涉及到卖家和商品两个维度,且C2C网站中可选的卖家和商品数通常都很庞大,使得两个买家对同一卖家的同一商品进行评分的情况较少出现,共同评分数据由此变得非常稀疏,影响了相似度和未知评分的计算。为此,本文不仅仅对二维协同过滤方法进行三维扩展,而且依据“同一买家选择的卖家应彼此相似”的原则,引入对卖家相似度的计算,并依据卖家相似度以及卖家和商品间的销售关系对评分数据进行适当地推断和填补,减少三维数据的稀疏程度,保证推荐计算的有效性。
2.2 基于三维协同过滤的推荐系统架构
图1显示了基于三维协同过滤的电子商务推荐系统的基本架构。系统由用户界面、数据存储模块和三维协同过滤推荐模块3个部分构成。
用户界面部分负责实现与C2C买家的交互,一方面观察和记录买家的交易或评价行为,形成买家对卖家和商品的评分;另一方面为买家提供推荐的结果。
数据存储模块包含三个数据库:买家评分数据库存储买家对所购买的商品以及销售商品的卖家的历史评分;卖家-商品销售关系数据库记录当前卖家销售商品的状况;卖家属性数据库存储卖家的各种特征属性。C2C网站为了使买卖双方的信息更加对称,通常会展示卖家各方面的属性,如信用度、销售量、销售价格、物流速度等,这些属性是买家选择卖家时的决定性因素,也是计算卖家相似度的主要依据。
图1 基于三维协同过滤的电子商务推荐系统架构
三维协同过滤推荐模块是推荐系统的核心模块,它与数据存储模块交互,完成三维协同过滤的运算,最终形成推荐结果,具体的推荐过程如下:
(1)根据卖家的属性值,计算卖家间的相似度;
(2)利用卖家相似度对具有相似卖家的商品的评分进行推断,并对评分数据进行填补;
(3)利用协同过滤技术,依据买家对<卖家,商品>组合的共同评分,计算买家间的相似度,并将与目标买家相似度最高的若干买家确定为目标买家的最近邻。
(4)以买家相似度和卖家相似度为权值,聚合前N个最近邻的评分,预测目标买家对<卖家,商品>组合的未知评分。
(5)将预测评分最高的若干<卖家,商品>组合推荐给目标买家。
下一节将详细描述三维协同过滤推荐中涉及到的4个关键运算:卖家相似度计算、买家评分数据填补、买家相似度计算和买家未知评分预测。
2.3 三维协同过滤推荐的关键运算
2.3.1 卖家相似度计算
卖家之间的相似度由卖家的属性 (信用度、好评率、价格水平等)决定,具有类似属性值的卖家相似度较高。我们利用余弦相似度计算卖家相似度,假定卖家s和s'的相似度为sim(s,s'),其计算方法为
式中:fk(s)和 fk(s')——卖家 s和 s'的第 k个属性值,n——属性的数目。
2.3.2 买家评分数据填补
对买家评分数据进行推断和填补的基本思想为:假设卖家s和s'均销售商品p,买家b从未对s和p进行过评分,但曾对s'和 p给出过评分r(b,s',p),则根据 r(b,s',p)以及卖家s和s'的相似度可推断b对s和p的评分r(b,s,p),可以认为卖家s和卖家s'越相似,r(b,s,p)和r(b,s',p)的值也越接近。
假定rinference(b,s,p)为买家b对卖家s和商品p的评分推断值,其计算方法为
式中:S(b,p)——销售p且被b评分过的所有卖家。sim(s,s')——卖家s和s'的相似度。M——S(b,p)中的卖家数量。计算所得的rinference(b,s,p)将作为r(b,s,p)的替代值填入买家评分数据中。
2.3.3 买家相似度计算
计算买家相似度的方法与二维协同过滤方法类似,即将<卖家,商品>视作一个整体项目,以经过填补的买家评分数据为基础,依据买家对<卖家,商品>的共同评分计算相似度。假设买家b和b'的相似度为我们采用皮尔森相关系数进行计算
2.3.4 买家未知评分预测
与二维协同过滤方法类似,我们通过对最近邻评分的聚合来预测目标买家b对卖家s和商品p的未知评分r(b,s,p)。聚合函数采用调整后的加权求和,因而有
3 实验
为了验证本文所提出的C2C电子商务系统的可行性与有效性,我们在windows平台上,采用Java语言编程实现三维协同过滤推荐算法,并利用从淘宝网上采集的真实数据进行模拟实验。
3.1 数据集
数据集为2010年8月到10月佳能数码照相机及其配件在淘宝网的销售和评价记录,每一条记录由“买家、卖家、商品、评分”4项基本内容构成。原始数据共包含16564条记录,涉及13183个买家,419个卖家和144个商品。为了使数据更好地适用于实验验证,我们对数据记录进行了筛选,去掉在该时间段只购买了1个商品的买家,最终获得4138条记录,涉及1557个买家,268个卖家和144个商品,其中卖家和商品的销售关系共1171条。
根据淘宝网的信誉机制,在每笔交易完成后,买家可以根据购物体验为商品和卖家进行评分,每一个评分具有3个等级:好评、中评、差评。如果买家没有在规定的时间内进行评分,则淘宝网会默认给出好评。这种机制使得每一笔销售记录都具有相应的评分。为了便于计算,我们将好评、中评、差评分别对应于评分1、0.5和0,由此形成买家评分数据。
除此以外,我们采集了淘宝网提供的关于卖家的19项属性值,包括:成交数量、收藏人气、浏览次数、价格等级、库存数量、卖家信用度、好评率、虚拟商品交易比例、实物商品交易比例、宝贝与描述相符度评分、卖家的服务态度评分、卖家的发货速度评分、是否如实描述、是否支持7天退换、是否支持正品保障、有无违规行为、有无退款纠纷、有无处罚情况、是否为淘宝商城。其中前12项为连续值属性,在预处理阶段对其值进行分级排序,用1、2、3、4……表示不同的等级;后7项为二值属性,取值为1和0。
3.2 评价指标
为了评估三维协同过滤方法的推荐效果,我们采用了三个评价指标:召回率 (Recall)、准确率 (Precision)和F-Measure[11]。其定义分别为
3.3 实验过程
我们在数据集上同时实现三维协同过滤推荐和二维协同过滤推荐,并对其推荐效果进行比较。三维方法将直接产生〈卖家、商品〉组合的推荐,而二维方法在产生商品推荐后,还需要通过简单筛选策略为被推荐的商品组合相应的卖家。具体过程如下:
实验1:通过三维协同过滤推荐方法计算〈卖家、商品〉组合的推荐。
实验2:通过二维协同过滤方法计算商品推荐,并通过价格排序为每个推荐商品组合价格最低的卖家
实验3:通过二维协同过滤方法计算商品推荐,并通过信用度排序为每个推荐商品组合信用度最高的卖家
实验4:通过二维协同过滤方法计算商品推荐,并通过销售量排序为每个推荐商品组合销售量最高的卖家
实验5:通过二维协同过滤方法计算商品推荐,并为每个被推荐商品随机的组合一个卖家。
3.4 实验结果及分析
实验结果如图2至图4所示。
图2至图4中的横坐标K表示保留的买家最近邻数,取值分别为10、15、20、25、30。从图中可以看出,当需要推荐<卖家,商品>组合时,三维推荐方法在Recall、Precision和F-measure三个指标上的表现都优于二维推荐方法。此外,随机选择卖家的二维推荐方法表现好于其他几种二维推荐方法,这从某种意义上说明买家对卖家的选择并不是一个简单的行为,可能受到各种因素的综合影响。不同的买家对卖家的要求各不相同,单一的卖家筛选策略并不能很好的适应不同买家的需求。而三维推荐方法的表现优于各种二维推荐方法,说明通过计算卖家相似度和买家相似度能较好地为买家对卖家的个性化要求建模。
图4 三维推荐与二维推荐F-measure指标结果比较
4 结束语
本文针对C2C电子商务网站中的推荐问题,设计了一种基于三维协同过滤的电子商务推荐系统。该系统将传统的二维协同过滤方法扩展到“买家×卖家×商品”的三维推荐空间,依据买家的历史评分和网站展示的卖家属性,计算卖家相似度和买家相似度,在对评分数据进行适当填补的基础上,预测买家对<卖家,商品>组合的未知评分并据此形成推荐。实验结果证明,该系统在C2C电子商务环境下能有效发现买家对卖家和商品的个性化需求,具有较好的推荐效果。
[1]LIU Pingfeng,NIE Guihua,Chen Dongli.A survey:Electronic commerce recommender systems [J].Journal of Information,2007,26(9):46-50(in Chinese).[刘平峰,聂规划,陈冬林.电子商务推荐系统研究综述 [J].情报杂志,2007,26(9):46-50.]
[2]XU Hailing,WUXiao,LIXiaodong,et al.Comparison study of internet recommendation system [J].Journal of Software,2009,20(2):350-362(in Chinese).[许海玲,吴潇,李晓东,等.互联网推荐系统比较研究[J].软件学报,2009,20(2):350-362.]
[3]Schafer J,Frankowski D,Herlocker J,et al.Collaborative filtering recommender systems[G].LNCS 4321:Heidelberg:Springer Berlin,2007:291-324.
[4]Adomavicius G,Sankaranarayanan R,Sen S,et al.Incorporating contextual information in recommender systems using a multidimensional approach [J].ACM Trans Inf Syst,2005,23(1):103-145.
[5]LI Gai,PAN Rong,LI Lei.CubeALS:A novel approach to 3D collaborative filtering[J].Journal of Frontiers of Computer Science and Technology,2012,6(2):156-164(in Chinese).[李改,潘嵘,李磊.CubeALS:新的三维协同过滤推荐算法[J].计算机科学与探索,2012,6(2):156-164.]
[6]YU C,XU J R,DU X Y.Recommendation algorithm combining the user-based classified regression and the item-based filtering[C]//Proceedings of the8th International Conference on Electronic Commerce:The New E-commerce:Innovations for Conquering Current Barriers,Obstacles and Limitations to Conducting Successful Business on the Internet.New York:ACM Press,2006:574-578.
[7]GUO Yanhong,DENG Guishi.Improved personalized recommendation algorithm in collaborative filtering[J].Application Research of Computers,2008,25(1):39-41(in Chinese).[郭艳红,邓贵仕.协同过滤的一种个性化推荐算法研究 [J].计算机应用研究,2008,25(1):39-41.]
[8]WU Lihua,LIU Lu.User profiling for personalized recommending systems-a review [J].Journal of the China Society for Scientific and Technical Information,2006,25(1):55-62(in Chinese).[吴丽花,刘鲁.个性化推荐系统用户建模技术综述[J].情报学报,2006,25(1):55-62.]
[9]Adomavicius G,Tuzhilin A.Toward the next generation of recommender systems:A survey of the state-of-the-art and possible extensions[J].IEEE Transactions on Knowledge and Data Engineering,2005,17(6):734-749.
[10]Ricci F,Rokach L,Shapira B,et al.Recommender systems handbook[M].Berlin:Springer-Verlag,2011:1-842.
[11]LIU Jianguo,ZHOU Tao,GUO Qiang,et al.Overview of the evaluated algorithms for the personal recommendation systems [J].Complex Systems and Complexity Science,2009,6(3):1-8.(in Chinese).[刘建国,周涛,郭强,等.个性化推荐系统评价方法综述.复杂系统与复杂性科学,2009,6(3):1-8.]