盒马补贴量价-2021KDD

概述:

  • 电商商品定价三个关键问题:
    • 在只有观测数据的时候,怎么构建价格弹性,现在来看这就是一个反事实推断的问题,不仅是如何做的问题,还有如何评估的问题。
    • 长周期的规划决策问题怎么建模 & 求解,如何在决策优化中考虑不确定性。
    • 这种pricing的问题,在现实世界中如何做A/B、如何科学评估效果。

本文贡献:

  • 用了一种半参数结构的模型来学习个体的价格弹性,并给出反事实的需求预测,这种模型能够同时具有非参数机器学习模型的预测能力和经济学模型的可解释性。
  • 提出了一种多阶段的动态定价算法来最大化有保质期商品整个销售周期内的销售利润,与采用确定性需求的传统做法不一样的是,本文的模型中考虑了反事实销量预测的不确定性,采用了连续的定价策略,并且设计了一种两阶段的算法求解。

问题及方案概述:

  • 采取促销时,使得利润最优的价格折扣应该是多少?(关于价格弹性曲线拟合以及价格优化)
    • 易腐商品多个阶段的动态定价问题。这个问题中需求学习的主要挑战在大部分商品的价格并不会经常变动,甚至从未变动过。
  • 上述问题被定义为反事实推断,其中商品价格就是处理/干预,最后的销量是被干预的结果,我们关注由于施加处理,对于最后结果改变的差值。
  • 通过观测数据进行价格需求曲线的学习。
    • 零售商可以用价格实验来进行需求的学习,但是随机试验十分浪费,同时有价格歧视的风险。所以需要通过观测数据来学习。
  • 由于历史数据的限制,我们很难用单个商品的数据学习到它自己的价格需求曲线,所以利用多个商品一起进行价格弹性的学习是一个相对可行的方案。
  • 在学习需求函数时候,可以用机器学习模型来进行预测,通常将价格作为特征之一,销量作为label,然后通过最小化事实误差(观测到结果和预测结果的误差)来拟合模型。
  • 然而一个很小的事实误差并不意味着一个很小的反事实误差,价格的重要性很可能被其他特征掩盖。
  • 除此之外,大部分的机器学习模型都十分复杂,是一个黑盒,所以很难得到价格和需求的关系,也就是缺乏解释性。
  • 为了解决这些问题,我们提出一种数据驱动的半参数模型,结合了机器学习模型和经济学模型,其中机器学习模型用来作为基线需求的预测,经济学模型来解释价格和需求的关系,为了学习每个商品的价格,采用了多任务学习的方式,基于这个框架,模型学习到的价格弹性和反事实预测都更为稳健。
  • 价格优化的目的是利用反事实的预测结果来选择最优的折扣,最大化整体利润。
  • 零售商在一个区域有很多的门店,为了避免价格歧视,一个区域内的商品需要采用相同的价格折扣,因此,我们需要把区域内所有门店都考虑在内。
  • 除此之外,因为需求和库存都会随着商品的不同生命阶段而改变,所以需要的是一个动态定价策略。
  • 因为反事实的预测无法避免的会有随机的误差,为了增强算法的鲁棒性,所以我们对模型的不确定性进行进行建模,我们将商品的生命周期化为多个阶段,然后最优化整体的利润,用MDP来建模这个多阶段价格联合优化的问题,同时提出了一个两阶段求解的高效算法。
  • 在离线实验和在线AB中,都有显著的提升。

问题公式化:

反事实预测(Counterfactual Prediction):

(不稳固性假设)

  • 因为历史上一个商品很少有多种折扣的数据,所以我们无法拟合单个商品的价格需求函数,为了解决这个问题,我们使用数据聚合的方式,我们把所有商品用类目信息进行聚合,然后联合学习多个商品的价格弹性。
  • 对于并没有实际发生的假设场景,通过未发生的条件来推理可能的结果,就是反事实推理的问题。

价格弹性:

  • 需求价格弹性(Price elasticity of demand),在经济学中一般用来衡量需求的数量随商品价格的变动而变化的弹性。 
  • 通常来说,因为財貨价格的下跌会导致需求量的增加,反之商品价格的上升会减少需求量;所以一般情况下价格与需求量成反比,需求的价格弹性系数为负数。

