因果推断笔记——解析一篇因果反事实预测论文(二十三)

Posted 悟乙己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了因果推断笔记——解析一篇因果反事实预测论文(二十三)相关的知识,希望对你有一定的参考价值。


反事实预测应该是一个非常有意思的话题,笔者也是由一篇盒马的文章出发,对这个模块先行进行简答的学习。主要参考:
KDD2021论文推荐:盒马-融合反事实预测与MDP模型的清滞销定价算法
Markdowns-in-E-Commerce-Fresh-Retail-A-Counterfactual-Prediction-and-Multi-Period-Optimization-Approach

盒马这篇论文的地址:
https://arxiv.org/pdf/2105.08313.pdf

这个团队另外一篇也很给力,是非常通用的营销预测框架类,很给力了:
预算分配Budget Allocation:两篇论文(二)

关联文章:
因果推断笔记——DML :Double Machine Learning案例学习(十六)

利用机器学习因果推理进行弹性定价
数据分析36计(29):价格需求弹性和因果推断
简单版:DML.ipynb
数据集:Association Rules and Market Basket Analysis

1 已有研究者的描述

1.1 YuyangZhangFTD

来看来自zhangyuguo的对该篇的解读:
Markdowns-in-E-Commerce-Fresh-Retail-A-Counterfactual-Prediction-and-Multi-Period-Optimization-Approach

这篇文章中了KDD2021,是做阿里盒马生鲜的折扣定价问题。

我个人很早之前也关注过电商商品定价的问题,之前看过比如说rue lala、一号店、zara的一些动态定价的方法,心里有些比较模糊的想法,当时想的大概是用choice-model来刻画商品互补替代效应的同时,加入价格的影响,然后在某个周期内求解最优化模型。由于种种原因,当时并没有深入思考算法细节以及针对实际问题进行实践,这类问题主要有三个比较棘手的问题:

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

这篇文章有很多细节&落地的工作,本文的几个主要贡献:

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

1.1.1 Introduction

在生鲜零售的场景,商品的新鲜程度是消费者最关心的问题,很多有保质期的商品,比如说蔬菜、肉类、鸡蛋、面包,都是只有有限的销售周期,为了提供新鲜、高质量的商品,控制库存就变得十分重要,如果一个商品在过期之前还没有卖完,那么零售商就会有损失,生鲜零售商往往会采用促销的手段来最大化总利润,但却很难知道最优的价格折扣是什么。

本文中,我们考虑有两种渠道销售商品的生鲜零售商,其中一个是正常价格销售,另一个渠道是折扣商品,其中消费者可以在购满一定销售额的基础上,以一定折扣购买商品。

1.1.2 Problem Formulation

  • 零售价格折扣 d ∈ [ 0 , 1 ] d\\in[0,1] d[0,1]为我们的决策变量
  • 产品 i i i在折扣 d i d_i di上的平均销量 Y i obs Y_i^\\textobs Yiobs
  • 特征 x i ∈ R n x_i\\in\\mathbbR^n xiRn
  • 类别特征 L i ∈ 0 , 1 m L_i\\in0,1^m Li0,1m,假设有3级类别

1.1.3 Counterfactual Prediction

反事实预测问题的目标是在干预 d i d_i di和条件 X = x i X=x_i X=xi下预估需求/销量
的期望 E [ Y i ∣ d o ( d i ) , x i ] \\mathbbE[Y_i|do(d_i),x_i] E[Yido(di),xi],此处我们假设满足unconfoundness假设。

因为历史上一个商品很少有多种折扣的数据,所以我们无法拟合单个商品的价格需求函数,为了解决这个问题,我们使用数据聚合的方式,我们把所有商品用类目信息进行聚合,然后联合学习多个商品的价格弹性。

我们假设模型结构为

E [ ln ⁡ ( Y i / Y i nor ) ] = g ( d i ; L i , θ ) + h ( d i o , x i ) − g ( d i o ; L i , θ ) \\mathbbE\\big[\\ln(Y_i/Y_i^\\textnor)\\big] =g(d_i;L_i,\\theta) + h(d_i^\\texto,x_i) - g(d_i^\\texto;L_i,\\theta) E[ln(Yi/Yinor)]=g(di;Li,θ)+h(dio,xi)g(dio;Li,θ)

其中:

  • Y i o Y_i^\\texto Yio是常规渠道产品 i i i近期的平均销量
  • d i o d_i^\\texto dio是商品 i i i近期的平均折扣
  • Y i / Y i nor Y_i/Y_i^\\textnor Yi/Yinor代表了折扣价格使得销量增加的百分比,因为不同商品销量差异很大,所以比率会比绝对值更有用
  • 函数 g ( d i ; L i , θ ) g(d_i;L_i,\\theta) g(di;Li,θ)是参数化的价格弹性模型,参数 θ ∈ R m + 1 \\theta\\in\\mathbbR^m+1 θRm+1
  • 函数 h ( d i o , x i ) h(d_i^\\texto,x_i) h(dio,xi)为非参数预测模型,用于预测基础折扣 d i o d_i^\\texto dio的销量,如果 d i = d i o d_i=d_i^\\texto di=dio,那么 E [ ln ⁡ ( Y i / Y i nor ) ∣ d i o ] = h ( d i o , x i ) \\mathbbE\\big[\\ln(Y_i/Y_i^\\textnor)\\big|d_i^\\texto]=h(d_i^\\texto,x_i) E[ln(Yi/Yinor)dio]=h(dio,xi)

对于价格弹性,我们提出一种双log结构的nested模型:

g ( d i ; L i , θ ) = E [ ln ⁡ ( Y i / Y i nor ) ] = ( θ 1 + θ 2 T L i ) ln ⁡ d i + c g(d_i;L_i,\\theta)=\\mathbbE\\big[\\ln(Y_i/Y_i^\\textnor)\\big]=(\\theta_1+\\theta_2^\\mathsfTL_i)\\ln d_i +c g(di;Li,θ)=E[ln(Yi/Yinor)]=(θ1+θ2TLi)lndi+c

其中 θ 2 ∈ R m \\theta_2\\in\\mathbbR^m θ2Rm θ = [ θ 1 , θ 2 T ] T \\theta=[\\theta_1, \\theta_2^\\mathsfT]^\\mathsfT θ=[θ1,θ2T]以上是关于因果推断笔记——解析一篇因果反事实预测论文(二十三)的主要内容,如果未能解决你的问题,请参考以下文章

因果推断与反事实预测——利用DML进行价格弹性计算(二十三)

因果推断与反事实预测——几篇关联论文(二十六)

因果推断与反事实预测——几篇关联论文(二十六)

因果推断与反事实预测——利用DML进行价格弹性计算(二十四)

因果推断与反事实预测——利用DML进行价格弹性计算(二十四)

因果推断——借微软EconML测试用DML和deepIV进行反事实预测实验(二十五)