广东工业大学学报  2018, Vol. 35Issue (3): 90-94.  DOI: 10.12052/gdutxb.180015.
0

引用本文 

林穗, 郑志豪. 基于关联规则的客户行为建模与商品推荐研究[J]. 广东工业大学学报, 2018, 35(3): 90-94. DOI: 10.12052/gdutxb.180015.
Lin Sui, Zheng Zhi-hao. A Research of a Recommender System Based on Customer Behavior Modeling by Mining Association Rules[J]. JOURNAL OF GUANGDONG UNIVERSITY OF TECHNOLOGY, 2018, 35(3): 90-94. DOI: 10.12052/gdutxb.180015.

基金项目:

广州市科技计划项目(2017010160012)

作者简介:

林穗(1972–),女,副教授,主要研究方向为云计算、云存储、操作系统、数据挖掘等。

通信作者

郑志豪(1992–),男,硕士研究生,主要研究方向为推荐系统、数据挖掘等. E-mail:694473924@qq.com

文章历史

收稿日期:2018-01-24
基于关联规则的客户行为建模与商品推荐研究
林穗, 郑志豪     
广东工业大学 计算机学院,广东 广州  510006
摘要: 随着我国电子商务事业的发展, 传统的电子商务服务模式已经不能满足人们的购物需求, 针对客户个性化推荐的研究具有一定的意义. 本文将Apriori算法进行改进, 利用改进的Apriori算法对用户兴趣信息进行挖掘, 挖掘用户之间的关联性, 建立用户行为模型, 为用户推荐其感兴趣的商品, 提升用户的购买体验. 实验表明, 改进的算法提高了推荐的精度和速度.
关键词: 电子商务    个性化推荐    Apriori算法改进    用户行为建模    
A Research of a Recommender System Based on Customer Behavior Modeling by Mining Association Rules
Lin Sui, Zheng Zhi-hao     
School of Computers, Guangdong University of Technology, Guangzhou 510006, China
Abstract: With the development of e-commerce in China, the traditional e-business service mode can no longer meet people’s shopping needs. Personalized recommendation for customers is a problem worthy of study. In this research, the improvement of Apriori algorithm is used to mine user interest information and the user correlation. Then, a user behavior model is set up, and can recommend the goods of interest, and improve the user’s purchase experience. Experiments show that the improved Apriori algorithm improves the accuracy and speed of the recommendation system.
Key words: E-commerce    personalized recommendation    the improvement of Apriori algorithm    user behavior modeling    

在“互联网+”概念的带动下,基于网络的销售服务已经开始大量地走进人们的生活. 以往商家为扩大商品销售额,需要投入巨资开设连锁品牌专柜、专卖店和进行市场营销,而现在电子商务模式成为了商家销售和客户购物的首选模式.在传统的电子商务中,客户进行商品的浏览与购买,商家销售商品,在这一过程中,客户往往难以从千万种商品中找到自己感兴趣的商品,或在浏览商品时并不明确个人兴趣点,而传统的电子商务运营模式无法识别客户的兴趣商品,无法为客人推荐商品,因此,如何为客户推荐其感兴趣的商品是需要解决的问题. 用户行为指的是用户在浏览与购买商品过程中的行为,通过对用户行为进行建模,依据用户的历史行为来识别用户可能感兴趣的商品类型,进而为用户推荐商品,达到提升商品销量的目的[1].

1 主要推荐算法 1.1 用户兴趣挖掘技术

用户兴趣挖据技术较多,本文将使用关联规则的Apriori算法进行了用户浏览与购买的兴趣模式进行分析,并建立用户行为模型[2].

通常情况下,聚类针对不同的大类以某种标准分成若干个小同类,使得类内相似大,类间区别大,且每个小类都是一个稠密的区域,是一种典型的无监督学习算法[3].

层次聚类与平面聚类是经常使用的2种聚类方法[4]. 平面聚类方法就是使用评估函数将数据集分割成若干个子集,距离的远近代表着对象的相似性,一般情况下,距离的大小与相似性成反比,例如典型的欧氏距离[5]. 若聚类的中点用对象的均值来计算,则对象与中点的距离就可以作为分类的判别函数,反复调整中点,将所有对象归类到最近的一个聚类中,直到所有对象被归类完毕且满足分类标准. 如K-Means算法就是通过K个中点进行反复调整,直到满足判别函数[6].

层次聚类方法就是分割不同层次上的数据,具体包括聚合法与分治法,具体的算法可通过层次树进行描述. 前者通过自下而上把实例集合合并,后者通过逐渐分裂划分实例集作[7].

数据库中的数据可以被划分为各个子集,将相似性较高的数据聚集在一类中的过程就是聚类. 聚类能够提升人们对于实现世界的认识,常见的聚类有:分层聚类、密度聚类、网格聚类等. 聚类是将事务划分为较小的具有相似特性的簇,因此聚类最关键的就是特征的组合[8-9].

