在“互联网+”概念的带动下,基于网络的销售服务已经开始大量地走进人们的生活. 以往商家为扩大商品销售额,需要投入巨资开设连锁品牌专柜、专卖店和进行市场营销,而现在电子商务模式成为了商家销售和客户购物的首选模式.在传统的电子商务中,客户进行商品的浏览与购买,商家销售商品,在这一过程中,客户往往难以从千万种商品中找到自己感兴趣的商品,或在浏览商品时并不明确个人兴趣点,而传统的电子商务运营模式无法识别客户的兴趣商品,无法为客人推荐商品,因此,如何为客户推荐其感兴趣的商品是需要解决的问题. 用户行为指的是用户在浏览与购买商品过程中的行为,通过对用户行为进行建模,依据用户的历史行为来识别用户可能感兴趣的商品类型,进而为用户推荐商品,达到提升商品销量的目的[1].
1 主要推荐算法 1.1 用户兴趣挖掘技术用户兴趣挖据技术较多,本文将使用关联规则的Apriori算法进行了用户浏览与购买的兴趣模式进行分析,并建立用户行为模型[2].
通常情况下,聚类针对不同的大类以某种标准分成若干个小同类,使得类内相似大,类间区别大,且每个小类都是一个稠密的区域,是一种典型的无监督学习算法[3].
层次聚类与平面聚类是经常使用的2种聚类方法[4]. 平面聚类方法就是使用评估函数将数据集分割成若干个子集,距离的远近代表着对象的相似性,一般情况下,距离的大小与相似性成反比,例如典型的欧氏距离[5]. 若聚类的中点用对象的均值来计算,则对象与中点的距离就可以作为分类的判别函数,反复调整中点,将所有对象归类到最近的一个聚类中,直到所有对象被归类完毕且满足分类标准. 如K-Means算法就是通过K个中点进行反复调整,直到满足判别函数[6].
层次聚类方法就是分割不同层次上的数据,具体包括聚合法与分治法,具体的算法可通过层次树进行描述. 前者通过自下而上把实例集合合并,后者通过逐渐分裂划分实例集作[7].
数据库中的数据可以被划分为各个子集,将相似性较高的数据聚集在一类中的过程就是聚类. 聚类能够提升人们对于实现世界的认识,常见的聚类有:分层聚类、密度聚类、网格聚类等. 聚类是将事务划分为较小的具有相似特性的簇,因此聚类最关键的就是特征的组合[8-9].
1.2 个性化推荐技术1) 基于协同过滤的推荐.
基于协同过滤的推荐是较为流行的方式[12],在电子商务中运用较多,利用用户的购买行为,为用户推荐商品. 基于协同过滤的推荐的思想是:两个相似的用户在购买一种商品时,则向另一个用户也推荐该类商品. 该方法的本质是计算用户之间的相似度. 最近提出了余弦相似度的计算方法[13].
2) 基于内容的推荐.
在协同推荐技术中,不需要关注商品的内容,只需要依据用户的购买行为来进行推荐,当需要依据商品的信息来推荐给用户时,就需要基于内容的推荐方法[14]. 其基本的思想是为用户与商品建立配置文件,依据用户的购买行为以及商品的内容,更新用户的配置文件,依据用户的历史信息构造兴趣文档,计算文档与商品的相似度,来为用户进行推荐.
3) 基于人口统计的推荐.
该方法是利用人口统计方法,结合相似度计算予以推荐[15].
4) 混合推荐.
在多种方法都不能很好地满足用户的推荐时,结合实际的情况,将多种推荐方法结合在一起是较为理想的策略. 依据混合策略将多种推荐方法进行组合,构建混合推荐系统,结合各个算法之间的优势来为用户推荐感兴趣的内容.
2 Apriori算法由于传统Apriori算法的不足,本节将对传统算法进行改进,并采用改进的算法进行商品的推荐.
2.1 经典Apriori算法
1) 算法的思想.
首先获得所有的候选1-项集
2) 算法描述.
计算1-项集的支持度,获得最小支持度的1-项集,形成
3) 相关定义.
支持度即一个项集X的支持度,记为supp(X),是D中包含X的事务所占的百分比. 项集支持度的数学定义如式(1)所示:
${\rm{supp}}(X) = \frac{{\left| {{\rm{\tau (}}X{\rm{)}}} \right|}}{{\left| D \right|}},$ | (1) |
其中,τ(X)称为X的事务映射,为伽罗瓦连接的一种集合之间的运算,通过式(2)定义,其中
$\begin{array}{l}\tau :{{\rm{2}}^I} \to {{\rm{2}}^D}{\rm{,}}\tau {\rm{(}}X{\rm{) }} = \{ t \in D\left| {\forall i \in X{\rm{,}}i\delta } \right.t\}, \\[3pt]\gamma :{{\rm{2}}^D} \to {{\rm{2}}^I}{\rm{,}}\gamma {\rm{(}}Y{\rm{) }} = \{ i \in I\left| {\forall t \in Y{\rm{,}}i\delta } \right.t\}. \end{array}$ | (2) |
Apriori算法产生候选集的算法是Apriori-gen算法[16],包括了2个步骤.
第一步连接:
Apriori-gen(
(1) for each 项集
(2) for each项集
(3)
(4) c=
(5) if has_infrequent_subset(c,
(6) delete c//修剪,去掉无用候选项;
(7) else add c to
Return
第二步剪枝:
(1) for each c的k–1子集s;
(2) if s
(3) return true;
(4) else return false.
Apriori算法伪代码如下:
输入:事务数据库D,最小支持度;
输出:L、D中频繁项集;
(1)
(2) for(k=2;
(3)
(4) for 所有事物
(5)
(6) for 所有候选
(7) c.count++};
(8)
(9) 结果得出
从上述的步骤可知,Apriori算法在连接时,可能产生候选集,剪枝时,删除非频繁子集的候选集. 虽然Apriori算法压缩了候选集的大小,能够挖据出关联规则,但是扫描数据库的次数太多,增加了算法的复杂度[17].
在客户购买数据的挖据中,需要重点关注以下几个问题:
(1) 事务数量大,客户购买数据量较大,且仍在不断的增长之中,客户购买的预处理是难点工作.
(2) 客户类型较多,从事不同职业的客户,其类型也不同.
(3) 客户浏览商品与购买日期很难进行关联分析.
(4) 不同的属性值意义不同.
关于上述问题,本文提出了相应的措施:
(1) 针对客户购买量较大的问题,可以划分时间段来进行,依据时间段来进行分析.
(2) 针对客户购买时间,在数据预处理时进行离散化,将春、夏、秋、冬离散化为4个值T1、T2、T3、T4.
(3) 用A1、A2、A3、A4来表示客户消费用为0、小额、中额、大额;I1、I2、I3、I4、I5表示个体小客户、个体大客户、集体大客户、个体中客户、集体中客户.
(4) 引入权值. 利用权值来区分客户类型的重要性,进而挖据出客户类型与客户消费金额的大小关联规则.
具体做法为:设计支持度函数F(X). 经典的Apriori算法中,F(X)=support(X)|D|,其中,support(X) 是X的支持度,现将权值引入公式中. 对任意X=
${\lambda _x} = F({\lambda _{x_1}},{\lambda _{x_2}} ,\cdot \cdot \cdot, {\lambda _{x_r}}).$ |
此时的支持度函数需要满足以下约定:
对于任意X是Y子集,则F(X)
现针对Apriori算法进行理论的实例说明,客户消费数据字段包括了客户ID、消费费用、证件类型、身份证号、性别、客户类型、消费日期等. 这些属性之间必然存在着关联. 本文数据来源于2016年淘宝商城某服装店铺的客户消费数据,该数据集共用30万条数据,无缺失值,总计大小20 M,,数据集包含大量的客户姓名、消费金额、消费时间等12个属性,为了更好地进行算法分析,我们先对数据进行预处理包括:(1) 数据集成,提取并去除噪音数据;(2) 数据选择和预分析,数据收集之后需要对数据的属性进行筛选分析,过滤后得出客户消费金额、消费时间和客户类型3大特征. 针对这些数据的分析,依据Apiori算法的改进,在频繁项集的产生过程中引入了权值参数,来获取较大客户类型出现的规律. 假定春季为T1,夏季为T2,秋季为T3,冬季为T4. A1表示消费为0,A2表示消费较少,A3表示消费中等,A4表示消费较大. I1表示客户类型为小户,I2表示客户类型为大户,I3表示客户类型为集体商户,I4表示客户类型为个体户,I5表示为中型集体商户.
针对客户消费数据的分析,依据Apiori算法的改进,在频繁项集的产生过程中引入了权值参数,来获取较大客户类型出现的规律,流程为:
首先引入权值得出表1.
![]() |
表 1 引入权值 Table 1 The introduction of weights |
通过剪枝之后,得出表2.
![]() |
表 2 剪枝结果 Table 2 The result of pruning |
再经过连接之后,得出表3.
![]() |
表 3 连接结果 Table 3 The result of the connection |
继续剪枝之后,得出表4.
![]() |
表 4 再次剪枝结果 Table 4 The result of pruning again |
继续连接,得出表5.
![]() |
表 5 最后连接结果 Table 5 The result of the last connection |
在客户消费数据的关联中,基于Apriori算法,针对数据的重要性进行算法的改进,在支持度计算时,引入了权值参数,发现重大客户类型的消费规律,流程如上所示. 从中可以发现关联规则:T1A1I1、T3A4I3,T1A1I1表示在春天主要的消费客户类型是小户,且消费金额较低;T3A4I3表示在秋天,消费客户类型为集体大户且消费金额较大. 上述信息的挖据,能够帮助交易网站管理人员在特定的时间开展不同的促销业务,针对不同时间段,合理调度人力,优化人员配置,提升工作效率.
4 改进算法效果分析利用K频繁项集连接产生K+1阶候选集时,对于长度为m,项目集个数为n的频繁项集
![]() |
图 1 各个算法在预测精度上的对比 Figure 1 Comparison of the accuracy of each algorithm in the prediction |
由表6可知,改进算法所需时间有所减少,时间效率有所提高. 由表7可知,改进的算法避免了经典Apriori算法可能挖据出无限的关联规则的弊端,减少冗余的关联规则,提高挖掘精度. 同时,为了确保挖掘的准确度,将不符合约束的可疑数据输出到一个表中,人工审查这些可疑数据,避免改进算法后关联规则的遗漏,将一些重要的业务规则加入到整个规则库中,从而提升准确率.
![]() |
表 6 时间对比 Table 6 time comparison |
![]() |
表 7 关联规则数目对比 Table 7 Comparison of the number of association rules |
本文针对用户的浏览与购买商品的历史行为进行挖据,建立用户行为兴趣模型,进而为用户推荐商品. 由于传统的Apriori算法会多次扫描数据库,并产生很多候选集,这是传统Apriori算法的弊端. 为此,本文针对Apriori算法进行改进,利用改进的Apriori算法对用户兴趣信息进行挖掘,挖掘用户之间的关联性,建立用户行为模型,为用户推荐其感兴趣的商品,提升用户的购买体验感,同时为商品供应商提供合理的商品配置方案,为其决策提供依据.
[1] |
刘建国, 周涛, 汪秉宏. 个性化推荐系统的研究进展[J].
自然科学进展, 2009, 19(1): 1-15.
LIU J G, ZHOU T, WANG B H. Research progress of personalized recommendation[J]. Progress in Natural Science, 2009, 19(1): 1-15. |
[2] | INGERSOLL G. Introducing apache mahout: scalable, commercial-friendly machine learning for building intelligent applications[J]. IBM, 2009. |
[3] | ESTEVES R M, RONG C. Using mahout for clustering wikipedia’s latest articles: a comparison between K-means and fuzzy c-means in the cloud[C]//2011 IEEE Third International Conference on Cloud Computing Technology and Science. Athens:IEEE, 2011: 565-569. |
[4] | SHVACHKO K, KUANG H, RADIA S, et al. The hadoop distributed file system[C]// 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST). Incline Village:IEEE Computer Society, 2010: 1-10. |
[5] | TAYLOR R C. An overview of the Hadoop/MapReduce/ HBase framework and its current applications in bioinformatics[J]. BMC Bioinformatics, 2010, 11(S12): S1. |
[6] | ZHANG Z Q, QIAN S J. The research of e-commerce recommendation system based on collaborative filtering technology[C]//Advances in Computer Science and Information Engineering. Berlin:Springer, 2012: 507-512. |
[7] | TYAGI S, BHARADWAJ K K. A hybrid knowledge-based approach to collaborative filtering for improved recommendations[J]. International Journal of Knowledge-Based and Intelligent Engineering Systems, 2014, 18(2): 121-133. DOI: 10.3233/KES-140292. |
[8] |
伍育红. 聚类算法综述[J].
计算机科学, 2015, 42(6A): 491-499.
WU Y H. General over view on clustering[J]. Computer Science, 2015, 42(6A): 491-499. |
[9] |
张玉洁, 杜雨露, 孟祥武. 组推荐系统及其应用研究[J].
计算机学报, 2016, 39(4): 745-764.
ZHANG Y J, DU Y L, MENG X W. Research on group recommender systems and their applicatIons[J]. Chinese Journal of Computers, 2016, 39(4): 745-764. DOI: 10.11897/SP.J.1016.2016.00745. |
[10] |
胡惠成, 陈平华. 一种融合隐式信任关系的推荐算法[J].
广东工业大学学报, 2017, 34(3): 43-48.
HU H C, CHEN P H. Research on implicit trust relationship aware recommendation algorithm[J]. Journal of Guangdong University of Technology, 2017, 34(3): 43-48. |
[11] | 胡新明. 基于商品属性的电子商务推荐系统研究[D]. 武汉: 华中科技大学, 2012. |
[12] |
王勇, 易庭. 基于距离衰减和评分趋势改进的协同推荐算法[J].
广东工业大学学报, 2015, 32(2): 38-42.
WANG Y, YI T. A distance decay and score trends impr- oved collaborative recommendation algorithm[J]. Journal of Guangdong University of Technology, 2015, 32(2): 38-42. |
[13] |
应毅, 刘亚军, 陈诚. 基于云计算技术的个性化推荐系统[J].
计算机工程与应用, 2015, 51(13): 111-117.
YING Y, LIU Y J, CHEN C. Personalization recommender system based on cloud-computing technology[J]. Computer Engineering and Applications, 2015, 51(13): 111-117. DOI: 10.3778/j.issn.1002-8331.1409-0134. |
[14] |
王洁, 汤小春. 基于社区网络内容的个性化推荐算法研究[J].
计算机应用研究, 2011, 28(4): 1248-1250.
WANG J, TANG X C. Personalized recommendation algorithm research based on content in social network[J]. Application Research of Computers, 2011, 28(4): 1248-1250. |
[15] |
杨超, 艾聪聪, 蒋斌, 等. 一种融合人口统计属性的协同过滤算法[J].
小型微型计算机系统, 2015, 36(4): 782-786.
YANG C, AI C C, JIANG B, et al. Demographic attribute-based collaborative filtering algorithm[J]. Journal of Chinese Computer Systems, 2015, 36(4): 782-786. |
[16] |
刘丽娟. 改进的Apriori算法的研究及应用[J]. 计算机工程与设计, 2017, 38(12): 3324-3328.
LIU L J. Research and application of improved Apriori algorithm[J]. Computer Engineering and Design,2017, 38(12): 3324-3328. |
[17] |
张万山, 肖瑶, 梁俊杰, 等. 基于主题聚类的Web资源个性化推荐研究[J].
微电子学与计算机, 2015(4): 35-39.
ZHANG W S, XIAO Y, LIANG J J, et al. Personalized recomm-endation of web resources rased on topic clustering[J]. Microellectronics & Computer, 2015(4): 35-39. |