LLM時代における「推薦システム」と「検索」の改善方法
(eugeneyan.com)- 推薦システムと検索は、歴史的に言語モデルから着想を得て発展してきた
- Word2vec → アイテム埋め込みの学習(埋め込みベース検索)
- GRU, Transformer, BERT → 次に推薦するアイテムの予測(ランキング)
- 現在の大規模言語モデル(LLM)のパラダイムも同じ方向へ進化している
- 主な進展事項
-
1. LLM/マルチモーダル強化モデルアーキテクチャ
-
2. LLMベースのデータ生成と分析
-
3. Scaling Laws、転移学習、知識蒸留、LoRA
-
4. 検索と推薦の統合アーキテクチャ
-
LLM/マルチモーダル強化モデルアーキテクチャ
- 推薦モデルは言語モデル(LLM)とマルチモーダルコンテンツを導入し、従来のIDベース手法の限界を克服しつつある
- 行動モデリングの強みとコンテンツ理解を組み合わせることで、コールドスタートやロングテール問題を解決
-
1. Semantic IDs (YouTube)
- 既存のハッシュベースIDの代わりに、コンテンツから導出したSemantic IDを使用
- 二段階フレームワークを導入:
- Transformerベースの動画エンコーダ → 高密度コンテンツ埋め込みを生成
- RQ-VAE(Residual Quantization Variational AutoEncoder) → 埋め込みを整数形式のSemantic IDに変換
- RQ-VAEの構造:
- 256次元の潜在空間、8つの量子化レベル、各レベルあたり2048個のコードブック項目
- TransformerベースのVideoBERTバックボーンで2048次元の埋め込みを生成
- 結果:
- ランダムなハッシュIDより、直接的な高密度埋め込みの性能が低かった
- N-gramおよびSPM(SentencePiece Model)ベースの手法が、特にコールドスタートシナリオで優れた性能を示した
-
2. M3CSR (Kuaishou)
- マルチモーダルコンテンツ埋め込み(ビジュアル、テキスト、音声)をK-meansでクラスタリングし、学習可能なIDへ変換
- デュアルタワー構造:
- ユーザー側タワー: ユーザー行動のモデリング
- アイテム側タワー: アイテム埋め込みの事前計算とインデックス化
- 学習過程:
- ResNet(ビジュアル)、Sentence-BERT(テキスト)、VGGish(音声)の埋め込みを結合 → K-meansクラスタリング(約1000クラスタ)
- クラスタIDを学習可能な埋め込みにマッピング
- 結果:
- A/Bテストでクリック +3.4%、いいね +3.0%、フォロー +3.1% 改善
- コールドスタートシナリオで速度 +1.2%、カバレッジ +3.6% 改善
-
3. FLIP (Huawei)
- IDベース推薦モデルとLLMのアラインメント
- マスクされたテキストとテーブルデータで同時に学習し、マルチモーダルアラインメントを実施
- 学習段階:
- 1. モダリティ変換: テーブルデータをテキストへ変換
- 2. モダリティ整列の事前学習: マスクされたテキストとIDの再構成
- 3. 適応的ファインチューニング: クリック予測に対して両モデルの重みを最適化
- 結果:
- IDベース、LLMベース、およびID + LLMモデルより高性能
- マスキング水準とマルチモーダルアラインメントが性能改善に重要な役割を果たした
-
4. beeFormer
- テキスト情報とユーザー-アイテム相互作用データに基づくTransformerモデルを訓練
- ELSA(Scalable Linear Shallow Autoencoder)ベースのデコーダを使用 → 相互作用パターン学習を強化
- 訓練過程:
- Transformerで埋め込みを生成 → ELSAを通じてユーザー行動パターンを学習
- 大規模カタログでの訓練を最適化するため、勾配チェックポインティング、バッチサイズ拡張、負例サンプリングを使用
- 結果:
- mpnet-base-v2、bge-m3 などの既存モデルより優れた性能を示した
- ドメイン間転移学習で性能向上が観察された
-
5. CALRec (Google)
- テキストベースのプロンプトでユーザー-アイテム相互作用をモデリング
- PaLM-2 XXSベースモデルに対する2段階のファインチューニング
- 訓練段階:
- 1. 複数カテゴリ学習: 汎用的な推薦パターンを学習
- 2. 特定カテゴリ学習: アイテムカテゴリに特化したパターンを学習
- 結果:
- Amazon Review DatasetでIDベースおよびテキストベースモデルより高性能
- 複数カテゴリ学習とコントラスト学習が性能改善に寄与
-
6. EmbSum (Meta)
- ユーザー関心の要約および候補アイテムの要約を生成
- T5-small と Mixtral-8x22B-Instruct モデルを使用
- 構成要素:
- User Poly-Embeddings (UPE) → ユーザー関心埋め込み
- Content Poly-Embeddings (CPE) → アイテム埋め込み
- 要約を生成 → エンコーダに注入 → 最終推薦を生成
- 結果:
- コンテンツベース推薦モデルより高性能
- セッションベースのグルーピングと要約損失が性能に重要な役割を果たした
LLMベースのデータ生成と分析
- LLMは、推薦および検索システムにおけるデータ不足の解決とデータ品質の強化に使われている
- 主な適用事例:
- Bing → Webページのメタデータ生成とクリック予測性能の強化
- Indeed → 低品質な求人マッチングのフィルタリング
- Yelp → 検索クエリ理解とレビューのハイライト改善
- Spotify → 探索型検索クエリの生成
- Amazon → プレイリストのメタデータ強化と検索性能の改善
-
1. Recommendation Quality Improvement (Bing)
- GPT-4を使ってWebページから高品質なタイトルと要約を生成
- 約200万件のWebページから生成したメタデータでMistral-7Bモデルをファインチューニング
- MiniLMベースのクロスエンコーダを学習し、クリック予測と品質スコアを統合
- 結果:
- クリックベイトコンテンツ 31% 減少、重複コンテンツ 76% 減少
- 権威あるコンテンツ 18% 増加、クロスメディア推薦 48% 増加
-
2. Expected Bad Match (Indeed)
- GPT-3.5を人間のレビューデータでファインチューニングし、低品質な求人マッチングをフィルタするモデル(eBadMatch)を構築
- GPT-4レベルの性能を維持しつつ、コストと速度を改善
- 最終フィルタリングモデルは、マッチング招待メール数を17.68%削減し、購読解除率を4.97%低下、応募率を4.13%向上
- 結果:
- フィルタリングモデルのAUC-ROC性能: 0.86
-
3. Query Understanding (Yelp)
- LLMを使って検索クエリの細分化とレビューのハイライトを改善
- クエリ細分化:
- トピック、名称、時間、場所などを区別して意味タグを追加
- RAG(Retrieval-Augmented Generation)手法を適用し、文脈ベースのクエリ理解を強化
- レビューハイライト:
- LLMでハイライトを生成 → OpenAIのバッチ呼び出しで大規模に拡張
- 結果:
- 検索セッションとクリック率が向上
- ロングテールクエリでも性能が改善
-
4. Query Recommendations (Spotify)
- Spotifyは、直接的な検索結果に加えて探索型検索クエリ推薦を導入
- クエリ生成方法:
- カタログのタイトル、プレイリスト、ポッドキャストから抽出
- 検索ログからユーザーの最近の検索を反映
- LLMを用いた文生成手法を適用(Doc2query、InPars など)
- クエリ推薦をパーソナライズされたベクトル埋め込みでランキング
- 結果:
- 探索型クエリ比率 +9% 増加
- 最大クエリ長 +30% 増加、平均クエリ長 +10% 増加
-
5. Playlist Search (Amazon)
- LLMを使ってコミュニティプレイリストのメタデータを生成・強化
- Flan-T5-XLモデルをファインチューニングし、データ生成効率を強化
- LLM生成クエリとプレイリストのマッチングデータを用いて双方向エンコーダモデルを学習
- 結果:
- 検索結果の再現率が二桁改善
- SEO性能およびパラフレーズ性能を改善
Scaling Laws、転移学習、知識蒸留、LoRA
-
Scaling Laws
- モデルサイズとデータ量が性能に与える影響を分析した研究
- Decoder-only Transformerアーキテクチャを使用(98.3K ~ 0.8B パラメータ範囲)
- MovieLens-20M と Amazon-2018 データセットで評価
- 固定長50アイテムのシーケンスを使って次アイテムを予測
- 主な手法:
- 層別適応ドロップアウト → 低層には高いドロップアウト、高層には低いドロップアウトを適用
- Adam → SGD切り替え → 初期学習はAdam、その後SGDに切り替えて収束速度を改善
- 結果:
- モデルサイズが大きいほど交差エントロピー損失が減少
- 小さなモデルはより多くのデータを必要とする一方、大きなモデルはより少ないデータでも優れた性能を達成
- 75.5M および 98.3K モデルは 2~5 エポックで性能向上
-
PrepRec
- 推薦システムで事前学習を適用 → ドメイン間転移学習が可能
- アイテムのメタデータなしでもアイテム人気の動的変化だけで学習可能
- ユーザー相互作用間の相対時間間隔と位置エンコーディングを使用
- 結果:
- zero-shot推薦では recall@10 が 2~6% 低下したが、学習後の性能は類似
- ターゲットドメインで学習後、SasREC および BERT4Rec モデルと同等レベルの性能を達成
-
E-CDCTR (Meituan)
- 広告クリック予測モデルで転移学習を適用
- TPM → CPM → A-CTR の3段階学習構造を使用
- TPM → ユーザーおよびアイテム埋め込みを学習
- CPM → 最新のオーガニックデータで事前学習
- A-CTR → 広告データで微調整
- 結果:
- CPMが性能に最も大きく影響 → 長期的な協調フィルタリング信号を学習可能
- 過去3か月の埋め込みを使って性能改善
-
Bridging the Gap (YouTube)
- 知識蒸留による大規模パーソナライズ動画推薦
- 教師-生徒モデル構造を使用(教師モデルは生徒モデルより2~4倍大きい)
- 直接予測ではなく補助蒸留戦略を使用 → 分布シフト問題を解決
- 結果:
- 補助蒸留戦略を適用すると性能が0.4%改善
- 教師モデルサイズが2倍のとき +0.42%、4倍のとき +0.43% の性能改善を達成
-
Self-Auxiliary Distillation (Google)
- 大規模推薦モデルのサンプル効率を改善
- 双方向ブランチ構造 → 教師ラベルと元ラベルを混合して学習
- 負例ラベルを0ではなく推定CTR値として扱う
- 結果:
- 多様なドメインで一貫して性能改善
- 学習安定性を強化し、モデル出力の精度を向上
-
DLLM2Rec
- 大規模言語モデルの推薦知識を軽量モデルへ蒸留
- 重要度ベースランキング蒸留と協調埋め込み蒸留を使用
- 重要度ベースランキング蒸留 → アイテム順位と一貫性に重み付け
- 協調埋め込み蒸留 → 教師モデルと生徒モデル間の埋め込み差を補正
- 結果:
- GRU4Rec、SASRec、DROSモデルで平均性能 47.97% 改善
- 推論時間は教師モデルの 3~6時間 → 1.6~1.8秒 に短縮
-
MLoRA (Alibaba)
- CTR予測で**ドメイン別LoRA (Low-Rank Adaptation)**を適用
- 共通バックボーンモデルを事前学習した後、ドメイン別LoRAでファインチューニング
- LoRAランクをレイヤーごとに動的設定
- 結果:
- AUC性能 +0.5% 改善
- CTR +1.49%、転換率 +3.37%、有料購入者 +2.71% 増加
-
Taming One-Epoch (Pinterest)
- 1回のエポックで過学習が発生する問題を解決
- 対照学習を使って学習段階を分離
- 第1段階 → 埋め込み学習
- 第2段階 → 微調整
- 結果:
- 従来のBCE損失より性能改善
- ホームフィード +1.32%、関連ピン +2.18% 性能向上
-
Sliding Window Training (Netflix)
- 長いユーザー履歴をメモリ負荷なく学習するためスライディングウィンドウ学習を導入
- 学習エポックごとに異なるユーザー履歴セグメントを選択して学習
- 最新100件の相互作用と長期相互作用のバランスを維持
- 結果:
- 最新の相互作用だけを使ったモデルより一貫した性能改善
- Mean Average Precision(MAP) +1.5%、recall +7.01% 改善
検索と推薦の統合アーキテクチャ
-
Bridging Search & Recommendations (Spotify)
- 検索と推薦データを単一の生成モデルで統合学習
- Flan-T5-baseをベースに、アイテムIDをトークンへ変換して学習
- 生成推薦モデル: ユーザー相互作用に基づいて次のアイテムを予測
- 生成検索モデル: テキストクエリからアイテムIDを予測
- 結果:
- 単一タスクモデルより平均 16% 性能改善(recall@30基準)
- ポッドキャストデータセットで検索性能 +855%、推薦性能 +262% 改善
- 既存の推薦・検索モデル(BM25、SASRec など)には及ばなかった
-
360Brew (LinkedIn)
- 150Bパラメータ規模の単一モデルで30以上のランキングタスクを実行
- Mixtral-8x22Bモデルをベースに、継続事前学習(CPT) → 命令ファインチューニング(IFT) → 教師あり学習(SFT) を実施
- 自然言語インターフェースを導入 → 特徴量エンジニアリングの代わりにプロンプトエンジニアリングを活用
- 結果:
- 既存の特化モデルと同等以上の性能を達成
- 大規模データセット(3倍増)で性能改善
- コールドスタートユーザーの性能改善 → 既存モデルより優秀
-
UniCoRn (Netflix)
- 検索と推薦タスクを1つのモデルで処理
- ユーザーID、検索クエリ、国、ソースエンティティなどのコンテキスト情報を使用
- コンテキスト-ターゲット機能および**特徴交差(feature crossing)**を活用
- 結果:
- 推薦性能 +10%、検索性能 +7% 改善
- パーソナライズ強化により性能向上
- タスクタイプと欠損値処理の重要性を確認
-
Unified Embeddings (Etsy)
- Transformerベース、テキストベース、グラフベースの埋め込みを統合
- T5モデルをファインチューニングしてクエリ-商品マッチングを強化
- Hard negative sampling と 近傍検索(ANN) を適用
- 結果:
- 転換率 +2.63%、オーガニック検索購入率 +5.58% 改善
- グラフ埋め込みが性能に最も大きく寄与(+15%)
-
Embedding Long Tail (Best Buy)
- ロングテールクエリ問題を解決
- ユーザー行動ベースの社内BERTモデルを使用 → 検索と商品をエンコード
- Llama-13Bで生成した合成クエリによりデータ強化
- 結果:
- 転換率 +3% 改善
- クエリ-商品マッチング性能改善(+4.67%)
-
User Behavioral Service (YouTube)
- ユーザー埋め込み生成モデルと推薦モデルを分離
- 非同期でユーザー埋め込みを生成 → 高速キャッシュを使用
- リクエスト時に埋め込み未使用なら空値を返し、その後非同期更新
- 結果:
- ユーザーシーケンスモデルのスケール拡大 → コスト増を抑制(28.7% → 2.8%)
- 推薦性能全般を改善(0.01% ~ 0.40%)
-
Modern Ranking Platform (Zalando)
- 検索とブラウジングを統合したシステムを構築
- 候補生成 → ランキング → ポリシーレイヤー構造を使用
- Transformerベースの顧客埋め込み + ベクトルデータベースを適用
- 結果:
- 全体的なエンゲージメント +15%、収益 +2.2% 改善
- 学習可能な埋め込み導入後に追加の性能改善
まとめ
- 2023年の初期研究(LLMを推薦と検索に適用)はまだ不足していたが、最近の取り組みは、特に業界での結果に裏付けられており、より大きな可能性を示している
- これは、LLMを使って推薦システムおよび検索システムを拡張することに実質的な利点があり、コストと労力を削減しながら成果を向上できることを示唆している
1件のコメント
Hacker Newsの意見
Spotifyの検索クエリに関するアップデートが、ユーザーがより複雑な意図を表現できるようにしたという分析がある
LLMを活用して検索クエリとインデックスを強化するチームは多い
Eugeneがカンファレンス直後に作業を発表するのは興味深い
Spotifyの体験が時間とともに悪化した理由を説明している
朝起きてすぐにこの記事を音声合成モデルで聞き始めた
SASRecとBert4Recの変種がIDトークンで訓練され、LLMと似たスケーリング則を示す
推薦システムとフォーラムを組み合わせることが、社会にとって大きな災厄になったと思う
PCやスマートフォンにLLMベースの検索ツールがない理由が疑問
推薦システムの優れた概要に見える
こうした論文が学術研究室から出ていないのは興味深い