阅读我们的文章

.

倾向性建模可用于提高与客户沟通的效果,优化广告预算支出。.

Google Analytics data 是一个结构良好的 data 源,可以轻松转化为机器学习就绪的 data 集。.

对历史 data 和技术指标的回溯测试可以让您初步了解模型的性能,而实时测试和业务指标则可以让您确认模型的影响。.

我们的定制机器学习模型在 ROAS(广告支出回报率)方面的表现优于现有基准:在实时测试期间:与基于规则的模型相比,+221%;与现成的机器学习(Google Analytics 会话质量得分)相比,+73%。.

本文以机器学习和市场营销方面的基础知识为前提。.

什么是倾向模型?

倾向模型是 估计客户执行特定操作的可能性. .有几种方法可以用于估算:

  • 购买产品
  • 搅动
  • 退订
  • 等等

在本文中,我们将重点估算在电子商务网站上购买商品的倾向。.

但为什么要估算购买倾向呢?因为它可以调整我们与客户互动的方式。. 举例来说,假设我们有一个非常简单的倾向模型,可以将某一产品的客户分为 “冷”、“暖 ”和 “热 ”三类(“热 ”指购买几率最高的客户,“冷 ”指购买几率最低的客户):

Image

那么,根据这种分类您可以对每个班级做出有针对性的回应. .对于即将购买产品的客户,您可能需要采取不同的营销方式,而对于那些可能连听都没听说过您的产品的客户,您可能需要采取不同的营销方式。此外,如果您的媒体预算有限,您可以将预算重点放在购买可能性高的客户身上,而不要在那些不确定的客户身上花费太多。.

这种基于规则的简单分类方法可以产生很好的结果,通常比没有规则要好,但它有以下缺点 有几个局限性:

  • 很可能 没有利用所有 data 无论是关于客户旅程的更精确信息,还是您的网站或其他 data 信息来源(如客户关系管理 data)。.

  • 虽然 “热 ”客户比 “暖 ”客户更有可能购买,而 “暖 ”客户又比 "冷 "客户更有可能购买,这一点似乎显而易见,但这种方法并没有提供以下具体数据 他们购买的可能性有多大. .热情 “的顾客有机会购买 3% 吗?5%?10% ?
  • 通过简单的规则,您可以获得的等级数量是有限的,这就意味着 限制目标响应的定制程度 可以是.

为了应对这些限制,我们可以使用更多的 data 驱动方法:使用 机器学习 在我们的 data 上 预测购买概率 为每个客户服务。.

了解谷歌分析 data

谷歌分析 分析网络服务 跟踪网站和应用程序的使用情况 data 和流量。.

Image

谷歌分析 data 可以 可轻松导出至大查询 (谷歌云平台全面管理 data 仓库服务),可以通过类似 SQL 的语法进行访问:

Image

请注意,带有 Google Analytics data 的大查询导出表是一个 会话级别的嵌套表:

  • 会议 是特定客户在给定时间范围内所做操作的列表。它们从客户访问页面时开始,在活动 30 分钟后结束。.
  • 每个客户可以有多个会话。.
  • 每个会话可以由多个命中(即事件)组成,每个命中可以有多个属性或自定义指标(这就是表格嵌套的原因,例如,如果要查看命中级别的 data,则需要将表格扁平化)。.
Image

例如,在这个查询中,我们只查看 会话级功能:

ImageImage

在这个查询中,我们使用了 Unnest 函数来查询相同的信息,即 命中率:

ImageImage

有关 GA data 的更多信息,请查阅 文献资料. .请注意,我们的项目是在 GA360 上开发的,因此如果您使用的是最新版本的 GA4,data 模型会有一些细微差别,特别是表格将是事件级的。以下是公开的示例表 GA360 和 GA4 data 可通过 Big Query 查询。.

现在,我们已经获得了原始的 data 数据源,在将我们的表格输入机器学习算法之前,我们需要执行特征工程

设计正确的功能

特征工程步骤的目的是将原始的 Google Analytics data(从大查询中提取)转换为 就绪 用于机器学习.

