本文是由 4 篇文章组成的系列文章中的第 1 篇。该系列文章讨论如何使用 Google Cloud 上的 AI 平台 (AI Platform) 来预测客户生命周期价值 (CLV)。
本系列文章包含以下内容:
- 第 1 篇:简介(本文)。介绍客户生命周期价值 (CLV) 以及用于预测 CLV 的两种建模方法。
- 第 2 篇:训练模型。 介绍如何准备数据和训练模型。
- 第 3 篇:部署到生产系统。介绍了如何将第 2 篇所述的模型部署到生产系统。
- 第 4 篇:使用 AutoML Tables。 介绍如何使用 AutoML Tables 构建和部署模型。
概览
有许多广告主会想方设法地针对个人或类似用户群体定制广告,但他们的营销对象有时并不是那部分最具价值的客户。 在谈及销售问题时,人们经常会提到帕累托法则。该法则预测您 80% 的销售额是由 20% 的客户贡献的。如果您能够准确锁定以前以及未来这 20% 的客户,会怎么样呢?有一种方法可以帮助您确定这部分客户,那便是预测客户生命周期价值 (CLV)。
本系列文章的目标如下:
- 介绍 CLV 建模概念。
- 比较两种 CLV 建模方法。
- 说明如何在 Google Cloud 上实现 CLV 模型。
该解决方案比较了两种不同的 CLV 建模方法(概率模型和机器学习 (ML) 模型),分别实现了这两种建模方法,并展示了对公共数据集应用每个模型所产生的结果。本系列文章主要介绍如何在 Google Cloud 上实现建模系统。
何时使用此方法
您可以使用 CLV 模型来回答关于客户的以下类型的问题:
- 购买数量:客户在未来的特定时间范围内会购买多少商品?
- 生命周期:经过多长时间后,客户会永远不再与您互动?
- 消费金额:客户在未来的特定时间范围内会消费多少金额?
在预测未来的生命周期价值时,会涉及到下面两个不同的问题,这两个问题需要使用不同的数据和建模策略来分别对待:
- 预测具有已知交易记录的现有客户的未来价值。
- 预测刚刚完成首次购买的新客户的未来价值。
本系列文章侧重于第一个问题。
许多公司仅通过参考总消费金额来预测 CLV,而不去了解具体情况。举例来说,下了一笔大订单的客户可能不如另一位多次购买但消费金额较少的客户更具价值。CLV 建模可帮助您更好地了解客户的购买情况,并可帮助您更准确地评估您的业务。
在通过本系列文章所介绍的方法预测客户的价值后,您可以重点考虑接下来的举措,例如:
- 决定在广告上投入多少资金。
- 决定针对哪些客户投放广告。
- 就如何将客户从一个细分群组转移到另一个细分群组,制定相关计划。
本系列文章所介绍的模型不适合可以直接观察和衡量客户流失情况的企业。例如,您不应向基于订阅、客户账号或合约(这些合约可能会被取消)的企业应用这些模型。本系列文章中的模型假设用户可以随意与企业互动,例如在网店中,用户可以随时购买商品。此外,本系列文章所介绍的模型最适合预测至少具有适量交易记录的现有客户的未来价值。
CLV 概念:RFM
CLV 模型的三项重要输入为“最近一次消费”、“消费频率”和“消费金额”:
- 最近一次消费:客户上次下单是在什么时候?
- 消费频率:客户每隔多久消费一次?
- 消费金额:客户的消费金额是多少?
下图显示了四位客户在过去一段时间内的一系列消费情况。
该图表示的是客户的 RFM 值,展示了每个客户在以下各个方面的表现:
- 上次消费时间:上次消费距离今的时间,以最右边的圆与标记为 Now(现在)的垂直虚线之间的距离表示。
- 消费频率:两次相邻消费间隔的时间,以每条线上两个圆之间的距离表示。
- 消费数额:每次消费的金额,以圆的大小表示。此数额可以是平均订单价值,也可以是客户订购的商品数量。
在本系列中使用的模型中,仅历史销售数据用于计算 CLV。RFM 价值输入根据每个客户的交易记录计算得出。
CLV 的两种建模方法
如上文所述,本系列文章比较了两种用于计算 CLV 的方法:
- 概率模型。这种模型的原理是将概率分布与观察到的客户 RFM 值进行拟合。这种模型基于每个客户的交易记录所定义的购买行为。此类数据足以提取 RFM 值。
- 机器学习模型。这种模型用途广泛,属于统计模型类别,通过随机梯度下降法训练将参数与数据拟合。机器学习模型可以使用的特征多于概率模型。在本系列文章中,我们使用了一种常用的机器学习模型,即深度神经网络 (DNN) 模型。我们还展示了如何使用 AutoML Tables 来自动创建机器学习模型。
对于概率模型,该解决方案使用的是现有 Lifetimes 库,该库依赖于 Pandas DataFrame。 您可以在 TensorFlow 中构建一个等效的库来执行与该 Lifetimes 库相同的任务。
概率模型
概率模型会使用从订单交易列表计算得出的 RFM 值。每笔交易包含客户 ID、订单日期和订单价值。不同的模型适合针对不同的客户关系进行建模。 本系列文章的第 2 篇介绍了如何使用 Lifetimes 库中提供的以下模型:
- 帕累托/负二项分布 (NBD) 模型
- 贝塔-几何分布 (BG/NBD) 模型
帕累托/NBD
帕累托/NBD 模型最初是由 Schmittlein 等人开发的。此模型适用于客户可能随时购买商品的非合约类消费情况。该模型使用了四个参数来说明客户购买商品的频率以及经过多长时间后不再消费。使用该模型时,您可以优化这些参数,以便它们能够与一组 RFM 数据实现最佳拟合。
BG/NBD
帕累托/NBD 模型已得到广泛应用,但实现起来颇具挑战性,因为估算参数需要进行大量计算。为了解决这些问题,Fader 和 Hardie 开发了 BG/NBD 模型。 与帕累托/NBD 模型一样,BG/NBD 模型同样适用于非合约类消费,即客户可以随时购买商品。BG/NBD 模型也使用了四个参数来说明购买商品的客户比例以及终止消费的客户比例。但是,BG/NBD 模型比帕累托/NBD 模型更容易实现,并且运行速度更快。这两种模型所得出的结果大致相同。
使用概率模型计算 CLV
使用概率模型需要执行多个步骤。模型中的代码会执行以下任务:
- 预处理交易数据以计算 RFM 值。
- 使用 Lifetimes 模块优化帕累托/NBD 或 BG/NBD 模型的参数,以拟合 RFM 数据。
- 计算每个客户的消费数额预测值。
针对消费金额创建模型较为复杂,因为许多参数(例如随时间而变化的商品价格)无法仅由交易数据来表示。这种概率方法假设消费金额遵循伽马-伽马分布。Lifetimes 库中的代码包含一种伽马-伽马分布方法。如果具备拟合的概率模型,您可以使用该方法来计算 CLV。在本系列文章的第 2 篇中,您可以详细了解如何使用 Lifetimes 库来生成 CLV 预测。
机器学习模型
机器学习模型是概率模型的出色替代方案。本系列文章介绍了 DNN 的用法,您可以使用 Estimator
接口在 TensorFlow 中实现 DNN。
该解决方案使用了两种方法来改善 DNN 的性能:
批量归一化,其优点如下:
- 对特征中的数值进行归一化和去相关处理。 批量归一化功能会执行此步骤,而无需您来完成。
- 最大限度地降低因权重随时间发生变化而产生的影响,权重变化会影响每项特征的重要性。
学习速率衰减,即学习速率会随着时间的推移而呈指数级下降,当学习速率接近最小值时,可以防止损失出现波动。
本系列文章介绍了在 TensorFlow 中实现的两种 DNN:
- 预设 Estimator DNN。TensorFlow 包括符合
Estimator
接口的预实现 DNN 模型。本系列文章的示例代码包括基于预实现DNNRegressor
的模型。 - 自定义 Estimator DNN。通过使用自定义
Estimator
,您可以更加灵活地在模型中添加高级方法。示例代码中的自定义Estimator
实现与学习速率衰减和批量归一化相结合,展示出了这种灵活性。
DNN 的一项优点是它们可以包含许多特征。因此,其质量往往取决于特征工程。在本系列文章第 2 篇的数据准备部分,我们介绍了如何根据潜在大型数据集的可用输入来创建特征。
后续步骤
阅读本系列文章的后面几篇,其中介绍了如何实现 CLV 预测:
- 第 2 篇:训练模型。
- 第 3 篇:部署到生产系统。
- 第 4 篇:为模型使用 AutoML Tables。
- 了解其他预测解决方案。
- 探索有关 Google Cloud 的参考架构、图表和最佳实践。查看我们的 Cloud Architecture Center。