Slide 1

Slide 1 text

1 Confidential Vision Language Modelを活用した メルカリの類似画像レコメンドの性能改善 第50回 MLOps勉強会 Yuki Yada / arr0w 2025.03.26

Slide 2

Slide 2 text

2 株式会社メルカリ 2024年新卒入社 Souzoh -> 生成AIチーム -> メルカリ ハロ(今ここ) 矢田宙生 / arr0w

Slide 3

Slide 3 text

3 国内最大のC2Cマーケットプレイス 月間利用者数: 2251万人 (FY2025.6時点) メルカリについて

Slide 4

Slide 4 text

4 グループミッション あらゆる価値を循環させ、あらゆる人の可能性を広げる “Circulate all forms of value to unleash the potential in all people”

Slide 5

Slide 5 text

5 会社概要 Japan Region Mercari Group Fintech メルカリグループは、株式会社メルカリと、その連結子会社で構成されています。 Marketplace 株式会社メルカリ ◼設立 ◼事業内容 ◼所在地 ◼拠点 ◼代表取締役 CEO ◼CEO Marketplace     2013年2月1日     スマートフォン向けフリマアプリ     「メルカリ」の企画・開発・運営     〒106-6118 東京都港区六本木6-10-1     六本木ヒルズ森タワー     東京、福岡、大阪     山田進太郎     山本真人 ①2017年11月20日 ②金融事業 ③永沢岳志 株式会社メルペイ ①2014年1月 ②US版メルカリの企画・開発・運営 ③John Lagerling ④Palo Alto, California Mercari, Inc.(US) ①1991年10月1日 ②フットボールクラブ運営 ③小泉文明 ④茨城県立カシマサッカースタジアム 指定管理茨城県鹿嶋市 粟生東山2887番地 株式会社鹿島 アントラーズ・エフ・シー インド開発拠点 ①2022年6月 ②インターネットサービス開発 ③Carlos Donderis(取締役 Managing Director) ④Bangalore, Karnataka, India Mercari Software Technologies India Private Limited ①2021年4月28日 ②暗号資産・ブロックチェーン ③中村奎太 株式会社メルコイン

Slide 6

Slide 6 text

   事業展開 
 ビットコイン 取引サービス 「メルコイン」 スマホ決済サービス 「メルペイ」 フリマアプリ 「メルカリ」 事業者向けEコマース プラットフォーム 「メルカリ Shops」 US版フリマアプリ 「mercari」 スポットワーク サービス 「メルカリ ハロ」

Slide 7

Slide 7 text

7 Confidential 商品詳細画面の「見た目が近い商品」 Outline SigLIPを用いた類似画像推薦モデルの構築 本番環境へのデプロイ A/Bテストによる検証結果 02 03 04 01

Slide 8

Slide 8 text

8 Confidential 商品詳細画面の「見た目が近い商品」 Outline SigLIPを用いた類似画像推薦モデルの構築 本番環境へのデプロイ A/Bテストによる検証結果 02 03 04 01

Slide 9

Slide 9 text

9 Confidential 商品詳細ページの「見た目が近い商品」 ● テキスト情報の限界 
 C2Cマーケットプレイスでは出品者自身が商品情報を入力するた め、キーワードやカテゴリなどのテキスト情報にばらつきが生じ、 類似商品の検索精度に影響
 ● 画像主導の購買行動 
 「このデザインが気に入った」「この見た目に似た商品を探してい る」といった、ブランドやスペックよりも視覚的類似性を重視する ユーザーニーズへの対応 実装の背景 ● 商品の見た目が似ている度合い(視覚的類似性)に基づく推薦 見た目が近い商品

Slide 10

Slide 10 text

10 Confidential ● ファインチューニングなしのMobileNet (+PCA)から得られる128次元の商品画像 Embeddingを用いて近傍検索(ANN) 「見た目が近い商品」 version 1.0 見た目が近い商品 version 1.0 ● MobileNetはCNNベースのモデルで表現力の面で不足感 ● 自社データでの学習ができておらず、ドメインへの適応という観点で不十分 課題

Slide 11

Slide 11 text

11 Confidential ● ファインチューニングなしのMobileNet (+PCA)から得られる128次元の商品画像 Embeddingを用いて近傍検索(ANN) 「見た目が近い商品」 version 1.0 見た目が近い商品 version 1.0 ● MobileNetはCNNベースのモデルで表現力の面で不足感 ● 自社データでの学習ができておらず、ドメインへの適応という観点で不十分 課題 → より表現力の高いモデル を自社データでファインチューニング し、新たな画像 Embeddingモデルを構築

