Personalized Purchase Prediction of Market with Wasserstein-Based Sequence Matching

  • 概述
  • 问题背景及陈述
  • 预测算法
  • 步骤一:item embeddings
  • 步骤二:计算wasserstein Distance
  • 步骤三:Wasserstein-Based Dynamic Time Warping
  • 预测
  • 实验
    • 评价标准
    • 数据集
    • 对比的baseline
    • 结论
  • 市场篮子的应用领域
  • 总结
    • reference

概述

该文章2019年发布于第二十五届SIGKDD国际会议

作者为来自于瑞士苏黎世大学的 Mathias Kraus 和 Stefan Feuerriegel

问题背景及陈述

营销中的个性化服务即为通过为个人定制服务来改善顾客的购物体验。为了完善个人定制服务,企业需要对顾客下一次的购买做出个性化的预测。也就是预测出顾客下一次购买物品的确切清单/顾客一次性购买的全套产品,即所谓的’maket basket’

了解客户‘maket basket’的构成可以为商家的个性化营销和针对性的交叉销售计划提供信息,完成供应链的管理或者产品组合的优化[1]. 但是实际上有关于市场篮子的相关工作不是很多,这主要由于它较高的内在复杂性:

1.它具有动态性 ⇒\Rightarrow 需要推断出具有可变大小的子集
2.不仅限于单个时间序列的输入和单变量预测结果的输出
3.不仅是提供一个项目列表,预测市场篮子的具体性质取决于不同项目的特征

预测市场篮子的问题与其他市场营销中的预测任务有很明显的不同。比如:
(1)和已经被广泛应用于销售业的预测技术对比,该种预测是跨商店汇总的,他的输入涉及多变量时间序列,而他的输出是表示总销售额的单个值,该预测比推断具有可变大小的动态子集要简单的多,所以现在多半使用基于特征的分类器和递归神经网络,然而这些方法是不适合于市场篮子中的结果变量。
(2)和用户层面的购买预测对比,该种预测仅限于单个时间序列作为输入,单变量输出。而市场篮子必须建模伟一个动态集合
(3)ranking,在基于会话的推荐系统中,按照购买的频率对候选项目进行排序,然而这个任务仅需要安排项目列表,无法提供产品子集

市场篮子的独特特征决定了预测算法的具体性质

预测市场篮子是指确定客户在下一笔交易中将会购买的确切商品组合。

假设有一个零售商,他有n个可供购买的商品,记为I=i1,i2,⋯,inI={i_1,i_2, \cdots, i_n}I=i1,i2,,in .该零售商服务k个用户,记为C=c1,⋯,ckC={c_1, \cdots , c_k}C=c1,,ck,零售商记录了这些用户的采购历史,目标是推断出客户c的下一次购买

包括的信息有顾客c先前购买的市场篮子的订购顺序,Bc=[bc1,bc2⋯bcmc]B_c=[b_c^1, b_c^2 \cdots b_c^{m_c}]Bc=[bc1,bc2bcmc],其中bci∈I,i=1,⋯mcb_c^i \in I, i=1, \cdots m_cbciI,i=1,mc,mcm_cmc表示过去的交易数量。类似的,这个客户群完整的购买历史集是β=B1,B2,⋯Bk\beta={B_1,B_2, \cdots B_k}β=B1,B2,Bk,市场篮子的大小为∣bci∣|b_c^i|bci,购买历史的长度是可变的,长度取决于lllccc

给定客户c的购买历史BcB_cBc,购买历史中有mcm_cmc条,输出为预测的篮子bc∗∈Ib_c^* \in IbcI. 认为客户c将在第mc+1m_c+1mc+1交易中购买的物品集合为bcmc+1b_c^{m_c+1}bcmc+1,当bc∗b_c^*bcbcmc+1b_c^{m_c+1}bcmc+1相同时,即为一个正确的预测

