エンベディング モデルがあるとします。あるユーザーについて、どのように おすすめするアイテムを決めますか?
サービング時に、あるクエリを指定して、まず次のいずれかを行います。
- 行列分解モデルの場合、クエリ(またはユーザー)のエンベディングが既知 静的に検索され、システムは ユーザー エンベディング マトリックスを使用します。
- DNN モデルの場合、システムがクエリのエンベディングを計算する \(\psi(x)\) 特徴ベクトルでネットワークを実行することで、配信時に \(x\)というラベルを作成します。
クエリ エンベディング \(q\)を取得したら、アイテムのエンベディングを検索します。 近似値を求めます。 \(q\)\(V_j\) これは最近傍問題です。たとえば、上位 k 個の 類似度スコアに従ってアイテムが生成されます \(s(q, V_j)\)。
関連アイテムのおすすめでも同様のアプローチを使用できます。たとえば ユーザーが YouTube 動画を視聴していると、システムはまず そのアイテムのエンべディングを見つけてから、他のアイテムのエンべディングを探す \(V_j\) の類似パターンを検出できます。
大規模な取得
エンべディング空間内の最近傍を計算するために、 網羅的にすべての候補を採点できます網羅的なスコアリング 非常に大規模なコーパスの場合はコストがかかる可能性がありますが、 次の戦略によって効率性を高めます。
- クエリのエンベディングが静的にわかっている場合、システムは オフラインでの網羅的なスコア付け、リストされた 上位候補を表示しますこれは、Cloud Monitoring で おすすめします。
- 近似最近傍を使用する。