The Science of Pricing Experimentation at Amazon ==> 読後メモ
Paper
https://www.aeaweb.org/conference/2023/program/paper/4frnFS39
Joseph Cooprider, Shima Nassiri, "The Science of Pricing Experimentation at Amazon", ASSA 2023 Annual Meeting, 2023
Summary
- 目的
- 新たに導入するPricing Algorithmの効果(Average Treatment Effect; ATE)を推定したい。具体的には、商品毎・タイミング毎に、Pricing Algorithmを適用する場合・適用しない場合を混ぜて、商品やタイミングの影響を除いたPricing Algorithmそのものの効果を推定しようとしている。
- 商品の販売には、Pricing Algorithmのみならず、販促、広告、インフルエンサー、Supply Chain、商品そのものの需要など、様々な影響が絡む。その状況下で、Pricing Algorithmの影響のみ推定することが、難しさ。
- 既存の実験方法
- Time-bound Experimantal Design
- 7日目までは、Baseline Priodということで、何もしない。
- 8日目以降、Control Groupの商品は、何もしない。Treatment groupの商品には、Pricing Algorithmを適用。
- Trigger-based Experimantal Design
- 7日目までは、Baseline Priodということで、何もしない。
- 8日目以降、Treatment groupの商品には、「Trigger条件が発動した日から」Pricing Algorithmを適用。それ以外の商品には、何もしない。
- Trigger条件とは、例えば、「他の店舗が、対象商品について特別な販促を開始した場合」。
- Swichbacks
- 7日目までは、Baseline Priodということで、何もしない。
- 8日目以降、各商品について、ある日はTreatment Group、またある日はControl Group・・というのを、ランダムに繰り返す。いつがTreatmentで、いつがControl・・というのは、商品によって、バラバラ。
- Standard errorを60%削減する効果。
- この方法は、ある日の価格が、翌日以降の需要に影響を与えること(Carry-over Effect)が起きない場合のみに、有効な方法。
- Time-bound Experimantal Design
- 改善案1 --> Cross Over
-
- 7日目までは、Baseline Priodということで、何もしない。
- 8, 9日目は、半分の商品がTreatment Group。残り半分の商品がControl Group。
- 10日目は、Blackout periodということで、何もしない。これは、Carry-over Effectを少なくするのが目的。
- Standard errorを40-50%削減できる。これは、Swichbacksほどではないが、Carry-over Effectを減らせる効果もあるのが利点。
-
- 改善案2 --> HPTE (Heterogeneous Pannel Treatment Effect)
- 既存の推定手法 --> DID (Difference-in-difference)
- 1st difference = Before, Afterでの違い
- 2nd difference = Treatment group, Control groupでの違い
- 例
- T1: Treatment groupの商品のTreatment前の販売個数
- T2: Treatment groupの商品のTreatment後の販売個数
- C1: Control groupの商品のTreatment前の販売個数
- C2: Control groupの商品のTreatment後の販売個数
- ATE = (T2-T1) - (C2-C1)
- 1st differenceが、T2-T1
- 2nd differenceが、(T2-T1) - (C2-C1)
- 提案手法 --> HPTE
- Step1: 各Productで、Treatment中のDailyの値 - Treatment前のDailyの値を計算。これを、β(i)とする。iはProduct.
- 値は、おそらく、販売個数では・・と推測
- Step2: β(i)の分布を作成し、外れ値であるようなProduct(分布の両側の裾野)を除く。
- Step3: Causal Forestを用いて、Second differenceを計算。
- おそらく、以下のようなモデルを構築していると推測
- β(i) = F(X(i))
- X(i)は、Productの属性や、Treatment前のBusiness Metricsなど。
- おそらく、以下のようなモデルを構築していると推測
- Step4: Boost strapping
- Standard errorを計算するために、以下を繰り返す。
- Randomeに複数のProductsを選択
- Step1,2,3を実施し、ATEを計算
- ATEの分布とStandard errorを得る
- Standard errorを計算するために、以下を繰り返す。
- Step1: 各Productで、Treatment中のDailyの値 - Treatment前のDailyの値を計算。これを、β(i)とする。iはProduct.
- 提案手法の結果
- DIDと比べてHPTEの方がStandard errorが30%低くなる
- 既存の推定手法 --> DID (Difference-in-difference)
- 改善案3 --> 補完財・代替財を考慮
Impression
- 今までCausal Forestの適用先として、人を想定した事例ばかり見てきたので、商品が対象となっているのは、新鮮。
- Amazonでの、実際のPricingの検証方法に触れているという点も、新鮮。
- 以下の点が、理解できず。
- Causal Forestを適用する場合の詳細
- どのような変数が入力変数となったのか
- 対象となるProduct数は、どれぐらいの数あったのか?
- どのようにProduct毎のTreatment effect (Heterogenious treatment effect)から、全体でのTreatment effect (Average Treatment effect)を算出するのか?
- Spillover Effectの調整・除去の方法の詳細
- 論文には記載があったものの、こちらの知識不足で理解できず。
- Causal Forestを適用する場合の詳細