Addestramento Softmax

La pagina precedente ha spiegato come incorporare uno strato softmax in un neurale ricorrente per un sistema di suggerimenti. Questa pagina esamina più da vicino dati di addestramento per questo sistema.

Dati di addestramento

I dati di addestramento softmax sono costituiti dalle caratteristiche della query \(x\) e un vettore di elementi con cui l'utente ha interagito (rappresentato come la distribuzione della probabilità \(p\)). Questi sono contrassegnati in blu come mostrato nella figura che segue. Le variabili del modello sono le ponderazioni nei diversi livelli. Sono contrassegnati in arancione nei seguenti figura stilizzata. Il modello viene generalmente addestrato utilizzando qualsiasi variante di discesa stocastica del gradiente.

Immagine che evidenzia l'addestramento di una rete neurale profonda softmax

Campionamento negativo

Poiché la funzione di perdita confronta due vettori di probabilità \(p, \hat p(x) \in \mathbb R^n\) (dati di fatto e rispettivamente l'output del modello), calcolando il gradiente della perdita (per una singola query \(x\)) può essere costi proibitivi se le dimensioni del corpus \(n\) sono troppo grandi.

Potresti configurare un sistema per calcolare i gradienti solo sugli elementi positivi (elementi attivi nel vettore basato su dati empirici reali). Tuttavia, se il sistema addestra solo su coppie positive, il modello può soffrire di folding, spiegate di seguito.

Ripiegature
Immagine di un piano piegato a metà che mostra tre diversi gruppi di quadrati che rappresentano query e cerchi che rappresentano gli elementi. Ogni gruppo è di un colore diverso e le query interagiscono solo con gli elementi dello stesso gruppo. Nella figura seguente, supponiamo che ogni colore rappresenti un diverso categoria di query ed elementi. Solo per ogni query (rappresentata come un quadrato) interagisce principalmente con gli elementi (rappresentati da un cerchio) dello stesso colore. Ad esempio, considera che ogni categoria sia una lingua diversa su YouTube. Un utente tipico interagisce principalmente con i video in una determinata lingua.

Il modello può imparare a posizionare gli incorporamenti di query/elemento di un determinato il colore uno rispetto all'altro (acquisendo correttamente la somiglianza all'interno colore), ma gli incorporamenti di colori diversi potrebbero finire nella stessa regione dello spazio di incorporamento, per caso. Questo fenomeno, noto come pieghevoli, possono generare consigli spuri: al momento delle query, il modello potrebbe prevedere erroneamente un punteggio alto per un elemento da una gruppo diverso.

Gli esempi di parole chiave escluse sono elementi contrassegnati come "non pertinenti" a una determinata query. Mostrare esempi negativi durante l'addestramento insegna al modello che gli incorporamenti di gruppi diversi devono essere allontanati l'uno dall'altro.

Anziché utilizzare tutti gli elementi per calcolare il gradiente (che può essere anche costoso) o di usare solo elementi positivi (il che rende il modello incline a pieghevole), puoi utilizzare il campionamento negativo. In modo più preciso, calcolerai gradiente approssimativo, utilizzando i seguenti elementi:

  • Tutti gli elementi positivi (quelli che appaiono nell'etichetta target)
  • Un campione di elementi esclusi (\(j\) in \({1, …, n}\))

Esistono diverse strategie per il campionamento degli elementi esclusi:

  • Puoi campionare in modo uniforme.
  • Si può dare una probabilità maggiore agli elementi j con punteggio \(\psi(x) . V_j\). Intuitivamente, questi sono esempi che contribuiscono maggiormente al gradiente); questi esempi sono spesso chiamati "concetti negativi".

Fattorizzazione matriciale rispetto a softmax

I modelli DNN risolvono molti limiti della fattorizzazione matriciale, ma in genere sono più costoso da addestrare ed eseguire query. La tabella seguente riassume alcuni dei differenze significative tra i due modelli.

Fattorizzazione matriciale DNN softmax
Funzionalità di query Non facile da includere. Può essere incluso.
Avvio a freddo Non gestisce facilmente fuori dal vocabolario query o elementi. È possibile utilizzare alcune euristiche (ad esempio, per una nuova query, media di incorporamenti di query simili). Gestisce facilmente le nuove query.
Ripiegature La piegatura può essere ridotta facilmente regolando il peso non osservato in WALS. Possibilità di piegarsi. Necessità di utilizzo tecniche come il campionamento negativo o la gravità.
Scalabilità dell'addestramento Facilmente scalabile a grandi dimensioni corpora (forse centinaia di milioni di elementi o più), ma solo se che la matrice di input è sparsa. Più difficili da scalare a molto grandi corpora. Possono essere utilizzate alcune tecniche, come l'hashing, campionamento negativo ecc.
Scalabilità del servizio Gli incorporamenti U, V sono statici, e un gruppo di candidati può essere precalcolato e archiviato. Gli incorporamenti di elementi V sono statici e possono essere archiviati.

L'incorporamento della query di solito devono essere calcolati al momento della query, il che rende il modello più costoso vengono pubblicate.

In sintesi:

  • La fattorizzazione matriciale è in genere la scelta migliore per corpora di grandi dimensioni. È più facile da scalare, più economico da interrogare e meno soggetto a folding.
  • I modelli DNN possono acquisire meglio le preferenze personalizzate, ma sono più difficili da addestrare e più costose da sottoporre a query. È preferibile utilizzare i modelli DNN la fattorizzazione matriciale per il punteggio perché i modelli DNN possono usare più funzionalità per acquisire una maggiore pertinenza. Inoltre, di solito accettabile per i modelli DNN, dato che ti interessano classifica un insieme di candidati precedentemente filtrati che si presume siano pertinenti.