1. 论文背景
Dynamic Pricing on E-Commerce Platform with Deep Reinforcement Learning是阿里巴巴2019年发表的论文,提出了一个端到端的框架、采用深度强化学习的方法在电子商务平台上实现动态定价问题。
2. 核心框架
本文提出了一个端到端的框架来解决基于深度强化学习(DRL)的方法在电子商务平台上的动态定价问题。通过使用四组不同的业务数据来表示每个时间段的状态,将动态定价问题建模为马尔可夫决策过程(MDP)。
与最先进的基于DRL的动态定价算法相比,文中提到的方法有以下三个贡献。
(1)将离散集问题推广到连续价格集。
(2)没有直接使用收入(revenue)作为奖励函数,而是定义了一个名为收入转化率差异(DRCR)的新函数。
(3)使用挑选的历史销售数据进行预训练和评估解决MDP的冷启动问题。
本文通过使用阿里巴巴真实数据集的离线评估方法和在阿里巴巴旗下的主要在线购物网站Tmall.com的在线实地实验进行评估。
实验结果表明,DRCR是一个比收入更合适的奖励函数。最后,在1000个库存单位的产品上持续数月的现场实验表明,连续价格集比离散价格集具有更好的性能,并且表明本文方法显著优于操作专家的人工定价。
3. 方法介绍
本文首先将动态定价问题表示为马尔可夫决策过程(MDP)。Agent在观察环境状态后,会根据自己的行动(action)定期改变产品价格。然后可以观察新的环境状态,获得奖励。如果产品缺货,每个定价事件都会结束。
该模型由历史销售数据和先前专家的定价行为对Agent进行预训练和评估,之后Agent做出相应的定价动作(Pricing Action),Market Environmentg会反馈给Agent相应的奖励(Reward)和下一个状态(Observation)。具体框架如下图所示。
3.1 问题描述
本文主要考虑电子商务平台的两种动态定价应用,即降价定价和日常定价。
对于降价定价和日常定价,分别定义n个产品标签为
i
=
1
,
2
,
.
.
.
,
n
i=1,2,...,n
i=1,2,...,n。定价过程表示为马尔可夫决策过程(MDP),价格修改或保持不变都在离散的时间步长
t
=
1
,
2
,
.
.
.
,
T
t=1,2,...,T
t=1,2,...,T下,两个时间步长之间的距离由超参数d定义。
对于降价定价,供应是有限的,因此如果某个产品缺货,其定价过程也就结束了。对于日常定价应用,供应被视为无限的。
直观地说,希望有一个小d来使定价行为及时反应或归档连续定价。然而,精确描述环境的变化可能需要一定的观察时间。价格的快速变化也可能破坏产品的价格形象,甚至导致电子商务平台的信用问题。本文中定价期d定为一天,因此时间步长t代表第t天。
State space:每个产品 i 都是单独定价的,在时间步长 t 有四组不同的特性来描述状态 s i , t s_{i,t} si,t:价格特性、销售特性、客户流量特性和竞争力特性。
价格特征包含该产品的实际付款、折扣率、优惠券等。销售特征包含销量、收入等。客户流量特征包括产品 i 页面被浏览的时间、浏览产品的独特访客数量(UV)、产品I的购买者数量等。类似产品的评论和状态有助于提高竞争力。
Action space:为每个产品 i 定义了动作空间。我们用历史上一定时期内产品 i 的最大价格 P i , m a x P_{i,max} Pi,max, P i , m i n P_{i,min} Pi,min来定义上界和下界。它假设定价框架不应该输出这个领域的价格。对于不同的应用,定价空间可以是离散的或连续的。
对于离散的动作空间,定价空间被从 P i , m i n P_{i,min} Pi,min, P i , m a x P_{i,max} Pi,max中的K个分割区域,作为K个离散的动作。
Reward function:
将收入与收入转换率进行了比较,定义即时回报 r i , t r_{i,t} ri,t。
收入转化率(revenue conversion rate)比收入(revenue)本身更凹。在实际实验下:
1)大部分降价产品是低销量奢侈品,对价格的收入转化率低但敏感时,使用收入转化率作为奖励函数在降价定价应用中效果很好;
2)这些产品的收入转化率相对稳定;
3)有一个非常清晰准确的决定了定价过程的长度,总的贴现收益转化率是有限的。
然而,对于日用品FMCGs的平均销量远高于奢侈品,收入转化率非常不稳定。在这种情况下,尽管价格和收入之间有关系,转化率可能不会保持稳定,本文针对两种不同产品的调查显示了这种现象,展示它们的价格水平随90天收入转化率的变化趋势,如下图所示:
对于奢侈品,当价格下降时,收入转化率会上升,尤其是在第25、45、65和85天左右。然而,对于(b)中的日用品FMCGs,没有这种关系,但收入转化率随着个别频率而波动。在此期间,奢侈品和FMCGs的价格水平与收入转化率之间的相关系数分别为-0.57和0.15。因此,如果将收入转化率作为Reward function,模型的收敛性无法保证。本文定义了一个不同的Reward function,利用收入转化率(DRCR)的差异:
其中,τ表示比较收入转化率的时间长度。这样定义的意义是:如果Agent通过定价动作相对提高收入转化率的话,就给Agent一个正向的信号。
实验表明,这种奖励函数的定义解决了FMCGs日常销售中的收敛问题,同时也可以很好地解决降价定价问题。
3.2 定价动作模型
对于离散的定价动作模型:如果K太小,在一个大的定价区域内不同的价格将被视为Agent的相同价格动作。作为奖励,离散模型产生的动作会是一个很大的定价区域,使得策略不精确。
另一方面,如果K太大,很多动作都不会被探索,未来的探索会很低效或者很吃计算资源。因此,本文考虑在连续空间上建立定价模型,输出一个精确的价格,而不是一个定价区域。本文采用的是DDPG算法,将DQN输入的的离散动作模型扩展到DDPG的连续动作模型,损失函数
L
(
θ
)
L(\theta)
L(θ)通过以下公式计算:
θ
μ
′
和
θ
Q
′
\theta^{\mu^{'}}和\theta^{Q^{'}}
θμ′和θQ′分别是目标网络的Actor和Critic的参数,使用Q值的梯度来更新策略网络(Actor):
3.3 预训练
为了防止将DDPG应用到电子商务动态定价中出现冷启动问题,而导致资金损失,本文通过一些专家/规则定价决策的元组序列 ( s t , a t , r t , s t + 1 ) (s_t, a_t, r_t, s_{t+1}) (st,at,rt,st+1)下进行预训练,将DQfD(Deep Q-learning from Demonstration)作为预训练方法,并将DDPGfD作为DDPG的预训练方法。
3.4 离线评估
首先用记录的最近T个周期组成元组
(
s
t
,
a
t
,
r
t
,
s
t
+
1
)
(s_t, a_t, r_t, s_{t+1})
(st,at,rt,st+1)。然后将这些元组分成两部分:
D
<
T
D < T
D<T时的数据用于预训练,其中
t
∈
[
1
,
D
]
t ∈ [1,D]
t∈[1,D]。
D
<
t
<
T
D < t < T
D<t<T时,元组数据将用于评估。只有当动作接近于策略的输出时,才能把奖励加起来。评估算法具体如下图所示:
4. 实验效果
本文离线实验使用来自Tmall.com的历史数据。在不同的Reward function、不同的K值设置、不同的算法下,具体的效果如下图所示: