如何准确的量化活动收益?

blank

如何准确的量化活动收益?

提升模型:为优化行銷活动而进行的易懂的预测

你可能对于用户的预测性响应建模(常见的分类任务,模型为每个类别分配一个概率)了如指掌,但是本文解决的问题可以这样来描述:如果通过行銷方式能够让用户进行购买,那么,购买的"增量"概率如何量化就是本文的核心论题。

备注:XAI:eXplainable AI 可解释人工智能

1. 课程的核心内容

  • 只有构建线性定义概念,提升模型才可以被解释,成为可解释AI模型中的一员
  • SHAP值可用于解释模型的局部性和整体性,也就是说它们可以被概括为估计量重要性和依赖性图
  • 在案例分析中得到的结论:行銷活动应该在最后一次购买的两个月后发送,这样才是最有效的
  • 从以上理论推理和案例分析的基础上总结:可解释AI分析可以帮助创建个性化的行銷活动

5.1 简介

经营企业是一项挑战。因为经营过程需要到做出很多决策,而每个决策以实现利润最大化和降低成本的双重目标,能在两者找到平衡点并不是一个简单的任务,往往人根据经验很难完成。当有机器学习特指本文上升模型,可以帮助提升利润和优化行銷成本。

人们普遍认为,向公司的所有客户发送优惠卷是一个好主意。在利润最大化角度,因为我们会的认为客户购买我们产品的概率会提高--但经常是事与愿违(此事将在后面详细介绍)。事情的另一面是,做大规模的活动的成本是昂贵的。所以,在决策中必须考虑什么是投资回报率(ROI)。

通过发送优惠卷,活动增加了客户购买我们产品的机会,从而扩大了我们的利润,这是真的吗?这个问题很早就已经被研究讨论过,并指出任何公司的客户都可以被分为4组

1

考虑到他们对策略的反馈的客户类型

矩阵是基于客户决定购买产品的事实而创建的,这取决于他们是否被一个行銷活动所涉及。用来触发顾客特定行为的行动被称为策略。在这4个群体中,我们将其区分开来。

  • 可说服者:那些没有收到过行銷活动的顾客不会购买产品,有行銷活动就会买。
  • 忠实粉丝:不管他们是否收到策略行銷,都会购买产品的顾客。
  • 无动于衷:无论他们是否接受过行銷策略,都不会购买产品的顾客。
  • 睡狗:客户没有接触过行銷活动的会购买产品,但如果他们收到行銷报价,他们反而不购买。

由此可以看出,对于 "忠实粉丝"和 "无动于衷"来说,发送行銷优惠卷不会产生任何影响,因此,花钱来锁定这些客户是没有意义的。然而,作为公司,我们应该更多地关注 "可说服者"和 "睡狗"这两个群体。就第一个群体而言,承担行銷活动的成本将带来好处。如果是‘睡狗’,我们不仅要花了钱来行銷他们,而且还将让本来打算买而不买产品,因此,作为一个公司,我们会两个方面的损失。“睡狗"的情况可能看起来不现实,因此我们举个例子。

让我们想象一下,有一个客户订阅了我们的付费通讯。他忘记了他每个月支付固定费用。他将继续支付,除非有公司给他发送折扣优惠。在这个时候,客户意识到他不需要这个产品,于是退订了。

通过了解客户的结构,公司可以更有效地锁定其报价。

5.1.1 上升模型的方法

那么,向特定客户发送优惠卷是否有利可图的问题,可以从两个不同的角度来解决。

  1. 预测性响应建模(这是一个常见的分类任务,模型为每个类别分配一个概率)。
  2. 提升模型(其中购买的"增量"概率被建模)。

后者是为这项特殊任务量身定做的,更具挑战性。总的来说,提升模型是一种概率方法,它有助于确定客户在获得行銷材料后购买产品的概率。这个领域相对较新。最常见的两种方法是。

用两个模型:

