パーソナライズ機能を開発するためのスキルセットと開発体制
このように「メルカリ」ではいろんな切り口でパーソナライズを実現している。いずれもよく知られた手法を使いながらも、サービス要件に合わせて問題設計をカスタマイズする工夫が求められる。
それだけに、このような機能を提供するために必要なスキルセットは多岐にわたるとalpicola氏は言う。大きくは「効果的な施策・アルゴリズムを発見するデータサイエンス力」と「大規模なトラフィックやデータを扱うエンジニアリング能力」が欠かせない。そしてそれぞれの専門性を持ったメンバーが協業していくことで実現している。
だが先述したように、「メルカリ」のようなC2Cマーケットプレイスでのパーソナライズの応用事例は少なく、未知のことだらけ。「何がうまくいくかは本番環境でいろいろと実験してみないとわかりません」とalpicola氏は言う。そこで仮説検証をベースとしたアジャイルなアプローチを採用し、開発している。
メルカリにはパーソナライズ機能開発に取り組む、レコメンデーションチームがある。プロダクトマネージャー、エンジニアリングマネージャー、そして7~8人のソフトウェアエンジニアで構成されている。「データ分析や機械学習などデータサイエンスに強いメンバーや、ソフトウェア開発に精通しているメンバーなど、それぞれの強みを生かして開発に取り組んでいます」(alpicola氏)
開発スタイルは、フルサイクル開発を採用。フルサイクル開発とは、機能を開発から運用まで、ソフトウェアライフサイクル全行程においてチームで完結するスタイルである。
「私たちレコメンデーションチームがメインで担当するのは、Recommendation APIというマイクロサービスの開発、運用です。サーバ部分だけではなく、レコメンド結果を返すためのデータパイプライン、学習したモデルや予測結果を格納するデータストレージなどをまとめて運用しています。ログの基盤やマイクロサービスを束ねる基盤など、メルカリ社内のプラットフォームをフル活用して、機能の開発・リリース、障害対応などチームで責任を持って取り組めるようになっています」(alpicola氏)
機能開発では、「仮説検証の概念を大事にしています」とalpicola氏。実験計画から機能実装、オフライン評価、オンラインABテスト、結果分析、リリースまでを約1〜2カ月のサイクルで実践していく。得られた知見は、次の計画をアップデートしていくのだ。
この仮説検証サイクルを効率的に回すために、alpicola氏たちはいくつかの取り組みを行っている。その一つが実験設計書のテンプレートを導入していることである。テンプレートには目的、仮説、ゴールメトリクスの定義、アクションプランと、実験を正しく行うための情報がリストアップされており、それを埋めることで各実験の品質が担保され、実験設計レビューの効率化が図れる。
またもう一つの取り組みが、実験結果の測定・可視化を自動化してくれるツールの開発である。「設定ファイルに実験期間や実験の成功を定義するメトリクスの定義を記述することで、集計した結果のBigQueryへの書き込みや、Streamlitでの表示までを自動で一気に行ってくれます」(alpicola氏)
C2Cマーケットプレイスのパーソナライズ機能の開発は、まだまだ未知な部分が多く、仮説検証ベースの開発が主となる。「まだまだできていないことも多いです。これからさらにどんどんよくして、お客さまのさらなるニーズに応えていきたいですね」(alpicola氏)
alpiola氏は、そう力強く話しプレゼンテーションを締め括った。2,000万人以上のMAUを持つメルカリが、更に成長するための重要な柱とも言えるパーソナライズ。alpiola氏のチャレンジと今後の機能から目が離せない。