论文实验:

  • 为了降低成本和刺激消费,Freshippo将对销售业绩不令人满意的产品给予折扣。它将在降价渠道中销售,如果客户的总购买量达到一定数量,他们可以通过折扣购买商品。我们的目标是帮助Freshippo的零售商决定产品的最优折扣价格,以实现整体利润的最大化。
  • 离线实验:
    • 要在业务约束条件下优化价格,第一步和关键步骤是学习第4节所述的价格需求曲线。我们使用Freshippo的离线交易数据来训练和评估所提出的半参数结构需求模型。我们在markdown频道上收集了6个月来中国10个不同城市100多家生鲜店的观察数据。总共约有11000多个SKU(为了保护隐私,我们省略了确切的数量)。补充材料提供了特征提取的详细信息。
    • 特征抽取:首先提取产品和商店的特征。原始特征包括品牌、sku、部门、类别、周末、假日信息、销售渠道、促销活动、页面浏览量、用户浏览量、历史折扣和历史销售等。其次,使用数据聚合过程创建新特征。具体而言,我们按不同时间段(如按周和假日)汇总销量,并按不同维度(如品牌、类别、商店、sku、销售渠道)汇总销量。第三,我们通过使用平均值或最近邻匹配来估算缺失的数据。也可以应用其他方法,如EM算法、插值和矩阵完成等。最后,对稀疏特征进行one-hot表示,如一级、二级和三级类别。
    • 部分技巧:
      • 标准化因子按定义是产品的平均销量。然而,这个数量可能不是很稳定。在实践中,产品所属的二级或三级类别的平均销量可以用作标准化因子。
      • 除法运算对小值敏感。最好在进行除法运算之前对分母加1。
    • 学习模式。使用提取的特征,我们使用XGBoost作为基础销售预测模型。当有足够的数据样本用于训练时,也建议使用深度神经网络。使用预测的基础折扣和销售作为输入,我们通过递归最小二乘算法求解目标,并计算价格弹性𝜽 以递归方式更新。在Freshippo场景中,一旦收集到新的交易数据并自动提取特征,价格弹性就会每天更新。
    • 评估指标。为了评估半参数模型的预测能力,我们使用当天的实际折扣预测降价渠道中那天的销量。结果以相对平均绝对误差(RMAE)测量。
    • 参数设置。为了调整模型超参数,我们根据时间将数据分为训练、验证和测试数据:前65%用于训练,后15%用于验证,最后20%用于测试。对于价格弹性模型,我们根据经验设置了遗忘因子𝜏 = 0.95,正则化参数𝜆 = 0.5。
    • 比较算法。我们将所提出的模型与经典的提升树模型和深度模型进行了比较。
      • XGBoost。这种强大的提升树模型已在许多工业应用中得到应用。对于反事实预测任务,我们将折扣变量作为其输入特征之一,并通过在其他特征固定的情况下改变折扣来预测结果。为了公平起见,其超参数设置与我们的基础销售预测模型相同。
      • 深度IV。该方法使用深度模型来表征在存在控制变量的情况下不同控制操作和结果之间的关系。我们使用三级类别的平均价格作为控制变量,并使用高斯分布进行连续处理。
    • 结果:
      • 我们首先用不同比例的训练数据评估了每个算法的预测误差。如图6所示,深度模型在训练数据较少的情况下性能较差。树模型对数据大小相对不敏感,但即使有更多可用数据,其性能也很差。我们提出的半参数模型实现了最佳的RMAE性能,其方差随着训练数据数量的增加而减小。
      • 为了进一步说明所提出模型的可解释性,我们在图7中绘制了随机商店中随机选择的SKU的四条价格销售曲线。树模型学习的曲线具有不可预测的抖动,其结果在大范围的折扣(0.5-0.6,0.8-1.0)内保持不变。deepIV学习的曲线几乎是一条线,这表明销售额与价格无关。树模型和深度模型都不能正确地揭示价格-销售关系,推断结果不可信。然而,我们的半参数模型更加平滑,揭示了价格和销售额之间的单调关系。收盘价之间的差异很小,这与直觉一致。

在线A/B实验:

  • 我们评估了在线生鲜零售Freshippo中的降价方法,如图1所示。传统上,Freshippo的零售商采用人工定价策略,选择经验折扣,例如30%折扣或50%折扣。虽然人工定价策略很简单,但它是多年运营经验的结晶,在大多数情况下都有效。
  • 降价所需的目标产品由Freshippo的库存控制系统提供。新的运营人员给出了目标销售额和最低-最高价格限制。一旦收到降价信号,Freshippo的智能营销系统将调用我们的定价算法,以提供最佳折扣。我们的算法已应用于北京、上海、杭州和深州四个地区的生鲜店。
  • 为了公平比较,我们设计了在线A/B测试。需要打折的产品被随机分配给操作的手动方法和我们的降价方法。
  • 评估指标。为了评估所提出算法的性能,我们使用目标完成率(TCR)作为度量,定义为
  • #SALES_i,nor 表示常规渠道的销量;#SALES_i,md 表示降价渠道的销量。目标完成率评估了降价的影响。
  • 此外,我们还评估了正常渠道和降价渠道之间的商品交易总额(GMV)比率,即
  • 该指标评估了降价后的GMV改进。
  • A/B测试大约进行2个月。如表1所示,降价前运营组的目标完成率约为34.25%,降价后该数字达到80.93%。而我们团队的目标完成率在降价前约为38.92%,降价后达到92.12%。这表明我们的方法比maunal方法能够更好地实现售完目标。此外,我们定价算法的GMV改进比maunal方法的GMV提高约17.14%。这一结果表明,我们的方法可以帮助零售商获得更高的GMV/利润。
  • 总之,我们的定价算法很容易解释,因为它具有可解释的价格-销售曲线,并且它是智能的,因为它可以在考虑到复杂的业务约束(如库存约束)的情况下自动提供高利润的最优价格。

