我们如何教车与数百万人交谈

X5中的市场营销涉及大量数据。 例如,Pyaterochka每个月发送超过3000万封通信,并且这个数字还在不断增长。 一次可以向一个客户发送多个报价,正确选择哪个报价很重要。 商店的股份应引起客户的兴趣,并应为零售商提供经济上的理由。 在这篇文章中,我们将告诉您如何开始使用机器学习确定真正受欢迎的商品并消除垃圾邮件的影响。



为了改善与Pyaterochka,Perekrestok和Karusel的客户的沟通,X5 Retail Group拥有一支庞大的团队。

现在,维护该系统需要数十个人和系统的工作:在Oracle中准确地积累数据,在SAS中进行数据分析和设置活动,在Comarch中设置奖励规则。 每天,分析师都会根据股票交易结果的历史数据来决定当前如何选择最相关的要约,并从众多选项中进行选择。 我们还致力于确保解决通讯问题,并且与垃圾邮件无关。

我们考虑了如何使用机器学习将选择与客户相关的要约的过程转换为自动模式,以便:

  • 积累有关客户和过去活动的信息
  • 系统本身从新数据中学习
  • 规划是向前迈出的一步

因此,我们来到了自组织系统的实现,并且开始了X5中强化学习系统的开发时代。

关于强化学习的一些知识
* RL(强化学习)是强化学习。 机器学习的一种方法,在该方法中训练测试系统(代理),使其与特定环境交互。

强化学习理论基于两个概念:行为和状态。 基于对象的状态,算法决定动作的选择。 作为完美动作的结果,对象会陷入新的状态,依此类推。



假设:

  • 代理人-客户
  • 行动-与客户沟通
  • 状态-客户端的状态(一组指标)
  • 目标功能-进一步的客户行为(例如,增加收入或响应目标广告系列)

...然后,所描述的系统应解决设定的目标,代理商(客户)自己将选择他们的行动(奖励和活动),以确保他们与商店的舒适和有意义的关系。

RL的世界思维提供了什么
首先,我们寻找开放源代码中描述的解决此类问题的示例。
找到了一些有趣的例子:

关于工具:


关于将RL应用于类似的营销任务:


但是所有这些都不符合我们的情况或没有激发信心。

阶段1.原型解决方案

因此,我们决定发展我们的方法。

为了最大程度地降低风险,并且避免陷入系统长时间不实际使用而最终无法起飞的情况,我们决定从不以纯形式实现RL方法但具有可理解的业务成果的原型开始。

强化学习的基本实现方法的基础是状态-作用-结果矩阵,该矩阵每次从环境中收到新信息时都会更新。

为了减少状态空间,作为原型的一部分,进行了从客户端到网段的过渡,在该网段中,根据参数将所有客户端分为29组:

  • 平均检查
  • 购买频率
  • 篮筐稳定性
  • 篮子灌装
  • 客户忠诚度(购物周数与一个人参加商店忠诚度计划的周数之比)

因此,该任务被简化为学习以下形式的矩阵:



在交点处,矩阵应填充目标函数的值。

在该算法的第一个版本中,根据目标选择对战役的特定响应。

我们用SQL(Oracle)和Python在几周内开发了第一个原型。 我们拥有历史通信数据,因此我们能够用“报价”对的估计权重来部分填充矩阵。 不幸的是,事实证明,对于某些对来说,数据不足。 这并没有阻止我们;我们渴望进行战斗试验。

Pyaterochka市场部委托我们为200万客户提供了为期10周的实验数据。 此时,这些客户已与所有其他通信断开连接。 我们确定了对照组中一半的客户,其余的我们测试了原型。

RL理论告诉我们,我们不仅应该选择最佳的动作,而且还要继续学习。 因此,每次我们测试一小部分客户的随机广告系列时。 因此,其余客户获得了最好的报价(最好的活动)。 因此,我们得到了选择最优报价的ε-贪婪方法的实现。



在系统启动三次之后,很明显,选择最佳响应活动不会导致每个活动的特定RTO有所增加(此指标是衡量任何组织中任何针对性活动的有效性的主要指标)。

通过将目标函数(以及选择最佳广告系列的算法)直接更改为增量RTO,我们了解到,从这一角度来看,最成功的广告系列在ROI方面无利可图。

因此,对于系统的第八次发布,我们第三次更改了目标的功能,现在是在ROI上。

原型开发的结论

以下是主要指标的效果图:

  • 净客户对沟通的反应
  • 增量RTO
  • 边际性







您可能会注意到,到上一次发布时,原型的效率(以增量RTO表示)已经超过了分析师所开展活动的平均结果,并且如果我们仅考虑“最佳”细分和报价,则相差超过一倍。

对于未来,我们为自己得出以下结论:

  1. 提前与KPI业务交谈可能还不够。 商业客户的KPI也在发生变化。 (因此,我们从RTO转到边缘化)。
  2. 间接目标(在我们的例子中为回应)是好的,但是迟早会要求您考虑直接绩效指标。
  3. 细分市场活动中找到了最好的一对,这始终显示出良好的效果。 这些活动已在整个基地启动,并定期产生收入。

总计:

  1. 电路工程
  2. 值得考虑客户的成本(IRTI的胜利并没有确保ROI的增长)
  3. 我想考虑一下回复历史记录
  4. 现在去客户层就不那么恐怖了

第二阶段。我们完成了系统

受第一阶段结果的启发,我们决定完成该系统并进行以下功能改进:

1)从选择要约到部分客户,再到为客户单独选择要约,并用一组指标对其进行描述:

  • 最后报价响应标志
  • 客户的PTO为2周与PTO为6周的比率
  • 上次购买的天数与两次交易之间的平均距离之比
  • 自上次通讯以来的周数
  • 每月使用的奖金数量与每月的RTO数量之比
  • 在前两周内实现目标
  • 对具有不同类型奖励的报价的响应标志
  • 选择不是1,而是选择两个连续的广告系列

2)阐明目标的功能,除了响应之外,还要添加PTO的增长:)。

现在,为客户选择一个单独的报价,我们关注目标函数Q1的期望值:

  • 如果客户对广告系列做出了响应,并且他在此情节中的2周RTO增长了m%,则Q = 1
  • Q = 0,如果客户未对广告系列做出反应,并且他在此情节中的2周RTO增加了m%
  • Q = 0,如果客户对广告系列做出了响应,并且他在该情节中的2周RTO减少了m%
  • Q = -1,如果客户未对广告系列做出反应,并且他在该情节中的2周RTO减少了m%,

现在,第二种方法的试点工作正在紧锣密鼓地进行,但是我们已经超过了以前的结果。

接下来是什么

幸运的是,结果不仅使实施和开发团队满意,也使企业客户满意,因此,在未来,除了功能改进之外,计划创建类似的系统以用于实时和在线营销。

此外,专心的读者会注意到,到目前为止,我们并没有以最纯粹的形式使用RL,而只是使用了其概念。 尽管如此,即使进行了这种简化,我们仍然观察到了积极的结果,现在可以继续进行下去,使我们的算法复杂化。 以我们的例子为例,我们希望激发他人“从简单到复杂”。

版本Habr X5感谢Glowbyte Consulting公司在准备帖子方面的帮助。 该试点由来自Pyaterochka和Glowbyte的六名专家组成的联合团队完成。

顺便说一句,我们正在寻找大数据产品开发经理 ,数据专家 ,分析专家和忠诚度计划经理

Source: https://habr.com/ru/post/zh-CN430112/


All Articles