APP下载

客户购买行为建模分析预测

2020-09-02朱珏樟

现代计算机 2020年21期
关键词:消费水平排序感兴趣

朱珏樟

(浙大城市学院计算机系,杭州310000)

0 引言

近年来,随着电商行业的不断发展,网上购物的用户不断增加,用户的行为数据相比以前网络不普及,电商平台不成熟的时候要多得多。

电商行业的蓬勃发展使各个商家希望运用计算机分析方法从大量的商品数据、客户数据、客户购买行为数据中找到某些规律并根据规律来进一步预测客户的购买行为,从而来减小营销成本并提升收益,更好的留住用户。虽然目前已经有了很多成熟的算法,例如协同过滤,可以利用兴趣相同或有相似行为的用户历史数据,来推荐或者预测未来用户可能会对哪些商品有行为。但是由于现实场景中的用户数据量、商品数据量、用户购买行为数据量巨大,直接使用算法会导致计算效率低而且无法运用于实际场景中。本文想要从大量的商品中,挑选出部分商品,再结合用户的历史购买行为从这部分商品中选出用户未来最有可能对其有购买行为的商品,这种方法可以更好地应用到实际中。

1 研究背景

通过查阅相关内容的文献和研究发现,国内外学者对用户的行为预测主要可以分为,通过电商平台所获得的真实用户行为数据记录,发现用户所感兴趣的商品,并根据推荐算法来为用户推荐可能感兴趣的商品的方法,还有一种是通过机器学习算法,分析用户行为记录来找到用户行为的某些规律来预测用户的行为,两种方式。

在基于推荐系统进行用户行为预测方面,韩民琦通过挖掘用户的隐式反馈数据来研究用户在决策过程中的行为,发现隐式反馈的数据更能反映消费者的购物倾向[1]。高茂庭提出了融合主题模型和协同过滤的弹幕视频推荐算法(DRCFT)来解决一些网站由于缺乏用户评分而无法推荐的问题[2]。

在基于机器学习进行用户行为预测方面,杨飒然在XGBoost 和LightBGM 算法上进行了客户购买行为的建模和预测[3]。陈军华利用客户购买行为数据构建了基于隐藏多维度的客户偏好推荐算法[4]。胡东波对电子商务消费者调查问卷使用了决策树来进行挖掘[5]。Silahtaroglu 等在顾客历史购物行为数据和人口统计数据基础上,用决策树和神经网络来预测顾客是否会购买自己购物车里的商品[6]。

本文希望借用先召回少量商品再用XGBoost、LightGBM、CatBoost 算法对召回的商品进行排序的方法,来实现对用户行为的准确预测。

2 数据分析

2.1 数据介绍

该竞赛提供的数据是一组1-16 天的用户行为日志和用户信息以及感兴趣商品信息。原本是要用1-16天的用户行为来预测未来17 天的用户行为,但是线上的测试集不可见。所以我改为用1-15 天的用户行为预测未来第16 天的用户行为。同时因为原数据集数据量过大,硬件条件的限制,所以从原数据中提取了100000 个用户的5537110 条行为记录作为训练集,第16 天5000 个用户的行为记录,作为测试集。在用户行为数据集中,分别包含了4 个字段,用户ID、商品ID、行为类型、时间戳。其中行为类型有‘pv’、‘buy’、‘cart’、‘fav’,分别对应浏览,购买,添加到购物车,收藏等用户行为,并视每一种行为均为用户对该商品感兴趣的表现。在用户信息数据集中也包含了4 个字段,用户ID,性别,年龄,购买力。其中性别由数字0 和1来表示,0 代表男性用户,1 代表女性用户。购买力由整数1-9 来表示不同用户的购买能力。

在商品信息数据集中同样包含了4 个字段,商品ID,类目ID,店铺ID,品牌ID。

2.2 数据预处理

通过查看用户信息、商品信息、用户行为数据集发现无缺失值。由于用户行为数据集中的时间戳不方便观察和统计,所以将其转化为天数,以便后续的统计分析。之后我们将用户行为按照兴趣程度分别把‘pv’设为1,‘fav’设为2,‘cart’设为3,‘buy’设为4。图1 统计了在未来用户感兴趣的商品类别在过去15 天的数量变化情况。