1.2 个性化推荐技术

个性化推荐技术研究较多,主要包括以下几种[10-11].

1) 基于协同过滤的推荐.

基于协同过滤的推荐是较为流行的方式[12],在电子商务中运用较多,利用用户的购买行为,为用户推荐商品. 基于协同过滤的推荐的思想是:两个相似的用户在购买一种商品时,则向另一个用户也推荐该类商品. 该方法的本质是计算用户之间的相似度. 最近提出了余弦相似度的计算方法[13].

2) 基于内容的推荐.

在协同推荐技术中,不需要关注商品的内容,只需要依据用户的购买行为来进行推荐,当需要依据商品的信息来推荐给用户时,就需要基于内容的推荐方法[14]. 其基本的思想是为用户与商品建立配置文件,依据用户的购买行为以及商品的内容,更新用户的配置文件,依据用户的历史信息构造兴趣文档,计算文档与商品的相似度,来为用户进行推荐.

3) 基于人口统计的推荐.

该方法是利用人口统计方法,结合相似度计算予以推荐[15].

4) 混合推荐.

在多种方法都不能很好地满足用户的推荐时,结合实际的情况,将多种推荐方法结合在一起是较为理想的策略. 依据混合策略将多种推荐方法进行组合,构建混合推荐系统,结合各个算法之间的优势来为用户推荐感兴趣的内容.

2 Apriori算法

由于传统Apriori算法的不足,本节将对传统算法进行改进,并采用改进的算法进行商品的推荐.

2.1 经典Apriori算法

1) 算法的思想.

首先获得所有的候选1-项集 ${C_1}$ 及1-项集 ${L_1}$ . 然后基于 ${L_1}$ 获得2-项集 ${C_2}$ 及2-项集 ${L_2}$ . 并依据2-项集确定3-项集,依次迭代下去.

2) 算法描述.

计算1-项集的支持度,获得最小支持度的1-项集,形成 ${L_1}$ ,如果 $P,Q \in {L_{k - 1}}P = ({p_1},{p_2}, \cdots ,{p_{k - 1}}),Q = $ $ ({q_1},{q_2} ,\cdots, {q_{k - 1}})$ ,且1 $\leqslant$ i $\leqslant$ k–1时, ${p_i} = {q_i}$ ,当i=k–1时, ${p_{k - 1}} \ne {q_{k - 1}}$ ,则 $P \cup Q = ({p_1},{p_2}, \cdot \cdot \cdot ,{p_{k - 1}},{q_{k - 1}})$ 是候选集 ${C_k}$ 中的元素. ${C_k}$ ${L_k}$ 的超集,或许某些元素不是频繁的. 扫描数据库,计算候选集支持度,若支持度在设定的阈值以下则删除,形成集合 ${L_k}$ . 依次迭代,直到没有新的频繁项集产生为止.

3) 相关定义.

支持度即一个项集X的支持度,记为supp(X),是D中包含X的事务所占的百分比. 项集支持度的数学定义如式(1)所示:

${\rm{supp}}(X) = \frac{{\left| {{\rm{\tau (}}X{\rm{)}}} \right|}}{{\left| D \right|}},$ (1)

其中,τ(X)称为X的事务映射,为伽罗瓦连接的一种集合之间的运算,通过式(2)定义,其中 ${{X}} \subseteq {{I}}$ ${{Y}} \subseteq {{D}}$

$\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)

$\gamma \circ \tau (X) $ 称为对X的闭包运算,即包含项集X的所有事务的公共项.

2.2 Apriori算法改进

Apriori算法产生候选集的算法是Apriori-gen算法[16],包括了2个步骤.

第一步连接:

Apriori-gen( ${L_{k - 1}}$ 是频繁k–1项集,min_support是最小支持度).

(1) for each 项集 ${L_1} \in {L_{k - 1}}$ ;

(2) for each项集 ${L_2} \in {L_{k - 1}}$ ;

(3) $\begin{gathered} if(({L_1}[1] = {L_2}[2]) \wedge {L_1}[2] = {L_2}[2] \cdot \cdot \cdot \end{gathered} $     $ ({L_1}[k - 1] \wedge {L_2}[k - 1])); $

(4) c= ${L_1}$ $ \otimes $ ${L_2}$ //连接,产生候选集;

(5) if has_infrequent_subset(c, ${L_{k - 1}}$ )then;

(6) delete c//修剪,去掉无用候选项;

(7) else add c to ${C_k}$ ;

Return ${C_k}$ .

第二步剪枝:

(1) for each ck–1子集s;

(2) if s $ \notin $ ${L_{k - 1}}$ then;

(3) return true;

(4) else return false.

Apriori算法伪代码如下:

输入:事务数据库D,最小支持度;

