Algoritmi di incorporamento delle parole in termini di prestazioni


11

Sto cercando di incorporare circa 60 milioni di frasi in uno spazio vettoriale , quindi calcolare la somiglianza del coseno tra loro. Sto usando sklearn CountVectorizercon una funzione tokenizer personalizzata che produce unigrammi e bigrammi. Si scopre che per ottenere rappresentazioni significative, devo consentire un numero enorme di colonne, lineare nel numero di righe. Questo porta a matrici incredibilmente sparse e sta uccidendo le prestazioni. Non sarebbe così male se ci fossero solo circa 10.000 colonne, che penso sia abbastanza ragionevole per gli incastri di parole.

Sto pensando di provare a utilizzare Google word2vecperché sono abbastanza sicuro che produca incorporamenti di dimensioni molto più basse e più densi. Ma prima, ci sono altri matrimoni che potrebbero giustificare uno sguardo all'inizio? Il requisito chiave sarebbe in grado di ridimensionare circa 60 milioni di frasi (righe).

Sono abbastanza nuovo nel campo degli incantesimi di parole, quindi qualsiasi consiglio sarebbe d'aiuto.

Dovrei anche aggiungere che sto già utilizzando la decomposizione a valore singolare per migliorare le prestazioni.


Stai usando Spark?
eliasah,

1
Questo è uno dei motivi per cui ho suggerito Spark all'inizio. Mi dispiace, sono sul mio telefono. Non ho accesso a nessun riferimento per quanto riguarda le tecniche di pre-incorporamento PCA.
eliasah,

1
Non sono sicuro che sia eccessivo con quella quantità di dati.
eliasah,

1
La rimozione di token superflui non dovrebbe ridurre di molto la dimensione poiché stai lavorando a testi. Considerando un dizionario di 150000 parole, rimuovere le parole di stop per esempio ti trarrebbe beneficio con un paio di dozzine. Questo non aiuta.
eliasah,

1
Altrimenti, potresti voler prendere in considerazione la modellazione degli argomenti con Allocazione direttrice latente per ridurre le dimensioni del vettore di testo per frase.
eliasah,

Risposte:


3

Recentemente è stato svolto qualche lavoro sull'assegnazione dinamica della dimensione word2vec (skip gram) utilizzando le macchine Boltzmann. Dai un'occhiata a questo documento:

"Incantesimi infiniti di parole dimensionali" -Nalsnick, Ravi

L'idea di base è lasciare che il tuo set di allenamento imponga la dimensionalità del tuo modello word2vec, che è penalizzato da un termine di regolarizzazione correlato alla dimensione della dimensione.

Il documento sopra fa questo per parole, e sarei curioso di vedere come questo funziona bene con le frasi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.