结论:

  • 在本文中,我们提出了一种新的电子商务生鲜零售降价定价框架,包括反事实预测和多时段价格优化。
  • 首先,我们提出了一个数据驱动的半参数结构需求模型,该模型具有可预测性和可解释性。
  • 所提出的需求模型揭示了价格和销售之间的关系,可用于预测不同价格的反实际需求。
  • 所提出的反事实模型具有较低的模型复杂性和清晰的因果结构,因此它比传统的ML和深度模型更易于解释。
  • 其次,我们考虑了需求的不确定性,提出了一个多周期环境下易逝品的动态定价策略。
  • 提出了一种求解MDP问题的有效的两阶段算法。它将时间复杂度从指数降低到多项式。
  • 最后,我们将我们的框架应用于现实世界的电子商务生鲜零售。离线实验和在线A/B测试都表明了我们方法的有效性。

参考资料:

阿里盒马生鲜的折扣定价问题论文解读:https://www.arvinzyy.cn/2021/06/06/Markdowns-in-E-Commerce-Fresh-Retail-A-Counterfactual-Prediction-and-Multi-Period-Optimization-Approach/

https://blog.csdn.net/sinat_26917383/article/details/122242463  

https://zhuanlan.zhihu.com/p/423723243

http://xtf615.com/2021/10/07/kdd21/

反事实推断:https://blog.csdn.net/a358463121/article/details/114824992    

https://zhuanlan.zhihu.com/p/120909701

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/226791.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

再识二叉树

1. 二叉树的存储 二叉树的存储结构分为:顺序存储和类似于链表的链式存储。 其中二叉树的链式存储是通过一个一个的节点引用起来的,常见的表示方式有二叉和三叉表示方式(这里本主主要讲的是链式存储),具体代码如下&…

「海蓝色」海关可视化监管平台,助力海关体系实现规范化程序管理

海关监管是国家对进出境货物、旅客和邮件进行检查和控制的重要机构,其职责是保障国家的安全和经济利益。海关监管的核心目标是防止非法进出境活动,包括走私、偷逃税款等行为。海关监管通过检查和核实货物的品质、数量和价值,确保货物符合相关…

6-4 是否二叉搜索树 分数 20

