Modelli di rete neurale profonda

La sezione precedente ha mostrato come utilizzare la fattorizzazione matriciale per apprendere gli incorporamenti. Alcuni limiti della fattorizzazione matrice includono:

  • La difficoltà di utilizzo delle funzionalità secondarie (vale a dire le funzionalità oltre all'ID query/ID elemento). Di conseguenza, le query sul modello possono essere eseguite solo se un utente o un elemento è presente nel set di addestramento.
  • Pertinenza dei consigli. Come vedi nel primo Colab, gli elementi popolari tendono a essere consigliati a tutti, soprattutto quando si utilizza un prodotto con punto come misura di somiglianza. È meglio intercettare gli interessi specifici degli utenti.

I modelli di rete neurale profonda (DNN) possono affrontare queste limitazioni di fattorizzazione di matrice. I servizi DNN possono incorporare facilmente funzionalità di query e di elementi (grazie alla flessibilità del livello di input della rete), il che può contribuire a catturare gli interessi specifici di un utente e a migliorare la pertinenza dei consigli.

DNN softmax per suggerimenti

Un possibile modello DNN è softmax, che considera il problema come un problema di previsione multiclasse in cui:

  • L'input è la query dell'utente.
  • L'output è un vettore di probabilità con dimensioni pari al numero di elementi nel corpus, che rappresenta la probabilità di interagire con ogni elemento; ad esempio, la probabilità di fare clic o guardare un video di YouTube.

Input

L'input di un DNN può includere:

  • Funzionalità compatte (ad esempio tempo di visualizzazione e tempo dall'ultimo visualizzazione)
  • Funzionalità sparsi (ad esempio cronologia delle visualizzazioni e paese)

A differenza dell'approccio alla fattorizzazione matriciale, puoi aggiungere caratteristiche collaterali come età o paese. Verrà indicato il simbolo x di input.

Immagine che evidenzia il livello di input in una rete neurale profonda softmax
Figura 1. Il livello di input, x.

Architettura del modello

L'architettura del modello determina la complessità e l'espressività del modello. Aggiungendo livelli nascosti e funzioni di attivazione non lineari (ad esempio, ReLU), il modello può acquisire relazioni più complesse nei dati. Tuttavia, l'aumento del numero di parametri in genere rende il modello più difficile da addestrare e più costoso da pubblicare. Verrà indicato l'output dell'ultimo livello nascosto per \(\psi (x) \in \mathbb R^d\).

Immagine che evidenzia i livelli nascosti in una rete neurale profonda softmax
Figura 2. L'output dei livelli nascosti, \(\psi (x)\).

Output Softmax: distribuzione della probabilità prevista

Il modello mappa l'output dell'ultimo livello, \(\psi (x)\), tramite un livello softmax e una distribuzione di probabilità \(\hat p = h(\psi(x) V^T)\), dove:

  • \(h : \mathbb R^n \to \mathbb R^n\) è la funzione softmax, assegnata da \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
  • \(V \in \mathbb R^{n \times d}\) è la matrice dei pesi dello strato softmax.

Il livello softmax associa un vettore dei punteggi \(y \in \mathbb R^n\) (a volte chiamato logit) a una distribuzione di probabilità.

Immagine che mostra la distribuzione di probabilità prevista in una rete neurale profonda softmax
Figura 3. La distribuzione di probabilità prevista, \(\hat p = h(\psi(x) V^T)\).

Perdita funzione

Infine, definisci una funzione di perdita che confronti quanto segue:

  • \(\hat p\), l'output del livello softmax (una distribuzione di probabilità)
  • \(p\), la verità di base, che rappresenta gli elementi con cui l'utente ha interagito (ad esempio, i video di YouTube su cui l'utente ha fatto clic o guardato). Può essere rappresentata come una distribuzione multi-hot normalizzata (un vettore di probabilità).

Ad esempio, puoi utilizzare la perdita tra entropia in quanto stai confrontando due distribuzioni di probabilità.

Immagine che mostra la funzione di perdita in una rete neurale profonda softmax
Figura 4. La funzione di perdita.

Incorporamenti Softmax

La probabilità di un elemento \(j\) è fornita da \(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), dove \(Z\) è una costante di normalizzazione che non dipende \(j\).

In altri termini, \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\), quindi la probabilità di log di un elemento \(j\) corrisponde (fino a una costante aggiuntiva) al prodotto punto di due \(d\)vettori di dimensione, che possono essere interpretati come incorporamenti di query e elementi:

  • \(\psi(x) \in \mathbb R^d\) è l'output dell'ultimo livello nascosto. La chiamiamo "incorporamento" della query \(x\).
  • \(V_j \in \mathbb R^d\) è il Vettore delle ponderazioni che collegano l'ultimo livello nascosto all'output j. Questo meccanismo è chiamato "incorporamento" dell'elemento \(j\).
Immagine che mostra gli incorporamenti in una rete neurale profonda softmax
Figura 5. Incorporamento dell'elemento \(j\), \(V_j \in \mathbb R^d\)

DNN e fattorizzazione a matrice

Sia nel modello softmax sia nel modello di fattorizzazione matrice, il sistema impara un Vettore di incorporamento\(V_j\) per elemento \(j\). La cosiddetta matrice di incorporamento degli elementi \(V \in \mathbb R^{n \times d}\) nella fattorizzazione della matrice è ora la matrice dei pesi del livello softmax.

Tuttavia, le incorporazioni delle query sono diverse. Anziché apprendere un incorporamento \(U_i\) per query \(i\), il sistema apprende una mappatura dalla funzionalità di query \(x\) a un incorporamento \(\psi(x) \in \mathbb R^d\). Pertanto, puoi considerare questo modello DNN come una generalizzazione di fattorizzazione matrice, in cui sostituisci il lato query con una funzione non lineare \(\psi(\cdot)\).

È possibile utilizzare le funzionalità degli articoli?

Puoi applicare la stessa idea anche all'elemento? In altre parole, invece di apprendere un incorporamento per elemento, il modello può apprendere una funzione non lineare che mappa le caratteristiche dell'elemento a un incorporamento? Sì. Per farlo, utilizza una rete neurale a due torri, che consiste in due reti neurali:

  • Una rete neurale mappa le funzionalità di query \(x_{\text{query}}\) per eseguire l'incorporamento della query \(\psi(x_{\text{query}}) \in \mathbb R^d\)
  • Una rete neurale mappa le funzionalità degli elementi \(x_{\text{item}}\) all'incorporamento degli elementi \(\phi(x_{\text{item}}) \in \mathbb R^d\)

L'output del modello può essere definito come il prodotto punto di\(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\). Tieni presente che questo non è più un modello softmax. Il nuovo modello prevede un valore per coppia \((x_{\text{query}}, x_{\text{item}})\) invece di un vettore di probabilità per ciascuna query \(x_{\text{query}}\).