输出:LD中频繁项集;

(1) ${L_1}$ =find_frequent_1_itemstes (D);

(2) for(k=2; ${L_{k - 1}} \ne \varphi $ ;k++);

(3) ${C_k} = apriori\_gen({L_{k - 1}})$ ;

(4) for 所有事物 $t \in D$ do begin;//对数据库D扫描,进行计数;

(5) ${C_l}$ =subset( ${C_k}$ t);

(6) for 所有候选 $c \in {C_l}$ do;

(7) c.count++};

(8) ${L_k} = (c \in {C_k}|c.count \geqslant \min \_{\rm{support}});$

(9) 结果得出 $\bigcup\limits_{k = 1}^m {{L_k}} $ .

从上述的步骤可知,Apriori算法在连接时,可能产生候选集,剪枝时,删除非频繁子集的候选集. 虽然Apriori算法压缩了候选集的大小,能够挖据出关联规则,但是扫描数据库的次数太多,增加了算法的复杂度[17].

在客户购买数据的挖据中,需要重点关注以下几个问题:

(1) 事务数量大,客户购买数据量较大,且仍在不断的增长之中,客户购买的预处理是难点工作.

(2) 客户类型较多,从事不同职业的客户,其类型也不同.

(3) 客户浏览商品与购买日期很难进行关联分析.

(4) 不同的属性值意义不同.

关于上述问题,本文提出了相应的措施:

(1) 针对客户购买量较大的问题,可以划分时间段来进行,依据时间段来进行分析.

(2) 针对客户购买时间,在数据预处理时进行离散化,将春、夏、秋、冬离散化为4个值T1T2T3T4.

(3) 用A1A2A3A4来表示客户消费用为0、小额、中额、大额;I1I2I3I4I5表示个体小客户、个体大客户、集体大客户、个体中客户、集体中客户.

(4) 引入权值. 利用权值来区分客户类型的重要性,进而挖据出客户类型与客户消费金额的大小关联规则.

具体做法为:设计支持度函数F(X). 经典的Apriori算法中,F(X)=support(X)|D|,其中,support(X) 是X的支持度,现将权值引入公式中. 对任意X= $\{X_1,X_2,\cdots, X_r\} $ I= $\{k_1,k_2,\cdots, k_r\} $ 为项的集合其中, $X_i \in I(1,2, \cdot \cdot \cdot, r)$ ,若X是单个的项,则其权值赋值可在项集产生之后进行,否则从各个项中获取其权值,也就是项集X的权值为:

${\lambda _x} = F({\lambda _{x_1}},{\lambda _{x_2}} ,\cdot \cdot \cdot, {\lambda _{x_r}}).$

此时的支持度函数需要满足以下约定:

对于任意XY子集,则F(X) $\geqslant$ F(Y),也就是 ${\lambda _x} \times {\rm{support}}(X)/|D| \geqslant {\lambda _y} \times {\rm{support}}(X)/|D|$ XY子集, $ {\rm{support}}(X) \geqslant {\rm{support}}(Y)$ ,因此不等式成立的条件是 ${\lambda _x}\geqslant {\lambda _y}$ ,则项集的权值为项集汇总权值的最小值,也就是 ${\lambda _x} = F({\lambda _{x_1}},{\lambda _{x_2}} ,\cdots,{\lambda _{x_y}}) = \min ({\lambda _{x1}},{\lambda _{x_2}} ,\cdots, {\lambda _{x_y}})$ .

现针对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算法,针对数据的重要性进行算法的改进,在支持度计算时,引入了权值参数,发现重大客户类型的消费规律,流程如上所示. 从中可以发现关联规则:T1A1I1T3A4I3T1A1I1表示在春天主要的消费客户类型是小户,且消费金额较低;T3A4I3表示在秋天,消费客户类型为集体大户且消费金额较大. 上述信息的挖据,能够帮助交易网站管理人员在特定的时间开展不同的促销业务,针对不同时间段,合理调度人力,优化人员配置,提升工作效率.

4 改进算法效果分析

利用K频繁项集连接产生K+1阶候选集时,对于长度为m,项目集个数为n的频繁项集 ${L_m}$ 来说,判断可连接条件比较所消耗的时间复杂度为 $O\left( {m \times {n^2}} \right)$ . 为了验证改进算法的有效性,利用accidents.data数据进行仿真实验,对改进Apriori算法与决策树算法、贝叶斯网络算法以及人工神经网络算法进行实验分析,如图1所示. 并对改进的算法与经典的Apriori算法进行详细比较,改进的算法与经典的Apriori算法在时间的对比如表6所示. 对比关联规则数目,关联规则数目对比如表7所示.

图 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
5 结论

本文针对用户的浏览与购买商品的历史行为进行挖据,建立用户行为兴趣模型,进而为用户推荐商品. 由于传统的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.