Netflixが手動で作成された「特徴量」から離れた理由

Netflixの歴史の大部分において、同社のレコメンデーション・パイプラインは、ユーザー、タイトル、およびそれらの間のあらゆるインタラクションを記述する数値ベクトルである、数千もの手動で定義された属性に依存していました。エンジニアは、ライブスポーツ、ポッドキャスト、ゲームといった新しいコンテンツタイプを、システムがレコメンドを開始できる新しい特徴量のセットへと変換するために、数週間を費やしていました。このプロセスはコストがかかり、脆弱で、急速に拡大するカタログとの同期を維持することも困難でした。

既存の汎用的な大規模言語モデル(LLM)は、そのままでは機能しませんでした。それらは最も人気のあるタイトルに偏る傾向があり、時には存在しないアイテムをハルシネーション(幻覚)として提示し、レコメンデーションの安全性と関連性を維持するためのビジネスルールを適用することにも苦労しました。そのため、Netflixは、言語モデルの強みを維持しつつ、本番環境の制約を遵守する独自のLLMベースのパイプラインを構築しました。

GenRecの内部:2段階のトレーニング・パイプライン

GenRecは、2つの異なるフェーズで構成されています。

  1. ベースモデルのファインチューニング – Netflixはオープンウェイトの言語モデルから開始し、社内の視聴データを用いてファインチューニングを行います。これにより、コアアーキテクチャを変更することなく、カタログの語彙やユーザーの行動パターンをモデルに学習させます。
  2. レコメンデーション・ランキング – 2回目のトレーニングにより、ファインチューニングされたモデルを、特定のユーザーに対して候補となるタイトルにスコアを付けるランカーへと変換します。Netflixはこのステージを頻繁に更新し、モデルが新作や変化するトレンドに常に適応できるようにしています。

レガシーシステムからの主な違いは、ユーザーの履歴をどのようにモデルに投入するかという点です。GenRecは、視聴セッションを密なベクトルに圧縮する代わりに、再生時間、高評価(thumbs-up)や低評価(thumbs-down)、早期離脱といった各インタラクションを自然な英語の文章に変換します。モデルはセッション全体を短い対話として読み取り、明示的な特徴量エンジニアリングを行うことなく、ジャンルの好みや気分における微妙な変化を捉えます。

パフォーマンスと効率性の向上

Netflixトラフィックの10%をGenRecに割り当てた4週間の実験において、新しいシステムは2つの指標グループ全体で統計的に有意な向上を実現しました。

  • 短期的なエンゲージメント – 日々のレコメンデーションを駆動する主要なクリック率(CTR)および視聴時間シグナルにおいて0.115%の上昇。
  • 長期的なコア指標 – ビジネスにおいて最も重要となる加入者維持率(リテンション)および総合的な満足度スコアにおいて0.006%の増加。

オフラインでは、ホールドアウト・データセットにおけるランキングの品質が、本番環境のベースラインと比較して1.6%向上しました。さらに驚くべきはデータ効率です。2番目のトレーニングステージでは、従来のパイプラインが同等のパフォーマンスレベルに達するために必要とするラベル付きデータの約40分の1の例数で済みました。

計算コストを抑えるため、NetflixはvLLMを使用してモデルを実行しています。これは、テキストを生成するのではなく、単一のフォワードパスですべての候補にスコアを付けるサービング・スタックです。また、システムは強力なフィルタリングを適用し、高シグナルなイベントのみがモデルのコンテキストウィンドウを占めるようにすることで、不要なトークンを削り、レイテンシを低減しています。

「特徴量」から「コンテキスト」への移行が意味すること

GenRecは、「コンテキスト・エンジニアリング」が手動で作成された特徴量に取って代わるという、より広範な動きの一部です。レコメンデーションのタスクごとに独自のアーキテクチャを設計する代わりに、エンジニアはどのシグナルをテキストプロンプトに挿入するかを決定し、言語モデルにそれらについて推論させます。このアプローチにより、新しいコンテンツタイプの導入が迅速化されます。ポッドキャストのエピソードやライブ配信のゲームを1文で説明するだけで、数ヶ月に及ぶ特徴量定義のスプリントをスキップして、すぐにレコメンデーションのプールに加えることができます。

残された課題

LLMベースのレコメンダーは万能薬ではありません。人気アイテムを過度に強調する傾向は依然としてカタログにバイアスをもたらし、強力なGPUの必要性が運用コストを押し上げます。vLLMや強力なフィルタリングを使用しても、Netflixの規模で大規模言語モデルをサービングするには、レイテンシの目標を達成するための緻密なエンジニアリングが求められます。