GA data 的结构非常合理,只需最少的 data 清理步骤。然而,表格中仍存在大量信息,其中许多信息对机器学习并无用处,或者无法按原样使用,因此选择和制作正确的特征非常重要。为此,我们构建了似乎与购买产品最相关的特征。.

我们精心设计了 4 类功能:

Image

请注意,我们是在客户级别计算所有这些功能,这意味着我们要汇总每个客户的多个会话信息(使用 fullVisitorId 字段作为关键字)

一般功能

全球功能包括 数值特征 提供会议的一般信息。.

Image

请注意,跳出率是指客户在会话期间只访问一个网页的 % 次。.

同样重要的是要包括以下方面的信息 事件发生的时间例如:刚刚访问过您网站的客户可能比 3 个月前访问过您网站的客户更有购买欲望。有关此主题的更多信息,您可以查看以下理论 RFM(频率、频率货币价值).

因此,我们增加了一项功能 自上次会议以来的重复性 = 1 / 自上次会议以来的天数 使数值在 0 和 1 之间正常化

最喜爱的功能

我们还希望提供以下信息 关键分类 data 浏览器或设备. .由于该信息是会话级别的,一个客户可能有多个不同的值,因此我们只取每个客户出现最多的一个值(即最喜欢的值)。此外,为了避免分类特征的卡方值过高,我们只保留每个特征中最常见的 5 个值,并用 “其他 ”值代替所有其他值。

Image

产品特点

虽然前两类功能对于帮助我们回答 “客户是否会在我的网站上购买? “客户会购买特定产品吗?. .为了帮助回答这个问题,我们建立了产品特定功能,这些功能只包括我们试图预测购买的产品:

Image

对于 自上次与该产品至少有一次互动以来的时间间隔、, 我们使用与 会议间隔 在一般特征中。然而,我们可能会遇到这样的情况,即与产品至少有一次交互的会话为 0,在这种情况下,我们填写 0。从业务角度来看,这是有道理的,因为我们可能的最高值是 1(即客户从昨天开始有一次会话)。.

类似产品功能

除了研究客户与我们试图预测购买概率的产品之间的互动外,还需要了解客户与以下产品的互动情况 其他功能和价格类似的产品 绝对有用 (即替代产品)。因此,我们增加了一组类似产品特征,这些特征与产品特征完全相同,只是在变量范围中也包含了类似产品。特定产品的类似产品是通过业务输入定义的。.

Image

我们现在有了我们的 dataset 在此基础上,我们可以训练机器学习模型。.

训练模型

因为我们想知道客户是否会购买特定产品,所以这是一个 二元分类问题。.

在第一次迭代中,我们按照以下步骤创建了机器学习 dataset(每个客户 1 行):

  • 计算 在 3 个月的时间窗口内使用会话的特点 为每个客户服务。.
  • 计算 目标是在 3 周时间内使用这些课程 在特征时间窗口之后。如果在时间窗口内至少有一次购买该产品,则 Target 等于 1(定义为类别 1),否则 Target 等于 0(定义为类别 0)
  • 使用 80/20 随机分割法将 data 分为训练集和测试集。.
Image

不过,对 data 的初步探索很快就表明,有一个 强烈的阶层失衡问题:1 类与 0 类的比例超过 1:1000,我们没有足够的 1 类客户。这对机器学习模型来说是个大问题。.

为了解决这些问题,我们对我们的方法做了一些修改:

  • 我们 切换目标变量 从使 购买 到作出 加入购物车. .因此,我们的模型在商业意义上略有损失,但增加 1 类的数量足以弥补。.
  • 我们 在几个移动窗口上对模型进行了训练、,而不是单一的 3 个月 + 3 周。这不仅增加了 data 的数量,还通过在一年中的不同时间段对客户的不同购买行为进行训练,提高了模型的泛化能力。需要注意的是,由于这种情况,同一客户会多次出现在 data 集中(在不同时期)。为了避免 data 泄露,我们要确保他总是出现在训练或测试 data 集中。.
  • 我们 对第 0 类的取样不足,因此第 1 类与第 0 类的比例为 1. .与其他方案(如过度取样或阈值取样)相比,"欠采样 "是解决类别不平衡问题的一个很好的方案。 SMOTE, 因为通过前两次修改,我们已经能够显著提高 1 级的产量。. 只对训练集进行再平衡因为我们希望测试集与未来的 data 具有相同的类别比率。请注意,我们曾测试过更高的比率,如 5 或 10,但在模型评估中,1 是最佳比率。.