Slide 12

Slide 12 text

12 Confidential 商品詳細画面の「見た目が近い商品」 Outline SigLIPを用いた類似画像推薦モデルの構築 本番環境へのデプロイ A/Bテストによる検証結果 02 03 04 01

Slide 13

Slide 13 text

13 Confidential ● Vision Language ModelのSigLIPをメルカリの商品データ 100万件程度でファ インチューニングし、画像Embeddingモデルを構築 ● オフライン評価: ○ 定量評価: 「見た目が近い商品」v 1.0の行動ログを使って検索指標で評価 ○ 定性評価: クエリ画像と似ているとして推薦された商品画像を目視で確認 ● 新たなEmbeddingモデルが最も高い性能をオフラインで示した SigLIPによるEmbeddingモデルの構築

Slide 14

Slide 14 text

14 Confidential ● 大規模な画像とテキストのペアのデータセットで事前学習されたモデル (CLIP, ALIGN… etc) → ゼロショット画像分類や検索等のタスクで高い性能 ● SigLIP ○ Loss関数にSigmoid Lossを使用 (CLIPはSoftmax Loss) ○ ImageNet を使用した画像分類タスクを含む複数のベンチマークで、 SigLIPは既存手法と比べてパフォーマンスが大幅に向上 ● Pretrained SigLIP: google/siglip-base-patch16-256-multilingual SigLIP

Slide 15

Slide 15 text

15 Confidential 自社データによるファインチューニング ● Pretrained SigLIPをメルカリの商品 データでFine Tuning ● データセット ○ 商品画像と商品名のペア ○ 件数: 1,000,000件 ● 事前学習の方法と同じく Sigmoid Lossにより対照学習

Slide 16

Slide 16 text

16 Confidential 自社データによるファインチューニング ● 実験環境: L4 GPU x 1, Vertex AI Custom Job, ● Dataset: GCS, BigQuery ● Libraries: PyTorch, transformers, WebDataset ● 実験管理: wandb

Slide 17

Slide 17 text

17 Confidential オフライン評価 (定量評価) ● 「見た目が近い商品」version 1.0で得られたTapログを用いて定量評価 ● 評価指標: nDCG@K, Precision@K, session_id | query_item_id | similar_item_id | clicked | ----------------|----------------|-----------------|---------| 0003e191… | m826773… | m634631… | 0 | 0003e191… | m826773… | m659824… | 1 | 0003e191… | m826773… | m742172… | 1 | 0003e191… | m826773… | m839148… | 0 | 0003e191… | m826773… | m758586… | 0 | 0003e191… | m826773… | m808515… | 1 | ...

Slide 18

Slide 18 text

18 Confidential オフライン評価 (定量評価) 手法 nDCG@5 Precision@1 Precision@3 Random 0.525 0.256 0.501 MobileNet 0.607 0.356 0.601 SigLIP + PCA 0.647 0.406 0.658 SigLIP 0.662 0.412 0.660

Slide 19

Slide 19 text

19 Confidential オフライン評価 (定性評価 on Spreadsheets)

Slide 20

Slide 20 text

20 Confidential その他試したこと : Matryoshka Representation Learning ● 後述するストレージにかかるコストの観点からベクトルの次元圧縮は必須 → 次元数削減のためにMatryoshka Representation Learning(MRL)を 検討. ● Matryoshka Representation Learning(MRL): 指定した次元の高品質なEmbeddingモデル(複数)を一度の学習で構築でき る表現学習の手法 ○ E.g. 128, 256, 512次元の画像Embeddingモデルを一度の学習で構築 できる ○ Popular use case: OpenAI Text Embedding ● 詳しい理論は省くが、気になる人は 論文か、hppさんの資料 がおすすめ

Slide 21

Slide 21 text

21 Confidential その他試したこと : Matryoshka Representation Learning ● SigLIPのMRL事前学習モデルの visheratin/nllb-siglip-mrl-large を用い てファインチューニングしたが、オフライン評価指標が PCAによる次元圧縮よ り低くなってしまい、あまりうまくいかず ... 😢 ● visheratin/nllb-siglip-mrl-large の内部実装を見たところ、指定した次元 数のEmbeddingに単純に線形変換しており、MRLとはいえなさそうなので Pretrained modelに問題...? ● A/Bテストでは最終的に 「SigLIP + PCAによる次元圧縮」 をデプロイすることに決定

