随着“互联网+”的快速推进, 大型制造商在投入巨大资金建设大数据的同时也面临着数据因多源化而变得分散难以管理的难题. 如何有效融合PC端, 移动端及线下数据等多渠道采集的客户信息, 将大量的不统一的数据碎片通过数据挖掘汇聚成可视化的整体并从中发现其个性化需求变得更加困难. 为了走出因多源数据而产生的数据孤岛的困局, 大型制造商力图通过建设全域市场数据体系打通跨屏, 多源数据间的障碍, 实现以全域市场数据来驱动业务, 让数据发挥更大价值. 为了寻找最佳目标客户实现产品精准投放提高营销利润, 开发智能化的终端客户推荐系统成为解决这一难题的有效手段, 近年来受到学术界和工业界的广泛关注.
目前使用的推荐系统绝大部分是基于协同过滤技术的推荐. 它是一种基于用户偏好且对所有用户无差别的推荐, 这可能导致大型制造商在获利甚微的客户身上投入不适当的成本. 营销活动的持续开展使得新生产品日益丰富, 每个产品在进行选户投放时可能存在众多销量一样而客户属性相差巨大的不同客户候选集, 制造商不可能通过将产品均衡投放到所有客户的方式开展系列营销活动, 这就导致了用户-产品矩阵非常稀疏. 因此, 利用推荐系统预测评分矩阵中的缺失项为目标产品寻找机会点, 并将结果以个性化列表的形式推荐给客户经理成为了一项挑战.
针对目前客户推荐方法所造成的推荐效果差和营销成本大的问题, 本文提出了一种基于全域市场数据感知的终端客户推荐方法. 首先通过采集全国范围内的客户订单交易数据对客户进行全方位价值评估, 然后利用子空间分解的方法对各个区域内产品的购买情况进行分析, 通过构建区域特色系数对客户购买产品情况进行衡量, 最后结合客户自身价值与区域特色系数构建全域用户项目评分矩阵. 在此基础上, 利用基于耦合对象相似度的推荐算法计算各个客户之间的相似度, 深度挖掘全域市场下不同客户之间的隐式关联, 为大型制造商推荐最佳目标客户.
1 协同过滤推荐算法在个性化推荐领域, 协同过滤(Collaborative Filtering, CF)[1,2]虽然是使用最广泛的技术之一, 但由于其存在严重的项目稀疏性和冷启动问题, 使得大量的学者针对此进行不断研究. Lika等[3]提出了一种利用已知分类算法创建用户组, 并结合语义相似性技术识别相似行为用户的方法缓解冷启动问题. Ji等[4]提出了一种利用因子矩阵分解模型, 结合用户和项目的内容信息来缓解冷启动问题的推荐算法. Forsati等[5]提出了一种动态微调正则化参数的矩阵分解算法被广泛关注并证明了矩阵分解推荐算法的有效性.
矩阵分解算法(Matrix Factorization, MF)[6,7]是利用降维的思想将用户项目矩阵分解为用户隐特征向量矩阵和项目隐特征向量矩阵, 然后通过两个隐特征向量矩阵的点积计算预测评分矩阵的缺失项. 其中典型的矩阵分解算法包括: 概率矩阵分解(Probabilistic Matrix Factorization, PMF)[8], 最大间隔矩阵分解(Maximum Margin Matrix Factorization, MMMF)[9], 非负矩阵分解(Nonnegative Matrix Factorization, NMF)[10], 正则化奇异值分解(Regularization Singular Value Decomposition, RSVD)[11], 贝叶斯概率矩阵分解(Bayesian Probabilistic Matrix Factorization, BPMF)[12], SVD++[13]等. 但用户项目评分矩阵的稀疏性造成的项目冷启动问题仍然是目前亟待解决的问题, 为了进一步提高推荐算法的有效性, 近年来已有不少学者提出利用不同类型的信息源来解决项目冷启动问题. Yang等[14]提出了一种社交信任网络的矩阵分解模型, 利用额外的信任数据来解决这一问题. Gurini等[15]提出了一种融合情感分析的在社交网络推荐算法, 在矩阵因子分解过程中利用在社交平台所生成的内容中提取到的用户情感信息, 为目标用户推荐要关注的偏好用户.
区别于基于简单相似匹配(SMS)[16]衡量客户相似性的推荐算法, 本文在矩阵分解时利用耦合对象相似度(Coupled Object Similarity, COS)[17,18]捕获客户属性信息来改善推荐效果. 通过目标约束条件, 利用客户属性信息约束矩阵分解的过程来学习客户间的隐特征关系, 使推荐结果更具可解释性.
1.1 传统的矩阵分解方法矩阵分解模型将用户和项目映射到维度为K的低维联合隐特征空间, 而用户-项目交互信息可以被建模为该空间中的内积. 每个用户u对应于一个列向量
${R_{u,i}} \approx \hat R = {P^{\rm T}}Q$ | (1) |
通过用户对项目的评分数据, 最小化目标函数学习隐特征矩阵P和Q, 目标函数定义如下:
$L{\rm{ = }}\frac{1}{2}\sum\limits_{u = 1}^m {\sum\limits_{i = 1}^n {{{({R_{u,i}} - {{\hat R}_{u,i}})}^2}} } + \frac{{{\lambda _1}}}{2}\left\| {{P_u}} \right\|_F^2 + \frac{{{\lambda _2}}}{2}\left\| {{Q_i}} \right\|_F^2$ | (2) |
其中,
借鉴文献[17], 客户
$\cos (u,u') = \sum\limits_{i = 1}^n {\delta _i^A({u_i},u_i')} $ | (3) |
其中,
耦合属性值相似度(CAVS)形式化的由IaAVS和IeAVS两部分组成. 其中IaAVS表示特征内耦合属性值相似度, IeAVS表示特征间耦合属性值相似度.
特征
$\delta _i^A(u,u') = \delta _i^{\rm Ia}({u_i},u_i')*\delta _i^{\rm Ie}({u_i},u_i')$ | (4) |
其中,
特征内耦合属性值相似度(IaAVS)度量属性值相似度从频率分布角度刻画属性值间的相似度, 其在计算相似度时仅考虑了同一特征
$\delta _i^{\rm Ie}({u_i},u_i') = \sum\limits_{k = 1,k \ne i}^n {{a_k}{\delta _{i\left| k \right.}}({u_i},u_i')} $ | (5) |
其中,
${\delta _{i\left| k \right.}}({u_i},u_i'){\rm{ = }}\sum\limits_{w \in \cap } {min \left\{ {{P_{k\left| i \right.}}(\left\{ w \right\}{u_i}),{P_{k\left| i \right.}}(\left\{ w \right\}\left| {u_i'} \right.)} \right\}} $ | (6) |
其中,
${P_{k|i}}(\{ w\} |{u_i}){\rm{ = }}\frac{{\left| {{{\rm{g}}_k}(w) \cap {g_j}({u_i})} \right|}}{{{g_j}({u_i})}}$ | (7) |
其中,
全域市场数据感知推荐方法是一种从数据源头进行全面的整体趋势和性能分析, 对全国范围内的客户评估其总体价值, 然后通过域子空间分解的方法, 对各个区域客户购买产品情况进行分析构建初始的用户-项目评分矩阵, 最后融合全域客户价值和各区域初始评分得到最终的全域用户项目评分矩阵.
2.1 全域用户项目评分矩阵区别于产品推荐在协同过滤算法中的输入, 本文提出的全域用户项目评分矩阵由两部分构成: 1)利用全国范围内的客户订单交易数据评估客户的总体价值; 2)根据某一区域内的客户订单交易数据以及该区域的特色构建初始评分矩阵; 最后, 融合1)和2)计算的结果作为全域用户项目评分矩阵.
假设用
在RFM模型中, 对于时间间隔R来说, 当客户最近一次交易时间的间隔越短时, 则R值越大, 客户在短时间内也最有可能产生新的消费行为. 随着R的不断增大, 客户的相关信息也越来越完善, 因为随着时间间隔的不断缩短, 客户再次购买产品的可能性会逐渐变大. 对于消费频率F来说, 消费频率与客户忠诚度成正比, 客户消费频率越高, 说明该客户的忠诚度也越高, 为制造商创造的价值也越大. 对于消费金额M来说, 它是客户对制造商贡献值大小的最直接体现方式, 消费金额越大, 说明客户为制造商带来的价值也越大. 通过以上分析, 使用RFM模型从时间间隔, 消费频率和消费金额3个维度描述客户的消费行为, 可以较好的体现出客户为制造商所创造的现实价值, 也就是客户自身价值.
根据客户在最近一年内的购买行为, 利用RFM模型计算客户价值的过程如下:
1) 获取客户最近一年内消费时间R, 消费频率F, 消费金额M这3个行为指标;
2) R, F, M按照其对大型制造商收益的贡献值大小将数据区间从高到低分别用5, 4, 3, 2, 1进行赋值;
3) 采用z-score标准化(zero-mean normalization)对RFM模型的指标数据进行标准化处理;
4) 利用层次分析法(Analytic Hierarchy Process, AHP)对RFM模型的指标权重进行评估;
5) RFM模型中在已知R, F, M3个指标权重分别为a, b, c的情况下, 计算客户价值
${v_u} = a * R + b*F + c*M$ | (8) |
与此同时, 通过域子空间分解的方法, 先将全国范围内的客户数据按省, 市进行归类, 然后利用市内POI数据分布的特点, 将客户划分到旅游区域, 商业区域, 办公区域等不同的区域内. 根据不同区域客户购买产品的数量指标不同, 本文提出用区域特色系数来衡量客户购买产品情况.
对于市内的两个不同区域(如商业区域和旅游区域), 位于商业区的客户占有地理位置优势, 平时客流量大, 此区域内的客户订单量大且购买产品的频次高, 制造商对该区域的偏好程度也大. 而位于旅游区的客户受季节性因素影响, 平时客流量小, 只有在旅游旺季产品购买量才会有明显上升. 为了描述这种因区域因素造成的客户购买产品情况的差异, 本文使用片区域特色系数表示市内不同区域购买产品的整体差异. 片区域特色系数是将市内各区域的客户购买量与该市的所有客户总购买量做比值运算, 比值越高的区域, 客户整体购买量也越高, 制造商对该区域的偏好程度也越大. 与此类似, 为了描述省内因城市内部因素造成的客户购买产品情况的差异, 本文使用市区域特色系数表示省内不同城市购买产品的整体差异, 用各个城市的客户购买量与该省所有客户的购买量的比值表示制造商对该城市的偏好程度. 为了描述全国因各省份内部因素造成的客户购买产品情况的差异, 本文使用省区域特色系数表示全国各省份购买产品的整体差异, 用各个省份的客户购买量与全国所有客户的购买量的比值表示制造商对该省份的偏好程度. 在某一片区域内, 则由客户自身购买产品的数量与该区域的客户购买产品总量的比值表示客户在片区域内与其他客户购买产品的差异, 用客户购买量系数来表示. 基于以上讨论, 本文使用客户所在区域, 所处城市和所属省份计算得到片区域特色系数, 市区域特色系数和省区域特色系数, 加上客户购买量系数表示全国范围内客户购买产品情况, 并以此构建初始的用户-项目评分矩阵:
${r_{u,i}}{\rm{ = }}\left\{ {\begin{array}{*{20}{c}} {\mu ,\;{\text{客户已购买产品}}}\\ {0,\;{\text{客户未购买产品}}} \end{array}} \right.$ | (9) |
其中,
1) 计算全国客户总的购买量
2) 计算省区域特色系数
3) 采用z-score标准化对
4) 计算区域特色系数
最后, 本文给出用户
$r_{_{u,i}}' = (1 - \alpha )*{r_{u,i}} + \alpha *{v_u}$ | (10) |
其中,
最后根据
$R_{_{u,i}}^{''} = \frac{{({R_{\max }} - {R_{\min }}) * (R_{u,i}' - {R_{\min }})}}{{({R_{\max }} - {R_{\min }}) + {R_{\min }}}}$ | (11) |
基于全域市场数据感知的推荐算法(Global Market Data Perception Matrix Factorization, GMF)是利用客户属性信息约束矩阵分解的过程, 缓解推荐系统冷启动问题. 本文利用客户属性信息构建客户关系正则化项, 并假设当客户
根据文献[20], 利用与已知评分的最小平方逼近误差, 定义损失函数为:
$\frac{1}{2}\mathop {min }\limits_{P,Q} \sum\limits_{u = 1}^n {\sum\limits_{i = 1}^m {{I_{u,i}}{{({R_{u,i}} - P_{_u}^{\rm T}{Q_i})}^2}} } $ | (12) |
其中,
为解决过拟合问题, 本文在上述模型的基础上加入低秩分解因子的范数
$ \begin{split} &\frac{\beta }{2}\sum\limits_{u = 1}^N {\sum\limits_{u' = 1}^N {\cos (u,u')\left\| {{p_u} - {p_{u'}}} \right\|_F^2} } +\frac{{{\lambda _1}}}{2}\left\| P \right\|_F^2\\ &+ \frac{{{\lambda _2}}}{2}\left\| Q \right\|_F^2 + \frac{{{\lambda _3}}}{2}{\left\| b \right\|^2} \end{split}$ | (13) |
其中,
为了验证所提出的推荐算法的准确性, 本文在大型制造商真实数据集上进行了实验.
3.1 实验数据由于本文使用的数据来自多个渠道(如国家统计局, 营销人员走访客户采集, 相关并行系统以及互联网等), 因此需要先将数据清洗操作, 然后将多数据源进行实体唯一, 属性唯一, 编码取值统一及数据全链路的全域一致性处理, 最后集成到数据中台. 最后从数据中台中收集2018年全国范围内的客户基本数据及订单交易数据, 进行实验研究. 其中, 数据库客户订单交易部分字段如表1所示.
3.2 评价指标本文选择平均绝对误差(Mean Absolute Error, MAE)和均方根误差(Root Mean Squared Error, RMSE)两种评价指标来评估推荐算法的质量. 下面是两种误差的计算方法:
$MAE = \frac{1}{{\left| T \right|}}\sum\limits_{u,i \in T} {\left| {{r_{u,i}} - {{\hat r}_{u,i}}} \right|} $ | (14) |
$RMS\!E = \sqrt {\frac{1}{{\left| T \right|}}\sum\limits_{u,i \in T} {{{\left| {{r_{u,i}} - {{\hat r}_{u,i}}} \right|}^2}} } $ | (15) |
其中,
3.3 实验过程与结果分析 3.3.1 RFM客户聚类实验
为了验证利用客户最近消费时间, 消费频率以及消费金额3个因素计算客户价值的合理性, 我们利用K-Means聚类算法进行验证.
通过层次分析法计算得到R参数权重
通过指标分析可将客户分为监管户, 流失户, 价值户, 连锁户和核心户5种类别. 从分类结果呈现非线性聚集和客户分类的精准度可以看出, 利用RFM模型计算客户价值可有效区分各不同类别客户购买产品能力的差异.
3.3.2 区域特色系数的影响实验为了验证区域特色系数在用户对项目最终评分准确度的影响, 我们将未加入区域特色系数前和加入区域特色系数后的用户项目评分进行了对比.
由图1可知, 未加入区域特色系数前的用户项目评分大多集中在2–3分之间, 而加入区域特色系数以后的用户项目评分在1–2, 2–3和3–4间的比例均有增加, 消除了因客户价值导致的项目评分趋于一致性的问题, 使得用户-项目评分更加准确.
3.3.3 与经典方法的对比实验
为了验证基于全域市场数据感知算法的有效性, 本文选择以下经典方法在MAE和RMSE两个指标上进行对比实验:
(1) PMF[8]: 该方法仅考虑用户对物品的评分信息进行概率矩阵分解预测缺失项.
(2) MMMF[9]: 该方法引入计算序数回归排序损失函数进行矩阵分解模型预测缺失项.
(3) NMF[10]: 该方法限定在训练学习过程中隐特征向量更新仅包含非负项进行矩阵分解预测缺失项.
(4) RSVD[11]: 该方法基于SVD模型中引入正则化项进行奇异值分解预测缺失项.
(5) BPMF[12]: 该方法使用马尔科夫链蒙特卡洛方法进行近似推理预测缺失项.
(6) SVD++[13]: 该方法同时考虑偏置信息以及用户隐式反馈信息进行矩阵分解预测缺失项.
为了公平比较, 我们根据各个对比算法的参考文献或者实验结果设置对比算法的参数. 在这些参数设置下, 各对比算法取得最佳性能. 我们设置
(1) 实验参数K的影响
隐特征向量的维数K的取值对推荐算法的性能有很大影响, 在实验中, 本文将K初始值设置为5, 同时设置步长为5, 直至K值递增到50.
当K小于15时, 推荐算法随着K的增加其质量不断提高, 但当K大于15以后继续增加K的值推荐算法的质量不再提高. 这说明隐特征数量的增加会在一定范围内提高推荐算法质量, 一旦超过某一阈值以后可能就不会再提高推荐算法的质量. 造成这一现象的原因可能是本文所选的数据集在K大于15以后用户和项目的隐特征向量已经能够很好的刻画其隐特征, 而继续增加K的值反而会因为噪音的影响降低了推荐算法的质量.
(2) 实验参数
(3) 冷启动对推荐系统性能的影响
为了验证利用客户自身价值计算用户-项目的评分缓解推荐系统冷启动问题的有效性, 我们根据项目的评分数量对数据集进行分组后, 在每个组上与其他推荐算法做对比分析.
在所选取的大型制造商35万数据集上, 先根据项目的评分数量情况分成了6组, 分别是“0”, “1–20”, “21–40”, “41–80”, “81–160”, “>160”, 然后对分组后的数据集上进行对比实验. 实验结果如图6和图7所示, 从图中可以看出, 本文使用客户自身价值计算用户项目评分在6组实验中均有好的推荐效果, 特别是在评分少的项目上效果比较明显, 说明在一定程度上缓解了推荐系统冷启动问题. 为了进一步解决冷启动项目对推荐系统性能的影响, 对于新用户将通过以用户所在地理位置为圆心, 向外进行雷达扩散式寻找周边近距离的客户进行推荐. 随着评分数量的增多, GMF方法相比其他推荐方法的仍然有一定的优势. 这是因为本文使用在矩阵分解推荐算法的过程中考虑了耦合对象相似来捕获客户间的属性特征, 从而产生更加可靠的推荐结果.
4 结论与展望
本文提出一种基于全域市场数据感知的推荐方法GMF寻找最佳目标客户. 首先根据客户订单交易数据及客户属性信息获取原始用户-项目评分矩阵和客户自身价值, 然后在两者间引入平衡因子
在后续的研究中, 将针对RFM模型进行进一步研究, 因为RFM模型中3个指标描述的是客户的行为特征, 并不能代表客户的大多数行为, 为了更好的衡量客户价值, 可以考虑将客户的第一次交易至最近一次交易期间的间隔时长, 某一时间段内的最高消费金额和客户平均收入等因素考虑在内进行模型优化, 建立一个更加全面准确的客户价值体系.
[1] |
Wang Y, Deng JZ, Gao J, et al. A hybrid user similarity model for collaborative filtering. Information Sciences, 2017, 418–419: 102-118. DOI:10.1016/j.ins.2017.08.008 |
[2] |
Lü LY, Medo M, Yeung CH, et al. Recommender systems. Physics Reports, 2012, 519(1): 1-49. DOI:10.1016/j.physrep.2012.02.006 |
[3] |
Lika B, Kolomvatsos K, Hadjiefthymiades S. Facing the cold start problem in recommender systems. Expert Systems with Applications, 2014, 41(4): 2065-2073. DOI:10.1016/j.eswa.2013.09.005 |
[4] |
Ji K, Shen H. Addressing cold-start: Scalable recommen-dation with tags and keywords. Knowledge-Based Systems, 2015, 83: 42-50. DOI:10.1016/j.knosys.2015.03.008 |
[5] |
Forsati R, Mahdavi M, Shamsfard M, et al. Matrix factorization with explicit trust and distrust side information for improved social recommendation. ACM Transactions on Information Systems (TOIS), 2014, 32(4): 1-38. |
[6] |
Koren Y, Bell R, Volinsky C. Matrix factorization techniques for recommender systems. Computer, 2009, 42(8): 30-37. DOI:10.1109/MC.2009.263 |
[7] |
Hernando A, Bobadilla J, Ortega F. A non negative matrix factorization for collaborative filtering recommender systems based on a Bayesian probabilistic model. Knowledge-Based Systems, 2016, 97: 188-202. DOI:10.1016/j.knosys.2015.12.018 |
[8] |
Salakhutdinov R, Mnih A. Probabilistic matrix factorization. Proceedings of the 20th International Conference on Neural Information Processing Systems. Vancouver, BC, Canada. 2008. 1257–1264.
|
[9] |
Weimer M, Karatzoglou A, Smola A. Improving maximum margin matrix factorization. Machine Learning, 2008, 72(3): 263-276. DOI:10.1007/s10994-008-5073-7 |
[10] |
Huang KJ, Sidiropoulos ND, Swami A. Non-negative matrix factorization revisited: Uniqueness and algorithm for symmetric decomposition. IEEE Transactions on Signal Processing, 2014, 62(1): 211-224. DOI:10.1109/TSP.2013.2285514 |
[11] |
Nguyen J, Zhu M. Content-boosted matrix factorization techniques for recommender systems. Statistical Analysis and Data Mining, 2013, 6(4): 286-301. DOI:10.1002/sam.11184 |
[12] |
Salakhutdinov R, Mnih A. Bayesian probabilistic matrix factorization using Markov chain Monte Carlo. Proceedings of the 25th International Conference on Machine Learning. New York, NY, USA. 2008. 880–887.
|
[13] |
Koren Y. Factorization meets the neighborhood: A multifaceted collaborative filtering model. Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, NY, USA. 2008. 426–434.
|
[14] |
Yang B, Lei Y, Liu JM, et al. Social collaborative filtering by trust. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(8): 1633-1647. DOI:10.1109/TPAMI.2016.2605085 |
[15] |
Gurini DF, Gasparetti F, Micarelli A, et al. Temporal people-to-people recommendation on social networks with sentiment-based matrix factorization. Future Generation Computer Systems, 2018, 78: 430-439. DOI:10.1016/j.future.2017.03.020 |
[16] |
Gan GQ, Ma CQ, Wu JH. Data Clustering: Theory, Algorithms, and Applications. Philadelphia: SIAM, 2007.
|
[17] |
Yu YH, Wang C, Wang H, et al. Attributes coupling based matrix factorization for item recommendation. Applied Intelligence, 2017, 46(3): 521-533. DOI:10.1007/s10489-016-0841-8 |
[18] |
Lian DF, Zheng K, Ge Y, et al. GeoMF++: Scalable location recommendation via joint geographical modeling and matrix factorization. ACM Transactions on Information Systems (TOIS), 2018, 36(3): 33. |
[19] |
Chiang WY. Identifying high-value airlines customers for strategies of online marketing systems: An empirical case in Taiwan. Kybernetes, 2018, 47(3): 525-538. DOI:10.1108/K-12-2016-0348 |
[20] |
Pirasteh P, Hwang D, Jung JJ. Exploiting matrix factorization to asymmetric user similarities in recommendation systems. Knowledge-Based Systems, 2015, 83: 51-57. DOI:10.1016/j.knosys.2015.03.006 |