Machine Learning Pitch「今期の私は凄かったぞ!!!」 @ 2021/3/31 メルカリUSでのHome画面改善の取り組みと、それによるビジネスインパクトの話をしました。
https://machine-learning-pitch.connpass.com/event/199555/
レコメンデーション導入の準備でホーム画面を整えたら、予想以上に大きなビジネスインパクトが出た話株式会社メルカリメルカリUS東京支部 機械学習エンジニア松岡玲音
View Slide
スピーカー紹介● メルカリがファーストキャリア○ MITのPh.D.課程を中退● メルカリでのキャリア○ 日本版メルカリで1年間○ US版メルカリで1年3ヶ月● フロントエンド以外は今のところなんでも● 日本ソムリエ協会認定ワインエキスパート○ 今は国際資格取得に向けて勉強中
ECにおける商品閲覧と商品検索
商品検索● ECの基本、「検索」● ユーザーは、欲しいものを既に大体把握している● クエリの意図を読み取って、関連度の高い結果が返せることが重要
商品閲覧● いわゆる「おすすめ」や「関連商品」● ユーザーは、欲しいものを把握していないことが多い● レコメンドエンジンが特に本領を発揮する部分● 検索と相補的に働き、ECでの購買行動を促す
商品検索商品閲覧メルカリでは、商品閲覧にとても大きな改善余地がある!!良いレコメンドエンジンを開発して、商品閲覧のUXを改善しよう!メルカリにおける商品閲覧と商品検索のバランス
どこから始めるか?🤔Home For You Similar Items
Home● アプリのランディングページなので、上手く改善できれば一番大きな効果が見込めそう● 日本版メルカリでも、過去にHomeの改善施策で大きくGMV(流通総額)が伸びた実例がある● 2年以上前からほとんど更新されておらず、改善の余地に溢れている(?)Homeから始めよう!🔥
Homeの闇その1: レガシー化した実装● ステークホルダーが多く、様々な機能が継ぎ足されていった● USの成長期において実装されたので、コードのクオリティを省みる余裕がなかった?○ 外部データに依存したテスト、直列なリクエスト、副作用の多用。。。● メモリーリークの温床になっており、レイテンシも目も当てられない状態に😇● そして、全容を知る人は一人もUSに残っていなかった😱
Homeの闇その2: 形骸化したコンポーネント群● Homeは、15種類以上(!)の複数のコンポーネントからなる● それらのうちの多くは、正しく効果検証されないまま導入されていた● 再度分析してみると、下記以外はほとんど活用されていないことが判明😇○ Recently Viewed○ My Likes○ Personalized Search
● 高レイテンシ● 魔境と化した実装● 放置されたコンポーネントたち● ほとんど活用されていないHomeまずは一旦整えないと、レコメンデーションどころじゃない。。。😇 😇😇Home
準備その1: 負債の解消● モノリスの大規模リファクタリング○ ソフトウェア考古学○ レイテンシを半分以下に● Personalized Searchコンポーネントを切り出してマイクロサービス化○ Home上の最大の魔窟を整理○ レコメンデーションを導入しやすい形に
準備その2: 不要なコンポーネントの棚卸し● CTRの低いコンポーネントの消去○ A/Bテストでデルタ法を使って一つ一つ効果測定○ PMと協力して各ステークホルダーやVPoPから了承を取る● ユニバーサルコントロールグループを導入○ 数%のホールドアウト群○ 改善の効果を常にトラッキングできるように● この時点で既に売り上げが少し改善🚀
● 整理が一段落し、レコメンデーションがやれそうな感じに○ 一番売り上げ貢献の大きいPersonalized Searchコンポーネントが、アプリを開いた時点で目に触れる位置まで上がってきた● Personalized Search○ ユーザーの過去の閲覧履歴から、複数の検索条件を生成して、個々の検索結果を表示する○ 閲覧した商品の素性を主に検索条件に使用○ いわゆる ”Retargeting”
レコメンデーションの準備は整ったかのように見える!しかし、まだ理想的な形ではない。。。● 毎時更新のバッチなので、ユーザーの行動がリアルタイムに反映されない● 出せるコンテンツが、今の検索エンジンとそのAPIに依存している● 個々の検索結果は9個しか表示されず、その先を見るには検索画面に飛ばなければいけないので、閲覧体験が滑らかではない
準備その3: リアルタイム化の為のデータ基盤導入● ユーザーの行動履歴をBigtableに溜め込む○ クライアントログ取得のデータパイプラインから分岐● 一時間ごとのバッチ更新だったPersonalizedSearchをリアルタイム化● コンポーネントのお掃除と相まって、Home経由の購買が大きく改善○ やはりユーザーはリアルタイムのフィードバックを求めていた● そして、この時点でようやくチーム結成😭Client LoggingEventPersonalizationServiceUser ActivityDBUser ActivityWorker
準備その4: タイムラインへの置き換え● Personalized Searchを、無限スクロールできる商品フィードへと置き換える○ 行動ログから最新の関連商品を提示○ 検索エンジン以外も使えるように○ 閲覧行動がより滑らかに● 固定数の商品のみを出す形(擬似タイムライン)で一旦テスト○ Home経由のあらゆるKPIが大幅に改善○ MLチーム史上最大のGMV改善率を記録した😇🔥
まとめ● レコメンデーションをHomeに導入するための準備だけで大幅にGMVが改善した○ リファクタリング、レイテンシ改善、機能削減、効果測定○ リアルタイム化、UI/UXの変更● 機械学習をやる前にやるべきことが結構ありそう○ どこに手を入れると効果が大きいかの見積もり○ ユニバーサルコントロールグループの導入など、効果検証の基盤○ 機械学習の恩恵を最大限に引き出すための、サービスの理想的な状態とは?● エンジニアリング力があると視野が広がることも○ 負債が溜まっているところにこそチャンスがあったりする○ チームを作るには、まず自分が動いて成果を捻り出す