"ASPIRE: Air Shipping Recommendation for E-commerce Products via Causal Inference Framework"を読んだ
こんにちは!株式会社GA technologies、Advanced Innovation Strategy Center(AISC)の三田です。
(AISCについての詳細はウェブサイトがありますのでご興味があればご覧ください!↓↓)
AISCでは隔週で勉強会を行っており、各自が興味を持った論文を紹介しあっています。AISCはメンバーの多様性が高く関心領域も様々なため、紹介される論文もマーケティングだったり画像処理だったりGISだったりと幅広いです。
例えばこちらの記事はAISCの岩隈さんが勉強会で紹介されていた画像処理の論文の紹介になります ↓
他方で私はテーブルデータの分析手法の研究や、ビジネスへの応用についての研究を紹介することが多いです。
今回は私が過去に勉強会で取り上げた論文のひとつである ASPIRE: Air Shipping Recommendation for E-commerce Products via Causal Inference Framework. について簡単に紹介していきたいと思います。
論文の概要
ざっくり3行でまとめると、こんな感じの論文になります:
課題:Amazonにて、ある商品について「空輸してでもすぐに配送すべきか」の判断を最適化して「翌日配送」の表示を改善したい
手法:統計的因果推論を使用して期待売上を推定し、輸送可能量の制約の下での売上最大化問題として解く
結果:online evaluation(A/Bテスト)でも検証され、ベースラインのモデルよりも売上を79bps増加させたことが確認された(※bps = basis points = 0.01%)
以下でより詳細に述べていきます。
背景
ECにおいて商品の配達速度は売上に影響する重要な要因です。配達速度を速める方法のひとつが「航空輸送(空輸)」であり、空輸をうまく活用することができれば利益の増加が見込めるので、データに基づいて「空輸をするかどうか」の意思決定を最適化していくことが今回の研究の目的です。
なお、空輸はあくまで業務のオペレーション上の話であり、Amazonのユーザーが実際に閲覧するのは次の図のような「Delivery by Tomorrow(翌日配送)」の表示になります。
もし顧客の住所と商品が置いてある倉庫が近ければ、空輸しなくても陸上輸送で翌日配送できます。
しかし、そうでない(陸送ではすぐに配達できない)場合に、翌日配送の表示を出すことで成約率が上がって最終的に空輸のコストを上回る売上が得られるのであれば、そのような商品は「空輸する」という判断をして翌日配送の表示を出したい、という状況になります。
この論文は、そうした「空輸すべきかどうか」の判断を行うレコメンデーションエンジンを作る研究です。
変数の関係性
登場する変数たちとその関係性は次の図のようになります。
ここで
$${r}$$: 「空輸すべき」というレコメンド(これを改善したい)
$${t}$$: 翌日配送の表示(promise)
$${x}$$: 共変量(製品価格、出品者の評価、顧客の郵便番号、顧客のPrime会員ステータスなど)
$${y}$$: 成約
$${z}$$: その他の潜在要因(空輸の残容量、近隣の倉庫の場所など)
です。図の矢印は変数間の関係性を意味しており、例えば翌日配送の表示$${t}$$は空輸適性$${r}$$だけでなく、近隣の倉庫の場所$${z}$$と顧客の住所$${x}$$(=陸上輸送による翌日配送)の影響も受けます。
手法
概要
「輸送可能な量の上限という制約条件がある下で、各商品の期待売上の総和$${\sum_a E(y|a)}$$を最大化するように推薦するかどうか$${ \lambda_a \in \{0, 1\}}$$を決定していく」、という制約条件付き最大化問題の形で解いていきます。
期待売上$${ E(y|a) }$$の推定には統計的因果推論の手法であるDoubly Robust Estimatorを用います。また、制約付き最大化問題については貪欲法というシンプルな方法で解いていきます。
期待売上の定式化
期待売上は、推薦したときの期待売上とそうでない場合の期待売上の和として整理します。具体的には次の式になります。
$$
E(y|a) =
\lambda_a \cdot p_a \cdot p(y=1|r=1, x)\\
(1 - \lambda_a) \cdot p_a \cdot p(y=1|r=0, x)
$$
ここで$${ \lambda_a \in \{0, 1\} }$$は推薦するかどうか、$${ p_a }$$は商品$${ a }$$の価格、$${ p(y|r, x) }$$は共変量$${ x }$$とレコメンド$${ r }$$の条件のもとでの成約率になります。
空輸のレコメンド$${ r }$$による成約率の上昇の平均値を$${ \Delta_a }$$と書くことにします。$${ \Delta_a }$$はこの論文ではspeed sensitivityと呼ばれています($${ G_a }$$は製品aの閲覧の集合)。
$$
\displaystyle
\Delta_a = \frac{1}{|G_a|} \sum_{(x, y) \in G_a}
\big[
\underbrace{ { p(y=1 | r=1, x) - p(y=1|r=0,x) } }
_{ 推薦rによる購入確率p(y|x)の上昇量 }
\big]
$$
$${ \Delta_a }$$を使うと期待売上の式は次のように整理できます。
$$
E(y|a) = \lambda_a \cdot p_a \cdot \Delta_a + p_a \cdot p(y=1|r=0, x)
$$
第二項はレコメンド$${ \lambda_a }$$に依存しないため、最後に扱う最適化問題の目的関数からは省きます。
Speed Sensitivityの推定
speed sensitivity $${ \Delta_a }$$は「推薦$${r}$$による購入確率$${p(y|x)}$$の上昇量」の平均値だと上記で述べましたが、ここの推定が難しいところであり因果推論の出番でもあります。
この「推薦$${r}$$による$${p}$$の上昇」は「翌日配送の表示$${t}$$による購入$${y}$$の変化」と「推薦$${r}$$による表示$${t}$$の変化」に分解して扱っていきます。
$$
\underbrace{ p(y=1 | r=1, x) - p(y=1|r=0,x) }
_{ 推薦rによる購入確率p(y)の上昇量 }
\\
= \underbrace{ \mathcal{DR}(x,y,t) }
_{ 表示tによるyの変化 }
\cdot
\underbrace{ { p(t=1|r=1) - p(t=1|r=0) } }
_{
\substack{
推薦rによる表示tの変化\\
(様々な倉庫にある商品なら小さくなる)
}
}
$$
「推薦$${r}$$による表示$${t}$$の変化」$${ p(t=1|r=1) - p(t=1|r=0) }$$は、例えば複数の倉庫で十分に在庫を蓄えている商品であれば陸路で翌日配送ができるため、空輸の推薦$${r}$$が変化したことによる影響が小さくなる(逆もしかり)という量です。
「翌日配送の表示$${t}$$による購入$${y}$$の変化」はDoubly Robust Estimator
$$
\displaystyle
\mathcal{DR}(x, y, t)
= \left( \frac{t\cdot y}{p(t|x)} - \left( \frac{t - p(t|x)}{p(t|x)} \right) f_1(y|x) \right) \\
- \left( \frac{(1-t) y}{1 - p(t|x)} + \left( \frac{t - p(t|x)}{1 - p(t|x)} \right) f_0(y|x) \right)
$$
によって推定していきます。
$${ \mathcal{DR}(x, y, t) }$$は$${ t = 1 }$$を処置群(処置を受けた群)、$${ t = 0 }$$を対照群(処置を受けなかった群)としたときの、処置群と対照群との結果$${ y }$$の差の推定量で、$${ f_0, f_1 }$$は共変量$${ x }$$から$${t=0}$$と$${t=1}$$の各群での結果$${ y }$$を予測する回帰モデルになります。
処置を受ける確率$${ p(t|x) }$$もデータから推定して入手する値なのですが、$${ p(t|x) }$$と$${ f }$$のどちらかが適切に推定できていれば全体としてバイアスなく推定できることから、この手法はDoubly Robust Estimator(二重に頑健な推定量)と呼ばれます。なお$${ p(t|x) }$$と$${ f_0, f_1}$$はLightGBMで推定します。
期待空輸量の定式化
空輸できる重量の上限$${B}$$以内で売上を最大化するように空輸するかどうかを決める問題を解いていくため、空輸する重量も計算可能にしておく必要があります。製品$${a}$$の期待重量は次のように計算します。
$$
\underbrace{ E(C|a) }_{ 空輸する重量の期待値 } = \underbrace{ \lambda_a }_{ 推薦するかどうか } \cdot \underbrace{ w_a }_{ 製品重量 } \cdot \underbrace{ p(y=1|r=1, x) }_{ 推薦時の成約率 }
$$
最適化
空輸できる重量$${ B }$$の制約条件の下での各製品の期待売上の合計の最大化問題
$$
\displaystyle
\max_{\lambda_{1\cdots m}} \sum_a
\underbrace{ E(y|a) }_{ 製品aの期待売上 }
\\
\text{s.t. } \sum_a
\underbrace{ E(C|a) }_{製品aの輸送量}
\leq
\underbrace{ B }_{ 輸送可能量 }
$$
を解いていきます。
具体的には
重量$${w_i}$$・空輸コスト$${ c_i^{(fly)} }$$あたりの期待売上$${ \frac{ p_i \cdot \Delta_i }{ w_i \cdot c_i^{(fly)} } }$$で降順に並べ替える
順番に詰め込めるだけ(空輸積載上限$${ B }$$に達するまで)詰め込む
という方法で最適化します(急に空輸コスト$${ c_i^{(fly)} }$$が出てきましたが論文のほうでも急に出てきます)。
この方法は0-1ナップサック問題の近似解法であり非常にシンプルな方法ですが、それゆえAmazonが扱う膨大な商品数を捌くのに向いている手法でもあります。
検証
Offline Evaluation
まず、すでに得られているデータ(2019年の3ヶ月間、4兆レコード)を使って、3つのベースライン手法と提案手法(ASPIRE)との成績を比較していきます。ベースライン手法は、最適化の降順にソートするときの指標として商品の
PV数(page view count)
売上数(units sold)
売上(revenue)
を使ったものになります。次の表がその結果で、ASPIREのほうが14~22bps程度高い売上が得られそうであることがわかります(※bpsはbasis pointsの略で、%の指標同士を比較したときの0.01の差)。
Online Evaluation
実際にモデルをデプロイし、A/Bテストで検証していきます(試験期間は2019年における1ヶ月間)。なお、ここでのA(baseline policy)は「ある閾値(threshold)を超える価格なら空輸を許す」という手法です。
この実験による提案手法のインパクト(上昇分)は次の表のとおりです。売上を79bps、成約率を182bpsさせました。
(「効果が小さすぎでは…?」と思われた方もいらっしゃるかもしれません。私も当初そう思ったのですが、扱っている商品数に対して空輸を用いる商品数の割合が小さい場合は全体で見ると影響が小さく見えてしまうと考えられますので、そのためかなと思っております)
おわりに
今回ご紹介した論文は統計的因果推論を用いて売上を最適化していくアプローチが非常に面白いと感じたため選びました。
我々データサイエンティストは予測モデル(予測誤差に対する最適化)の構築を行うことが多いですが、最終的には売上や利益などのKPIを高めたいわけで、間接的な目的関数を最適化をしていることになります。また、予測性能が高いモデルが必ずしも高いコンバージョン率をもたらすとは限らないことを報告した研究もあったりします(Bernardi et al., 2019)。もし、売上や利益といったビジネス上のKPIを直接的に最適化することができれば、より効果的にビジネスを改善するモデルを作れるのかなと思います。
そのようなKPIを最適化するアプローチはレコメンデーションの分野では一定数あるようです。ただ、レコメンデーションのように意思決定問題を解くためのモデルであれば考えやすいですが、そうでない場合(例えばプロダクトの機能の一つとして予測を提供するなど)はKPIの最適化問題へ帰着させるのは非常に難しそうでもあります。このあたりは何かよいアプローチがないか考えつつ、今後も勉強していきたいと思います。