Slide 1

Slide 1 text

レコメンデーション導入の準備でホー ム画面を整えたら、予想以上に大きな ビジネスインパクトが出た話 株式会社メルカリ メルカリUS東京支部 機械学習エンジニア 松岡玲音

Slide 2

Slide 2 text

スピーカー紹介 ● メルカリがファーストキャリア ○ MITのPh.D.課程を中退 ● メルカリでのキャリア ○ 日本版メルカリで1年間 ○ US版メルカリで1年3ヶ月 ● フロントエンド以外は今のところなんでも ● 日本ソムリエ協会認定ワインエキスパート ○ 今は国際資格取得に向けて勉強中

Slide 3

Slide 3 text

ECにおける商品閲覧と商品検索

Slide 4

Slide 4 text

商品検索 ● ECの基本、「検索」 ● ユーザーは、欲しいものを既に大体把握 している ● クエリの意図を読み取って、関連度の高 い結果が返せることが重要

Slide 5

Slide 5 text

商品閲覧 ● いわゆる「おすすめ」や「関連商品」 ● ユーザーは、欲しいものを把握していない ことが多い ● レコメンドエンジンが特に本領を発揮する 部分 ● 検索と相補的に働き、ECでの購買行動を 促す

Slide 6

Slide 6 text

商品検索 商品閲覧 メルカリでは、商品閲覧にとても大き な改善余地がある!! 良いレコメンドエンジンを開発して、 商品閲覧のUXを改善しよう! メルカリにおける商品閲覧と商品検索のバランス

Slide 7

Slide 7 text

どこから始めるか?🤔 Home For You Similar Items

Slide 8

Slide 8 text

Home ● アプリのランディングページなので、上手く 改善できれば一番大きな効果が見込めそ う ● 日本版メルカリでも、過去にHomeの改善 施策で大きくGMV(流通総額)が伸びた実 例がある ● 2年以上前からほとんど更新されておら ず、改善の余地に溢れている(?) Homeから始めよう!🔥

Slide 9

Slide 9 text

Homeの闇その1: レガシー化した実装 ● ステークホルダーが多く、様々な機能が継ぎ足 されていった ● USの成長期において実装されたので、コード のクオリティを省みる余裕がなかった? ○ 外部データに依存したテスト、直列なリク エスト、副作用の多用。。。 ● メモリーリークの温床になっており、レイテンシ も目も当てられない状態に😇 ● そして、全容を知る人は一人もUSに残っていな かった😱

Slide 10

Slide 10 text

Homeの闇その2: 形骸化したコンポーネント群 ● Homeは、15種類以上(!)の複数のコン ポーネントからなる ● それらのうちの多くは、正しく効果検証され ないまま導入されていた ● 再度分析してみると、下記以外はほとんど 活用されていないことが判明😇 ○ Recently Viewed ○ My Likes ○ Personalized Search

Slide 11

Slide 11 text

● 高レイテンシ ● 魔境と化した実装 ● 放置されたコンポーネントたち ● ほとんど活用されていないHome まずは一旦整えないと、 レコメンデーションどころじゃない。。。😇 😇 😇 Home

Slide 12

Slide 12 text

準備その1: 負債の解消 ● モノリスの大規模リファクタリング ○ ソフトウェア考古学 ○ レイテンシを半分以下に ● Personalized Searchコンポーネントを切り出して マイクロサービス化 ○ Home上の最大の魔窟を整理 ○ レコメンデーションを導入しやすい形に

Slide 13

Slide 13 text

準備その2: 不要なコンポーネントの棚卸し ● CTRの低いコンポーネントの消去 ○ A/Bテストでデルタ法を使って一つ一つ効 果測定 ○ PMと協力して各ステークホルダーや VPoPから了承を取る ● ユニバーサルコントロールグループ を導入 ○ 数%のホールドアウト群 ○ 改善の効果を常にトラッキングできるよう に ● この時点で既に売り上げが少し改善 🚀

Slide 14

Slide 14 text

● 整理が一段落し、レコメンデーションがやれそうな感じに ○ 一番売り上げ貢献の大きいPersonalized Searchコンポー ネントが、アプリを開いた時点で目に触れる位置まで上 がってきた ● Personalized Search ○ ユーザーの過去の閲覧履歴から、複数の検索条件を生成 して、個々の検索結果を表示する ○ 閲覧した商品の素性を主に検索条件に使用 ○ いわゆる ”Retargeting”

Slide 15

Slide 15 text

レコメンデーションの準備は整ったかのように見える!しかし、まだ理 想的な形ではない。。。 ● 毎時更新のバッチなので、ユーザーの行動が リアルタイムに反 映されない ● 出せるコンテンツが、今の検索エンジンとそのAPIに依存してい る ● 個々の検索結果は9個しか表示されず、その先を見るには検索 画面に飛ばなければいけないので、 閲覧体験が滑らかではない

Slide 16

Slide 16 text

準備その3: リアルタイム化の為のデータ基盤導入 ● ユーザーの行動履歴をBigtableに溜め込む ○ クライアントログ取得のデータパイプライン から分岐 ● 一時間ごとのバッチ更新だったPersonalized Searchをリアルタイム化 ● コンポーネントのお掃除と相まって、 Home経由 の購買が大きく改善 ○ やはりユーザーはリアルタイムのフィード バックを求めていた ● そして、この時点でようやくチーム結成 😭 Client Logging Event Personalization Service User Activity DB User Activity Worker

Slide 17

Slide 17 text

準備その4: タイムラインへの置き換え ● Personalized Searchを、無限スクロールでき る商品フィードへと置き換える ○ 行動ログから最新の関連商品を提示 ○ 検索エンジン以外も使えるように ○ 閲覧行動がより滑らかに ● 固定数の商品のみを出す形(擬似タイムライ ン)で一旦テスト ○ Home経由のあらゆるKPIが大幅に改善 ○ MLチーム史上最大のGMV改善率を記録 した😇🔥

Slide 18

Slide 18 text

まとめ ● レコメンデーションをHomeに導入するための準備だけで大幅にGMVが改善した ○ リファクタリング、レイテンシ改善、機能削減、効果測定 ○ リアルタイム化、UI/UXの変更 ● 機械学習をやる前にやるべきこと が結構ありそう ○ どこに手を入れると効果が大きいかの見積もり ○ ユニバーサルコントロールグループの導入など、効果検証の基盤 ○ 機械学習の恩恵を最大限に引き出すための、サービスの理想的な状態とは? ● エンジニアリング力があると視野が広がることも ○ 負債が溜まっているところにこそチャンスがあったりする ○ チームを作るには、まず自分が動いて成果を捻り出す