Recupero

Supponi di avere un modello di incorporamento. Dato che è un utente, come decideresti quali elementi consigliare?

Al momento della pubblicazione, in base a una query, devi iniziare in uno dei seguenti modi:

  • Per un modello di fattorizzazione matrice, l'incorporamento della query (o dell'utente) è noto in modo statico e il sistema può semplicemente eseguire la ricerca dalla matrice di incorporamento dell'utente.
  • Per un modello DNN, il sistema calcola l'incorporamento della query \(\psi(x)\) al momento della pubblicazione eseguendo la rete sul vettore delle funzionalità \(x\).

Dopo aver incorporato la query \(q\), cerca gli incorporamenti degli elementi \(V_j\) che si trovano nelle vicinanze \(q\) nello spazio di incorporamento. Questo è un problema di prossimità. Ad esempio, puoi restituire i migliori elementi in base al punteggio di somiglianza \(s(q, V_j)\).

Immagine di uno spettro bidimensionale con diversi film e utenti disposti
dai film per bambini ai film per adulti, dall'essai al blockbuster. Un utente è evidenziato
e due film nelle vicinanze.

Puoi adottare un approccio simile nei consigli sugli articoli correlati. Ad esempio, quando l'utente sta guardando un video su YouTube, il sistema può prima cercare l'incorporamento di quell'elemento e poi cercare incorporamenti di altri elementi\(V_j\) che si trovano nelle vicinanze nello spazio di incorporamento.

Recupero su larga scala

Per calcolare i vicini più vicini nello spazio di incorporamento, il sistema può assegnare un punteggio esaustivo a ogni potenziale candidato. Un punteggio esauriente può essere costoso per i corpora molto grandi, ma puoi utilizzare una delle seguenti strategie per renderlo più efficiente:

  • Se l'incorporamento della query è noto in modo statico, il sistema può eseguire un punteggio esaustivo offline, precomputando e memorizzando un elenco dei candidati migliori per ogni query. Si tratta di una pratica comune per i consigli relativi agli articoli correlati.
  • Utilizza vicini approssimativi.