由于顾客会重复购买或者和别人一起购买,所以市场篮子的变化可能会很大,很少会出现重复模式。同时,由于可供购买的商品数量大大超过一个市场篮子的平均规模,即 ∣bci∣<<n|b_c^i| << nbci<<n,所以这个问题变成了一个极端的子集选择问题,所以不能直接应用递归神经网络或者排序方法。因为一般的预测只涉及单值输出(1),而在市场篮子预测中,输出是一个子集。

预测市场篮子的常用方法是利用关联规则。一般来说,就是将某些重复购买或者共同购买编码成简单的决策规则,比如

IF{pizza,beer}
THEN{painkiller}

其中THEN子语句称述了预期的后续购买

关联规则的生成通常基于Apriori算法[2]或者它的变体。现在的方法通常建立在广泛的领域知识的基础上以及人工特征规则,以便设计定制的方法来寻找更高的订单购买模式[3],这样的方法很直观,但有一些可以改进的方面:
(1)提出的预测规则都是基于精确的产品匹配,对于决策规则,产品’白葡萄酒‘和’红葡萄酒‘是完全不同的,因为规则不能从数据中学习隐含的层次结构。然而一些替代品之间的内在相似性会对后续购买产生影响
(2)规则是自回归的(autoregressive),因为他只能从单个顾客过去的购买中进行判断,而没有考虑顾客之间的知识转移(knowledge transfer)
(3)基于规则的方法不能为下一个市场篮子的可预测性提供度量,然而有时商家会需要度量可预测性。

本文提出了一种针对市场篮子的新的预测算法。该算法允许来自不同顾客的购物历史同时出现。此外,每个产品由多维嵌入向量表示,以便学习分类中的相似结构。该算法在所有的购物历史中执行相似性匹配。本文提出的算法由k近邻和子序列动态时间扭曲的算法组合构成(knn-SDTW).使用的相似性度量是通过计算Wasserstein距离,将市场篮子解释为产品分类的概率分布,来保证对于未来的市场篮子的准确预测

该算法不仅可以提高预测的准确性,其进步也体现在计算复杂度和对于瓦瑟斯坦距离的下界提出上。一方面,为了加速购物历史之间的距离计算,本文采用了子序列动态时间扭曲算法(subsequential dynamic time wraping - SDTW)执行子序列的匹配。这样使得计算损耗达到O(n(m+1))O(n(m+1))O(n(m+1)).如果直接使用动态时间扭曲算法(DTW),其计算损耗为O(n2m)O(n^2m)O(n2m)。另一方面,本文提出了p-Wasserstein 距离算法的一个下界,该算法的时间复杂度为O(l2)O(l^2)Ol2),而普通的距离计算的时间复杂度为O(l3logl)O(l^3logl)O(l3logl)lll表示市场篮子中某一个项目的数量。

预测算法

该算法一共有四个步骤:


(1)item embeddings:
将每一个项目通过一个多维向量表示,根据余弦相似性,相似的项目在距离上更接近
(2)基于瓦瑟斯坦距离的购买相似性
利用瓦瑟斯坦距离来计算市场篮子之间的距离,使得我们可以用可变数量的项目来计算集合上的距离。通过该种距离计算,可以将市场篮子解释为给定分类产品的概率分布。也就是说,两个市场篮子之间的距离是将产品的一个概率分布转化为另一个概率分布的最小成本来定义的。通过距离下限来加速计算。
(3)最相似的购买历史
基于瓦瑟斯坦距离,通过子序列动态时间扭曲算法来构建k近邻序列匹配。该方法计算了市场篮子序列之间的距离。这进一步给出了描述客户市场篮子的可预测性的数字分数。使用knn算法来定位了最相似的购买历史。
(4)市场篮子的预测
从最相似的购买历史中选择下一个市场篮子。这里,再次计算瓦瑟斯坦距离,如果超过阈值r,则回退到预测。也就是说,本文认为提出的算法知道在那些情况下序列匹配是不确定的,如果超过阈值r,从购买历史BcB_cBc中预测前ncn_cnc项,其中ncn_cnc是前一次购买的项目数,即∣bcmc∣|b_c^{m_c}|bcmc

