Fork me on GitHub

阿里飞猪供应链价格与销量关系建模

以下文章来源于 https://zhuanlan.zhihu.com/p/688098362

导读 在线酒店预订平台中,房间的需求或入住率因房间类型而异,并随着时间的推移而变化,因此获得准确的入住率估计是一项挑战。本文将剖析旅行行业供应链价格与销量关系建模。

文章将围绕下面四点展开:

  1. 问题背景介绍

  2. 基于需求函数的量价建模

  3. 基于因果推断的量价建模

  4. 多场景量价联合建模

分享嘉宾|寻潇 阿里巴巴集团 高级算法工程师

编辑整理|曹加印

内容校对|李瑶

出品社区|DataFun


01问题背景介绍

首先和大家分享下量价建模的背景。



上图是价格与销量的一个量价曲线。当我们得到了这样一个完整的量价曲线之后,基于此可以实现的业务是非常广泛的,比如可以应用于选品或者是应用于搜索推荐里面的一些排序,又或者进行酒店的收益管理。通过 GMV 最大化,我们可以得到一个最优价格。

量价建模的难点在于:

  • 缺少 ground-truth。在现实业务场景中,只能观察到一个价格对应的销量,对于其它价格是观测不到的,因为它是一个反事实的问题。
  • 需求函数复杂。需要一定的先验知识,否则很难构造一个完美的需求函数。
  • 数据稀疏性。不同的酒店,不同的房型,不同的卖家,不同的销售定价。数据粒度很细,数据稀疏性十分严重。
  • 单调性。酒店的价格越高,往往销量越低。如果建模出来的量价曲线不满足这个单调性,那对于业务来说就是不可用的,没法应用到不同的业务场景里面。
  • 离线、在线评估一致性。我们得到的量价曲线应用到不同的场景,比如要推荐每个酒店的最优价格,那么如何评估推荐的这个价格的好坏呢?怎样离线进行一个比较好的评估,同时保持在线 AB 实验的一致性,也是一个需要重视的问题。

02基于需求函数的量价建模

1. 弹性需求函数



代表一个房型的入住率;

代表每个房型在过去一段时间之内的平均入住率;

代表一个实时的价格;

代表这个房型在历时一段时间之内的平均成交价格;

代表一个价格弹性,也就是要学习的目标。价格弹性学到之后,就可以通过这个需求函数,去得到所有价格对应的入住率的关系。以收益最大化为目标,输出一个最优价格。

2. 价格弹性预测模型 PEM



我们提出价格弹性预测模型(PEM)来学习价格弹性系数。确定了影响酒店业价格弹性的三个因素:

(1)竞争因素,如竞争对手的价格和质量。质量优于竞争对手的酒店价格弹性较小。

(2)时间因素,如事件、季节性和流行度。由于季节性或流行度的变化,房间的价格弹性是随时间变化的。

(3)特征因素,如酒店星级、位置和商业区。具有不同特征的酒店自然具有不同的价格弹性。

PEM 模型旨在利用所有这些因素进行动态需求学习。如上图所示,PEM 是在多任务学习框架中开发的,该框架同时预测房间的价格弹性系数和其所属酒店的价格弹性系数。对于每个预测任务,输入包含上述特征以及上下文特征,如实时价格、是否为假日等信息。为了缓解内生性问题,位置、酒店星级等基本特征和上下文特征通过嵌入层转换为低维表示,而与竞争因素和时间因素相关的其它特征分别由两个子模块处理:竞争力表示模块(CRM)和多序列融合模块(MSFM)。

每个组构建了一个异构的房间价格图,其中包含两种类型的节点,即价格和房间。房间节点和价格节点之间的每条边都加权,表示该房间在连接价格下被预订的次数。我们使用 metapath2vec 方法,以 room-price-room 和 price-room-price 为元路径,捕捉上述语义并为房间和价格节点生成嵌入。多序列融合模型旨在模拟影响价格弹性的时间因素。该模块的输入包括最近 30 天内房间类型的每日点击量、每日搜索量和历史预订价格的序列。对于酒店级任务,输入统计数据是酒店中所有房间统计数据的总和。如图(c)所示,多个序列通过两层双向 GRU 进行融合,捕捉特征的组合,以模拟流行趋势。我们还应用了两个具有不同内核大小的 1D 卷积,并进行了平均池化操作,以利用所有序列的底层局部模式。流行趋势和局部模式的表示串联起来作为最终的时间向量


3. 实验



我们采用了两种常见的度量标准 MAPE 和 WMAPE 来评估占用预测。为了评估定价策略,我们采用了与酒店动态定价相同的指标:PDR、PDP、PIR、PIP 和 BR。一般来说,BR 衡量建议价格和预订价格之间的接近程度,其它四个指标衡量建议价格下的利润改善情况。



由于没有公开的酒店定价数据集,我们基于飞猪在 2020 年 12 月 17 日至 2021 年 1 月 23 日的高预订季节和 2021 年 3 月 11 日至 2022 年 4 月 17 日的低预订季节的酒店预订数据,构建了数据集 Dataset-H 和 Dataset-L。PEM 模型在这些指标之间实现了最佳的权衡,证明了我们的弹性需求函数定价策略的有效性。

4. 弹性需求函数优化



因为对于历史未成交的价格无法给出一个量价曲线,过度依赖过去酒店的成交平均价格和平均经验,因此提出一个新的需求函数。

在这个需求函数里面,我们把酒店的入住率显性地分成了两个部分,一部分是价格弹性模块,就是完全由价格引起的销量;另一部分是由酒店本身的自然趋势所引起的。根据这个新的需求函数,可以分别去详细地、更加精细化地建模。

03基于因果推断的量价建模