图1 未来用户感兴趣商品在过去15天的数量分布情况

从图1 中可以看出随着时间离第15 天越近,未来被用户感兴趣的商品被感兴趣的次数就越多,离第15天越远,未来被用户感兴趣的商品被感兴趣的次数就越少。所以我们根据时间对行为的重要程度,将时间转化为权重计算用户对商品的感兴趣程度。

2.3 用户信息分析

用户信息在本数据集中分别有性别、年龄、消费水平三个特征。数据集包含了100000 个用户。我们首先根据性别进行统计,其中男性用户有40822 位,女性用户有59178 位,以女性用户居多。统计各个年龄的用户数量发现用户主要集中在20-40 岁左右,这也和实际情况相符合,这个年龄段的人相比20 岁以下的还未有经济能力的少年来说,更有能力和时间进行网上购物,相比40 岁以后的人来说,更有购物的欲望和对更好品质生活的追求。这个年龄段的用户有69067位,差不多占了所有用户的2/3。最后统计不同消费能力的用户数量。经过统计发现消费水平为‘6’的用户占绝大多数。根据编号的顺序可以知道,这一消费水平的用户属于中产阶级或略微好于中产阶级的这一类人群,有27742 位用户差不多占了总用户的1/3 左右。图2 展示了男性用户在不同年龄所拥有的不同消费能力的数量情况。图3 展示了女性用户在不同年龄所拥有的不同消费能力的数量情况。

从图中可以明显的发现,小于20 岁的人群以低消费水平为主,20 岁之后,随着年龄的增长低消费人群快速变少,高消费人群快速增加。在30 岁左右低消费和高消费人群都到达顶峰,之后随着年龄的增长缓慢下降。图中各个消费水平人数随年龄的变化曲线都比较类似,侧面反映出了年龄对消费水平和消费欲望的影响。

图2 男性用户年龄-消费能力数量分布图

图3 女性用户年龄-消费水平数量分布图

2.4 用户行为数据中用户信息分析

数据集中所记录的是0-14 天的用户行为(假定最早的行为发生在第0 天)。对这15 天用户所进行的操作类型进行统计,发现‘pv’操作,即浏览的次数最多,有4896977 次,占据了所有记录的88.4%,‘cart’操作,即添加购物车的次数有318981 次,占了所有记录的6%左右,‘buy’操作,即购买的次数有186855 次,占所有记录的3.3%,‘fav’操作,即收藏的次数仅有134297次,占所有记录的2.3%。这说明,在网购期间,绝大多数用户以浏览为主,即绝大多数人都喜欢在电商平台‘闲逛’,虽然该行为只是浏览,但是也反映了该商品吸引了用户点击浏览。添加购物车的行为比浏览更代表用户对商品感兴趣。值得注意的是,经比赛解释,并不是所有购买的行为都有添加购物车的记录,有可能添加购物车是在第0 天之前,所以购买行为和添加购物车行为没有必然的联系,经统计在15 天内先发生‘cart’再发生‘buy’的记录只有仅仅数百条。为了更加明显直观的看出不同用户群体的用户行为特征,我们将用户信息数据集和用户行为数据集连接在一起,根据上述对用户信息的分析,将用户分为低消费水平男性/女性少年/壮年/中年/老年用户,中等消费水平男性/女性少年/壮年/中年/老年用户,高消费水平男性/女性少年/壮年/中年/老年用户,这24 类用户。为了发现同年龄段,同性别的用户之间的行为共同点,我们挑选了20-40 岁之间的男性用户,并对这些用户所操作过的共同商品数量进行统计计算,同时考虑到不同消费水平的用户所喜爱的商品也会有所不同,所以将20-40 岁之间的男性用户分为20-40 岁消费水平1-5/6/7-9 的男性用户。图4 为20-40 岁消费水平1-5 即低消费的男性用户,图5 为20-40 岁消费水平为6 即中等消费的男性用户,图6 为20-40 岁消费水平7-9 即高等消费的男性用户。

