强化学习如何帮助零售商

介绍



你好!我们的Glowbyte Advanced Analytics团队为应用行业(零售,银行,电信等)开发ML解决方案。许多任务需要非标准解决方案。其中之一是使用强化学习(RL)来优化客户沟通链,我们决定在本文中专门介绍它。 我们将文章分为三个部分:通信链优化问题简介;RL简介;在第三块中,我们将1和2合并在一起。







图片



优化通讯链的任务



首先,一个小的词汇表:



CRM-客户关系管理系统。通常,它包括积累和分析客户知识的过程,该过程用于提高销售和服务水平。



客户是使用组织服务的人。



客户属性-关于客户的累积知识。例子:



  • 平均检查;
  • 每月平均购买频率;
  • 年龄;
  • 居住地区。


Marketing Campaign \ Communication \ Offer-客户从组织收到的促销优惠。例子:



  • 您已获得XXX点,有时间花费最多YYY;
  • 为您提供YYY品牌产品的XXX折扣。


沟通链是一系列营销活动。



忠诚度计划是一组旨在提高客户价值的营销活动。一个典型的例子是打折卡。



聚集客户-将客户分为多个组,在这些组内,客户在消费者行为上彼此相似。



推荐系统是根据业务价值为客户生成最佳报价的系统。



LTV(终生价值) -客户在与他合作的整个期间的预期利润。



人们认为,在开发忠诚度计划时,分析师的主要任务是创建一个一流的推荐系统,该系统了解客户在给定时间需要什么,何时以及以什么数量。这当然很重要,甚至可以带来一些利润,但这不是关键的业务任务。任何组织首先都希望养成客户使用其服务的习惯。理想的客户是专门使用该组织的服务,带来稳定利润,向朋友推荐服务的客户,同时又需要将业务成本降至最低。不能立即获得客户忠诚度,并且组织的工作是以最有效的方式引导客户从首次订购到定期购买。



例如,假设有一个学校团体,老师不仅需要解释规则或算法,而且对他来说,向学生灌输对学习或学科的热爱也很重要。一位经验丰富的老师知道学习过程并不总是那么愉快,有时甚至会给双方带来痛苦,但最终结果很重要。考虑到许多个人因素,老师对每个学生都有自己的方法。



与小型学校团体不同,一个组织可以拥有数以千万计的客户,每个客户都需要被提拔。为此,仅仅猜测一次愿望是不够的。显然,这超出了人的能力。



那么,我们的介绍性注释是什么:



  1. — (, LTV ). , , ;
  2. , , .;
  3. , , ;
  4. , , .1. , ( .2). , .


我们针对此问题的解决方案基于强化学习(或强化学习)的概念。在继续介绍我们的方法之前,我们已经准备了对理论的一个简短考察。



强化学习。介绍



这是什么,为什么?



强化学习的任务是形成一种用于与特定环境进行交互以获得理想结果的最佳算法。



使用RL的一个例子是找到摆脱迷宫的方法。最初,对迷宫一无所知。通过检查不同的选项,该算法将学习找到出口的最短路径。



图片



从ML的角度来看,RL有什么特点?



强化学习是一类单独的机器学习算法。通常,最初缺少有关环境的信息,换句话说,没有带标签的培训示例。



RL的独特之处在于您可以尝试不同的操作,得出有关其成功的结论,积累所获得的知识并将其用于下一个选择。如此多次。RL的主要区别之一是迭代学习过程,其中算法独立地探索环境。



RL与所有选项的随机枚举有何不同?



首先,借助经典(不使用深层网络)RL,您可以使枚​​举顺序有效。RL的基本原理之一是探索,它与知识的开发交替出现。换句话说,没有什么可以阻止我们将模型的应用程序和测试相结合,主要是保持平衡。



其次,并非在所有任务中都可以整理出所有现有情况。在这些情况下,先进的RL算法可以将积累的知识推广到新情况。但是,即使在这种情况下,联合测试和应用的想法仍然存在。



与环境交互的最佳算法是什么意思?



即时获胜并不总是能保证长期成功。



例如,在国际象棋游戏中,捕获对手的棋子可能导致更昂贵的损失。