在这种方法中,要建立两个分类器。一个是对接受策略的观测值进行训练(称为model_T1),另一个是对没有接受策略的观测值进行训练(称为model_T0)。两个模型训练完之后,计算出特定观测值的提升率。如果一个观察结果经历了策略,那么它作为model_T1的输入,这个客户购买产品的概率就会被预测出来。接下来,我们将研究如果这个特定的顾客没有接受策略会发生什么。在这种情况下,观察特征中的策略指标被改变为"零"。这种修改后的记录是model_T0的输入,该模型预测了特定顾客购买产品的概率。上升值被计算为model_T1和model_T0的输出之间的差异。差额越大,针对这种特定客户的行銷活动就越有利可图。

用一个模型

这种方法在概念上类似于双模型方法,但不同的是,没有建立两个分类器,而只使用了一个分类器。因此,每个观察值都是预测模型的输入。之后,特征中的指标被改变为否定值,这样的向量被用作模型的输入,再次输出客户购买产品的概率。上升值是两个预测概率之间的差异:

由于提升模型是一个新兴的领域,没有一个明确的证据表明使用什么方法更好。

1

5.2 数据集

专门用于提升建模的数据集非常稀少。因此,为了提取有关策略的訊息,有些研究者提出了对现有数据集的人进行修改,但是本文要采用真实数据。由于本故事的目的是研究XAI技术在提升建模领域的应用,我们决定使用真实的数据集。我们选择了Kevin Hillstrom的数据集。该数据集由64000条记录组成,反映了12个月内最后一次购买的客户。作为一种简易的行銷方法,电子邮件行銷活动被采纳了。

  • 1/3的客户被随机选择接收以男装商品为主题的电子邮件活动。
  • 1/3的客户被随机选择接收以女性商品为主题的电子邮件活动。
  • 1/3的顾客被随机选择不接收任何电子邮件活动("对照组")。
    以下行为被确定为一种预期行为。
  • 在向客户发送行銷活动后的2周内,访问公司的网站
  • 在向客户发送行銷活动后的2周内,网站上购买产品。

在行銷活动中,原本的研究目标是确定男性或女性的电子邮件活动是否成功。为了简化问题,我们重新制定了目标--我们把重点放在回答邮件活动是否说服了客户购买产品。

数据集中关于客户的特征在图5.3中具体说明。

1

在数据集中,还有关于客户在发送电子邮件活动后两周内的活动訊息(这些可以被看作为数据标签)。

  • Visit列:1/0指标,1=客户在接下来的两周内访问了网站
  • Conversion列:1/0指标,1=客户在接下来的两周内购买了商品
  • 花费:在接下来的两周内实际花费的美元

5.2.1 解释型数据分析

首先,我们决定研究那些有3个以上水平的变量。同时,这些变量在预测某人是否会购买产品时,直观上似乎是最重要的。

1

1

可以看出,历史变量具有长尾分布,因此,使用Box-Cox变换可能是合理的。然而,我们决定先不对该变量进行任何预处理,以方便解释。

1

在men、wemen和newbie的特征中,0与1的用户比例几乎相等。生活在农村的人的记录比城市或郊区的少得多。大多数公司的客户都是通过电话或网络购买。很少有人使用多渠道选项。在数据集中,大多数客户都是以行銷电子邮件的形式接受策略的。

5.2.2 特征工程

该数据集在很大程度上是不平衡的--在Visit列中只有大约15%的阳性案例,在Conversion列中有9%。在这种尴尬的情况下,我们退而求其次,我们决定使用Visit列作为分类器的目标。由于列的数量较少,因此我们决定使用单次编码来转换分类变量,而不是目标编码。

5.3 模型探索和效果评估

在python中专门用于提升建模的软件包并不多。我们调查了两个:pylift(Yi 和 Frost 2018b)和 pyuplift(Kuchumov 2018)。后者可以使用4种类型的模型--其中一种是双模型方法。在pylift软件包中,有一个生成预测的TransformedOutcome类。然而,该模型本身没有得到很好的描述,并且在后面使用了XGBRegressor方法,这种方式并不直观。幸运的是,该包还提供了UpliftEval类,可以将提升指标可视化。基于此我们决定创建自己的分类器(如同 "一个模型"的方法),并使用pylift包中的UpliftEval类来进行度量评估。在我们的项目中,我们使用了XGBoost分类器。为了优化它的参数,我们将累积增益图下的面积(如下所述)作为评分函数。在图5.6中,我们显示了训练集和测试集的累积增益图。

