APP下载

考虑商品重复购买周期的协同过滤推荐方法改进

2017-07-07张志清胡竹青

武汉科技大学学报 2017年4期
关键词:沐浴露协同状态

张志清,李 梦,胡竹青

(1.武汉科技大学管理学院,湖北 武汉,430081;2.武汉科技大学服务科学与工程研究中心,湖北 武汉,430081)



考虑商品重复购买周期的协同过滤推荐方法改进

张志清1,2,李 梦1,胡竹青1

(1.武汉科技大学管理学院,湖北 武汉,430081;2.武汉科技大学服务科学与工程研究中心,湖北 武汉,430081)

传统基于用户的协同过滤商品推荐方法通常未考虑目标用户是否购买过类似商品以及商品的重复购买周期等因素,由此造成有些商品推荐的时机不对,不仅占用了推荐资源,还可能给消费者带来困扰,为此提出一种基于商品重复购买周期的改进协同过滤推荐方法。在传统协同过滤算法的基础上引入已购商品回购状态变量,根据目标用户的历史购买数据和商品重复购买周期对所购买商品的回购状态进行计算,进而得出不处于回购周期内的已购商品类集,据此对原始推荐结果进行过滤。实验结果表明,改进后的协同过滤推荐系统能有效预测顾客的购买行为,明显提高商品推荐的准确性。

商品推荐;协同过滤;重复购买;消费周期;回购;网上购物

电子商务推荐系统是一种提高电子商务零售网站整体营销性能的个性化推荐工具,可以帮助用户发现其感兴趣的商品,节省用户时间,提升用户体验及对电子商务网站的忠诚度。协同过滤推荐是电子商务推荐系统中应用最为广泛的推荐方法,它通过消费者的反馈信息记录用户的行为喜好,定位相似用户(也称为“邻居用户”),从用户购买记录中得到商品评分并用于用户-项目矩阵的构建,最终为目标用户提供高评分的推荐商品[1]。然而用户评分存在很大的数据稀疏性问题,用户相似度计算也有较大的误差,这严重影响了协同过滤算法推荐的准确度,此外,协同过滤算法的冷启动也是一个不容忽视的问题(又称“第一评价问题”或“新项目问题”)[2]。为此,很多研究人员对协同过滤算法进行了改进和完善。一种途径是从矩阵稀疏性出发,例如,李大学等[3]采用改进的加权朴素贝叶斯方法对没有评分的数据进行预测,借此来填充用户-项目矩阵,缓解矩阵稀疏性;Suryakant等[4]提出一种基于MMD(mean measure of divergence)的协同过滤相似性计算方法,考虑评价项目的行为习惯对衡量用户之间相似性的影响,有效解决了数据的稀疏性问题。还有一种途径是从相似度计算方法出发提高推荐精确度,例如,Hernando等[5]针对基于贝叶斯概率模型的协同过滤推荐系统提出一种非负矩阵分解方法,即将评分矩阵分解为两个非负矩阵,以提高对用户偏好的预测准确度;Ar等[6]采用改进遗传算法解决协同过滤中的相似度计算问题,在预测前对用户之间的相似度进行定义,使用遗传算子算术交叉和突变随机权重的选择来重组和调整突变,进而细化相似性权重,以减少所有用户的平均误差;Ahn[7]提出一种新的启发式相似性度量(PIP)用于协同过滤推荐,利用特定领域的用户对产品的评级解释来克服传统的相似性和距离测度的弱点,提高新用户冷启动条件下的推荐性能;Bobadilla等[8]提出一种基于神经学习优化的新相似性度量方法来解决新用户的冷启动问题,给新用户提供更加准确的推荐。另外,研究人员也采用其他途径对协同过滤算法进行了改进,例如,傅鹤岗等[9]在用户提交项目评分之后对推荐模型的数据进行实时更新,有效提高了推荐精度并大幅度缩短了推荐时间;Wei等[10]将协同过滤方法和深度学习神经网络这两种推荐模式紧密耦合,以解决推荐系统中缺少用户评分记录的完全冷启动问题和只有少量评分记录的不完全冷启动问题。

然而,上述研究中主要是为用户推荐其没有购买过但可能会喜欢的商品,而不是推荐用户可能需要且可能会喜欢的商品。在未考虑目标用户已购商品的消费状态的情况下进行推荐,可能会产生以下几个问题:①用户购买的某种商品尚在使用中,其消费周期虽然较短,但只要一件即可满足现有需求,然而系统又推荐了一种同功效但不同品牌的商品;②用户购买了某种品牌的商品,其消费周期长,购买一件后可能要较长时间才会再进行购买,然而系统又推荐了类似商品。

商品重复购买周期中暗含着用户使用产品的时间状况,通过对用户购买记录中商品的回购状态进行计算,可以预测用户购买历史中处于消费周期、回购周期以及无效状态的商品类集,经过筛选后可以去除掉用户不需要的商品,进而为用户推荐那些需要且可能会喜欢的商品,这不仅能提高预测准确率,也能有效提升用户体验。

因此,本文提出一种改进协同过滤推荐方法,在传统基于用户购买记录的协同过滤算法的基础上引入对商品重复购买周期的计算,首先按照传统的协同过滤推荐方法得到推荐商品集,然后根据基于商品重复购买周期和目标用户历史购买记录生成的已购商品回购状态来对推荐商品集进行筛选,最后从筛选后的商品集中进行TOP-N推荐。

1 协同过滤推荐方法的改进

1.1 传统基于用户的协同过滤算法

传统基于用户的协同过滤推荐主要分为两步[11]:第一,基于用户-项目矩阵(一般为用户对商品的评分,1~5分),采用相应的算法计算用户之间的相似度,构造相似度矩阵;第二,根据用户相似度选择最相似的K个用户建立目标用户的最近邻居集合,以最近邻居已购买而目标用户未购买且商品评分达到3以上的项目构成目标用户偏爱商品集,并从中选取前N个项目推荐给目标用户。

1.2 基于商品重复购买周期的协同过滤模型

如前所述,传统基于用户购买记录的协同过滤商品推荐模型还不够完善,在最终的商品推荐集中可能会出现一些用户已购买且正处于消费周期内的商品类型。本文基于产品重复购买周期的改进协同过滤推荐方法主要是在传统算法中引入已购商品回购状态这个变量,对正处于目标用户消费周期内以及无效状态下的商品进行过滤,具体如图1所示。

1.3 商品重复购买周期

1.3.1 商品重复购买周期的定义

广义的商品重复购买周期指消费者第一次购买某类商品和第二次购买同样功效商品之间的时间间隔;狭义的商品重复购买周期指消费者第一次购买某品牌某类商品和第二次购买同品牌同类商品之间的时间间隔[12]。本文中的商品重复购买周期概念为前者。

图1 基于商品重复购买周期的协同过滤模型

Fig.1 Collaborative filtering model based on repeated purchase cycle of goods

1.3.2 基于商品重复购买周期的商品分类

每一件商品都有属于它自己的消费周期,即从购买到用完或是被遗弃的时间,电子商务网站上的商品种类数不胜数,本文从使用时长的角度将商品分为3类:零重复购买周期、长重复购买周期和短重复购买周期的商品。

(1)零重复购买周期的商品。此类商品属于消耗品,人们喜欢大量购买来满足自己的需要,同类型的商品可以拥有很多件,例如服饰类、鞋类、首饰类等,商品件数越多越好。在进行消费者购买行为预测时不用考虑其重复购买周期,可根据消费者的历史行为记录和相似用户的偏好商品来预测目标顾客喜爱的商品。

(2)长重复购买周期的商品。此类商品一般使用周期非常长(大于2年),属于耐用商品,只要一件即可满足人们的需求,而且在购买后要经过很长时间才会进行再次购买,也可能不会再购买,例如家电类、家具建材类等,在进行消费者购买行为预测时应该过滤掉存在于目标用户购买记录中的这类商品。

(3)短重复购买周期的商品。此类商品一般使用周期较短(小于2年),只要一件即可满足目前的日常生活需求,在使用完后人们会继续购买,例如化妆品、洗护用品等。此类商品的重复购买周期T通常都可以通过商品订单记录计算出来,而且消费者一般在使用过程中不会选择再继续购买同类商品,所以在进行消费者购买行为预测时需要考虑其重复购买周期。

令Pid为商品重复购买周期类别,有

(1)

令PbcTid为单位容量下类别标识为Tid的商品的重复购买周期函数,有

(2)

1.3.3 短重复购买周期商品TTid的计算

商品重复购买周期是根据回购客户的两次购买之间的时间间隔、上一次购买商品的购买量以及商品净含量来决定的。购买量以及商品净含量都与商品重复购买周期成正比,商品净含量是指商品的容量值,同一种商品可能会有不同的容量值,容量值越大,商品使用时间就越长,客户回购的时间间隔也越长,在计算时需要把容量值进行统一后再计算。