图4 20-40岁低消费男性用户操作的商品和商品数量分布

图5 20-40岁中等消费男性用户操作的商品和商品数量分布

图6 20-40岁低消费女性用户操作的商品和商品数量分布

从上述图表中可以很明显的发现,相似的用户群体对相同商品有着相似的兴趣,而且都在第200 个商品左右用户关注的商品开始分散,并且每种商品被用户操作的次数都差不多,所以呈现出了长尾分布。这种长尾分布的尾部占了很大一部分,而且这一部分的商品种类很多,但是数量又很少。所以我们把每个用户群体最感兴趣的前k 个商品当做是能够代表这个用户群体兴趣的商品,这为之后从商品库中挑选商品候选集提供了思路。

2.5 用户行为数据中商品信息分析

在商品信息数据集中,有商品ID,商品类别,店铺ID,品牌ID,4 个字段的信息。一共有1306170 件商品。其中商品类别有7824 个,店铺有423589 个,品牌有177464 个。为了发现用户行为和商品信息之间的关系,我们将用户行为数据集和商品信息数据集进行连接。对于历史上用户曾经感兴趣过的商品类型是否会在未来仍会被用户所感兴趣的问题,我们没有区分用户行为一同分析了用户在15 天内的行为记录。如图7 所示,大半用户在未来仍会对之前感兴趣的商品类型有操作,这些被重复操作的商品类型更能表现用户的喜好,而这些商品类型随着用户的数量增多重复次数也会增多。

图7 用户对历史感兴趣商品类别重复操作数量情况

同样对于历史上用户曾经感兴趣过的店铺是否在未来仍会被用户所感兴趣的问题,同样进行了上述统计计算。如图8 所示,用户对之前感兴趣的店铺在未来仍有较大可能访问。

图8 用户对历史感兴趣店铺重复操作数量情况

这些信息都表明,用户对同样的商品类型和店铺有一定的依赖性,用户更喜欢去访问以前有访问或接触过的东西。这对之后构造特征有所帮助。

3 商品召回

由于商品数量非常庞大,评估用户对每个商品的兴趣度不现实,所以要从大量的商品信息中尽可能的挑选出用户可能会感兴趣,可能会对其有所行为的商品。这不仅减少了之后对商品排序的工作量,又剔除了一些长尾分布中处于尾部,可能会影响排序的样本。本文通过商品类别和用户类别进行召回,并结合两种召回所得到的商品,作为商品候选集,同时构造测试集。

3.1 考虑时间序列的商品类别召回

根据对数据的分析,发现用户行为离未来越近,用户感兴趣的商品类别和未来用户感兴趣的商品类别越相似。而传统的根据商品类别召回的方法是根据用户所有的感兴趣的商品类别不加区分的进行推荐,但是用户很可能对很久之前买过的那种类别的商品已经失去了兴趣,例如用户在过去对鼠标很感兴趣,但某一段时间之后对鼠标没有任何操作,近期对自行车类的商品经常有行为,那么可以认为这个用户的兴趣已经发生了改变,对鼠标类的商品已经失去了兴趣而对自行车类的商品有着浓厚的兴趣。所以在进行商品类别召回的时候,可以多召回一些自行车类的商品,少召回一些鼠标类的商品,这样的方法相比传统的方法更加符合实际情况,召回的效果更好。

同时根据传统的商品类别进行召回,以便在最后进行结果对比。

3.2 根据用户所在的类别召回

针对在15 天内没有过行为的新客户进行召回,以解决冷启动问题。因为在过去没有任何关于新用户的行为记录,所以无法利用之前的得出的结论进行预测。所以我们根据之前通过分析用户信息得到的结果,将不同性别、年龄、消费水平的用户分为20 岁以下/20-40 岁/40-60 岁/60 岁以上的男/女性低消费/中等消费/高消费用户24 类。因为同类用户所感兴趣的商品数量呈现长尾分布,所以我们选择前k 件商品作为能代表该类用户兴趣的商品,并将这些商品推荐给同类的新用户。