1

不建议用Qini曲线对提升模型进行性能评估,因为它容易对treatmen标签过度拟合。因此,我们使用累积增益图。它是对提升的最小偏差估计。在pylift软件包中,它是根据公式来实现的。

是治疗组在截止水平上的观察值的数量用1来表示
是对照组在截止水平上的观察数的数量用1来表示
是治疗组的总观察数
是治疗组的总观察数

理论图是根据下面的思路构建的
首先,根据预测的升值幅度,将客户按降序排序。之后,抽取部分数据进行分析(例如,10%的人得分最高)。这个分界线被表示为ϕ,在公式中表示。接下来,对该子集的收益进行验证。在曲线的开始,收益是最大的,因为它指的是 "可说服者"群体。后来,曲线趋于稳定,因为它描述的是"无动于衷"和 "忠实粉丝"这两个群体。到了最后,曲线下降,因为有 "睡狗"群体导致的负增长。

5.3.1 模型

可以看出,我们的模型比随机选择好,但比实际/理论上的最大可能差很多。它也比没有"睡狗"的情况差。与不同领域的提升模型相比,即医疗应用,行銷中的治疗对个人的影响通常较小,因此数据集本身的噪声较大,累积收益也较小。同样值得注意的是,由于特征的数量较少,在数据集中有多种情况下,具有相同特征的两个观测值有不同的答案。这种数据中的噪音也会对得分产生巨大影响,在训练模型时需要谨慎。另外,由于提升本身是一种交互作用,我们的模型确实要考虑到它们。

考虑到之前的观测值,我们使用所谓的局部搜索程序来寻找模型,这意味着我们需要选择模型的一些元参数,并迭代地对每个元参数进行近似优化,对当前值的局部邻域进行采样,并遵循上升的梯度。当在前一次迭代中,我们没有改变任何参数,因此我们遇到了一个局部最小值时,局部搜索就会自然停止。明确地说,如果元参数是离散的,近似的局部邻域意味着只是检查接近的值。对于我们的评分函数,我们选择了累积收益的交叉验证方法。这种方法是为了寻求高度稳健的模型。因此,我们的模型没有过度拟合,所以,它在训练集和测试集上的效果是相似的。由此产生的主要参数是:最大深度为5,高学习率为0.7,12个估计器。

5.3.2 衡量标准的比较

我们试图采用相同的局部搜索程序(如模型部分所述),区别是使用准确性作为评分函数。然而,它未能获得良好的质量收敛,因为这个指标在非平衡的数据集的情况下訊息量要小得多。由于只有少数客户实际购买了产品,使用非过拟合的模型很难正确预测正面案例。因此,在具有准确性作为评分函数的局部搜索中,开始的时候,局部邻域总是平坦的。这可能是因为在数据集中有更多的噪音而不是正案例。但幸运的是,从我们的业务逻辑来看,唯一重要的特征是购买的概率,因为提升是治疗后购买概率的增加,它直接转变成金钱收益。为了简单明了地说明这一点,我们提出了一个表格,比较了我们目前的稳健的XGBoost模型和过拟合的模型(深树:100个)。

1

5.4 解释

累积收益图(图5.6)显示,所提出的模型带来了额外的洞察,毕竟其性能总是高于随机系统。这里就有一个问题,即该模型是否可靠。它是否根据专家视角的重要特征做出判断?这种判断可以用XAI工具来完成。我们决定从实例级和数据集级的角度来研究模型的可解释性。

5.4.1 实例层面

为了解释特定客户的模型输出,我们采用了SHAP值。

在我们开始调查SHAP值之前,让我们了解一下得到最高和最低提升预测的客户。在本节中,我们将分析这些特定情况下的预测可靠性。在表5.2中,已经提供给系统的关于客户的所有訊息。

1

可以看出(表5.2),在过去的12个月里,顾客在我们公司的产品上花费的钱几乎是一样的。提升幅度最大的人最后一次购物是在2个月前,而上升幅度最小的人则是在5个月前。在数据集中,有些人甚至在12个月前就购买了产品,所以,从普遍意义上说,提升率最低的人并不是边缘案例。除了这两个顾客之间的许多其他差异外,最关键是具有最高提升值的人接受了策略干预,而第二个顾客则没有。