商品重复购买周期的计算主要是针对短重复购买周期商品。由于同一用途商品的重复购买周期也会有差别,因此在计算时应该以商品细分类别为标准,如洗衣液、洗衣粉等要分别计算。为了确保重复购买周期的计算准确性,本文选取某一类商品下不同品牌且回购率高的商品订单记录作为数据源,抽取进行过多次回购行为的用户订单信息进行计算,具体步骤如下。

步骤1 计算每一个用户每一次回购的单位容量下商品重复购买周期。计算公式为

(3)

式中:Pt为用户第t次回购商品的周期;Tt+1为用户第t+1次购买该商品的时间;Tt为用户第t次购买该商品的时间;Qt和Vt分别为第t次的商品购买量和单位商品容量。

步骤2 筛选掉由于店铺优惠活动、电子商务网站大型活动、顾客感知有用性和感知价值高等因素而采取的在商品未使用完情况下的重复购买行为,每删减一次,令编号为Uid的用户的回购次数NUid减1。

步骤3 计算出每个用户的平均重复购买周期。计算公式为

(4)

式中:TUid,Tid为用户Uid对单位容量下Tid类商品的平均重复购买周期;NUid为用户回购次数。

步骤4 计算出单位容量下Tid类商品的重复购买周期。计算公式为

(5)

式中:n为回购过Tid类商品的用户数。

步骤5 重复前面4个步骤,计算出所有短重复购买周期商品的重复购买周期,写入表中,表中记录项目包括:重复购买周期表编号Cid, 商品标识Iid,类别标识Tid,商品重复购买周期类别标识Pid,商品重复购买周期PbcTid。

1.3.4 商品回购状态细分

顾客购买记录中的商品回购状态可以划分为3类:处于回购周期内的商品、处于消费周期内的商品、超过回购周期未购买的失效商品。回购状态由已购商品的重复购买剩余时间决定。

设目标用户c购买历史记录中标识为Iid的已购商品所属类别为Tid,则Tid类已购商品的重复购买剩余时间PbtTid的计算公式如下:

(6)

式中:Tnow为当前时间;TIid,buy为商品标识为Iid的商品的购买时间;QIid为商品标识为Iid的已购商品购买数量;VIid为商品标识为Iid的已购商品单位容量;PbcTid根据式(2)计算。

用户在对商品进行重复购买时可能会因为个人因素而提前或推迟,再加上本文对商品重复购买周期的定义是一个具体数值而不是一个区间,这可能会导致很大的计算误差,因此在对用户的已购商品回购状态进行预测时,应该给商品的重复购买剩余时间加上一个范围阈值M,使得凡是满足|PbtTid|≤M的商品都认为是处于回购周期内,M的取值通过实际推荐测试来决定,取推荐效果最优时的阈值。商品回购状态函数如下:

(7)

1.4 改进协同过滤商品推荐的具体步骤

输入:用户历史交易数据,目标用户c,目标用户已购商品集Ic b。

输出:目标用户推荐项目集Ic。

步骤1 根据用户历史交易数据库建立用户-项目矩阵。

步骤2 采用Pearson相关系数计算目标用户c与其他用户之间的相似性sim(c,n):

sim(c,n)=

(8)

步骤3 选择相似度较大的K个邻居用户,根据其对应的相似度和用户购买商品评分,计算目标用户c对推荐商品i的评分Pc i。

(9)

式中:Nc为用户c的最近邻居用户集合;Rni为某一个最近邻居n对项目i的已知评分。

步骤4 取Pc i≥3的商品组成推荐项目集I,并提取I中各项目的类型,构成推荐项目类集I*。

1.2.4 划痕实验 OVCAR-8细胞以每孔2×105细胞接种于六孔板,待细胞长至完全融合后采用无菌200 μL枪头在中央划痕,PBS冲洗后采用倒置显微镜拍照;更换培养基后用11 μmol/L紫云英苷处理24 h,再次使用显微镜拍照,以0 μmol/为对照,以划痕宽度变化反应细胞迁移能力。

2 算例分析

2.1 算例数据的获取

由于本课题研究涉及到非常复杂的商品重复购买周期运算数据的选取和计算,需要挖掘购买网站同类型商品的全部交易信息,提取回购客户数据,最终得出商品类的重复购买周期表,因此文中选择部分具有代表性的商品来进行算例验证。

2.1.1 商品信息数据

通过用户访问形式收集100个京东用户2016年的购买记录,从用户历史购买数据中选择了10个商品,分为5组,每1组中的2个商品具有相同用途,商品详情如表1所示。服装类和耳饰类属于零重复购买周期商品,PbtTid=0;USB设备类属于长重复购买周期商品,PbtTid=+∞;洗护用品类属于短重复购买周期商品,PbtTid要根据此类商品的客户回购数据进行计算。