但是,选择一个特定的动作,我们可以假设我们将等待下一步。反过来,在下一步中,您可以假设接下来会发生什么。等等。在选择下一个动作时,可以考虑所有这些知识。因此,建立了行为策略。



在哪里使用?



在游戏中。此外,在教学机器人,谈判机器人和推荐系统方面也取得了成功。一些有趣的参考:





在深入探讨术语的细节之前,我们提供一些示例来清楚地说明RL的一些概念特征。



初学者示例



传统上,让我们从多臂匪徒开始。



考虑带有N个手柄的老虎机。一次只能抬起机器的一个手柄。



目标:确定带来最大回报的动作(即手柄)。



解决方案:我们可以多次拉动每个手柄。然后,作为“最佳操作”,我们选择平均收益最高的句柄。



如果将来我们一直选择最佳行动,那么这种策略将被称为贪婪



显然,这样的策略仅在固定的环境中有效(即,随时间变化的环境)。在非平稳环境中(例如,有人不时更改机器的设置),使用贪婪策略时,将不会获得最佳结果。



除了贪婪策略外,还有其他方法:



  • ε-贪心策略ϵ我们选择最佳行动的案例百分比 (1ϵ)%-随机;
  • 可信度上限(UCB)策略:选择一个动作时,将使用一个加权因子,其权重取决于事件测试的程度(即,对事件的研究越少,选择该动作的可能性就越高);
  • Softmax:预期收益越大,选择此操作的可能性越高。


多臂匪徒问题是最简单问题的一个示例,其中最初我们对观察对象一无所知,也就是说,我们学会了从头开始与之互动。解决这个问题的方法是基于反复试验方法(非常重要),随着我们积累经验,我们的行动将越来越成功。



我们从示例中学到了什么:



  • 反复试验也是一种方法。
  • 通过使用不同的策略变体可以使随机枚举更加有效。
  • 分开的固定和非固定环境。


中级例子



现在,我们可以使任务复杂一些,并以一个杆为例:



图片



带杆的滑架可以“向左”和“向右”移动。



目的:您需要学习如何尽可能长地将杆保持直立位置。



与上一个任务的区别:现在有必要考虑其他参数:倾斜角度(a) 和杆速度 (v)并根据此信息做出决定。



任务似乎更复杂,因为组合(a;v)尝试很多次都行不通。



任何组合(a;v)称为国家状态的数量可以是连续的也可以是有限的。有限状态算法通常更易于实现。



事实证明,状态是系统某些参数的集合。RL理论中有一个重要的假设,即该组参数应完全描述系统的状态。也就是说,对我们来说,前一步中系统发生了什么无关紧要,这对我们在给定的时间点观察到的东西很重要。



我们从示例中学到了什么:



  • 选择最佳操作时,必须考虑系统状态。状态数会影响算法的复杂度;
  • 描述系统状态的参数应在当前时间提供有关系统的完整信息。


进阶范例



现在让我们看一下国际象棋的游戏。



棋子在板上可能的位置数量用52位数字表示。这不是唯一的困难。与前两个任务的区别在于,对于国际象棋来说,重要的是不要选择现在会带来最大结果的动作,而要选择将来会取得胜利的动作(经过许多步骤)。



我们从示例中学到了什么:



  • 做出决定时,请考虑长期影响,而不是直接收益。


现在,通过示例,我们将定义普遍接受的术语RL。



基本RL术语



代理是与环境互动,执行某些操作,从中接收反馈并记住它的主体。



  • 例如,用杆驱动滑架的电动机;多臂匪是代理商。


环境-代理存在的地方,代理从那里接收反馈。



代理从环境接收的反馈通常具有一定的不确定性。



  • 例如,当带有杆的滑架运动时,所采取的动作的反馈是杆是否掉落的结果。马车和酒吧-中。


陈述-任何有助于做出决定的知识。州指的是环境,并在每个时刻都对其进行唯一定义。通常,这些状态被写为一组参数,矩阵或更高阶张量。



  • 例如,棋子上棋子的当前位置是一种状态。


操作-代理可用的操作。通常,空间中的动作数是有限的。

  • 例如,向右或向左移动条是动作。


