一种社交电商平台的用户行为分析方法
2021-07-30牛少彰
高 昀,牛少彰
(北京邮电大学计算机学院,北京 100876)
0 引言
近几年来,随着我国互联网行业的快速发展和消费者网购习惯的形成,网上购物越来越普遍流行于大众生活的方方面面。互联网的高速发展为我国社会经济的发展和创新提供了基础,尤其是微信、微博等社交化平台的兴起,为生产商、销售商带来了新的发展机遇,为消费者提供了新的选择,社交电商应运而生[1]。社交电商是一种全新的前所未有的电商模式,在这种新颖的模式下,生产商和销售商可以利用社交媒体技术和社交网站、社交媒介、网络媒介等传播途径来进行人际关系、商业信息流的互动,通过买家和卖家之间的交流互动、用户自生内容等方式来帮助商品的营销和销售行为[2]。它以十分方便快捷的销售方式和较低的商品定价,很快地在众多销售方式中脱颖而出,在人们的日常生活中得到了普遍的应用,满足了人们对网上购物快捷、方便的要求。经过这几年互联网经济的推动,社交电商的规模日渐壮大,对社会的贡献程度逐步加深,社交电商逐渐在中国的经济社会中占有越来越重要的位置。而与社交电商日常推广和销售相适应的各种工具平台也如雨后春笋般相继出现。社交电商在使用这些工具平台的过程中也产生了大量的功能访问数据。通过对社交电商的行为数据进行分析和研究,能够较为全面地了解社交电商的行为特征,针对不同种类的社交电商定制不同的服务。
1 相关工作
随着信息技术的不断发展,人们对各种网站、各种APP的使用越来越频繁,在浏览网站和使用APP的过程中会生成许多的访问痕迹,这些访问痕迹的数据也被称为网络日志。生成的网络日志能够间接反映用户的行为信息,蕴含大量的有价值的信息,需要通过数据挖掘进行用户行为分析才能提取出有价值的信息。前人对用户行为分析方面做了细致的工作。
Chen等人[3]针对电子商务网站中用户浏览和购买商品的行为数据,将其进行分布式表示,通过利用不同上下文中项目行为的分布式表示之间的余弦距离,借此来预测用户什么时候会产生下一次点击商品或者购买商品的行为。
Devineni等人[4]主要是从用户的社交数据中提取出不同的时间间隔里用户的社交行为特征,从而分析用户的社交行为,基于此实现了一个可视化框架用来展现用户的个性化行为。
Guimaraes等人[5]采用社交中产生的网络数据,从网络数据中提取用户特征,通过深度学习算法对用户的年龄组进行分类分析。
袁兴福等人[6]构建了电商用户访问会话模型,并且基于此模型中的行为序列进行聚类分析,可以为营销方案的制定提供理论依据。
徐赟等人[7]基于实际的淘宝数据集做行为分析,分析了只逛不买的电子商务用户行为,利用聚类分析的方法总结出四种只逛不买的用户类型。
毛佳昕等人[8]主要是针对新浪微博中的用户数据,考虑了社会影响力在微博网络环境中的传播情况,探究出用户行为之间深层次的关系,提出了一种度量社会影响力的方法,该方法主要是根据预测用户传播信息能力大小来判定社会影响力的。
李磊等人[9]研究了微博的热点话题,对微博用户的行为进行聚类分析,从而将微博用户大致分为三类:(1)一般关注类,该类用户是三类中最多的一类,所承担的角色一般而言是信息的接收者;(2)主动参与类,该类用户的表现是主动发布舆论信息,该类用户的人数处于中等;(3)信息传播类,该类人数最少,主要是作为舆情领袖的角色,传播重要的信息,拥有很大的话语权。
从相关文献可以得到结论,用户行为分析离不开数据挖掘以及聚类分析。数据挖掘是通过采用一定的方法来挖掘出深藏在海量数据表面下的有价值的信息。数据挖掘经常使用的方式多种多样,包括分类、聚类、机器学习、统计学方法和神经网络方法等。而从上述的相关文献也可以看出,分析用户行为最常用的数据挖掘方法就是聚类分析了。不少用户行为的研究中会采用K-means这个聚类算法,因为其原理简单而且比较容易实现,但是它也有自己的弊端,那就是必须提前指定初始参数,比如聚类数k值,这就会导致聚类的结果随机性比较大,容易出现局部最优解以及聚类结果不稳定的情况。所以在本文中,采用了改进后的K-means聚类算法来对社交电商在工具 APP上产生的日志信息进行用户行为分析,划分用户群体性质。
2 背景知识
2.1 大数据分析技术
大数据分析的整个流程包含三部分,分别是数据预处理、数据挖掘分析和模型效果评估。
第一步要进行的过程是数据预处理,我们能够获取到的数据一般来讲与所需的数据是不一致的,并没有我们想象中的完美。我们需要的数据往往来说是标准的,是一个二维表格,表格纵向代表的是每一条数据,表格横向代表的是每条数据的属性。然而我们能够获取到的数据却很少情况是标准的,会出现各种各样的情况,比如异常值和缺失值等情况,不但如此数据格式也是多种多样的。所以在数据分析之前必须进行数据预处理,以便将杂乱的数据格式转换成为二维表格的标准数据格式,才能够更深层次的挖掘数据潜在的价值和规律。数据预处理过程有很多步骤,最关键的几个步骤有:数据清洗、数据集成、数据规约以及数据变换。
处理完数据预处理的工作,紧接着要做的步骤是数据挖掘。数据挖掘指的是对数据进行深层次的挖掘,总结出数据深层次的价值和规律。通常会使用各种机器学习的方法来进行数据挖掘过程,以解决实际问题。机器学习的方法可以根据数据是否有标签来分为两种:有监督的机器学习和无监督的机器学习。有监督的机器学习就是在数据标签的“监督”下,训练过程中根据标签内容不断纠正模型。而无监督的机器学习就是没有数据标签,因为在现实中很多情况下是不能预先知道数据的标签的,所以此时就要通过计算数据集样本之间的相似性来揭示数据内部规律。而聚类算法是最经典的无监督学习的机器学习算法之一,有着十分广泛的应用。
在大数据分析过程中得到机器学习模型后,要用一定的指标来衡量机器学习模型的性能优劣。只有在衡量指标上表现良好的模型才具有一定实际应用意义,才可以用来解决生活中的实际问题。
2.2 聚类算法介绍
聚类分析是一种在数据挖掘领域中比较基础的数据处理手段,通过聚类算法对数据分类能够将一个数据集划分为若干个类内对象相似而类间对象相异的类簇[10],因此就可以在数据集中发掘出潜在的数据模式和深层次的内在联系[11]。聚类的过程就是根据一组定义将一组对象划分为多个集群的过程,其目的就是将具有相同特征的数据归于用一个簇中。聚类算法通常属于无监督学习算法,不仅可以挖掘数据之间的潜在联系,揭示数据的分布特征,还可以作为一种预处理方式,处理结果用于后续的数据分析。聚类算法已经广泛应用在很多方面,比如电子商务、市场营销、信息检索和模式识别等。
目前,随着机器学习的发展,已经有很多成熟的聚类算法。比如,基于划分的聚类算法、基于密度的聚类算法、基于层次的聚类算法,基于网格的聚类算法基于模型的聚类方法等等,但是无论哪种方法都是比较数据集中每个对象之间的性质,将性质相似的对象归为一簇中,将不相似的对象归为不同的簇中[12]。
2.3 K-means和Canopy算法概述
K-means是机器学习研究中最经常使用的聚类算法,也是十大经典的数据挖掘算法之一。它是一种基于划分的聚类算法,同时也是一种无监督学习。相对于其他的聚类算法,K-means以算法原理比较简单,收敛速度快而著称。K-means算法必须先提前指定聚类数和初始聚类中心,然后不停更新聚类中心,一步步减少目标函数的误差值,当目标函数值呈现收敛的状态时,整个过程终止,获取到最终的聚类结果。
从算法原理上看,K-means也有自己的局限性。K-means这种聚类算法需要提前设置好参数,也就是需要提前设置好聚类的个数,同时会随机初始化k个聚类中心。这种实现指定的k值和随机初始化的聚类中心不仅会降低聚类算法的效率,而且得到的结果也可能是局部最优的。
为了解决上述描述的K-means算法出现的问题,通常能够采用Canopy算法来辅助K-means算法来做聚类分析。Canopy算法的聚类粒度比较粗略,它采用一种简单方便的距离计算方法将数据集划分为多个可重叠的子集 Canopy[13]。这种算法不需要指定k值、但精度较低,可以结合K-means算法一起使用:先由 Canopy算法进行粗聚类得到k个聚类中心,再将这k个聚类中心作为 K-means算法的初始聚类中心,再进行聚类。
从Canopy算法实现的步骤来看,Canopy算法的优点明显,同时也存在一定的缺点,就是要事先指定合适的 T1和 T2,阈值 T1,T2的选取和确定都比较困难,阈值的大小对聚类结果有很大的影响。根据Zhang等人[14]提出的的基于密度的Canopy算法,提出最大权重乘积法来确定聚类中心,减少随机性带来的不稳定性。
3 基于社交电商的工具平台行为的大数据分析
3.1 数据预处理
对于大数据分析,现实中的日志信息和我们所需要的数据差别很大,为了得到实验可以使用的标准数据,首先要进行的过程就是数据的预处理工作。
从社交电商使用的某工具 APP中获取 2020年1月的社交电商的日志数据。通过分析原日志的数据格式和字段含义,进行元数据分割和提取得到格式化数据。考虑进行用户行为分析所需字段,保留必要字段部分,并且对日志数据进行一定统计计算,功能名称映射为功能编号,得到用户id,功能编号,功能图标点击次数和功能图标点击总次数。该工具 APP为社交电商提供了 18个功能的使用,因此功能编号范围为1-18。数据的格式示例如表1所示。
表1 APP 功能按钮点击信息示例表Tab.1 The sample table of click information on App function buttons
获取到数据后,要进行一定的数据过滤,过滤掉功能图标点击总次数在10以内的用户,该类用户一个月内的点击图标次数过少,不具有代表性;然后进行数据转换,引入偏好指数的概念,以“功能图标点击次数/功能图标点击总次数”表示偏好指数,代表用户对该功能的偏好,建立用户偏好模型,构造用户的特征向量。用户偏好模型为:
ti表示第i个功能的编号,wi就表示社交电商对第i个功能的“偏好指数”,即社交电商对某个功能的访问次数和该位社交电商对所有功能的总访问次数的比值,ni表示社交电商访问第 i个功能的次数。比如社交电商在某个时间周期内一共访问了100次功能,其中访问功能1按钮20次,访问功能2按钮40次,访问功能3按钮40次访问其他功能的次数均为0次,这样就可以计算出每个功能的“偏好指数”,那么社交电商的访问特征就可以被表示为:{(1,0.2,20),(2, 0. 4, 40 ),(3, 0. 4, 40 ),(4, 0, 0), … ,(1 8, 0, 0) }。用户的 i的特征向量可以表示为:
其中:Tin表示用户i对第n个功能的“偏好指数”。
3.2 数据挖掘分析
由于社交电商数量较多,特征向量的维度比较多,表示结构比较复杂,所以数据内部规律仅仅靠观察是无法总结出来的,因此就需要针对社交电商的一些特征行为来使用聚类算法对其进行聚类分析。本文就是针对社交电商的功能访问行为数据来对社交电商种类进行划分。本文采用的聚类算法是基于密度 Canopy的改进 K-means算法。
Canopy是一种划分粒度比较粗略的聚类算法,它采用一种简单、快捷的距离计算方法通过计算数据之间的距离来将数据集划分为多个可以重叠的子集,这种算法不需要指定k值、但精度较低,可以结合 K-means算法一起使用:先由Canopy算法进行粗聚类得到 k个质心。然后K-means的聚类中心可以直接指定为Canopy算法得到的 k个聚类中心,而不是随机指定。标准Canopy算法需要指定两个阈值T1,T2且T1> T2;随机选择数据集中的一个数据作为中心。阈值T1,T2的选取和确定都比较困难,阈值的大小对聚类结果有很大的影响。可以对此进行改进,采用基于密度的Canopy算法,采用最大权重乘积法来确定聚类中心,减少随机性带来的不稳定性。算法流程如图1所示。
图1 基于密度Canopy改进的K-means算法流程Fig.1 Improved k-means algorithm flow based on density canopy
3.3 模型效果评估
为了衡量聚类结果的优劣,可以考虑用轮廓系数来评估聚类模型的效果。轮廓系数是用来评价聚类效果好坏的一个指标。Pete在1986年首次提出这个指标。轮廓系数考虑了内聚度和分离度这两个指标。它可以被用来在相同原始数据集的基础上评价不同算法、或者算法不同运行方式对聚类结果所造成的影响。轮廓系数的值是处于[–1,1]之间的,它的值越大就代表内聚度和分离度都越好,分类的结果越好。
针对簇中的每个向量,各自计算各个向量的轮廓系数。然后将所有点的轮廓系数求平均,就是该聚类结果的轮廓系数。第 i个样本的轮廓系数计算公式为:
其中,a(i)代表向量与同一簇中其他向量的差异程度的平均值,被称为簇内不相似度;a(i)为向量i到其他簇中的向量的平均差异程度的最小值,被称为簇间不相似度。
4 实验及结果分析
4.1 算法改进前后性能对比
本次实验实现了原始的K-means算法和基于密度 Canopy改进的 K-means算法,并首先对经典数据集 wine进行迭代计算,对比了改进前后K-means算法的迭代次数,运行时间和轮廓系数,实验结果如表2所示。
表2 改进前后算法聚类效果对比Tab.2 Comparison of clustering algorithms before and after improvement
从实验结果中可以看出来,基于密度Canopy改进的K-means算法消耗了更短的运行时间并且在较少的迭代次数下就达到收敛,由此可以说明改进后的K-means算法性能优于原始的K-means算法性能。不仅如此,改进后的K-means算法的轮廓系数大于原始的K-means算法,也就是说改进后的算法的聚类效果更好。总而言之,改进后的算法能在更少的时间内达到更优的聚类结果。
4.2 社交电商聚类结果分析
在本次实验中,将基于密度的Canopy算法和K-means算法结合起来来改进K-means算法,对本文社交电商数据集进行迭代计算。数据集中共有2708个社交电商的数据,聚类算法的分类情况如表3。
表3 社交电商数据聚类算法的分类结果Tab.3 Classification results of the clustering algorithm based on social e-commerce data
将每一类的访问偏好向量取平均值,求得每类的平均访问特征向量,为了直观观察,将每类的平均访问特征绘图如图2所示。
图2 三类社交电商的功能访问特征Fig.2 Functional access characteristics of three types of social E-commerce
从聚类结果可以看出,可以将社交电商分为三个大类,分别为“单一功能偏好者”、“功能使用均衡者”和“部分功能爱好者”。
社交电商群体1:“部分功能爱好者”。该群体总共有1 959人,占总人数比例为72.23%,人数占比最大,在功能1,功能6和功能10上访问较多,均在10%以上,尤其是功能6可以达到30%,对其他功能的访问比较少,在10%以下。可以推测,大部分社交电商日常工作中使用最多的也就是某几个功能。该类APP开发者需要对社交电商使用频率多的功能进行重点研究,不断改进这些功能使用的体验感,提供稳定的技术支撑,才能留住大部分社交电商。
社交电商群体2:“功能使用均衡者”。该群体总共有724人,占总人数比例为26.74%。该类社交电商对所有功能的访问都比较平均,偏好程度均不超过10%,没有特别明显的功能访问偏好,但是每一功能都有一定的使用。推测该类社交电商所需功能种类比较多,日常工作中涉及到的需求比较多,APP的功能种类丰富与否会影响该类社交电商对该类APP的选择。
社交电商群体3:“单一功能偏好者”。该群体总共有25人,占总人数比例为0.92%,该类社交电商群体人数占比最少,该类显著特征是80%以上的功能访问都集中于功能12上,对其他功能的访问少之又少。也就是说该群体偏向使用某一特定功能。推测该类社交电商是为了功能12这一特定功能来特地使用该工具APP的。
5 结论
本文以社交电商在工具APP上产生的日志数据为数据集,然后利用机器学习中的聚类算法对社交电商的行为特征进行大数据分析,通过改进后的K-means聚类算法预测社交电商的分类,从功能访问的角度对社交电商的行为展开分析。利用这一课题的研究为对社交电商群体进行用户行为分析提供新思路。