表1 商品信息数据

2.1.2 商品重复购买周期的计算数据

商品重复购买周期的计算数据来源为京东网上商城中洗衣液和沐浴露的用户购买历史记录,本文使用网页采集软件“八爪鱼采集器”对京东超市有关洗衣液和沐浴露的回购用户的评论数据进行挖掘,将其转化为交易数据,包括用户名、用户等级、地址、商品名、购买量、单件商品容量和购买时间,其中沐浴露的部分回购用户交易数据如图2所示。根据式(3)~式(5)计算出这两类商品单位容量下的重复购买周期TTid。洗衣液的TTid=0.012 d/g,故1瓶容量500 g的洗衣液的重复购买周期为60 d;沐浴露的TTid=0.11 d/g,故1瓶容量1000 g的沐浴露的重复购买周期为110 d。

图2 沐浴露回购用户交易数据

2.2 洗衣液和沐浴露的回购状态

洗衣液和沐浴露这两类短重复购买周期商品的回购状态由购买时间和M值决定,本算例初步设定M=30 d。根据用户购买洗衣液和沐浴露的时间与当前时间差Tnow-TIid,buy,商品回购状态具体又分为以下几种情况。

情况1:Tnow-TIid,buy<30 d或者Tnow-TIid,buy>140 d

由式(6)和式(7)可计算得出:当Tnow-TIid,buy<30 d时,PbtTid<-M,洗衣液和沐浴露的商品回购状态均为处于消费周期,用户不会马上购买这两类商品;当Tnow-TIid,buy>140 d时,PbtTid>M,沐浴露和洗衣液的商品回购状态均为处于失效状态,用户可能已经在别处购买了此类商品,因而也不会再在此购物平台重复购买。

情况2:30 d≤Tnow-TIid,buy<80 d

情况3:90 d≤Tnow-TIid,buy≤140 d

情况4:80≤Tnow-TIid,buy<90

2.3 商品推荐准确性的评价指标

本文对算法的改进主要是为了提高推荐命中率,因此采用精确率Pre、召回率Rec和综合评价指标F-measure[13]来度量商品推荐准确性:

(10)

(11)

(12)

式中:TP为推荐并已购买的商品数;FP为推荐但未购买的商品数;FN为未推荐却购买了的商品数。

2.4 实验方法

正常情况下,消费者对处于消费周期和失效状态的商品以及未购买过商品的购买概率是不相同的。为了保证实验的有效性,实验前需根据历史交易记录计算出处于消费周期和失效状态的商品的被购买概率,并依此模拟用户购买商品的情况。

在协同过滤推荐中通常采用用户-项目评分矩阵作为推荐计算的原始数据,本文采取离线实验进行验证。首先,获取购买记录中用户对前述10个产品的评分(1~5分);然后,在用户-项目评分矩阵中随机选取80%的用户为训练集,20%的用户作为测试集,在训练集上训练用户兴趣模型,在测试集上进行模型测试;最后,隐藏一部分测试集商品评分数据,协同过滤推荐后再将推荐商品集与隐藏的商品集进行对比。

2.5 实验结果分析

在本算例中,最近邻居K值的选取和模拟的用户商品购买情况对协同过滤算法的推荐精确率有一定的影响,因此以随机生成指定数量的用户作为测试集进行100次重复实验,计算结果取平均值。K值分别设为5、10、15、20、25,在洗衣液和沐浴露回购状态的4种组合情况下采用本文提出的改进协同过滤算法进行商品推荐,并和传统基于用户的协同过滤算法进行比较,两种方法的推荐准确度评价指标值见图3。

(a)精确率

(b)召回率

(c) 综合评价值

Fig.3 Evaluation index values of commodity recommendation accuracy

从图3中可见,采用本文提出的基于商品重复购买周期的改进协同过滤算法在已购商品回购状态的4种组合情况下的精确率、召回率和综合评价值均高于采用传统协同过滤算法时的对应指标值。这表明本文算法提高了商品推荐的命中率,保证了推荐结果的准确性。

由图3还可以看出,与传统算法相比,本文算法的商品推荐质量在情况1即两种商品都处于消费周期或失效状态时提高最多,在情况4即两种商品都处于回购状态时提高最少。这说明在改进的协同过滤商品推荐中,越是对于处于消费周期或失效状态的商品,改进后的推荐效果越好。另外,本文算法在K=15时的推荐质量最佳,此时在4种商品回购状态组合情况下的评价指标值均达到最大。

3 结语