bool IsBST(BinTree T) {//空树 or 只有一个结点if (T NULL || (T->Left NULL) && (T->Right NULL))return true;BinTree cur NULL;cur T->Left;if (cur ! NULL){while (cur->Right)cur cur->Right;if (cur->Data > T->Data)return fals…

【实用经验】如何根据CVE编号找到安全补丁

找到对应补丁页面 例如查找编号为 CVE-2019-0708 的漏洞,访问下面链接即可,替换末尾编号可获取其他漏洞更新补丁。 https://msrc.microsoft.com/update-guide/vulnerability/CVE-2019-0708根据实际情况点击右侧补丁链接即可跳转下载 最后根据实际情况下…

【Docker】从零开始:18.使用Dockerfile构造自己的KingbaseES数据库镜像

【Docker】从零开始:17.使用Dockerfile构造自己的数据库镜像 新建一个自定义目录并创建Dockerfile文件上传需要的文件到自定义目录下注意docker-circle-init.sh文件内容password 内容 开始打包注意打包完成后执行 尝试用工具连接数据库 kingbase.tar.gz 包过大我就上…

java每日一记 —— 常见的Bean后置处理器

此代码在jdk11上测试通过,SpringBoot版本为2.7.14 1.上代码 1.测试方法 public class Dome04Application {public static void main(String[] args) {// 这是一个干净的容器GenericApplicationContext context new GenericApplicationContext();// 添加3哥Beanc…

git-vscode

git-vscode ctrlshiftp 创建分支 create branch 直接切到新的分支了 切换分支 直接点左下角自己选择 vscode中配置仓库 https://blog.csdn.net/zora_55/article/details/129709251 推送tag tag作用就是在 Git 中,标记存储库历史记录中特定提交的一种方式。t…

SkyWalking9.x搭建

简介 Skywalking是一款分布式的系统 性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking是一款 观察性的分析平台和应用性能管理系统,提供了 分布式追踪、性能指标分析、应用服务依赖分析、可视化一体化等解决方…

devops-exercises:DevOps 工程师的面试学习资料 | 开源日报 No.95

bregman-arie/devops-exercises Stars: 58.8k License: NOASSERTION 这个项目是一个包含各种技术主题的问题和练习集合,有时与 DevOps 和 SRE 相关。 2624 道练习和问题包含了许多涉及 DevOps、Git、网络等方面的问题和演示文稿可以用于面试准备,但大多…

在Ascend昇腾硬件用npu加速paddleLite版本ocr(nnadapter)

在Ascend昇腾硬件用npu加速paddleLite版本ocr(nnadapter) 参考文档* nnadapter参考文档地址* 华为昇腾 NPU参考文档地址* PaddleLite的CAPI参考文档 一.确保cpu版本运行正常二.编译Ascend上npu加速库三.跑通npu加速版本Demo1.Demo下载地址2.参考手册网址…

选择更好的Notes索引附件方式

大家好,才是真的好。 首先介绍最近产品更新消息。在上一周,HCL主要发布了以下几个产品更新:HCL Verse 3.2.0、HCL Volt MX Go 2.0.2、HCL Domino Rest API 1.0.8。 HCL Verse是今后Domino的产品当中主要使用的webmail功能,这一次…

Linux Component概述和高通V4l2驱动模型

1 Linux为什么要引入Component框架? 为了让subsystem按照一定顺序初始化设备才提出来的。 subsystem中由很多设备模块,内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video …

弱网模拟工具

一、背景 一个人晚上在家通过 Wi-Fi 上网,在线电影播放基本流畅,可一旦在晚间用网高峰期打视频电话就画面糊,这时不仅可能带宽受限了,还可能有较高的丢包率。与有线网络通信相比,无线网络通信受环境影响会更大&#x…

Unity 关于Ray、RaycastHit、Raycast及其使用

Unity中,我们要进行物理模拟和碰撞检测时,有三个重要的概念Ray、RaycastHit、Raycast。 其中,Ray可以理解为射线,它是一条从起点沿着特定方向延伸的无限长线段。 它的语法是: Ray(Vector3 origin, Vector3 directio…

js/jQuery常见操作 之 jQuery操作复选框的常见问题

js/jQuery常见操作 之 jQuery操作复选框的常见问题 1. js/jQuery的其他一些常见基础操作2. 全选/全不选问题2.1 效果2.2 实现代码2.2.1 简单js实现2.2.2 jQuery实现2.2.2.1 注意语法(区别jQuery版本)2.2.2.2 完整代码实现 3. jQuery实现点击 行tr 实现ch…

SCADA软件工具有多少免费的?

随着工业自动化的飞速发展,SCADA系统已经成为工业领域智能化转型绕不开的重要工具,不少个人和公司也都加入到了学习研究SCADA系统的队伍中。数维图小编耗费大量时间整理了国内外免费(非完全免费)的SCADA软件工具,有部分…

uniapp 之 短信验证码登录

一、需求 输入手机号码&#xff0c;可以获取验证码。 二、实现效果 点击前&#xff1a; 点击后&#xff1a; 三、代码实现 <template><view class"login"><view class"infobox"><view class"item"><input type…

搜索推荐技术-爱奇艺搜索引擎技术

一、爱奇艺的搜索引擎框架示意图 即通过召回系统&#xff0c;即基于文本匹配的matching system&#xff0c;得到大量视频资源的候选集&#xff0c;经过粗排和精排&#xff0c;最后返回给用户。重点在于召回模块和排序模块。 二、召回模块 召回模块比较重要的是基础相关性&am…

vue3 + mark.js 实现文字标注功能

效果图 安装依赖 npm install mark.js --save-dev npm i nanoid代码块 <template><!-- 文档标注 --><header><el-buttontype"primary":disabled"selectedTextList.length 0 ? true : false"ghostclick"handleAllDelete"…

MySQL数据库,函数与分组

单行函数&#xff1a; 操作数据对象 接受参数返回一个结果 只对一行进行变换 每行返回一个结果 可以嵌套 参数也可以是一列或一个值 数值函数 基本函数&#xff1a; 注&#xff1a;ROUND(x,y)函数的y是负数时&#xff0c;即往高位进行四舍五入&#xff0c;如-3就是按百位…