下面我们介绍表5.2中描述的顾客的SHAP值。这些值是直接根据提升模型5.7计算出来的。

1

1

可以看出,在这两种情况下,对最终结果贡献最大的是关于客户历史的訊息(大约235美元)和客户购买女性系列产品的事实。有趣的是,客户对这两个属性的价值几乎相同,但其贡献的符号却相反(SHAP值)。

5.4.2 对比差异方法

我们可以从SHAP值的加法特征归属属性中获益,以建立提升模型。
这一特性提供给我们独立评估这两个向量的SHAP值。例如,如果我们使用任何基于树的模型,我们可以利用基于树的内核来估计SHAP值(更快、更好的收敛),而不是直接将其作为黑箱(提升率)模型来建模。

1

在表5.3中,使用两种方法获得的SHAP值的比较,该客户的提升率最低。

1

实验结果证明,这两种计算SHAP值的方法提供了类似的估计,其精确度与数字误差相似。根据不同的方法,有几个特征有一个小的正值或负值。这是由于直接使用提升模型估计SHAP值时,使用了KernelExplainer的事实。随机性的原因是我们采取了观测值的子集,而不是整个数据集,由于算法的复杂性,这种行为在文件中被推荐。另外,KernelExplainer本质上不太精确。然而,我们证明在我们的例子中,这两种方法导致了类似的值。

在通过SHAP值的可加性进行分析的可能性方面,提升模型的特殊性为另一个有价值的检查提供了坚实的基础。下面我们介绍SHAP值是如何根据客户是否接受策略的事实而有所不同。在X轴上,有T=0情况下的SHAP值,在Y轴上有T=1情况下的SHAP值。在每个图表中,有一个SHAP值指的是一个变量。如果SHAP值是相同的,无论有无策略,它们都将位于同一直线上。此外,还有颜色作为第三个维度,表示特定顾客所属的群体。我们决定合并两个组("忠实粉丝"和 "无动于衷"),因为它们的提升值几乎等于零,因此现在我们可以区分3个组:"睡狗"、"可说服的"和 "忠实粉丝与无动于衷"。这种划分是基于预测的上升空间。“睡狗”有相当大的负增长,"忠实粉丝与无动于衷"的增长为[-0.01,0.01]和'可说服者'的升幅大于0.01。“忠实粉丝与无动于衷"这组应该有零的提升,但由于数字问题,我们决定设定ϵ等于0.01。由于几乎所有的客户都被归类为 "可说服者",为了保持图表的可读性,我们决定在图表中只显示这一组的1000条记录。

1

可以看出,"可说服者"略高于和低于基线。

1

在图5.9中,三个客户群是与众不同的。有趣的是,聚类方法的结果是否会类似。

1

我们还调查了二元变量。大多数看起来与图5.9相似,但有一个例外--变量womens。

图5.10中的客户群是重叠的。他们构成了非常同质化的群体。

注意。
在我们的模型中,没有必要应用LIME,因为它的主要优势在于稀疏性,而在只有少数变量的情况下稀疏性就没那么重要了。

5.4.3 数据集层面

为了计算变量的重要性,大多数时候都会使用交换特征重要性方法。不幸的是,在我们的案例中不可能直接使用这种方法,因为前面提到了缺乏完整訊息的问题。我们不知道客户是否会在策略后购买产品,或者他也会在没有策略的情况下购买。因为我们只掌握了历史数据,所以我们只有这两个訊息中的一个。然而,我们可以利用之前计算的SHAP值的提升来计算相同的包络特征重要性值,作为本地SHAP重要性的平均值(以包络方式定义本身,然而,计算得更聪明(Lundberg and Lee 2017))。

1

我们决定不从众所周知的数据集层面而是从子集层面的角度来评估特征重要性。作为子集,我们指的是3个客户群:"睡狗","忠实粉丝与无动于衷"和 "可说服者"。

1

下面我们介绍变量重要性图。特定变量的SHAP值和变量本身之间的相关性用颜色突出。红色表示正相关,蓝色表示负相关。