4 建模和排序

4.1 实验过程

根据历史用户行为数据分别构造了用户特征,用户-商品行为特征,商品特征中提取相关特征,并根据是否加入时间因素分为静态特征和动态特征两种特征,一共69 种特征。通过对之前召回的商品进行排序就可以获得最终的推荐列表,也就是用户在未来可能会对其有所行为的商品列表。我们将对商品排序的问题转化为二分类问题,即判断该商品是否会被用户有所行为,并根据可能为1 的概率对商品进行排序。根据15 天内的用户行为记录和商品候选集构造训练集。将用户曾经感兴趣的商品同该类商品类别中热门的商品做并集,并把曾经感兴趣的商品的标签置为1,其余商品的标签置为0,即从商品候选集中选取正样本和负样本,并不是将所有用户所感兴趣的商品都作为正样本,因为有些商品被感兴趣的次数太少,如果将其作为正样本可能会影响结果。用同样方法对不同类别的用户构造训练集。

由于正样本和负样本的比例过于不均衡,所以我们对负样本采取随机抽样的方法最终将正、负样本数的比例定为1:10,正样本数量232329,负样本数量2323290。最终的训练集大小为2555619 条数据。之后使用XGBoost、LGBM、CatBoost 进行建模预测,根据预测的每个商品为1 的可能性进行排序,选出前k 个商品作为推荐商品,使用竞赛给出的公式(1)计算结果。其中u 表示用户,Pu(∣Pu∣≤50)为最后选出的用户u的未来感兴趣商品合集。Gu 为用户u 的真实兴趣商品合集,Hu 为用户u 的历史感兴趣商品集合。即要从预测的商品合集中删除用户以往感兴趣的商品。

本文采取交叉验证的方式来对模型的训练效果进行验证,从训练集中按照4:1 的比例划分训练集和验证集,同时生成混淆矩阵来计算相应的预测结果,如召回率、AUC、F1-score,最后用全部训练集数据建模预测测试集样本。

4.2 实验结果及分析

在召回阶段,本文采取的召回方式相较于传统的根据商品类别召回方式不同,传统的根据商品类别进行召回是将所有用户所产生的用户行为当做是同一时间发生的行为,并没有对用户行为的时间顺序加以区别。实际情况中,用户对商品的兴趣会随着时间的增加而不断减弱,所以本文将用户最后一次对某商品类别感兴趣的时间转化为相对应的权重,时间离未来近的商品类别所占的比重就越大,该商品类别召回的商品就越多。同时尽可能保持和传统方式所召回的商品数量一致,方便结果对比。最后通过对两组不同的5000 个用户进行预测推荐,结果取平均值。

实验结果如表1 所示,根据实验结果显示,XGBoost 要优于CatBoost 要优于LightGBM。

表1 实验结果

最后将本文采用的方法与传统的方法预测的结果相比较,如图9 所示。

图9 本文方法与传统方法结果比较

从结果对比图中发现,使用XGBoost 模型进行排序,本文的方法要比传统方法提升了30%,使用LGBM模型进行排序结果提升了5.3%,使用CatBoost 模型进行排序结果提升了10.6%。根据以上结论,可以得出本文使用的方法要比传统根据商品类别召回的方法更加符合实际情况,能更好地预测未来用户的行为和适应用户兴趣的变化,在实际场景中有一定的应用价值。

5 结语

本文通过对阿里巴巴天池大数据比赛提供的用户行为数据进行研究,发现了用户历史行为对未来用户行为的影响,并尝试从大量的商品中召回少量商品再通过模型进行排序的方法,来提高预测用户行为、推荐用户商品的效率和准确率。对于将推荐算法更好地应用于实际场景有着一定的借鉴意义。

猜你喜欢

消费水平排序感兴趣
预计到2050年中国城乡消费水平将无明显差距
对自己感兴趣
作者简介
恐怖排序
节日排序
我国31省城镇居民消费水平(2007)
我国经济增长与国民消费的演进
编读往来
现在是几点