【論文解説】メルカリの検索技術のしくみ:購入データ学習による業界特化の検索モデルの導入

に公開

メルカリの研究チームが発表した検索技術の課題解決をテーマにした論文が面白かったので概要をまとめます。

https://arxiv.org/abs/2512.21021

検索の中でもベクトル検索のファインチューニングにフォーカスした改善の話になります。

メルカリの検索の難しさ

(1) 「Switch」の曖昧さとノイズ

ユーザーが入力するクエリは曖昧なケースが多い。例えば、「Switch」と検索をしたとき、実際にこれがゲーム機本体を指すのか、電気のスイッチなのか、あるいは「Switch」という単語を含むアパレルブランドなのか、文脈なしでは判断できません。※直感的には「Switch2」を購入している人が多そうという予測はつくが、時期によっても変動がありそう。

(2) 「クリック」の罠

検索エンジンの学習には通常「クリックログ」が使われます。しかしC2Cでは、ユーザーは高価な「本体」を探していても、安価で目を引く「付属品(ケースやストラップ)」をついクリックしてしまう傾向があります。 クリックデータだけをAIに学習させると、「Switchと検索されたら、ケースを出すのが正解だ」と誤学習 してしまうリスクがあるのです。

(3) 「32次元」という極小サイズの制約

数億点規模の商品を瞬時に検索するため、システムには厳しい速度制限があります。そのため、検索に使われるベクトル(商品や言葉の意味を数値化したもの)は非常にコンパクトでなければなりません。メルカリの実運用環境では、32次元というサイズに圧縮する必要がありました。

従来手法の課題

従来、メルカリでは汎用の日本語モデル(ruri-small-v2)を、PCA(主成分分析)という手法で32次元に圧縮して使っていました。しかし、これには2つの問題がありました。

(1) 汎用モデルの限界(ドメイン知識の欠如)

ruri-small-v2 は、Wikipediaなどの一般的なウェブ上のテキストで学習された汎用モデル(Off-the-shelf Japanese text embeddings)でした。 そのため、メルカリのようなC2Cマーケットプレイス特有の文脈の理解が不十分です。

(2) PCA圧縮の限界(意味の消失)

PCAは「データの分散(ばらつき)」を維持するように圧縮しますが、「意味の重要度」は考慮しません。そのため、レアな商品や細かいニュアンスといった、検索において重要な情報が削ぎ落とされてしまいました。

これらの解決策として下記の手法をとっています。

解決策:汎用モデルを「業界特化」へ

(1) 「購入データ」によるファインチューニング

「実際に購入(Purchase)に至ったクエリと商品」のペア(500万件)を正解データとして学習させました。 「よく見られているもの」ではなく「ユーザーがお金を払うもの」を正解とすることで、付属品ではなく本体を、一般的な商品ではなく特定のブランド品を優先するようにモデルの「常識」を書き換えました。

(2) マトリョーシカ表現学習 (MRL)

32次元という制約の中で精度を出すために、PCAを廃止し、Matryoshka Representation Learning (MRL) を採用しました。PCAが「データの分散(ばらつき)」を維持するのに対して、MRLは「ベクトルの先頭部分(重要な次元)に情報の核心を詰め込む」ように学習させる手法です。

検索体験はどう変わったか?(定性評価)

以下は論文で報告された具体的な変化です。

モデル性能比較表 (nDCG@100)

過去の検索ログ(オフライン定量評価用)をもとに評価をしています。データ規模: 合計 11,822件 のクエリで、うち 4,803件 は「ロングクエリ(10文字以上)」とのことです。※複雑な意図理解が必要なケースとして評価されています。

この表からは下記の点が読み取れます。

  • 「3位」が「2位」に追いついた凄さ

    • 本来、情報を768個から32個(約1/24)に減らせば、情報は劣化します。しかし、今回の手法(3位:0.195)は、圧縮していない汎用モデル(2位:0.198)とほぼ同等のスコアを叩き出しています。これが「MRL(マトリョーシカ)」と「購入データ学習」の最大の成果です。
  • 「4位」と「3位」の圧倒的な差

    • 同じ32次元という制約下で比較すると、従来手法(4位:0.099)から今回(3位:0.195)へ、精度が約2倍に跳ね上がっていることがわかります。これがPCAとMRLの決定的な差です。

詳細は割愛しますが、JGLUE STSのデータセットを活用した汎化性能チェックや、人手での評価、A/Bテストによるオンライン評価(AoV, ARPUなど)も実施されており評価のバリエーションが多いのが印象的でした。

ハイブリッド検索による「0件ヒット」救済

技術の導入により、検索システム全体の構成も進化しました。 以前は、キーワード検索でヒットした商品を並び替える(Re-ranking)ためだけにベクトルを使っていました。

現在は、キーワード検索とベクトル検索を併用するハイブリッド検索(Hybrid Retrieval)へと移行しています。 具体的には、類似度スコアが高い(> 0.90)商品を検索結果にブレンドすることで、キーワードが一致しなくても意味が近い商品を見つけられるようになりました。

その効果は劇的で、キーワードだけでは検索結果が0件(Zero-hit)になってしまうケースの60.2%を、ベクトル検索が救済することに成功しています。

まとめ・所感

メルカリの新しいベクトル検索技術について改善事例をまとめました。従来手法と今回の手法の技術的な差分としてはこんな感じです。

私自身がRAG検索周りで業界特化の検索モデルを作ろうというモチベーションがあったため非常に興味深く読めました。

Discussion