Slide 22

Slide 22 text

22 Confidential 商品詳細画面の「見た目が近い商品」 Outline SigLIPを用いた類似画像推薦モデルの構築 本番環境へのデプロイ A/Bテストによる検証結果 02 03 04 01

Slide 23

Slide 23 text

23 Confidential アーキテクチャ ● Google Cloud/Vertex AIフル活用 ● モデルの推論は「商品の出品」をtriggerに非同期で実行。リアルタイムの推 論は行わない

Slide 24

Slide 24 text

24 Confidential Embedding Worker ● 「お客さまによる出品」をTriggerに発行されるPub/Sub Eventを Subscribe. ● Embedding Workerはk8s上で動作する単一の L4 GPU

Slide 25

Slide 25 text

25 Confidential Embedding Worker ● GCSから学習済みのSigLIPモデルとPCAモデルを読み込み、非同期に推 論。128次元の商品画像のEmbeddingを獲得する。 ● 獲得したEmbeddingをVertex AI Vector Search内に保存

Slide 26

Slide 26 text

26 Confidential Vertex AI Vector Search ● Embeddingを用いた近傍検索(ANN)にはVertex AI Vector Searchを 使用し、数千万件程度の商品画像 Embeddingを格納。

Slide 27

Slide 27 text

27 Confidential Vertex AI Vector Search ● Item IDからEmbeddingを取得する機能が提供されている。商品詳細画面 からクエリとなる商品のIDを取得した上で、その機能を活用することで、リアル タイムの推論は行っていない。

Slide 28

Slide 28 text

28 Confidential Index Deletion Job ● 削除された商品や売却済みの商品のEmbeddingをVector Search上から 削除する ● Cloud Composer (Apache Airflow)を使用し、CronでBatch Jobが動 作

Slide 29

Slide 29 text

29 Confidential Tips: TensorRTによるモデル効率化 ● TensorRT: ○ 学習済みのMLモデルをPrecision CalibrationやLayer Fusion等 で NVIDIA GPU上で高速かつ効率的に実行 できるように最適化 ● 毎秒大量の出品が生成され、高速に推論を行う必要がある → SigLIPのImage Encoderをtorch2trt を用いて、 TensorRT 形式に変換 ● 推論時間が 約5倍高速化

Slide 30

Slide 30 text

30 Confidential Tips: PCAを用いた次元圧縮によるコスト削減 ● Vertex AIのVector Searchは、データサイズやノード数、QPSといった要素 により課金される ● コストの最適化のため古典的なPCAによる次元圧縮を実施 ○ 768(original) to 128 ● データサイズによるコスト : 80%程度削減 ○ 元々の次元数の 97%程度の性能を維持 ● 古典的な手法でありながらかなりコスト削減にインパクト があった 手法 nDCG@5 Precision@1 Precision@3 SigLIP 0.662 0.412 0.660 SigLIP + PCA 0.647 0.406 0.658

Slide 31

Slide 31 text

31 Confidential 商品詳細画面の「見た目が近い商品」 Outline SigLIPを用いた類似画像推薦モデルの構築 本番環境へのデプロイ A/Bテストによる検証結果 02 03 04 01

Slide 32

Slide 32 text

32 Confidential A/Bテスト ● 「見た目が近い商品」でA/Bテスト ○ Control: 見た目が近い商品 by MobileNet(v1.0) ○ Treatment: 見た目が近い商品 by SigLIP ● A/Bテストの結果: ○ クリック率: + 50% ○ 詳細ページ経由のCVR(購買率): +14% ● 新しいモデルは無事採用 & 100% Release 🎉

Slide 33

Slide 33 text

33 Confidential 画像Embeddingモデルは画像検索機能でも活躍 💪💪💪

Slide 34

Slide 34 text

34 Confidential まとめ ● Vision Language Modelを活用し、メルカリの商品詳細ページの類似 画像レコメンドの「見た目が近い商品」の性能を改善 ● SigLIPモデルを100万件のメルカリの商品データでファインチューニン グ。 ● オフライン評価を行い、性能改善を確認したため, A/Bテストを実施 → タップ率 +50%, 詳細経由の購買率 + 14% ● 構築したモデルは推薦のみならず, 画像検索等、至る箇所で使われてい る。今後も継続的に改善予定

Slide 35

Slide 35 text

35 Confidential Thank you for listening !!