奖励-座席收到的针对操作的即时反馈。也就是说,这是所采取措施的结果。奖励永远是数字。



  • 例如,在多臂匪徒问题中赢得自动机就是一种奖励。


目标-通常,代理的目标是使总奖励最大化。换句话说,最终目标是最大化奖励而不是当前步骤,而是根据步骤序列的结果获得最终奖励。



  • 例如,我们的目标不是一次握住枢轴,而是尽可能地握住枢轴。


策略-将状态映射为行动。例如,在状态S下选择动作A的概率。



正式问题陈述



  1. 在每一步中,环境都可以处于 sS...
  2. 在每个步骤,代理都会从一组可用的操作中选择一个操作 aA 根据某种策略π。
  3. 环境告诉代理商什么是奖励 r 他收到了它,在什么情况下收到了 sS 之后,事实证明。
  4. 代理调整策略π。


一切似乎都很简单。有一个未解决的问题-神秘策略π来自何处,即代理人如何在每个步骤中做出决定。



由于在本文的最后部分将提出基于Q学习的解决方案,因此我们将仅专注于表格方法。



RL表格算法



RL的一些基本方法是表格方法,用于状态和动作集有限的任务。这种方法的一个特征是使用State-Action表。行通常是延迟状态,列是动作。单元格包含值函数的值。



图片



Q(si;aj) -行动的价值 aj 能够 si... 粗略地说,这是我们选择一项行动将获得的预期利益。aj能够 si... 第一步,值Q(si;aj)例如,用零初始化。



对于迷宫示例,初始的State-Action表可能如下所示:



图片



在这里,状态是座席所在的位置(迷宫单元)。执行任何操作后,我们的代理会更改其状态并获得奖励。在此任务中,奖励可以如下:



  • 1,如果物体找到了迷宫的出路;
  • 否则为0。


此外,在代理收到环境的实际反馈后,该值 Q(si;aj)更正的。校正算法是不同的,例如,蒙特卡洛方法,SARSA,Q学习。在此处此处阅读有关它们的更多信息



例如,Q学习和SARSA公式乍一看看起来非常相似:



图片



两种方法在下一步中都使用动作的期望值。它的接收非常简单:假设代理处于状态si 并执行动作 aj... 然后,环境通知代理人,由于其行为,他收到了奖励ri 和新情况 sk... 使用“状态-操作”表,您可以找到具有状态的行sk并确定此操作或该操作将带来什么价值。



区别在于在Q学习中Q(sk;a)在新状态下始终是最大值。在SARSA方法中,假定代理在状态下模拟了操作选择sk例如,根据ε-greedy或UCB策略。使用贪婪策略时,这些方法是等效的。



这种算法的缺点是需要存储State-Action表。某些任务可能具有较大的状态和操作空间,这使得无法使用经典表方法。在这种情况下,使用方法来近似值Q(si;aj)使用神经网络。



动态编程可以替代表方法。我们将不讨论这些算法,但建议阅读R. S. Sutton和E. G. Barto撰写的《强化学习》一书



在这里,我们完成了理论,然后讨论了如何在应用任务中使用强化学习。



使用强化学习找到最佳的客户激励策略



商业方面的问题陈述



开发我们的方法的约束:



  • 解决方案必须灵活应对与客户之间的通信策略的限制;
  • 要优化的功能必须由业务目标驱动,并且可能比简单的响应更复杂;
  • 该系统应在不涉及专家的情况下自动适应客户行为的变化;
  • ( , , , );
  • .


RL



因此,“

代理和环境”是一个忠诚度计划系统,可向客户发送营销计划书和客户自己的通讯。



状态是客户端的状态,以客户端属性为特征。



动作是营销要约(例如,“从购买Y中减去X%”)。假定提案清单是固定的且有限的。



奖励是改变客户行为的某种功能(例如,增加收入或响应目标营销活动)。



图片



解决方法



现在,让我们看看使用强化学习表格方法的可能解决方案。



使用Q-Learning或Sarsa的求解算法可以如下:



1.定义客户状态



可以使用客户端属性指定客户端状态。这些属性大多数都是实数,因此在使用表格方法之前,应将属性离散化以获得有限的状态集。