1

结论。
无论在哪个客户群体中,历史和妇女都是最重要的三个特征之一。对于具有相当大的负升值的观察("睡狗"),历史和女性与它们的SHAP值都有负相关关系。在 "忠实粉丝与无动于衷"的情况下,女性具有正相关,而历史具有负相关。在 "可说服者"中,同样的变量(相当大的正向提升)与SHAP值有正相关关系。相关性随着提升值而逐渐改变。有趣的是,关于邮政编码,只有一个人是否来自农村地区的訊息是重要的。请注意,这类居住地在顾客中是最不受欢迎的。一般来说,关于购买渠道的訊息具有相对较小的预测能力。

5.4.3.1 依存关系图

另一个研究模型的工具是依赖图。有两种选择。最常见的方法是部分依赖图(PDP)/累积局部效应(ALE),另一种是SHAP依赖图。部分依赖图显示了一个或两个特征对机器学习模型的预测结果的边际影响(Friedman 2000)。它告诉人们目标和某个特征之间的关系是线性的、单调的还是更复杂的。在SHAP依赖图中,我们可以显示一个特征值(x轴)是如何影响数据集中每个样本(每个点)的预测(y轴)的(Lundberg等人,2019)。这比传统的Partial Dependence Plot提供了更丰富的訊息,因为我们至少有两个额外的訊息:观测值的密度和方差。

部分依赖性图反映了如果只有一个特征值被改变而其余的保持不变,模型的预期输出。相比之下,一个特征的SHAP值代表了该特征对单个样本预测的影响程度,并考虑到了交互效应。因此,虽然在一般情况下,你会期望在SHAP依赖图和部分依赖图中看到类似的形状,但如果你的模型有多变量的交互效应(如AND或OR),它们会有所不同。PDP没有垂直离散性,因此不能说明交互效应对模型预测的驱动程度(Lundberg 2018)。

由于处理时间较长,我们为所有特征生成了部分依赖性图,而SHAP依赖性图只基于1000个观察值,用于历史和回顾性特征。

1

1

对于我们的模型,SHAP依赖图反映了部分依赖图的形状。在具有相同历史值的人中,历史对最终升值预测的贡献是不同的。可以看出,在历史值为230美元左右时,图表上有一个相当大的峰值。然而,花了这么多钱的人有迥异的SHAP值--有些是正的,有些是负的。这一观察与PDP并不矛盾,因为在PDP的情况下,我们计算的是平均值。请注意,在SHAP依赖图上,我们显示的是1000个样本。

1

1

由于常规只能有12个值中的一个,所以在SHAP依赖图上只能看到12个"聚类"。集群"内的分散性显示了我们数据集中的观察结果有多大差异。

1

令人惊讶的是,图5.16中显示的结果之间的不相称是如此之大。在男装特征的PDP中,线条几乎是平的,这意味着无论某人是否购买了男装系列的产品,提升度的预测值都是一样的。

1

根据图5.17,如果一个人是个新手,那么通过行銷活动鼓励他/她购买产品就比较困难。

1

可以看出,邮编_郊区和邮编_市区的PDP看起来非常相似。它们都有下降的趋势,而邮编_农村的PDP有上升的趋势。在这种情况下,可以看出ALE和PDP有交叉。由于它们并不平行,这意味着模型中存在轻微的互动。

1

当人们使用网络渠道时,可以看到最大的收益是提升。电话_频道的PDP是平的。

5.5 结论

由于部分依赖关系图通常与累积的局部效应平行,我们可以有把握地假设我们的模型没有(主要的)相互作用。然而,这并不意味着我们可以使用一些没有相互作用的分类器,因为在这里我们直接建立了提升的模型,这是预测之间的差异,它本身就是一种相互作用。

5.5.1

这里最重要的观察应该是,虽然乍一看我们只能操纵处理变量,但依赖图也给我们提供了选择联系客户的最佳时间的机会。直观地说,时间函数应该是凹的,目的是在顾客 "刚从商店出来 "和 "忘记这件事 "之间找到一些 "甜蜜点"。图5.15确实是凹形的,但只适用于1到4之间的时间间隔值。对于较大的时间间隔,可以观察到正弦波的噪音。这些波动可以被解释为小的过拟合。关键訊息是,甜蜜点似乎是在最后一次购买后的两个月。