Image

我们使用 dataset 测试了多个分类模型:线性模型、随机森林和 XGboost,使用网格搜索对超参数进行微调,最终选择了一个 XGboost 型号.

评估我们的模型

在评估倾向模型时,主要可以进行两种评估:

  • 回溯测试评估
  • 实时测试评估

回溯测试评估

首先,我们进行了 反向测试评估: 我们将模型应用于 过去的历史 data 并检查我们的模型是否能正确识别将执行添加到购物车的客户。由于我们使用的是二元分类器,因此该模型产生的是类别 1(添加到购物车)的概率分数,介于 0 和 1 之间。.
混淆矩阵 并计算 精确度/召回率 (或它们在f1得分).然而,这些简单的衡量标准存在两个问题:

  • 有些可以 难解 因为 dataset 不平衡 (例如,精确度指标通常会很低,因为我们的 1 级指标太少)。
  • 他们需要决定 概率阈值 辨别 0 级和 1 级
Image

因此,我们决定使用两个更加 可解释:

  • PR AUC:精确度与召回率曲线图的曲线下面积(详见本说明).从根本上说,这种度量方法可以让我们得到一个 对每一个可能的临界值进行全局评估。.该指标非常适合不平衡的 dataset,在这种情况下,首要任务是最大限度地提高少数类别(即类别 1)的精确度和召回率(与其表兄弟 ROC AUC 相反)。
  • 提升我们将客户按概率得分进行分类,并将结果分为 20 个通风口。提升的定义是 最高 5% 的 1 级比率/所有 data 组的 1 级比率因此,举例来说,如果我们在 dataset 的前 5 大 % 中有 21 个 % 加入购物车,而在整个 dataset 中只有 3 个 % 加入购物车率,那么我们的提升率为 7,这意味着我们的模型比随机模型有效 7 倍。.

尤其是在这些指标上取得了相当积极的成果、, 提升 当时 13.5.

回溯测试评估是对倾向模型进行首次评估的一种无风险方法,但也有一些局限性:

  • 由于这只是针对过去进行的,因此模型的输出结果实际上并没有用于 影响媒体预算战略。.
  • 在我们的衡量标准中,我们只评估了该模型是否能够正确识别会加入购物车的客户,但没有评估 识别这些客户将如何提升销售额。.

实时测试评估

因此,为了更好地了解我们模型的商业价值,我们需要执行以下操作 现场测试评估。在这里,我们启动了我们的模型,并用它来确定广告预算支出的优先次序:

Image

我们在实时测试中获得的结果非常可靠:

  • 与 基于规则的简单方法 为评价倾向、, 我们模型的 ROAS 为 +221 %
  • 此外,我们还将我们的表现与强有力的竞争者进行了比较,这些竞争者是 Google 会话质量得分:Google 在 Google Analytics dataset 中提供的分数,在这种情况下 我们的模型仍然是 +73 % ROAS。. 这说明定制的 ML 方法可以带来可观的业务价值。.

结论

除了性能稳定外,我们的方法还有一个很大的好处,那就是我们的功能工程非常通用。几乎 无需调整任何特征工程步骤 将我们的模型应用于 不同的国家范围或产品范围. .事实上,在首次成功进行现场测试后,我们能够 以非常高效的方式将我们的模式推广到多个国家和产品。.

感谢您的阅读。我很高兴听到您对这种方法的评论。您建立过倾向模型吗?如果有,您的做法有什么不同?

感谢 Bruce Delattre、Rafaëlle Aygalenq 和 Cédric Ly。.

中号 Blog by Artefact。.

本文最初发表于 Medium.com.
在我们的 Medium Blog 上关注我们!