見出し画像

Uber徹底研究 -UberEatsのレコメンドの強化編-

「今日のランチはUberEatsにしようか。」

コロナ禍でUberEatsで食事を注文される方も増えてきており、UberEatsを繰り返し利用されている方も多いのではないでしょうか。
ただ、検索をしている時に自分の好みに合った料理・レストランが見つかるまで時間がかかってしまうと、注文する気持ちが冷めてしまいます。

そこで、UberEats側はUX向上およびユーザーの離脱防止のためにも、レコメンド機能を強化しています。
以前に、Uber徹底研究シリーズでも、UberEatsのレコメンドについて紹介しました。

以前に紹介した技術レベルにとどまらず、UberEatsのレコメンドは日々進化しています。今回はUberEatsの新たなレコメンド技術についてご紹介します。

[過去のUber徹底研究シリーズ]
Uber徹底研究 -ビジネス概要編-
Uber徹底研究 -UX改善編-
Uber徹底研究 -ゲーミフィケーション・行動科学編-
Uber徹底研究 -MaaSを支えるデータサイエンス編-
Uber徹底研究 -「続き」MaaSを支えるデータサイエンス編 レコメンド-
Uber徹底研究 -因果推論によるマーケティング最適化編-
Uber徹底研究 -データ取得効率化編 ベイズ最適実験計画法-


グラフニューラルネットワークによるレコメンド強化

まず、そもそもUber Eatsは以下の3つの関係者で構成されている3 side プラットフォームです。
①注文をする人 (Eater)
②レストランパートナー (Restaurant Partner)
③配達パートナー (Delivery Partner)
以前の記事では、この①~③をすべて最適化する多目的最適化について触れましたが、今回は①注文する人に対するレコメンド強化に話を絞ります。

UberEatsのレコメンド技術を強化するには何をすれば良いか?

そこで登場するのが、前回紹介させて頂いたグラフニューラルネットワーク(GNN)です。

以下の内容は、上記noteのGNNに関する前提知識を基に書いているため、もしGNNって何?という方は一度こちらのnoteをご覧ください。

GNNの活用方法・検証

GNNを使用する際に、インプットデータとして過去のUber Eatsの注文履歴や、その料理に関連する食品情報などを使用します。

これらのデータおよびGNNを用いて、最終的に類似ユーザーのデータを提供します。(非常に技術的な話になるので不要でしたら以下、飛ばし読みして頂いて大丈夫です。)
具体的には、類似ユーザーの表現を取得するために、ノードベクトルの類似性がグラフ内の2つのノード間の接続の強さを近似するように、グラフの各ノード(この場合はユーザー、レストラン、および食品)のベクトルを計算します。この目的は、ノードからそのベクトル表現を見つけ、グラフ内で構造的に類似しているノードが類似の表現を持つようにすることです。

画像3

この新たなレコメンドの有用性を評価するために、4か月分のデータでモデルをトレーニングしました。次に、別の10日間の注文データを使用して、オススメの料理とレストランのレコメンド結果をテストしました。

・実験結果
平均相互ランク、Precision@K、NDCGなどの評価指標を用いて、実稼働モデルと比較したところ、約20%以上パフォーマンスが向上しました。

また、GNNを用いて学習して得られた特徴量(類似度:Graph Learning cos)が追加されることによって、実稼働モデルと比較してAUCが 12%向上し、ユーザーへのレコメンドが改善されました。

さらに重要変数を並べてみても、GNNにより得られた新しい特徴量は、他のすべての使用変数の中で最も重要度が高いことを示しています。

画像2

図:レコメンドにおける重要変数

PC内に閉じた検証結果だけでなく、実際にサンフランシスコでA / Bテストを実施し、GNNにより得られた特徴量を追加すると、以前のモデルと比較してエンゲージメントとクリック率(CTR)が大幅に向上することを確認しました。これは、このモデルがレコメンドした料理が、Uber Eatsユーザーにとってより魅力的であることを示しています。

メタグラフの活用方法・検証

また、GNNの中でも、メタグラフと呼ばれる手法も登場しています。
メタグラフは、少数ショットリンク予測と呼ばれる、データが少ない場合(疎な場合)につながりをどのように予測するべきかという問題の解決策です。この目的は、新しいスパース(疎な)グラフデータにすばやく適応する機械学習モデルを正確に学習させることです。

eコマースおよびソーシャルネットワークの設定では、新しいデータが追加された時など、スパースなグラフをすばやく予測する必要がある場合に、リンク予測(Facebookの友達かも?のような繋がりの予測)が大きな影響を与えることがよくあります。言い換えると、新しいスパースグラフのリンク予測は、他のスパースでないグラフから利用可能な共有構造があると仮定して、情報を転移することで予測の精度を高めます。

画像3

図:メタグラフのアーキテクチャ

・結果
メタグラフを使用すると、3つの異なる少数ショットリンク予測データにおいて、既存のモデルと比較して大幅な向上が見られました。
メタグラフのアプローチにより、非メタグラフのベースラインよりもAUCが平均5.3%向上しました。

さいごに

GNNを用いたレコメンドは、Uber以外にもPinterest等の他の企業でも使用されています。Pinterestの場合は、レコメンドシステムの中にGCNを入れることで、A/Bテストでエンゲージメントが30%改善しました。また、インプレッションが25%増加するなど、レコメンドのパフォーマンスが大幅に改善されたことを実証しました。

前回の記事にもあるように、最近のパフォーマンス向上手法としてGNNが注目されていることもあり、今後もGNNから目が離せません。


■参考文献
Food Discovery with Uber Eats: Using Graph Learning to Power Recommendations
Meta-Graph: Few-Shot Link Prediction Using Meta-Learning
Spatiotemporal Multi-Graph Convolution Network for Ride-hailing Demand Forecasting
PinSage: A new graph convolutional neural network for web-scale recommender systems

この記事が気に入ったらサポートをしてみませんか?