在我们的解决方案中,我们使用基于选定属性作为客户端状态对客户端基础进行群集而获得的群集。聚类的数量影响算法学习的速度。一般建议如下:



  • 为了能够管理从一个集群到另一个集群的客户流,属性列表必须包括在可用性和对市场报价的反应的影响下可以更改的属性列表;
  • 在每个群集中,客户端的行为必须相同;
  • 应该定期更新属性;
  • 在每个群集中,客户端的数量必须高于既定的最低数量(例如,该最低数量可能是由于对最低客户端数量的限制,才能使结果有意义)


2.奖励的选择



奖励的选择是系统开发中最重要的阶段。对于此任务,奖励可以表征运动的成功。例如,可能的选项是:



  • 每个报价的转换;
  • 增加对报价的响应;
  • 每个广告系列参与者的特定收入;
  • 考虑到成本的特定利润;
  • ...


回到增加客户忠诚度的问题,目标度量可以是LTV或客户对忠诚度细分的接近度。



无论如何,奖励的选择应符合营销目标。



PS某些提议的薪酬选项是由一组客户计算得出的(例如,对报价的响应增加是目标组的响应减去对照组的响应)。在这种情况下,说我们选择的不是针对客户的操作,而是针对一组客户(处于相同状态)的操作,在该操作中计算奖励是正确的。



3.可能采取的行动的选择



行动是可以发送给客户的营销建议。选择要在系统中使用的营销活动时,请记住:



  • 营销建议在发布之间不应更改;
  • 句子数量的选择会影响算法的学习速度;
  • 当所有广告系列都不适合该州时应考虑一种情况(例如,所有报价变体都带来负收入)在这种情况下,动作之一可以是“默认广告系列”。这可以是可以发送给所有客户的一些基本邮件列表,也可以是不提供要约的(即,不向客户发送任何东西更有利可图)。


4.设计受约束的选择算法



设计算法时,应考虑:



  1. (, iphone, iphone).
  2. , .
  3. .
  4. Q-learning SARSA . , , .
  5. , ( ) -.


5.初始化国家行动表



最初,“国家行动”表如下所示:



图片



如果没有针对选定战役的历史启动,则可以进一步启动系统,这是该概念的重要优势。



但是,如果有一定的历史记录,则可以使用它,即可以对State-Action表进行追溯式预训练:



  1. 用零初始化状态动作表
  2. 以活动X的历史启动为例。计算启动时和活动结束时参与活动的客户的状态。计算在每种状态下获得的奖励。
  3. 根据Q学习或SARSA的公式,在下一次启动时考虑运动值的期望值来重新计算State-Action表。


6.在试射中训练算法



我们系统的目标是学习如何为整个客户群选择最佳报价。但是,在测试系统的阶段,我们建议对一小部分具有代表性的客户样本进行试点启动。



在此阶段需要注意的是:



  1. State-Action表中值的变化:随着历史的累积,State-Action表中的值应变得越来越稳定;
  2. 活动效果的积极变化:从启动到启动,每个营销建议的有效性都应提高。


只要(1)和(2)达到稳定状态,我们就可以假定该系统已准备好推广到整个客户群。



7.展开系统



在开始部署系统之前,建议在每个客户状态的背景下分析活动结果的可持续性。正如实践所示,尽管总体上是稳定的,但是在某些州中,历史记录可能不够,或者状态本身在时间上可能不稳定=>我们得出的结果不稳定。



因此,我们提出了以下滚动建议:



  • 从滚动中排除不稳定的条件;
  • 使用ε贪心策略,以便系统可以独立调整以适应客户群行为的变化;
  • 继续定期监视系统性能。


因此,在本文中,我们试图描述该方法的高级概念。在此可以找到基于所提出算法的系统运行结果



结论



我们已经描述了使用RL解决选择最佳行动链的问题。但是,应该提到的是,类似的概念也可以应用于其他营销任务,例如,推荐系统,选择最佳的沟通渠道/时间或在站点上选择个人横幅。尽管事实上强化学习的流行度不如传统的机器学习方法,但我们仍想向读者传达,如果需要维持自动系统再培训或从头开始全面培训系统,则RL是一个很好的解决方案。



GlowByte团队要感谢X5 Retail Group实施此案的机会。



All Articles