AI技術開発部アルゴリズムグループマネージャーの織田です。
タクシーアプリ「GO」のコアとなるビジネスロジックの一つに、「利用客」と要件にあった適切な乗務員・車両(本記事では「供給者」と呼ぶ)をマッチングするアルゴリズムがあります。では、どのようなマッチングが適切なのでしょうか?近年、マーケットデザインの研究・社会実装が注目されており、モビリティプラットフォームにおいてもマーケットデザインの考え方が活用できる場面が多くあるのではないかと考えています。本記事ではタクシー配車におけるマッチング・マーケットデザインについて議論してみたいと思います。
タクシー配車サービスをはじめとする多くのモビリティプラットフォームは「一対一の二部マッチング市場」と捉えることができます。ここでは、以下のような仮想モビリティプラットフォームに集まった利用客と供給者をマッチングする簡易的な問題を考えます。
マッチングの方法は色々と考えられますが、ここでは次の3つのアプローチを検討してみます。
経済学的には利用客と供給者の全体の効用(社会的余剰)を最大化するマッチングが良さそうです。利用客も供給者も、許容時間内であれば誰かとマッチすることでポジティブな効用を得ていると考えることができます。だけ移動時間が離れている利用客と供給者がマッチした場合、利用客の効用は、供給者の効用はと表せると仮定します。つまり半径を許容時間とする円の中心(待ち時間がゼロ)に近いほど効用が高く、円周上で効用0となる関数になります。
この時、効用を最大化するマッチングは、次のように得ることができます。
Aのアプローチは理想的に見えますが、いくつか問題もあります。まず、利用者や供給者が表明する許容時間に応じて1秒の価値が変わるため、不公平感があります。また、無駄な走行=エネルギー消費という観点でも最適ではありません。より公平で無駄のないマッチングはマッチング数を最大化しつつ、移動距離を最小化することで実現できそうです。つまり、アプローチAの二部グラフの辺の重みを(ここではマッチング数と移動距離のバランスを表すパラメータ)として最大重みマッチング問題を解くことで求めることができます。
上記のマッチングはいずれもバランスの取れた全体最適なマッチングを作ることができますが、マッチングが「安定」でない可能性があります。マッチングが安定であるとは、ブロックするような個人やペアがいないこと、つまり、マッチングから離脱するインセンティブを持つ個人やペアがいないことを意味します。
下図は利用客・供給者の位置、距離を二部グラフの位置と距離に対応させて描画したものです。効用の大きさを辺の太さでマッチングを赤線で表しています。最大重みマッチングではS3とC0は別々のペアとマッチしていますが、お互いがペアとなれば双方にとって得となるため離脱するインセンティブがあります。安定マッチングではS3とC0のペアが作られて安定的なマッチングが作られていることがわかります。
ゲールとシャプレイは1962年に安定マッチングを常に選び出すDAアルゴリズム(Deferred Acceptance Algorithm)を提案しました。利用客が提案者となる利用客側(提案)DAアルゴリズムの手続きは以下の通りです。
利用客側DAアルゴリズムは安定マッチングの中で、利用客にとって最良となることが知られています。逆に供給者側DAアルゴリズムは、供給者にとって最良の安定マッチングとなります。
通常、利用客と供給者は全てのマッチングの情報を持っていないため、マッチングから離脱するインセンティブが働くことはないかもしれません。しかし、例えば、利用客と供給者が別の配車アプリを併用して利用している場合を考えると、別の配車アプリ上でお互いがマッチして、元のマッチングから離脱してしまう可能性は考えられます。このような状況を回避するためには「安定的なマッチング」という考え方が重要になります。
また、余談ですが、利用客側DAアルゴリズムは利用客にとって正直な選好(利用客と供給者の距離はプラットフォーム側で自動計算されるので最大許容待ち時間が該当する)の表明が支配戦略になります。つまり、利用客側には嘘をつくインセンティブがないということになります。これはDAアルゴリズムの重要な性質の一つで、利用客側耐戦略的であると言います。
アルゴリズムの性質を評価するために、次のような実験を行いました。
結果は以下のグラフのようになりました。想定通り、Aの効用最大化ではutilityが最大となり、Bの距離最小化ではdistanceが最小となり、Cの安定マッチングはstable_rate=1となっています。BとCを比較するとstable_rate以外は全てBが良く、安定マッチングを実現するために他の指標が犠牲となっていることがわかります。
実際のモビリティサービスに適応する場合には、アプリケーションによって重要な指標が異なるため、こういったマッチングアルゴリズムの性質をよく理解した上で、適切なメカニズムをデザインすることが必要になると思います。
興味のある方は 採用ページ も見ていただけると嬉しいです。
Twitter @mot_techtalk のフォローもよろしくお願いします!