总结来说,本文利用产品向量来模拟产品之间的相似性,其次,基于瓦瑟斯坦距离来衡量市场篮子(即产品嵌入集)之间的距离;最后应用动态时间扭曲的扩展算法来定位最相似的客户

步骤一:item embeddings

本文的模型建立在项目嵌入的基础上,即在向量空间中表示产品的多维向量。embeddings将高维稀疏向量转化为一个低维稠密向量的乘积。本文选择最初在自然语言处理的时候引入神经嵌入[4]。该方法旨在找到项目表示,来捕获一个项目与同一市场篮子中存在的其他项目之间的关系。给定一个市场篮子bci∈Ib_c^i \in IbciI,目标是最大化如下的对数概率
∑p∈bci∑q∈bci,q=p̸logPr(p∣q)\sum_{p \in b_c^i}\sum_{q \in b_c^i,q =\not p} log Pr(p|q)pbciqbci,q=plogPr(pq)
其中p,q指的是处于市场篮子中的产品bci∈Ib_c^i \in IbciI其中Pr(p|q)表示softmax函数
Pr(p∣q)=exp(upTvq)∑r∈Iexp(upTvr)Pr(p|q)=\frac{exp(u_p^T v_q)}{\sum_{r \in I}exp(u_p^Tv_r)}Pr(pq)=rIexp(upTvr)exp(upTvq)
通过具有对应产品p的目标和上下文表示的潜在向量up,vqu_p,v_qupvq,通过平均和矢量量化,得到一个m维向量/嵌入向量。

步骤二:计算wasserstein Distance

两个市场篮子包含的产品数量也许是不同的(m和n),大小可能是不同的,所以需要计算可变大小集合上的距离,故使用wasserstein distance

X=x1,⋯,xmX={x_1,\cdots,x_m}X=x1,,xmY=y1,⋯,ynY={y_1,\cdots,y_n}Y=y1,,yn是由一组不同的产品提供的两个市场篮子,则P阶瓦瑟斯坦距离定义如下:
dW(p)(X,Y)=min⁡C(∑i=1m∑j=1ncijd(xi,yj)p)1/pd_W^{(p)}(X,Y)=\min_C(\sum_{i=1}^m \sum_{j=1}^n c_{ij}d(x_i,y_j)^p)^{1/p}dW(p)(X,Y)=Cmin(i=1mj=1ncijd(xi,yj)p)1/p
c是一个m×nm\times nm×n的矩阵,认为不存在空篮子的情况,其余变量满足:

下图说明了选择瓦瑟斯坦距离的基本思想,AB的产品不重叠,大小也不同,但是他们在嵌入向量上对的瓦瑟斯坦距离表明他们相当相似:

求解瓦瑟斯坦距离的最佳平均时间复杂度为O(l3log(l))O(l^3log(l))O(l3log(l)),其中l表示X与Y并集中唯一项的个数,这种时间复杂度导致面临大规模数据时,应用变得不可行。所以该文提出了 瓦瑟斯坦距离下界 的思想。首先计算一个下界,而不是为每一个样本都计算精确的瓦瑟斯坦距离,这允许在搜索相似购买历史的时候消除候选序列,并大大减少运行时间。下界记为dW(p)(X,Y)d_W^{(p)}(X,Y)dW(p)(X,Y),则对应如下:

根据该式,本文提出了近似瓦瑟斯坦距离的计算方法,首先计算一个下限LB,只有当该下限有希望的时候,才计算精确的瓦瑟斯坦距离。

考虑两个约束时分别可以得到X和Y两个相应的下界,LB1和LB2:

通过取两个下界的最大值,可以得到一个更紧的下界
LB∗=max⁡LB1,LB2LB^*=\max{LB_1,LB_2}LB=maxLB1,LB2
如果两个篮子X,Y之间的下界LB∗LB^*LB超过了先前最近的邻居的距离,就可以直接跳过精确的瓦瑟斯坦距离的计算。与原始的计算复杂度相比,使用该种方法可以保证最近邻的搜索达到优越的O(l2)O(l^2)O(l2)的复杂度

步骤三:Wasserstein-Based Dynamic Time Warping

