La sezione precedente ha mostrato come utilizzare la fattorizzazione matriciale per apprenderanno gli incorporamenti. Alcuni limiti della fattorizzazione matriciale includono:
- La difficoltà di utilizzare le caratteristiche collaterali (ovvero qualsiasi caratteristica che l'ID query/l'ID elemento). Di conseguenza, è possibile eseguire query sul modello solo un utente o un elemento presente nel set di addestramento.
- Pertinenza dei consigli. Come hai visto nella prima Colab gli articoli più apprezzati tendono a essere consigliati a tutti, soprattutto quando prodotto scalare come misura di somiglianza. È meglio acquisire dati specifici interessi degli utenti.
I modelli di rete neurale profonda (DNN) possono risolvere questi limiti la fattorizzazione. Le reti DNN possono facilmente incorporare caratteristiche di query e caratteristiche degli elementi (grazie alla flessibilità del livello di input della rete), il che può aiutare catturare gli interessi specifici di un utente e migliorare la pertinenza dei personalizzati.
DNN Softmax per suggerimenti
Un possibile modello DNN è softmax, che tratta il problema come un problema di previsione multiclasse in cui:
- L'input è la query dell'utente.
- L'output è un vettore di probabilità con una dimensione uguale al numero di gli elementi nel corpus, che rappresentano la probabilità di interagire ogni elemento; ad esempio la probabilità di fare clic o guardare Video di YouTube.
Input
L'input in una DNN può includere:
- Funzionalità ad alta densità (ad esempio, tempo di visualizzazione e tempo dall'ultima visualizzazione)
- Funzionalità sparse (ad esempio, cronologia delle visualizzazioni e paese)
A differenza dell'approccio di fattorizzazione matriciale, puoi aggiungere caratteristiche collaterali come l'età o il paese. Registriamo il vettore di input con x.
Architettura del modello
L'architettura del modello determina la complessità e l'espressività del modello. Aggiungendo strati nascosti e funzioni di attivazione non lineari (ad esempio, ReLU), il modello può acquisire relazioni più complesse all'interno dei dati. Tuttavia, l'aumento del numero di parametri rende il modello più difficile addestrato e più costoso da servire. indicheremo l'output dell'ultimo livello per \(\psi (x) \in \mathbb R^d\).
Output Softmax: distribuzione della probabilità prevista
Il modello mappa l'output dell'ultimo livello, \(\psi (x)\), tramite un parametro a una distribuzione di probabilità \(\hat p = h(\psi(x) V^T)\), dove:
- \(h : \mathbb R^n \to \mathbb R^n\) è la funzione softmax, fornita da \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
- \(V \in \mathbb R^{n \times d}\) è la matrice dei pesi strato softmax.
Il livello softmax mappa un vettore di punteggi \(y \in \mathbb R^n\) (talvolta chiamata logit) in una distribuzione di probabilità.
Funzione di perdita
Infine, definisci una funzione di perdita che metta a confronto quanto segue:
- \(\hat p\), l'output dello strato softmax (una distribuzione di probabilità)
- \(p\), i dati di fatto, che rappresentano gli elementi dell'utente con cui ha interagito (ad esempio, i video di YouTube su cui l'utente ha fatto clic o che ha guardato). Può essere rappresentata come una distribuzione multi-hot normalizzata (una vettore di probabilità).
Ad esempio, puoi utilizzare la perdita di entropia incrociata poiché stai confrontando due distribuzioni di probabilità.
Incorporamenti Softmax
La probabilità di elemento \(j\) è data da \(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), dove \(Z\) è una costante di normalizzazione che non dipende da \(j\).
In altre parole, \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\), quindi la probabilità logaritmica di un elemento \(j\) è (fino a una costante additiva) il prodotto scalare di vettori bi \(d\)dimensionali, che può essere interpretato come query e incorporamenti di elementi:
- \(\psi(x) \in \mathbb R^d\) è l'output dell'ultimo strato nascosto. Questo meccanismo è chiamato incorporamento della query \(x\).
- \(V_j \in \mathbb R^d\) è il vettore di pesi che collega l'ultimo strato nascosto all'output di j. Si parla di incorporamento dell'elemento \(j\).
DNN e fattorizzazione matriciale
Sia nel modello softmax sia in quello di fattorizzazione matriciale, il sistema apprende un vettore di incorporamento \(V_j\) per articolo \(j\). Quello che abbiamo chiamato matrice di incorporamento degli elementi \(V \in \mathbb R^{n \times d}\) nella matrice la fattorizzazione è ora la matrice dei pesi dello strato softmax.
Gli incorporamenti delle query, tuttavia, sono diversi. Invece di imparare un incorporamento \(U_i\) per query \(i\), il sistema apprende una mappatura dalla caratteristica di query \(x\) a un incorporamento \(\psi(x) \in \mathbb R^d\). Questo modello DNN può essere considerato come una generalizzazione la fattorizzazione, in cui sostituisci il lato della query con una funzione \(\psi(\cdot)\).
Puoi usare le caratteristiche degli articoli?
Puoi applicare la stessa idea al lato elemento? In altre parole, invece di imparare un incorporamento per elemento, il modello può apprendere una funzione non lineare che mappa caratteristiche dell'elemento in un incorporamento? Sì. Per farlo, utilizza una console a due torri rete neurale, composta da due reti neurali:
- Una funzionalità per le query sulle mappe della rete neurale \(x_{\text{query}}\) per eseguire query sull'incorporamento \(\psi(x_{\text{query}}) \in \mathbb R^d\)
- Funzionalità di un elemento mappato da una rete neurale \(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 scalare 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}})\) anziché un vettore di probabilità per ogni query \(x_{\text{query}}\).