1. 问题背景

价格与销量属于因果关系,我们想要刻画的是价格(treatment)对销量(outcome)的因果效应,以往的量价关系模型本质是从相关性角度建模,无法准确刻画出这种因果关系,导致建模不够精准。

现有的因果推断方法应用在量价建模面临着以下几个问题:

(1)酒店成交数据过于稀疏,对应到多值 treatment,treatment 每个取值对应的样本更加稀疏,影响模型性能;

(2)当前因果模型无法处理酒店价格与销量的单调性问题,会造成价格越高销量越高的现象,违背经济学基本规律,有损量价关系的可解释性,导致业务不可用;

(3)现有的因果模型 treatment 仍主要聚焦于二值类型,而量价场景中 treatment 是一个连续变量;尽管有部分工作可以处理多值 treatment,但是其一方面受限于数据的稀疏性影响导致模型训练不充分,另一方面无法保证价格与销量的单调性;

(4)因果模型普遍存在 treatment bias 及样本不平衡问题,其在酒店量价场景中更加显著。



三个标准假设为:

  • 一致性假设:潜在的结果和我们观测到的结果是一致的。
  • 可忽略性假设:不存在未观察到的混杂因素。
  • 正值性假设:任何房型都有一定概率施加影响。

2. 动态定价的因果推理



首先建立一个四元组,Pi 代表酒店的一个价格;Yi 表示预订酒店房间类型的概率;Xi 表示输入的特征;Ti 表示施加的干预,比如降价或涨价的比率。



作为 Treated Response (TR) 和



作为 Control Response (CR)。两者相减得到 the individual treatment effect (ITE)





解决 Treatment 偏差和样本不平衡性问题,要从样本组织和模型两个层面来解决。从样本组织的层面上做一个数据增强,首先给定一个历史成交的样本。如果这个酒店是以 100 的价格成交,那么 90、80 也会成交,这样就会产生很多正样本。同理,如果 110 没有成交,110、120 也不会成交,这样就产生很多负样本。我们只知道成交价格,而不知道售价,因此可以假设售价是 110、120、130。这样我们的Treatment 可以有多种,在实际的样本选取中,随机选取一种 Treatment 作为最终的一个。用构造出来的随机分配的效果,从侧面解决 Treatment 偏差的问题。



在模型层面,MLP 层下面主要是建模不同变量的表征,类似前面介绍的一些特征,如需求侧、基础的、竞争力等相关的一些特征。将 Treatment 分为不同的十个区间,与 10 各预测头相对应,采用



的计算,学习到相应的因果效应增量的关系。通过这种建模方式,解决不同 Treatment 导致的数据稀疏性问题。详情可见
https://doi.org/10.1145/3583780.3614800

2. 实验



对于入住率预测任务,CANDY 优于直接从相关性角度建模的线条方法,这证明了对底层建模的有效性,及预测价格和入住率之间的因果关系,如其在所有指标上的优异性能证明了这一点。

04多场景量价联合建模

1. 问题背景



为什么要选取多场景建模?主要是因为酒店可以在多个平台进行售卖。但我们只能获取到飞猪酒店售卖的数据比如搜索 UV、流量成交等,而不能获得其它平台酒店售卖的数据,或者通过分销平台获取数据。因此可以通过多端汇总整体的信息如价格、需求等来辅助整体建模的准确性。



上图定义了多场景的价格公式和输入的特征分类。公式的基本含义是给定输入特征和价格来输出一个达到目标例如收益最大化的希望调整的价格比率。输入特征分为酒店的基本特征:品牌、位置、星级等;上下文特征:周、事件、假期等;需求侧特征:历史点击、搜索、UV、IPV 等;竞争力相关的特征:平均历史订单付款、相似订单付款等。



在 MSP 中,通过 DRE 和 PCRE 提取需求表示 Di 和价格竞争力 Ci 后,塔式模块学习将提取的信息映射到好天气概率 q,并确定价格建议函数的参数 α 和 β。DRE 模块的作用是传递和共享有价值的需求信息,并提取特定场景的需求。

PCRE 模块中,场景的价格竞争力通过注意力机制单独捕获,我们提出由价格竞争力提取(PCE)和价格竞争力整合(PCI)组成的 PCRE 模块。首先,PCE 将价格竞争力分解为三个部分:内部竞争力(在同一平台上同类竞争酒店之间的竞争力)、外部竞争力(与最近 30 天内在其他平台上同一家酒店的价格相比)和自我竞争力(将当前价格与最近 30 天内同一房源的价格进行比较,以捕捉时间需求波动)。PCI 通过一个 gating 网络将这三种抽象的竞争力表示进行整合。最终的损失函数 lossvi 由两部分组成,分别是 good-day probability lossqi 和 price suggestion lossi,这两部分损失分别针对每一个场景进行计算。

3. 实验



仅从 PDR 和 PIR 评估离线价格是不准确的。如表三所示,当都是成交样本时,只用PIR 指标就可以评估;当都是未成交样本时,仅用 PDR 指标就可以。让我们再次考虑上述的极端减少策略。根据我们的指标,当都是成交样本时,简单的有偏策略得分还没有随机策略好。因此提出一个新的指标 PRFw,能够很好的避免样本稀疏性或者正负样本偏差较大这种分布导致的偏差。



实验结果验证了 MSP 的有效性,该模型通过 DRE 和 PCRE 模块明确地分离了共享需求信息和独立竞争力信息的提取过程。这种结构可以防止具有充足数据的场景 A 引入不必要的噪声信息,同时实现数据稀疏的场景 B 和 C 的信息共享。

以上就是本次分享的内容,谢谢大家。



本文地址:https://www.6aiq.com/article/1710998131404
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出