现在已经测量了单个市场篮子之间的距离,现在需要将它扩展到市场篮子序列之间的距离。使用扩展的动态时间扭曲算法,再将该算法与k近邻过程相结合。

动态时间扭曲算法是一种强大的时间序列测量设备[5,6],它用于测量以不同速度发生的两个时间序列之间的相似性,这是通过在时间维度上非线性的扭曲序列来解决的,以便确定与 时间上的某些非线性变化无关的相似度度量。顾客可能以不同的重复率进行产品的重复购买,也可能选择不同的产品来替代。

针对购买历史记录Bc=[bc1,bc2⋯bcn]B_c=[b_c^1,b_c^2 \cdots b_c^n]Bc=[bc1,bc2bcn],潜在的购买历史为Bd=[bd1,bd2⋯bdm]B_d=[b_d^1,b_d^2 \cdots b_d^m]Bd=[bd1,bd2bdm],可以在序列BcB_cBcBdB_dBd之间找到了匹配,匹配子序列的思想如下:

该图说明了后续动态时间扭曲如何计算客户c给定的购买历史Bc=[bc1,bc2,bc3]B_c=[b_c^1,b_c^2,b_c^3]Bc=[bc1,bc2,bc3]和客户d的购买历史的潜在子序列Bd=[bd1,bd2,bd3,bd4,bd5]B_d=[b_d^1,b_d^2,b_d^3,b_d^4,b_d^5]Bd=[bd1,bd2,bd3,bd4,bd5]之间的距离。单元格中的值记录了两个篮子之间的瓦瑟斯坦距离。图片中,bc2b_c^2bc2bd3,bd4b_d^3,b_d^4bd3,bd4非常相似,这可能是因为d购买了两次相似的篮子

预测

为客户得出下一个市场篮子预测的步骤分成两步

1 k近邻匹配
使用基于k近邻的分类器来得到多个相似子序列的信息。为了更好的利用最近邻分类器来预测市场篮子,首先利用SDTW方法的距离来定义样本的接近程度,将给定的购买历史作为输入,然后预测客户的下一个市场篮子。通过考虑k个用户的所有购买历史。计算如下式子来咋客户群体中找到最近的购买历史。

2.similarity-Aware Prediction
选择一种简单的启发式的形式回归到后退预测中,这可以帮助排除掉有非常特殊或者独特习惯的客户,否则相似性的评价方法会失败。本文选用一种简单的启发式方法来购买个人排名前n的物品,

实验

评价标准

对于每一个预测的市场篮子,使用两个指标来评估预测篮子和实际篮子的一致性
1)wasserstein distance
瓦瑟斯坦距离基于嵌入向量,可以衡量预测的相似程度
2)F1-Score
3)Jaccard coefficient
预测市场篮子与真实的市场篮子之间同时出现和不同时出现的比率

数据集

该论文使用了三个公共的数据集:
1)simplified instacart
2)product-level instacert
3)Ta-Feng grocery dataset

对比的baseline

1) global top items
该模型预测所有用户最常购买的商品
2)personal ttop items
从顾客处选择topk的商品,可以适应顾客的特殊购买癖好但不能识别时间上的变化
3)repurchase last basket
预测一个市场篮子,该市场篮子由顾客之前购买的商品组成,问题在于该模型预测出来的市场篮子规模与前一个篮子相同
4)Association rules
分析市场篮子的常用方法为关联规则[2,3,7],用于调查顾客经常一起购买的产品

结论

(1) simplified category-based instacart purchase - 基于简化类别的购买

本文提出的方法在F1-Score方面优于baseline,并且在其他评价指标中也表现平稳,可以看出,有着很多重复购买行为的数据集对该种方法不利,因为他显然不能很好地利用项目嵌入的层次结构

(2)Product-Level Instacart Purchases.
评估在产品层面预测市场篮子的模型,结果如下。
本文提出的方法在基于产品层面的预测中表现很好。

(3)Ta-Feng Grocery Dataset
对于大丰杂货店数据集的预测结果如下:
对于该数据集,本文提出的方法表现比baseline都要好,可以看出在baseline中,personal top items的表现最好。而对比之下,由于本文提出的方法学习更复杂的动态,所以有更高的性能,在所有的指标上都有明显的优势,对于F1-score的提升将近400%

