「メルカリ・パーソナライズ機能」における最適化のチャレンジ
日本最大のフリマサービス「メルカリ」。一般的に私たちは購買行動をする際、さまざまな情報をインプットして、こういうものが欲しいというニーズを認知するところから始まる。そして商品を比較検討し、最も気に入ったモノを購入する。
一見、普通の購買行為に思えるが、「メルカリ」でパーソナライズ機能を開発するalpicola氏は、その難しさと解決策についてこう話す。「出品される商品がたくさんあり、お客さまも多く、そのニーズはさまざまです。多くの商品の中から、お客さま一人ひとりが本当に欲しい商品を見つけるのは難しい。そのニーズの認知と商品の探索というフローをお手伝いするのがパーソナライズ機能です。お客さま一人ひとり、ニーズに合った商品の発見を手助けして買い物を楽しんでもらうために提供しています」(alpicola)
ではどんなパーソナライズ機能を提供しているのか。alpicola氏は2つの取り組み事例を紹介した。1つ目は「パーソナライズド商品レコメンド」。一般的なパーソナライズド商品レコメンドは「お買い物履歴から推測して、パーソナライズし商品をレコメンドしています」とalpicola氏は語る。
「例えばAさん、Bさん、Cさんという3人のお客さまがいたとします。それぞれの購入履歴を調べると、Aさんは子ども服と子どもの靴、Bさんはタブレット、Cさんは子ども服とタブレットでした。これらの買い物傾向から、Aさんと同じように子ども服を購入しているCさんは、子どもの靴も欲しいのではと推測できます。このように個人の買い物履歴に基づいて、潜在的ニーズを推測するのが、よくあるパーソナライズド商品レコメンドの方法です」(alpicola氏)
だがこの方法は、「メルカリ」のようなフリマアプリ(C2Cマーケットプレイス)では難しい。なぜなら「メルカリ」に出品されている商品は1点モノだから。「まったく同じ状態の同じ商品はありません。AさんとCさんの購買履歴から、CさんにAさんの購入した靴をお勧めしたいと思っても、既に売り切れている商品なのでレコメンドすることはできない。そういう問題が『メルカリ』ではあります」(alpicola氏)
ではどのように商品レコメンドをすればよいのか。そのアイデアが商品トピックの作成である。
「トピックとは個々の商品ではなく、興味のある商品のまとまりです。例えば、先の例であればトピック1が子ども服や子ども靴。トピック2はタブレット端末。このようなトピックからキーワードを抽出したり、商品カタログ情報とのひも付けからトピックを商品に割り当てたりして、トピック単位でレコメンドモデルを作成します。トピックの情報とユーザーの情報からマッチング度を予測するというモデルです」(alpicola氏)
そしてこの商品トピックを使ったパーソナライズドレコメンデーションは、通常の商品単位の場合と同様のレコメンドアルゴリズムが適用できるのだ。後はマッチング度の高い順にトピックとその商品をレコメンドしていくだけである。
「商品トピックを使ったレコメンドだと、商品の売り切れに対してよりロバスト性(外的な要因に影響されにくい性質)が高められます。そこがメリットです」(alpicola氏)
加えて、「アプリのホーム画面にレコメンドコンポーネントが組み込まれています」とalpicola氏は明かす。アプリの上部から一つずつトピックをキーワード付きで提示することで、トピックに関してお客さまがニーズを認知する助けになっている。
またもう一つ、「メルカリ」が提供しているのがホーム画面のパーソナライズ機能である。ホーム画面はレコメンドした商品やいいねした商品、閲覧した商品など、複数のコンポーネントで構成されている。「ホーム画面に求められる機能はお客さまによって異なるのではという仮説がありました。そこでお客さまが必要としている機能をパーソナライズして提供するにはどうすれば良いかを考えました」とalpicola氏は続ける。
alpicola氏たちが取り組んでいるのが、「バンディットアルゴリズムを用いた表示レイアウト最適化」である。バンディットアルゴリズムとは、探索的に最適なものを発見するアルゴリズム。特に「メルカリ」のホーム画面のように複数のコンポーネントを組み合わせることができる場合、たくさんの組み合わせの中から表示パターンを一つずつABテストで比較検証するのは、膨大な時間がかかる。だがバンディットアルゴリズムなら表示パターンごとにABテストをすることなく、全パターンに対する最適化ができるのだ。
具体的には、ある表示パターンを提示し、お客さまがどんなコンポーネントをタップしたのか、その行動ログをフィードバックする。その情報を元にバンディットアルゴリズムがさらに良いパターンを提示し、レイアウトの最適化を行っていく仕組みである。
だが、バンディットアルゴリズムを採用する際に重要になるのは、最適化目標を適切に設定すること。alpicola氏も最初の実験では、最適化目標としてコンポーネントのタップ数を設定していた。「タップされていることは、ニーズにマッチして使ってもらえていると考えたため」とalpicola氏。
しかし、結果はホーム画面経由での購入が減少した。理由を分析したところ、表示する候補の一つに閲覧履歴コンポーネントがあったことだ。「閲覧履歴コンポーネントはよくタップされていましたが、結局、購入しなかった商品。そこから新たな商品の発見がなく、結果的に購入につながりませんでした」(alpicola氏)
このことから、新しい商品や本当に欲しい商品が発見でき、購入に結び付けられることが大事だとわかったalpicola氏たちは、それを踏まえて次の実験では、タップや「いいね」など各種フィードバックを元に購入を予測する指標を作成した。それを最適化目標とすることで、ホーム画面経由の購入増加という結果が得られたのだ。