$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ダイナミックプライシング とその実例
Search
木村彩恵(skmr2348)
November 11, 2024
Research
3
450
ダイナミックプライシング とその実例
木村彩恵(skmr2348)
November 11, 2024
Tweet
Share
Other Decks in Research
See All in Research
文化が形作る音楽推薦の消費と、その逆
kuri8ive
0
190
文書画像のデータ化における VLM活用 / Use of VLM in document image data conversion
sansan_randd
2
260
機械学習による言語パフォーマンスの評価
langstat
6
760
非ガウス性と非線形性に基づく統計的因果探索
sshimizu2006
0
400
The many faces of AI and the role of mathematics
gpeyre
1
1.3k
いしかわ暮らしセミナー~移住にまつわるお金の話~
matyuda
0
150
Whoisの闇
hirachan
3
150
snlp2024_multiheadMoE
takase
0
450
情報処理学会関西支部2024年度定期講演会「自然言語処理と大規模言語モデルの基礎」
ksudoh
10
1.6k
Weekly AI Agents News! 9月号 プロダクト/ニュースのアーカイブ
masatoto
2
160
Weekly AI Agents News! 10月号 論文のアーカイブ
masatoto
1
360
[依頼講演] 適応的実験計画法に基づく効率的無線システム設計
k_sato
0
150
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
770
We Have a Design System, Now What?
morganepeng
51
7.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Visualization
eitanlees
145
15k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
The Cost Of JavaScript in 2023
addyosmani
45
6.9k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Building Adaptive Systems
keathley
38
2.3k
Transcript
AI 2024.09.19 GO株式会社 木村 彩恵 ダイナミックプライシング とその実例
AI 2 ▪ 前半はダイナミックプライシングについて調べたことを紹介します。 ▪ 後半はホテルの予約データを用いて、収益が最大となるような価格を求める 例を実際にやってみます。 本日の発表内容について
AI 3 項目 01|ダイナミックプライシングとは 02|やってみた
AI 4 01 ダイナミックプライシングとは
AI 5 ▪ 基本的には価格は需要と供給で決まる ▪ 需要と供給に差があると、価格が変わって、均衡価格に近づく(神の見 えざる手) 価格はどのようにして決まるのか? 需要曲線 数量
価格 供給曲線 均衡価格 価格が高すぎると需要が減少 →価格が下がる 価格が安すぎると供給が不足 →価格が上がる
AI 6 ▪ 独占企業は自由に価格を決めることができる ▪ ・・とはいえ、高すぎる価格では全く売れないので需要曲線を考慮し、 収益(=価格x数量)が最大となるような価格とする 企業が価格を自由に決定できるケース 数量 価格
需要曲線 この価格では全く売れない 数量 収益 収益が最大となる数量 収益曲線
AI 7 ▪ 企業が価格を動的に決定する戦略 ▪ 前提として、価格弾力性が異なる需要曲線が複数存在する市場である ▪ 価格弾力性:需要への価格の影響度合い ▪ 企業の市場支配力が強い(独占企業に近い)ほど、自由に価格が設定で
きるため、ダイナミックプライシングに向いている ダイナミックプライシング 数量 数量 価格 価格 <価格弾力性が大きい> <価格弾力性が小さい> 価格が上がっても 需要があまり減少しない 価格が上がると 需要が大きく減少する
AI 8 ▪ 顧客セグメント ▪ 航空チケットの場合、ビジネス客は直前に購入するため、価格弾力性が 低く、高い価格でも購入する。一方、観光客は計画的に旅行するため価 格弾力性が高い。 ▪ 季節性
▪ ホテルの場合、長期休みは価格弾力性が低く、高価格でも予約される が、オフシーズンでは価格弾力性が高くなる ▪ 利用頻度 ▪ リピーターやロイヤルティプログラムのメンバーは価格弾力性が低いこ とがある(付加価値を重視する傾向がある) 異なる価格弾力性の需要曲線が複数存在する状況の例
AI 9 ▪ 右下の書籍を参考にダイナミックプライシングのモデルを紹介 ▪ モデルの前提は下記 ▪ 顧客は近視眼的である ▪ 支払っても良いという額が販売価格を上回ると即購入する
▪ 在庫補充はない ▪ 無限母集団モデルとする ▪ 購入に訪れる顧客は毎回新規顧客とみなす ▪ 独占企業である ▪ 競合企業の影響を受けない ▪ 独立需要である ▪ 代替商品の影響を受けないものとする 1製品の場合のダイナミックプライシングのモデル(1/2)
AI 10 ▪ ダイナミックプライシングのモデルは大きく2つに分けられる ▪ 確定的な需要を想定するモデル ▪ 異なる需要曲線ごとに収益を最大とする価格を計算する ▪ 需要曲線は例えば、リードタイム(販売終了までの残り期間)ごとにを
分ける等 ▪ 実装がシンプルだが、需要の不確実性を考慮できない ▪ ▪ 確率的な需要を想定するモデル(Gallego and van Ryzin)[1] ▪ 在庫やリードタイムの様々なパターンで、収益を最大とする価格を 求める ▪ 様々なパターンに対応できるが計算量が大きい 1製品の場合のダイナミックプライシングのモデル(2/2) [1]https://business.columbia.edu/sites/default/files-efs/pubfiles/3943/va nryzin_optimal_dynamic_pricing.pdf
AI 11 ▪ 販売期間[0, T]のある時点t ∈[0, T]の価格をp t 、数量をx t
で表す。時刻tにお ける需要曲線をp = d t (x)(数量xに対する価格p)とするとき、収益を最大と する数量x t *を以下の最適化問題の解で定義できる ▪ 目的関数 ▪ 制約 確定的な需要を想定するモデル (在庫制約、Cは初期在庫) 収益
AI 12 ▪ 需要過程は、価格pによって決定される到着率λ(p)のポアソン過程に従う ▪ 残りの販売期間t∈[T, 0]と在庫量c(≦C)を状態として、各状態で販売期間終了 (t=0)までの収益を最大化するような最適価格を求める ▪ J*(t,
c)を在庫c、残りの販売期間tから販売期間終了までの期待収益の最 大値とする ▪ 状態(t, c)で到着率λ(p)とした場合の販売終了までの期待収益V(t, c, λ)とす ると、J*(t, c)は以下のように定義できる ▪ さらに、期待収益の最大値となった到着率をλ*(t, c)で表す 確率的な需要を想定するモデル
AI 13 ▪ ある到着率λにおける販売終了までの期待収益V(t, c, λ)は、最適性の原理に より次式で定義できる(価格p = d(λ)とする) 確率的な需要を想定するモデル
在庫 期間 0 T t t - dt c 0 p =d(λ) J*(t-dt, c-1) J*(t-dt, c) 動的計画法によりt = 0からJ*(t,c)とλ*(t,c)を演算する 購入した場合の最大期待収益 購入しなかった場合 の最大期待収益 購入確率
AI 14 02 やってみた
AI 15 ▪ あなたはホテルのレベニューマネージャーです。今年の予約実績データか ら、来年の予約価格を決める必要があります。 ▪ データからどのようにして予約価格を決めたら良いでしょうか? 例題:ホテルの宿泊価格の決定
AI 16 ▪ 予約実績データとしてHotel booking demandデータセットを使用 ▪ ホテルの種類 ▪ 部屋の種類
▪ キャンセルされたかどうか ▪ 予約日 ▪ 料金 ▪ 到着日 ▪ 宿泊日数 ▪ 宿泊人数(大人や子供の人数) ▪ リードタイム(予約してから宿泊するまでの日数) ▪ etc 使用データ https://www.kaggle.com/datasets/jessemostipak/hotel-booking-demand
AI 17 ▪ 例題で使用するために、以下のような加工を実施 ▪ ホテルの種類は「City Hotel」のみとする ▪ 部屋の種類は「タイプA」のみとする ▪
キャンセルされたデータは除去する ▪ データには到着日と宿泊日数のみが含まれるため、宿泊日ごとにデータ を変換する ▪ 例えば、8/1に3泊→8/1, 8/2, 8/3に1泊ずつに変換する ▪ 2016年のデータのみとする データの加工
AI ▪ 最大宿泊数は600 18 需要の推移
AI 19 ▪ 確定的モデルで定式化し、以下の手順で収益最大となる予約価格(最適価 格)を決定する ▪ 需要曲線が変動する要因(需要に影響を与える要因)の分析 ▪ 要因ごとに需要曲線を計算 ▪
需要曲線から収益曲線を計算し、最適価格の決定 価格決定の流れ
AI 20 ▪ 需要に影響を与えそうな特徴量から、線形回帰を用いて影響が大きいものを 特定 ▪ 月 ▪ 曜日 ▪
平均リードタイム ▪ 1部屋あたりの大人の平均人数 ▪ 1部屋あたりの子供の平均人数 ▪ ▪ 需要に影響を与える要因の分析 python statsmodelを用いた線形回帰
AI 21 ▪ p値が0.05以下であれば有意と判断 ▪ 月の影響大 ▪ 金曜日(T:4)と土曜日(T:5)の影響大 ▪ リードタイムの影響も大きい
▪ 1部屋あたりの人数の影響は小さい 線形回帰の結果
AI 22 ▪ 月、曜日、リードタイムごとに需要曲線を演算する ▪ リードタイムは〜7日、8日〜30日、31日〜90日、91日〜180日、181 日〜365日のカテゴリ変数とする 需要曲線の計算 ①価格の割合を計算 ②価格ごとの宿泊数の期待値
を計算 (割合x1日あたり平均宿泊数) ③価格が高い順に期待値の累 積和を計算する(=需要曲線) より安い価格であれば予約したと考えて累積和をとる
AI 23 ▪ 7月の金曜日を例に、在庫制約を無視してリードタイムごとの収益曲線と最適 価格は以下の通り リードタイムごとの最適価格の計算 最適価格=125 数量=23.4 最適価格=100 数量=27.4
最適価格=70 数量=150.8 最適価格=60 数量=93.6 このホテルの場合は直前になるほど価格弾力性が低くなっている 数量の合計が在庫制約(C=600)を満たしている 最適価格=120 数量=10.8 181日〜365日 91日〜180日 31日〜90日 7日〜30日 〜7日
AI 24 ▪ 来年の7月にはホテルの改修工事を実施することになり、200部屋しか提供で きない予定です。リードタイムの各時期における価格をいくらにすると収益 が最大となるでしょうか? 宿泊数の制約を満たさない場合
AI 25 ▪ 最適化で取り扱うために、需要曲線を関数の形にフィッティングさせる ▪ 今回は次式の関数を使用 需要曲線のフィッティング scipyを用いたフィッティング
AI 26 ▪ p.13のように定式化し、逐次二次計画(SLSQP)で最適解を求める 収益最大となる価格の導出 逐次二次計画 非線形の最適化問題を逐次的に 二次計画問題(QP)に近似して 解く方法
AI 27 結果例(7月金曜日) リードタイム 最適価格 数量 181〜365日 89 52 91〜180日
93 95 31〜90日 114 21 7〜30日 131 21 〜7日 131 9
AI ▪ p.14, p.15の定式化に従って動的計画法で最適解を求めた例 28 動的計画法で解いた解の例(7月金曜日) 販売終了までの残り日数が同じでも在庫数によって最適価格が異なる
AI 29 ▪ ダイナミックプライシングの概要とホテルの宿泊価格決定の例を紹介 ▪ 今回の手法の欠陥は需要曲線が過去の傾向と異なる場合や、データが十分に ない場合に機能しない ▪ 機械学習や時系列予測(ARIMA, Prophet)を用いて、将来の価格弾力性
を予測する ▪ 強化学習や多腕バンディットにより探索と収益最大化を繰り返す手法を 採用する まとめ