5.5.2 更大的影响

根据图5.16,购买女性产品的顾客比购买男性产品的顾客具有更大的影响力。最初我们从数据集中删除了关于处理类型的訊息(女人/男人的电子邮件)。但根据变量重要性分析(图:5.11,5.12,5.13),我们可以推断出哪种类型的电子邮件能对特定的人产生最大的提升作用。考虑到女性变量的重要性,我们提出了以下政策:在有人购买男装和女装系列的情况下,我们应该发送专门针对女性的邮件。

5.5.3 其他因素的影响

其他的PDPs可以用来更好地理解顾客的说服力。由于唯一大大降低估计提升的变量是新手,我们可以有把握地得出结论,行銷活动对老客户有更好的影响,这是一个很直观的结论。在分析其他因素时,除了邮编_农村、邮编_郊区、邮编_市区之外,单次编码的居住区域(邮编_农村)的影响可能并不大于统计误差。住在乡下的顾客更容易被说服。令人惊讶的是,这是唯一可能有一些互动的因素。关于购买渠道,最好是针对过去几个月里只通过网络购买的客户。这可能与我们的治疗是通过电子邮件进行的事实有关。我们怀疑在某些情况下会发生以下情况:有人通过电话购买,因为他不经常使用互联网。在这种情况下,电子邮件宣传将不会有效。

5.6 总结

使用XAI进行提升建模有助于更好地理解其复杂的模型。这种分析不仅仅是评估模型是否可靠。

5.6.1 个人观点

在我们的任务中,个人视角似乎并不重要。当一个客户给公司写邮件询问他为什么没有收到行銷活动的邮件时,这种情况是非常不可能的。即使他这样做了,他也不会为了收到邮件而改变他的功能,比如居住区。客户比较容易改变的是他的经常性或历史变量的值。

5.6.2 数据科学家的观点

从数据科学家的角度来看,最重要的事情是检查模型是否过拟合。可以帮助验证模型敏感性的工具是部分依赖图。在我们的模型中,可以看出模型略微过拟合,因为历史的PDP上有一个峰值。

5.6.3 执行者视角

XAI技术可以帮助管理人员更好地了解公司的客户行为,而不需要支付一些额外的调查费用来调查他们对公司的态度。主要结论。

  • 活动邮件应该在最后一次购买的两个月后发送,这样才会更有效。
  • 模型中最重要的变量似乎是合理的,例如历史和频率(图:5.11,5.12,5.13)。唯一令人惊讶的是,邮编_农村特征的重要性很高。
  • 在有人从男装和女装系列购买的情况下,我们应该发送专门针对女性的电子邮件。
  • 如果有更多的策略变体,就有可能创建个性化的行銷活动。

我们工作的一个重要部分是调整XAI技术,以适应上睑下垂模型的特点。我们发现,由于SHAP值的可加性,它非常适用于提升模型--我们展示了使用它的两种方法。我们确定了众所周知的互换特征重要性在解释提升模型方面的局限性。这是由于与其他监督模型不同,这里我们没有确切的标签。因此,我们使用了收敛的SHAP值的概括。

在最初的特征工程中,我们通过将女性策略和男性策略合二为一来简化我们的问题。通过分析PDP,我们能够提出一个选择最佳策略。然而,这并不是唯一可能的方法。我们可以尝试超越标准的提升模型,直接用2种可能的结果建立提升模型,即建立购买预测,然后检查发送女性或男性的电子邮件是否更有利可图,从而得出以下公式。

1

其中。
w_T是专门针对女性的治疗
m_T是专门针对男性的治疗

然而,这给我们留下了几个开放性的问题,即:我们现在可以使用之前提出的有效技术(基于可加性)来隐式计算SHAP值吗?当然,最大函数打破了提升函数的可加性,但也许使用其他方法也是可能的?

What do you think?

Written by marketer

blank

云中鹤数字化转型解决保险行业传统营销痛点

blank

营销中子母卡的病毒式裂变倍增模式