那是不是说明该方法没有短板呢?下表列出了该方法在不同产品类别中的预测性能,可以看出,面包店、宠物类产品可以得到最高的预测性能,相比起来,零食和酒精看上去就非常的难以预测。这是因为酒精饮料的购买行为在很大程度上式由价格铭感性驱动的,因此很少出现具有强烈替代效应的重复购买。所以说明该方法能更好的预测客户忠诚度高,代替效应可能性小的产品类别。

同时,本文也测试了使用瓦瑟斯坦距离下限的方法的计算速度,发现在实际试验中,其计算速度大约是精准方案的两倍,命中率约为80.14%,并且没有显著的内存需求提升,说明了该算法在实际应用中的有效性。

市场篮子的应用领域

目前市场篮子预测主要有三个应用领域:
1.推荐系统
目前大多数的推荐系统都是基于协同过滤算法的,在该方向使用市场篮子预测不仅可以帮助预测单个项目,还可以为可能一起购买的项目组合提供建议。
2.供应链优化
市场篮子预测算法可以预测出实际市场需要的商品集合,这样可以帮助商家更好的进行产品的准备。比如在网络产品正式发售前,商家需要准备好货品进行运输,相较于现有的预测单产品的算法,使用市场篮子预测可以更全面的预测所需产品。
3.分类优化
帮助管理者考虑用户购买时的实际商品组合行为模式,可以将一起购买的产品进行适当的排列,创造新的联合购买模式来提升利润。使用市场篮子预测可能能提出新的见解。

总结

(1)基于项目的密集嵌入向量表示,来推断不同项目之间的隐藏结构
(2)使用瓦瑟斯坦距离来测量篮子之间的相似性
(3)执行跨客户相似性匹配,有助于丰富知识库
(4)提出了基于k近邻的动态时许扭曲的预测算法,并通过给出瓦瑟斯坦距离的下界来降低了计算复杂度
(5)提出的算法在复杂的大分类任务上性能十分优越,但是很难捕捉到产品之间的替代效应(尤其是这些效应由顾客自发选择或者由价格促销驱动的,这在酒精饮料零食等产品上非常常见)

reference

[1]Ajay Agrawal, Joshua Gans, and Avi Goldfarb. 2017. How AI will change strategy: A thought experiment. Harvard Business Review (2017).
[2]Rakesh Agrawal and Ramakrishnan Srikant. 1994. Fast algorithms for mining association rules. In International Conference on Very Large Data Bases.
[3]Riccardo Guidotti, Giulio Rossetti, Luca Pappalardo, Fosca Giannotti, and Dino Pedreschi. 2017. Market basket prediction using user-centric temporal annotated recurring sequences. In IEEE International Conference on Data Engineering.
[4]Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S. Corrado, and Jeff Dean. 2013.Distributed representations of words and phrases and their compositionality. In Advances in Neural Information Processing Systems (NeurIPS).
[5]Rohit J. Kate. 2016. Using dynamic time warping distances as features for improved time series classification. Data Mining and Knowledge Discovery 30, 2 (2016), 283–312.
[6]Ramachandran Varatharajan, Gunasekaran Manogaran, Malarvizhi Kumar Priyan, and Revathi Sundarasekar. 2018. Wearable sensor devices for early detection of Alzheimer disease using dynamic time warping algorithm. Cluster Computing 21, 1 (2018), 681–690.
[7]Riccardo Guidotti, Giulio Rossetti, Luca Pappalardo, Fosca Giannotti, and Dino Pedreschi. 2018. Personalized market basket prediction with temporal annotated recurring sequences. IEEE Transactions on Knowledge and Data Engineering (2018).