商品推荐系统主要是为了向用户推荐其需要且喜爱的商品,不符合时机的商品推荐可能会造成消费者的困扰,影响消费者对推荐商品的信任度。本文提出了一种改进协同过滤算法,通过计算商品重复购买周期,在传统的协同过滤算法中引入商品回购状态对原始推荐商品集进行过滤,有效提高了商品推荐的准确性,减少了无效推荐,此过滤机制适用于所有的个性化商品推荐。

[1] 孙鲁平,张丽君,汪平.网上个性化推荐研究述评与展望[J].外国经济与管理,2016,38(6):82-99.

[2] 奉国和,梁晓婷.协同过滤推荐研究综述[J].图书情报工作,2011,55(16):126-130.

[3] 李大学,谢名亮,赵学斌.基于朴素贝叶斯方法的协同过滤推荐算法[J].计算机应用,2010,30(6): 1523-1526.

[4] Suryakant, Tripti Mahara. A new similarity measure based on mean measure of divergence for collaborative filtering in sparse environment[J]. Procedia Computer Science,2016,89: 450-456.

[5] Hernando A, Bobadilla J, Ortega F. A non negative matrix factorization for collaborative filtering recommender systems based on a Bayesian probabilistic model[J].Knowledge-based Systems,2016,97:188-202.

[6] Ar Y, Bostanci E. A genetic algorithm solution to the collaborative filtering problem[J]. Expert Systems with Applications,2016,61:122-128.

[7] Ahn H J. A new similarity measure for collaborative filtering to alleviate the new user cold-starting problem[J]. Information Sciences,2008,178(1):37-51.

[8] Bobadilla J, Ortega F, Hernando A, et al. A collaborative filtering approach to mitigate the new user cold start problem[J]. Knowledge-based Systems,2012,26:225-238.

[9] 傅鹤岗,李冉.基于用户实时反馈的协同过滤算法[J].计算机应用,2011,31(7):1744-1747.

[10]Wei J, He J H, Chen K, et al. Collaborative filtering and deep learning based recommendation system for cold start item[J]. Expert Systems with Applications,2017,69:29-39.

[11]郑洁,钱育蓉,杨兴耀,等.基于信任和项目偏好的协调过滤算法[J].计算机应用,2016,36(10):2784-2788,2798.

[12]刘进.重复购买周期和营销战略选择[J].企业管理,2010(2):81-83.

[13]朱郁筱,吕琳媛.推荐系统评价指标综述[J].电子科技大学学报,2012,41(2):163-175.

[责任编辑 尚 晶]

Improvement of collaborative filtering recommendation considering repeated purchase cycle of commodities

ZhangZhiqing1,2,LiMeng1,HuZhuqing1

(1. College of Management, Wuhan University of Science and Technology, Wuhan 430081, China;2. Institute of Service Science and Engineering, Wuhan University of Science and Technology,Wuhan 430081, China)

Traditional user-based collaborative filtering method for commodity recommendation doesn’t consider whether the target user has ever bought similar goods and their repeated purchase cycles. It may lead to the wrong time of commodity recommendation, which not only wastes the recommending resources but also causes the consumers a lot of trouble. So this paper proposes an improved collaborative filtering recommendation method based on commodity repeated purchase cycle. Firstly, a repurchase status variable for commodity is introduced into the traditional collaborative filtering algorithm. Then repurchase status of the purchased goods is determined according to the target user’s shopping record and repeated purchase cycle of goods. Finally, the purchased commodity set not in the repurchase cycle is obtained and applied to filter the recommendation results by the original collaborative filtering algorithm. The experimental results show that the improved collaborative filtering recommendation system can effectively predict the shopping behavior of customers and obviously improve the accuracy of commodity recommendation.

commodity recommendation; collaborative filtering; repeated purchase; consumer cycle; repurchase; online shopping

2017-03-08

教育部人文社会科学研究规划基金项目(15YJA630103);湖北省自然科学基金面上项目 (2015CFB564);湖北省教育厅人文社会科学研究重点项目(17D008).

张志清(1969-),男,武汉科技大学教授,博士. E-mail: zhiqing.zhang@qq.com

10.3969/j.issn.1674-3644.2017.04.013

F274

A

1674-3644(2017)04-0307-07

猜你喜欢

沐浴露协同状态
家校社协同育人 共赢美好未来
蜀道难:车与路的协同进化
要干净还要滋润哪款沐浴露能给你完美的洗澡体验?
妙招挑出优质沐浴露
哪款洗发沐浴露是孩子的“贴身护卫”?
状态联想
【甄家轶事】之沐浴露会引发乳腺癌吗?
“四化”协同才有出路
生命的另一种状态
三医联动 协同创新