个性化推荐系统一直是电子商务领域中的研究热点。它分析用户的历史行为, 发现用户的兴趣特征和购买模式, 并有针对性地进行商品推荐, 从而简化用户的购物路径, 解决商品信息过载的问题。尽管推荐系统在电子商务平台中已获得广泛的应用[1, 2], 但大部分推荐方法都是针对B2C(Business to Customer)电子商务环境设计, 很少有针对C2C(Customer to Customer)平台下推荐问题的专门研究。事实上, C2C具有和B2C不同的推荐空间, 传统的B2C推荐系统应用于C2C电子商务平台时具有一定的局限性。主要原因在于:在B2C环境中, 网站充当交易里唯一的销售商, 用户购物时只关心商品而不关心卖家。因此推荐问题只涉及用户和商品两个实体之间的相关性, 用户和商品形成二维的推荐空间[3]:用户× 商品。而在C2C环境中, 网站只提供交易平台, 本身不参与交易。因此除了大量的商品, C2C平台中还存在大量的卖家。对C2C中的买家而言, 不但要从众多信息中筛选出喜爱的商品, 还要筛选出满意的卖家。这使得C2C网站的推荐问题也变得更为复杂, 推荐过程需要同时考虑买家、商品和卖家三个实体间的相关性, 这三者也形成了三维的推荐空间: 买家× 商品× 卖家。传统的二维推荐技术并不适用于此类情况。鉴于此, 本文针对C2C电子商务平台中的推荐问题进行专门的定义和描述, 并提出了一种新的三维个性化推荐方法, 它对传统的二维推荐方法进行扩展和混合, 实现针对C2C买家个性化需求的卖家和商品组合推荐。
传统的二维个性化推荐方法可以分为协同过滤推荐和基于内容的推荐两种基本类型[4]。
传统的二维协同过滤技术依据“ 相似用户具有相似兴趣” 的基本假设, 在用户群中找到目标用户的相似用户, 综合这些相似用户对某一商品的评价, 形成目标用户对此商品的喜好程度预测[5]。协同过滤的过程包括三个主要步骤[6]:
(1)首先要进行用户建模, 典型的用户模型为“ 用户-商品” 评分矩阵, 由所有用户对所有商品的历史评分构成, 评分值大小反映用户对商品的喜好程度;
(2)计算最近邻, 最近邻是指与目标用户兴趣相似度最高的N个用户, 用户相似度通常基于两个用户对商品的共同评分来计算, 最常用的测量用户相似度的方法是皮尔逊相关系数相似度[7, 8]和余弦相似度[4, 9];
(3)对未知评分进行预测, 即计算最近邻对候选商品历史评分的聚合值, 并作为目标用户对商品未知评分的预测值[10]。最终预测评分最高的若干个商品将被推荐给目标用户。
基于内容的推荐依据“ 同一用户的兴趣项目彼此相似” 的基本假设, 向目标用户推荐与其历史兴趣项目内容相似的其他项目。项目的内容通过特征属性进行描述, 项目之间的相似度也通过特征属性的比较来计算[11]。
在目前关于推荐方法的研究中, 专门针对C2C电子商务平台的探讨并不多见。比较有代表性的如李雪峰等[12]针对C2C环境提出的用户偏好模型建立和拍卖商品推荐方法, Wu等[13]、Wang等[14]则研究了C2C环境中的卖家选择和推荐方法。从本质上看, 这些方法仍然属于二维推荐。
二维推荐方法也可以应用于C2C电子商务平台, 但只能进行单一的商品推荐或卖家推荐。在实际应用中, 通常买家在获得商品推荐后, 还需要运用网站提供的某些排序策略对商品的卖家进行筛选, 例如:根据价格高低、信用度大小、销售量大小等属性对卖家进行排序。这种方式一方面增加了买家的认知负担, 另一方面也忽略了买家的个性化要求。事实上C2C买家对卖家的选择决策因人而异, 例如:有些买家偏向于选择价格便宜的卖家, 有些偏向于信用高的卖家, 有些则会进行综合考虑。单一的排序策略并不能很好地对买家个性化的选择行为建模。因此C2C平台中的推荐问题需要一种新的方法, 能够获取用户对商品的不同喜好以及对卖家的不同要求, 根据卖家和商品间的销售关系, 实现对卖家和商品两者组合的个性化推荐。
为了更好地解决C2C电子商务平台中的个性化推荐问题, 本文首先对其条件和任务进行定义和描述。C2C环境中存在着复杂的销售关系与交易关系:一个卖家销售多个商品, 而同样的商品也被多个卖家同时销售。买家可以选择任意的商品和卖家进行交易, 买家选择商品主要依据自身喜好, 而选择卖家则主要依据C2C网站展示的卖家特征属性, 判断卖家是否符合自己的要求。通常C2C网站的交易系统或信誉系统会展示卖家各方面的属性, 如销售量、销售价格、信用度、好评率、物流费用等。这些属性是买家选择卖家时的决定性因素。具体来说, 可以将C2C平台中的推荐问题定义如下:.
(1)假设B={ b1, b2, b3, … , bn} 为买家集合, P={ p1, p2, p3, … , pm} 为商品集合, S={ s1, s2, s3, … , sk} 为卖家集合。
(2)给定:
①三维历史评分集合R={ r(b, s, p)|b∈ B, s∈ S, p∈ P} 其中r(b, s, p)表示买家b对于卖家s及其销售的商品p的评分。R实际形成了一个三维评分空间, 买家、商品、卖家分别占据空间的三个轴, 而空间中的每个单元则记录了评分值, 如图1所示:
如果买家b还没有对卖家s所销售的商品p进行评分, 则r(b, s, p)=NULL。
②卖家和商品之间的销售关系矩阵SRM。矩阵的垂直轴对应所有的卖家, 水平轴对应所有的商品, 每个单元格的取值为1或者0, 其中1表示卖家正在销售该商品, 0表示卖家没有销售该商品, 如表1所示:
③卖家的属性矩阵SFM。SFM的垂直轴对应所有的卖家, 水平轴对应所有的特征属性, 由于不同的C2C网站上提
为了实现面向C2C的三维推荐, 本文首先对传统的二维协同过滤算法进行扩展, 使其适用于“ 买家× 卖家× 商品” 的三维空间。由于C2C中的推荐系统最终要产生对卖家和商品的组合推荐, 因此可以将每一个卖家和商品的组合视作一个“ 项目” , R中的评分即为买家对这些“ 项目” 的历史评分。依据协同过滤的基本思想, 可以利用R中买家对“ 项目” 的共同评分计算买家间的相似度, 获得目标买家的最近邻。具体计算步骤如下:
假定目标买家为b, 首先采用皮尔逊相关系数[7]计算买家b和其他买家的相似度, 假设买家b和b’ 的相似度为sim(b, b’ ), 则有:
其中, SP表示同时被b和b’ 评分的卖家和商品组合的集合, n为SP中的数目, sim(b, b’ )值最高的N个b’ 将被视为买家b的最近邻。确定最近邻后, 通过聚合最近邻的评分, 可以预测目标买家b对卖家s和商品p的未知评分r(b, s, p)[4]:
其中, B∧ 表示买家b的最近邻集合。公式(2)采用的聚合方式为调整后的加权求和, 其中sim(b, b’ )的值充当评分r(b’ , s, p)的权值。这是因为b和b’ 的相似度越高, 评分r(b’ , s, p)对于预测r(b, s, p)的重要程度就越高。
上述扩展后的协同过滤方法虽然适用于三维推荐空间, 但是存在严重的数据稀疏问题, 因此必须对上述方法进行改进。
评分数据稀疏一直是各种推荐系统都面临的难题。而当推荐空间中的维度增加时, 数据稀疏问题将更加突出。以C2C中的推荐应用为例, 如果将卖家和商品的组合视为一个候选“ 项目” , 则“ 项目” 数将非常庞大, 而且卖家数或商品数的增加都会引起“ 项目” 数呈几何级增长。“ 项目” 数量过多使得两个买家对同一“ 项目” 进行评分的机会大大减少, 共同评分集变得非常稀疏, 进而影响买家相似度的计算和未知评分的预测。表3和表4显示了稀疏三维评分集的一个实例, 分别是买家b和买家b’ 对卖家和商品的评分数据。
为了解决三维推荐问题中的数据稀疏问题, 本文引入卖家相似度对三维评分集进行推断和填补, 填补的基本思想为:假设卖家s销售商品p, 且买家b从未对s和p进行过评分, 但如果b曾在销售p的其他卖家那里购买p且评分, 则根据卖家s与这些卖家的相似度可以推测b对于s和p的评分。
填补的关键在于卖家相似度的计算, 本文借鉴基于内容推荐[11]的思想, 根据SFM中卖家的特征属性计算卖家相似度。卖家的特征属性是买家选择卖家时的参考依据, 可以认为, 对买家来说, 具有类似特征属性值的卖家相似度也较高。而在商品相同的情况下, 同一买家对两个相似卖家的评分也应该相似, 因此可以由已知评分推断出未知的评分。具体计算步骤如下:
(1)计算卖家相似度
假设sim(s, s’ )为卖家s和s’ 的相似度, 利用余弦相似度[9]计算sim(s, s’ ):
其中, fk(s)和fk(s’ )表示卖家s和s’ 的第k个属性值, n为属性的数目。
以表2中的卖家属性值为例, 依据公式(3)进行计算, 可得出各卖家间的相似度, 例如s1和s2的相似度为:
最终所有卖家相似度如表5所示:
假设rinference(b, s, p)为b对卖家s和商品p的评分推断值, 以卖家相似度作为权值, 采用加权平均计算rinference(b, s, p):
其中, S(b, p)表示销售p且被b评分过的所有卖家, sim(s, s’ )为卖家s和s’ 的相似度, M为S(b, p)中的卖家数量。
例如, 表3中的买家b在s2和s4两个卖家处都购买过商品p3且评分分别为0.10和0.40, 又从表1中的卖家和商品销售关系可知s3也销售产品p3, 从表5中的卖家相似度可知s3和s2 、s4之间的相似度分别为0.828和0.821。因此, 尽管b对s3和p3的评分不存在, 但根据公式(4), 可以推断b对s3和p3的评分为:
同理依据表1-表5, 可以对b和b’ 的许多评分值进行推断, 将推断评分填入b和b’ 的评分集中, 替换对应的NULL值, 最终获得的新评分集合如表6和表7所示(带下横线的分值为推断评分):
结合上述的扩展协同过滤方法和基于卖家相似度的评分填补方法, 本文提出了面向C2C平台的三维个性化推荐方法, 其模型如图2所示:
三维推荐的具体算法描述如下:
输入:目标用户b, 历史评分集合R, 销售关系矩阵SRM, 卖家属性矩阵SFM
输出:b的Top-N个卖家和商品组合推荐集
步骤:.
①依据SFM, 利用公式(3)计算卖家间的相似度;
②根据SRM和卖家间的相似度, 利用公式(4)计算b的所有推断评分, 并对R进行填补;
③根据填补后的R, 利用公式(1)计算b和其他买家间的相似度;
④选取k个与b相似度最高的买家作为b的最近邻集合;
⑤对于最近邻曾评分的所有, 利用公式(2)计算b对未评分的预测评分;
⑥选择N个预测评分最高的作为推荐集。
为验证三维个性化推荐方法的有效性, 笔者使用从淘宝网采集的真实数据进行实验。数据集为2010年8月到10月佳能数码照相机及其配件在淘宝网的销售和评价记录, 每一条记录由“ 买家、商品、卖家、评分” 4项基本内容构成。原始数据共包含16 564条记录, 涉及13 183个买家, 419个卖家和144个商品。为了使数据能够更好地适用于实验验证, 笔者对数据记录进行筛选, 去掉所有在该时间段只购买1个商品的买家, 最终获得4 138条记录, 涉及1 557个买家, 268个卖家和144个商品, 其中卖家和商品的销售关系共1 171条。
根据淘宝网的信誉机制, 在每笔交易完成后, 买家可以根据购物体验为商品和卖家进行评分, 每一个评分具有三个等级:好评、中评、差评。如果买家没有在规定的时间内进行评分, 则淘宝网会默认给出好评。这种机制使得每一笔销售记录都具有相应的评分。为了便于计算, 笔者将好评、中评、差评分别对应于评分1、0.5和0, 由此形成评分集合R。
除此以外, 笔者还采集了淘宝网提供的关于卖家的19项属性值, 包括:成交数量、收藏人气、浏览次数、价格等级、库存数量、卖家信用度、好评率、虚拟商品交易比例、实物商品交易比例、宝贝与描述相符度评分、卖家的服务态度评分、卖家的发货速度评分、是否如实描述、是否支持7天退换、是否支持正品保障、有无违规行为、有无退款纠纷、有无处罚情况、是否为淘宝商城。其中前12项为连续值属性, 在预处理阶段对其值进行分级排序, 用1、2、3、4… 表示不同的等级; 后7项为二值属性, 取值为1和0。
为了评估三维推荐算法的推荐效果, 笔者采用F-measure[15]作为评价指标, F-measure是评估推荐系统质量的常用指标, 是Precision和Recall[16]两个评估指标的组合, 在本实验中具体的计算方法为:
Precision=被推荐且被买家购买的<卖家, 商品>数目被推荐的<卖家, 商品>总数目
Recall=被推荐且被买家购买的<卖家, 商品>数目被买家购买的<卖家, 商品>总数目
对于上述数据集, 采用5次迭代验证方法进行实验, 即按照20%与80%的比例对评分数据集R进行划分, 并划分5次。每次将80%的部分作为训练集RT, 20%的部分作为评估集RE, 使RE∩ RT = 且 RE∪ RT =R。RT用于预测评分并产生推荐列表, RE用于将推荐列表与买家购买列表进行比较, 计算F-measure的值。对每一组RT和RE均进行5个子实验, 其中1个实现三维推荐算法, 另外4个实现二维推荐算法, 以便对推荐效果进行比较。三维推荐算法将直接产生<卖家, 商品>组合的推荐, 而二维推荐算法在产生商品推荐后, 还需要通过简单排序策略为被推荐商品组合相应的卖家, 具体如下:
(1)子实验1:通过三维混合推荐算法计算<卖家, 商品>组合的推荐。
(2)子实验2:通过二维协同过滤算法计算商品推荐, 并为每个被推荐商品随机组合一个卖家。
(3)子实验3:通过二维协同过滤算法计算商品推荐, 并通过销售量排序为每个推荐商品组合销售量最大的卖家。
(4)子实验4:通过二维协同过滤算法计算商品推荐, 并通过价格排序为每个推荐商品组合价格最低的卖家。
(5)子实验5:通过二维协同过滤算法计算商品推荐, 并通过信用度排序为每个推荐商品组合信用度最高的卖家。
5次迭代验证的实验结果如图3-图7所示(No.表示5组RT和RE的序号):
指标结果比较(No.1)
指标结果比较(No.2)
指标结果比较(No.3)
指标结果比较(No.4)
指标结果比较(No.5)
图中的横坐标K表示保留的买家最近邻数, 取值分别为10、15、20、25、30。可以看出, 三维推荐算法在F-measure指标上的表现优于所有的二维推荐算法, 而随机选择卖家的二维推荐算法表现优于其他几种二维推荐算法。这说明买家对卖家的选择并不是一个简单的行为, 可能受到各种因素的综合影响, 不同的买家对卖家要求各不相同, 单一的卖家排序策略并不能很好地适应不同买家的需求, 而本文所设计的三维推荐方法能较好地为买家在C2C平台中的个性化需求建模, 因而获得较好的推荐效果。
本文定义和描述了C2C电子商务平台中特殊的个性化推荐问题, 提出一种新的三维个性化推荐方法。该方法既对传统的二维协同过滤算法进行了扩展, 使其适应C2C网站中“ 买家× 商品× 卖家” 的三维推荐空间, 又依据内容推荐的思想, 通过卖家特征属性计算卖家相似度, 实现对三维评分数据的填充, 解决三维空间中评分数据的稀疏问题, 保证推荐计算的有效性。实验结果证明, 在C2C电子商务环境下, 该方法能较好地解决针对卖家和商品两者的个性化推荐问题, 其推荐效果优于传统的二维推荐方法。