点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”
作者:João Felipe Guedes da Silva
编译:ronghuaiyang
正文共:3946 字 13 图
预计阅读时间:12 分钟
导读
以星巴克的优惠券发放为案例,阐述如何使用MAB(多臂老虎机)进行优惠券发放场景的探索和发现。
多臂老虎机是如何帮助星巴克对客户进行个性化的优惠券发放的
你常常等优惠券来了再购买产品吗?在买了一些不喜欢的东西之后,你是否想要放弃使用这项服务?
优惠券已被广泛用于提高客户在平台的参与度。通过向用户提供挑战和相应的奖励,公司的服务不仅变得更有吸引力,更重要的是,它可以引导用户成为常客,从而增强品牌对客户的影响力。
然而,知道要提供哪张优惠券是一项相当复杂的任务,因为每个客户的属性以及每种优惠券的反应都不一样,经常向他们提供不好的内容可能会使他们远离你的业务。
为了克服这个问题,可以使用机器学习技术来构建数据驱动的客户属性并开发更好的优惠券推荐系统。本文展示了如何在星巴克移动奖励App中使用K-Means聚类结合多臂老虎机来构建优惠券推荐系统。
本文是提交给Udacity的机器学习工程师Nanodegree的capstone项目的成果,源代码在:https://github.com/guejoaofelipe/ml-engineerer-capstone。
所以,废话少说,让我们言归正传吧!
星巴克奖励移动App
每隔一天,星巴克就会向用户发送有时间限制的offer,这些offer都有自己的完成条件和截止日期。每个offer都可以通过多个营销渠道发送(电子邮件、手机、社交媒体和网页),一旦offer挑战完成,客户就会获得与offer难度级别一样高的奖励。
当用户查看活动时,他们可以决定:
完成这个挑战:)
忽略这个挑战,虽然没有优惠券,但仍然会购买
忽略一切:(
以下是几周内App在市场渠道上的流量:
活动发出后,我们根据每个营销渠道进行分析:
该offer没有转化
转化成购买
导致了未来的购买
被忽略了,但用户仍然从App中购买。
在采样的数据集中,100%的发送的offer都被查看过 —— 这很可能是因为offer是通过多个渠道发送的。offer的高查看率带来一个积极的特点,使客户有品牌意识和并在乎公司给他们建议的offer。当这些offer导致购买行为时,可以推断,顾客不仅意识到了品牌的服务,而且也被它所吸引。
然而,相当多的购物是在没有使用优惠券的情况下进行的。这说明,即使使用了适当的营销渠道,商家提供的奖励对用户来说并没有吸引力,这更多的是考虑到产品的特点,而不是营销策略本身。也许使用相同的渠道,通过改变发送的offer(这将是我们的推荐系统的任务),客户会接受活动,并获得奖励。
在漏斗的末端,一个offer可以达成的最重要的任务之一是说服客户进行未来的购买。这可以作为一个代理,让客户成为品牌的倡导者。
当顾客倾向于重复购买一家公司的产品时,他/她很可能会说服他们周围的人去尝试这种产品,从而在市场上产生更大的知名度和可能的吸引力。
请注意,这是手机奖励App的一个相当大的问题,因为111k个活动中只有22.9k导致了未来的购买。
请记住,在发送offer之后,用户参与漏斗的各个步骤所花费的时间与lead status高度相关。lead是指一个潜在的买家,他可以是cold、warm或qualified的。一旦用户查看了该offer,就认为这个用户对某个offer感兴趣,就会被认为是潜在客户。
例如,当客户打开电子邮件发送的offer时,他可能会被标题内容所吸引 —— 因此我们认为他正在“热身”。然而,如果他/她不继续接受邀请,他就会变得对我们的活动越来越冷淡,这意味着他接受邀请的兴趣会逐渐减弱。
理想情况下,用户从查看,参与到完成所花的时间应该很短。以下是我们的数据集消耗时间的分布:
请注意,从查看到完成的时间分布(以小时为单位)大致遵循一个长尾分布。这意味着,大多数购买来自于推送之后offer立刻就完成了。为了分析分布的尾部的长度,我们可以将数据拟合到一个概率分布函数为幂分布的函数中。
参数α越小,尾巴越长。对于我们的数据集,我们在第一个间隔上,α = 10.57,在第二个时间间隔上,α = 7.01。当然,这些间隔受到offer属性的影响很大,例如offer完成的难度和持续的时间,这些属性只在用户查看的时候才会影响这个时间间隔 —— 这就解释了为什么我们的这些活动的尾部较长。
这个市场营销方面的概述可以帮助我们创建一个用户函数,该函数指示向给定的客户提供的offer有多合适:我们将其称为MAB奖励函数,其算法描述如下。
多臂老虎机(MAB)
为了解决老虎机问题,MAB 优化算法在统计领域已经得到了广泛的研究。假设你有一个代理(赌徒),他可以重复地从k台可用的老虎机中选出一个,并可能赢钱。
当赌徒在玩老虎机时,他注意到其中一个似乎给予了更多的回报,因此被引诱去使用那个回报多的老虎机。然而,其他老虎机也可能会给出更多的奖励。在这种情况下,他需要决定是否这样做:
使用那台目前为止最大累积奖励的机器
探索其他可能在长期内带来更多的累积回报的机器
从理论上讲,代理试图估计每台机器的奖励概率分布函数,而不把太多的尝试浪费在那些期望奖励较低的机器上。
在其最简单的数学公式中,MAB中的k台机器各自有一个概率分布p,预期回报μ和方差σ,在最开始的时候,所有这一切都是未知的。然后,在每个epoch t∈[1,t]中,拉下一个老虎机a_i的臂,并收到一个奖励。然后,赌徒遵循一个策略来选择下一个拉哪个老虎机的臂,是迄今为止给出最高回报的那只,还是另一只可能带来更好回报的臂。第T轮的最高收益由下面给出:
其中μ是最好的那个老虎机的期望奖励。换句话说,他需要在探索和利用之间做出取舍。
一些技术已经用来解决这个问题,其中一个是ϵ-greedy方法。在这个经典的方法,每一轮赌徒以概率1-ϵ选择具有最高的经验收益的老虎机,或者以概率ϵ随机选择另外一个。
可以推断出,ϵ这个参数对探索利用的影响进行了权衡。ϵ越高,意味着经验上收益最高的那个老虎机被选中的概率越低,从而导致赌徒探索更多的选择。相反,ϵ越低,算法倾向于选择贪婪的行为即选择历史收益最高的那个。
ϵ-greedy是无数的算法的基础。为了在最初几轮有更多的探索以及之后更多的利用,可以在ϵ-greedy方法中引入β,随着轮数的增加对ϵ进行衰变。在这种情况下,下一轮的ϵ被定义为:
其中,β控制ϵ下降的速度,n是当前的轮数。此外,可以定义一个阈值λ,限制一下最小的探索概率,防止在很多轮之后探索概率衰减过多。
MAB算法已经在许多需要连续决策的应用中得到了应用,比如推荐系统。在这种情况下,MAB用于建模一个消费配置文件,考虑到用户(代理)被提供了几个物品(老虎机),他们可能根据奖励概率分布函数来消费它。
在目前的星巴克奖励项目中,他们建立了一个顾客属性模型,将每一个arm都作为一个offer,并定义了一个个性化的奖励函数来获取用户可获取的优惠券奖励以及营销的成果,后面会讲到。
把MAB应用到星巴克的奖励App中
当将MAB应用于一个问题时,关键的一步是定义它的奖励函数。正如我们所看到的,客户进入营销渠道的深度很大程度上表明了offer的策略有多好。在这个意义上,可以使用以下奖励函数:
这里所有的变量都是二元的,除了offerReward。等式的下界是0,这发生在没有查看offer的情况下(offerCompleted = 0以及futurePurchase = 0)。最好的奖励来自于高offer的奖励,所有的二元变量都是1,包括未来的购买 —— 这是营销策略的圣杯。
一旦我们建立了这个函数,我们可以使用下面的变量创建数据驱动的客户属性:
年龄、收入
订阅后的年数
每个产品的平均mabReward
对用户进行聚类后,每个组都被建模成一个MAB,相当于一个老虎机的臂。下图描述了用MAB训练的20种现实情况的平均奖励的演进:
最后,可以预测用户的聚类类别,并通过从相应的MAB中抽出一个臂来完成对他们的offer的推荐。由于每次迭代只能拉动一个臂,因此自然会产生对产品多样性的关注。那么,在训练阶段offer选择的频率有多高呢?让我们看看下图:
可以看到,在大多数聚类类别中,10个offer中有3个被高概率挑选,这意味着通常推荐的是这30%的组合。这个数字在MAB收敛后受探测率影响较大。当探索程度较低时,模型倾向于只推荐那些已经证明能够提供最高回报的出价。更高的探索率可以为该推荐器系统带来更好的多样性,但这可能会影响模型在使用预测方面的性能。
整理一下
我们已经看到优惠券是如何成为一个强大的用户参与工具,让用户更接近公司的服务。通过定位正确的线索和客户,不仅可以提高转化率,但最重要的是,与他们建立长期的关系。然而,设置成功的目标策略可能需要构建数据驱动的客户属性。这就是公司依靠机器学习的力量来提供个性化建议的地方。
—END—
英文原文:https://towardsdatascience.com/machine-learning-in-coupon-recommendation-2bdae281d840
请长按或扫描二维码关注本公众号
喜欢的话,请给我个好看吧!