________________________________________
食料品をオンラインで注文したことがありますか? 何百もの小売業者と提携しているInstacartは、50%以上のアメリカの家庭でお気に入りの店舗からオンラインで食料品を注文することができます。 まだ試していないのであれば、こちらの記事を読んでください:The Instacart Experience、Instacartの仕組みを学んでください。
チェックアウト時の配送窓口
Instacartで食料品を買うときは、食料品を受け取る配送窓口を選択することができます。 理想的には、顧客は任意の窓口(上記の左のスクリーンショットを参照)を選択することができます。 しかし、時にはshopperよりも多くの注文があります。 ビジー状態のウィンドウの場合、完全に閉じたり、配送料を増やして他のウィンドウへの注文手続きをシフトさせたりする必要があります(上記のスクリーンショットを参照)。
このブログ記事では、InstacartのShopper Staffingチームと、顧客への納期の可用性を最大限に高め、shopperの待機を最小限に抑え、望ましいバランスを達成するためのデータサイエンス的手法を紹介します。
早速ミッションステートメントとシステムの概要から始め、サブシステム(市場予測、供給計画、リアルタイムキャパシティ)を掘り下げ、チームスナップショットでまとめましょう。
チームミッション
shopper管理(shopper staffing)チームの使命は、shopperの供給とカスタマーニーズを合わせることです。 追加料金を支払うことなく、お客様が希望の配送窓口を選択できるようにします。 一方で、我々は多くのshopperを入れたくないので、人員を遊ばせておく状態になってしまいます。 本質的には、顧客とshopperの両方の利益を最大化するために、需要と供給のバランスを達成したいと考えています。
当社のチームミッションは、以下の指標を使って定量化されます。
•可用性(Availability) – 利用可能な配達ウィンドウでの顧客訪問の割合
•待機(Idleness) – Shopperが積極的に稼働していない時間の割合
•アンメットデマンド(Unmet Demand)(すなわち、Instacartの観点からの配送の喪失) – 特定の時間枠の間にshopper不足により受諾できない可能性のある注文です。
システム概述
人員配置図
上記のように、人員配置システムは次のサブシステムで構成されています。
• 市場予測:需要と供給を予測する。
• サプライプランニング:長期需要予測を達成するために必要なshopperの総数を推定し、共に予測された短期需要を満たすためにshopperの時間を計画する。
• リアルタイムキャパシティ:リアルタイムでshopperの時間を調整したり、配送ウィンドウのキャパシティを推定したり、配送価格を最適化して需要の変換を最大化する。
市場予測
市場予測の目標は、下流の意思決定システムに正確な需要と供給の予測を提供することです。 これには、以下のデータサイエンス問題が含まれます:
デマンドコンバージョン:Instacartを訪れる顧客が必ず発注するとはかぎりません。 彼らの発注率は、それらがどのタイプのユーザであるか、どの配達オプションが利用可能であったか、どこで住んでいるかなどの多くの要因に依存します。そしてデマンドコンバージョンモデルは、これらの特徴と順序確率を関連付けるものです。
アンメットデマンド(配送の紛失)推定:上記のように、顧客がチェックアウト時に自分のお気に入りの配送窓口を見つけられない場合、注文をキャンセルする場合があります。 そのような満たされていないリクエストはユーザーエクスペリエンスに害を及ぼし、我々はそれらのロスト配送を、 利用不可能な配達ウィンドウやビジー配達ウィンドウによる対応不能な発注を予測したいと考えています。この目的のために、我々は因果推論またはベイジアンネットワークを使用して、特定の機能のデマンドコンバージョンへの影響を推定します。
需要予測:需要予測へのインプットとなる理想的な需要レベルを推定するために、実際の出荷とロスト出荷を組み合わせます。 Instacartの食料品販売の季節性を予測するために、コンベンショナタイムシリーズモデルを使用します。 加えて、shopperを調整するために都市レベルで数週間の需要を予測しており、同時に店舗レベルでの供給を計画するための時間当たりの需要も予測しています。 時空間の異なるユースケースでは、需要予測モデルを構築する際に、異なるデータ希薄さを処理する必要があります。
供給予測:Instacartのshopperは自分のスケジュールで作業するため、機械学習モデルを使用して特定の時間の請求およびキャンセルの可能性を予測します。 このような予測はサプライプランニングにとって重要な情報を提供するため、お客様の需要を満たすために必要なだけ正確にshopperの時間を埋めることができます。
サプライプランニング
サプライプランニングの目標は、顧客の需要を満たすために必要なだけ正確にshopperの時間を調整する(generate)ことです。 これには、以下のデータサイエンス問題が含まれます。
スタッフィングモデル:このモデルは、予測された需要を満たすために必要なshopperの時間数を推定します。 私たちの推定では、デマンドレベルとshopperの効率だけでなく、発注地と目的地とロジスティック(物流)システムの効率も考慮しています。No Order Left Behind; No Shopper Left Idle by Jagannath Putrevuを読んでください。デマンド予測からスタッフィングレベルを導き出すモンテカルロ法の詳細についてもっと詳しくなれます。
ショッパーベンチモデル:長期需要予測をスタッフィングモデルに提出すると、今後数週間に必要なショッパーの合計時間が予測されます。 次に、統計的モデリングとミクロ経済理論(microeconomic theory)を使って、この期間に必要かつ最適なショッパーの数を導き出します。これは、Shopperをコスト効率よく獲得するために使用されます。
フィルモデル:Shopperが自分のスケジュールで作業するので、いつでもサインアップしたりキャンセルしたりできます。 フィルモデルでは、顧客の需要を満たすために必要なshopperの時間を最大限に埋める可能性を最大限に高めるために、特定時間帯をスタート前の任意の時間に適切な営業時間を計算します。
時間インセンティブモデル:異なる時間に異なる受入れ確率があります。 供給予測を用いると、時間インセンティブモデルは受入れ確率に基づいて時間を様々なカテゴリに分類し、それに応じてインセンティブを適用する。 ここでの注意点は時間インセンティブが時間受け入れ確率を大幅に変えることができることです。 したがって、インセンティブと受入れ率との間のフィードバックループをダイナミックアワーインセンティブシステムにモデル化する必要があります。
リアルタイムキャパシティ
リアルタイムキャパシティはシステムのゲートキーパーとして機能し、より多くのデータをリアルタイムで取得することにより、より正確に現実に適応することができます。 これには、以下のデータサイエンス問題が含まれます。
リアルタイムスタッフィングモデル:サプライプランニングは、開始時間の少なくとも1日前に行われたバッチ予測に基づいてshopperの時間を生成します。時々大幅な外れが起きることがあります。 リアルタイムの人員配置モデルは、リアルタイムの需要予測、供給予測、および需給不一致を使用して需要に合わせて供給を調整します。
キャパシティモデル:このモデルは、既存の需要と供給レベルに基づいて、特定の店舗の各出荷ウィンドウごとに実行できる注文の数を予測します。 私たちは機械学習モデルを使用して、キャパシティと遅れをトレードオフします。 モデルがキャパシティをあまりにも控えめに推定すると、注文の不足により配送ウィンドウの可用性が不必要に制限され、shopperの待機が増えます。 一方、過度に積極的に推定をすると、あまりにも多くの注文がかかり、遅れて出荷されるため、ユーザーエクスペリエンスが損なわれます。
出荷価格モデル:キャパシティモデルは、shopperがどのくらいデマンドを満たすことができるかについての洞察(insight)を提供します。 実際には、もっと多くのことができます! たとえば、デマンドをビジーアワーからアイドルアワーにシフトするために、配送ウィンドウの価格を変えます。 需要の弾力性は、ユーザタイプ、バスケットなどの他の要因にも依存する。 したがって、デマンドコンバージョンモデルはデマンドとサプアイのバランスをリアルタイムで調整するのにも役立ちます。
この投稿は、私たちのチームが毎日取り組んでいるデータサイエンスの課題の概要をまとめたものです。 私たちのチームからの今後の投稿をお待ちして、これらの課題のいくつかの詳細をご覧ください。
Shopper Staffing Team Snapshot @ Q4 2017
最後に、私たちのチームの努力はデータサイエンスを超えています。 私たちは、データ科学者、機械学習エンジニア、フルスタックおよびモバイルエンジニア、データアナリスト、デザイナー、プロダクトマネージャからなる多面的なチームです。 私たちはお互いに学び、多機能に協働し、Instacartのビジネスに強力なインパクトをもたらし、Instacart Anytime(いつでもInstacart)の目標のために挑戦します!
私たちと一緒に働きたいですか? ここに申し込むか、私たちに連絡してください!
Instacart顧客のアプリ体験
Instacartは、シームレスなオンライン(食料品)買い物体験を提供します。 上記のように、顧客は、アプリを開き、お気に入りの店を選択し、オンラインで食料品を買い、配送時間帯を選んで、選択された時間枠内で食料品を受け取ることができます(1時間以内で)。
Instacart Shopperのアプリケーションエクスペリエンス
注文後、私たちのシステムはそれを特定のshopperにアサインします。 上記のように、shopperは注文を確認し、店に行き、注文リスト上の商品を見つけてスキャンし、顧客との商品を確認し、チェックアウトする。
Instacartでのカスタマーとショッパーの両方の体験はシンプルです。 しかし、裏のシステムは非常に複雑です(Space, Time and Groceries by Jeremy Stanleyを読んでください)。 我々は、顧客が望ましい配送窓口で注文することができるようにし、ショッパーを十分に活用して、注文を効率的かつ時間通りに配達することができます。 1秒でも重要です!
Instacartの仕組みについてもっと知りたいですか? こちらにどうぞ。
Reference:
タイトル:Instacart Anytime: A DataScience Paradigm
作者:Ji Chen
原文URL: https://tech.instacart.com/instacart-anytime-a-data-science-paradigm-33eb25a5c32d