取得

エンベディング モデルがあるとします。

サービング時に、クエリを指定して、次のいずれかを開始します。

  • 行列分解モデルの場合、クエリ(またはユーザー)エンベディングは静的に知られており、システムは単純にユーザー エンベディング マトリックスから検索できます。
  • DNN モデルの場合、システムは、特徴ベクトルでネットワークを実行することにより、サービス提供時に \(\psi(x)\)クエリ エンベディングを計算します。 \(x\)

クエリ エンベディング \(q\)を取得したら、エンベディング空間で\(V_j\) 近くにある \(q\) アイテムのエンベディングを検索します。これは最近傍の問題です。たとえば、類似性スコア \(s(q, V_j)\)に従って上位 k 項目を返すことができます。

2 次元スペクトルの画像。複数の映画とユーザーが子ども向けからアダルト映画、アートハウスから大ヒット作にアレンジされています。1 人のユーザーがハイライト表示され、付近の映画が 2 つ表示されます。

関連商品のレコメンデーションでは、同様のアプローチを使用できます。たとえば、ユーザーが YouTube 動画を視聴しているとき、システムはまずそのアイテムのエンベディングを検索し、次にエンベディング空間内で近くにある他のアイテム\(V_j\) のエンベディングを探します。

大規模な取得

エンベディング空間内の最近傍を計算するには、すべての候補候補を包括的にスコア付けします。大規模なコーパスでは、広範囲のスコアが高額になる可能性がありますが、次のいずれかの方法を使用して効率を向上させることができます。

  • クエリ エンベディングが静的にわかっている場合は、オフラインで完全なスコア付けを行い、各クエリの上位候補リストをプリコンピューティングして保存できます。これは、関連商品のレコメンデーションに一般的な手法です。
  • 近似最近傍を使用する。