论文阅读:Personalized Purchase Prediction of Market with Wasserstein-Based Sequence Matching相关推荐

  1. 论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection

    论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection (1)Author (2)Abstract (3 ...

  2. 【论文阅读】(2009)A dynamic programming based heuristic for the assembly line balancing problem

    文章目录 一.摘要 二.SALBP-1 的模型和公式 2.1 SALBP-1 的公式 2.2 动态规划模型 2.2.1 构建状态空间的过程 2.2.2 最大站负荷规则 2.2.3 边界的使用 三.算法 ...

  3. 论文阅读:Fixation Prediction for 360° Video Streaming in Head-Mounted Virtual Reality

    论文名字 Fixation Prediction for 360° Video Streaming in Head-Mounted Virtual Reality 来源 会议 Proceedings ...

  4. 论文阅读 | Optimizing Video Prediction via Video Frame Interpolation

    前言:CVPR2022利用视频插帧做视频预测的文章,用到的是优化的思想,不用训练网络 论文地址:[here] Optimizing Video Prediction via Video Frame I ...

  5. 三维目标检测论文阅读:VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection

    VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection 理解了PointPillars这篇文章后,看这篇文章就清 ...

  6. 毫米波目标检测论文 阅读笔记 | Radar Transformer: An Object Classification Network Based on 4D MMW Imaging Radar

    毫米波目标检测论文 | Radar Transformer: An Object Classification Network Based on 4D MMW Imaging Radar Jie Ba ...

  7. 【论文阅读】Rotom: A Meta-Learned Data Augmentation Framework for Entity Matching

    摘要 深度学习几乎彻底改变了计算机科学的所有领域,包括数据管理.然而,对高质量训练数据的需求正在放缓深层神经网络的广泛应用.为此,数据增强(DA)成为一种常见的技术,它可以从现有的示例中生成更多标记的 ...

  8. [论文阅读]A Joint Training Dual-MRC Framework for Aspect Based Sentiment Analysis

    摘要 基于方面的情感分析 (ABSA) 涉及三个基本子任务:方面术语提取.观点术语提取和方面级情感分类.早期的工作只专注于单独解决这些子任务之一.最近的一些工作集中在解决两个子任务的组合,例如,提取方 ...

  9. 虚假新闻检测论文阅读(七):A temporal ensembling based semi-supervised ConvNet for the detection of fake news

    论文标题:A temporal ensembling based semi-supervised ConvNet for the detection of fake news articles 日期: ...

最新文章

  1. “区块链”究竟是什么
  2. TensorFlow 调用预训练好的模型—— Python 实现
  3. [ CodeVS冲杯之路 ] P3116
  4. 【转】ABP源码分析二十八:ABP.MemoryDB
  5. King Moves 水题
  6. (4.14)mysql备份还原——mysql物理热备工具之ibbackup
  7. String 和 InputStream 互转方式
  8. 不定期总结程序员常见误区
  9. ACCESS数据库查询
  10. android icon颜色转换工具,Android代码修改图标颜色
  11. Apple_Mail 登录163邮箱账号
  12. 高数-极限-求极限值--两个重要极限(以及拓展公式)
  13. mssql2000连接oracle命令方式
  14. socket网络通信实现与优化
  15. 从木桶理论看自身职业生涯规划
  16. ANTELOPE WASHBASIN | ANTELOPE 洗脸盆
  17. GK110和GK104
  18. 工业相机的曝光方式:全局曝光、卷帘曝光、全局复位释放曝光区别
  19. word2vec思考:word2vec为什么不使用非线性激活函数?
  20. vue 表格格式化时间:formatter没有效果

热门文章

  1. 点燃我温暖你——李峋的爱心代码
  2. 《点燃我温暖你》---爱心代码
  3. There is a cycle in the hierarchy
  4. Tomorrow never knows?(C程序设计进阶第2周)
  5. C#模仿腾讯QQ源码下载(附效果图)_张童瑶的博客
  6. 「干货」用 Vue + Echarts 打造你的专属可视化界面(上)
  7. 机器人主要有哪几部分组成?
  8. javascript按照期望的顺序给对象数组排序,中文汉字大写数字排序
  9. Hexo系列(2) - NexT主题美化与博客功能增强
  10. 【网络编程】一、如何记住OSI七层协议模型,看完还记不住的来打我。