LDA vs word2vec


39

Sto cercando di capire cos'è la somiglianza tra Allocazione latente di Dirichlet e word2vec per calcolare la somiglianza delle parole.

A quanto ho capito, LDA associa le parole a un vettore di probabilità di argomenti latenti , mentre word2vec le associa a un vettore di numeri reali (relativi alla scomposizione del valore singolare di informazioni reciproche puntuali, vedere O. Levy, Y. Goldberg, "Incorporamento di parole neurali come fattorizzazione a matrice implicita " ; vedi anche Come funziona word2vec? ).

Sono interessato sia alle relazioni teoriche (una può essere considerata una generalizzazione, o variazione dell'altra) sia pratiche (quando usare l'una ma non l'altra).

Relazionato:


Ho trovato questa presentazione sul posto: slideshare.net/ChristopherMoody3/…
Piotr Migdal

Dovresti guardare Doc2vec (aka paragrafo2vec). I vettori del documento riassumono il documento anziché le parole.
Sachinruk,

Risposte:


19

Una risposta ai modelli di argomento e ai metodi di ricorrenza delle parole copre la differenza (skip-gram word2vec è la compressione di informazioni reciproche puntuali (PMI) ).

Così:

  • nessuno dei due metodi è una generalizzazione di un altro,
  • word2vec ci permette di usare la geometria vettoriale (come l'analogia delle parole, ad es. vkingvman+vwomanvqueen , ho scritto una panoramica di word2vec )
  • LDA vede correlazioni più elevate rispetto a due elementi,
  • LDA fornisce argomenti interpretabili.

Alcune differenze sono discusse nelle diapositive word2vec, LDA e nell'introduzione di un nuovo algoritmo ibrido: lda2vec - Christopher Moody .


1
Vorrei avvertire l'affermazione "LDA fornisce argomenti interpretabili" per dire che gli argomenti di LDA sono potenzialmente interpretabili. L'idea di "argomento" di LDA è un costrutto puramente matematico che non sempre si associa a ciò che un umano pensa come argomento.
Wayne,

Un concetto chiave che hai lasciato fuori è che LDA usa un approccio bag-of-words, quindi conosce solo le ricorrenza in un documento, mentre word2vec (o più comparativamente doc2vec) considera il contesto di una parola.
Wayne,

13

I due algoritmi differiscono abbastanza nel loro scopo.

LDA mira principalmente a descrivere documenti e raccolte di documenti assegnando loro distribuzioni di argomenti, a loro volta assegnate distribuzioni di parole, come dici tu.

word2vec cerca di incorporare le parole in uno spazio vettoriale con fattore latente, un'idea originata dalle rappresentazioni distribuite di Bengio et al. Può anche essere usato per descrivere documenti, ma non è progettato per l'attività.


1
Teoricamente potresti ottenere qualcosa di analogo agli incorporamenti vettoriali di word2vec calcolando P (topic | word) da LDA, ma come @Bar ha detto che questi modelli sono stati progettati per compiti diversi. Se hai confrontato le distribuzioni P (topic | word) di LDA con gli incastri vettoriali di word2vec, dubito che sarebbero molto simili. LDA sta acquisendo associazioni a livello di documento mentre word2vec sta acquisendo associazioni molto locali.
Zubin,

4

C'è una relazione tra LDA e , un modello utilizzato per l'apprendimento distribuite Topic Rappresentanze t o g e t h e r w i t h rappresentazioni di parola. LDA viene utilizzato per costruire una probabilità logaritmica per CBOW e Skip-gram. La seguente spiegazione è all'interno della sezione 3 del lavoro Topic2Vec: Apprendimento delle rappresentazioni distribuite degli argomenti :Topic2Vectogether with

D={w1:z1,...,wM:zM}ziwi

LCBOW(D)=1Mi=1M(logp(wi|wext)+logp(zi|wext))

LSkipgram(D)=1Mi=1Mkck,c0(logp(wi+c|wi)+logp(wi+c|zi))

In section 4.2, the authors explain: " topics and words are equally represented as the low-dimensional vectors, we can IMMEDIATELY CALCULATE THE COSINE SIMILARITY between words and topics. For each topic, we select higher similarity words".

Moreover, you wil find inside that work some phrases like:

"probability is not the best choice for feature representation"

and

"LDA prefers to describe the statistical relationship of occurrences rather than real semantic information embedded in words, topics and documents"

which will help you understanding better the different models.


2

Other answers here cover the technical differences between those two algorithms, however I think the core difference is their purpose: Those two algorithms were designed to do different things:

word2vec alla fine produce una mappatura tra words and a fixed length vector. If we were to compare it with another well known approach, it would make more sense to do so using another tool that was designed for the same intend, like the Bag of Words (BOW model). This one does the same but lacks some desired features of word2vec like using the order of words and assigning semantic meaning to the distances between word representations.

LDAd'altra parte crea una mappatura da un documento di varia lunghezza a un vettore. Questo documento può essere una frase, un paragrafo o un file di testo completo ma non è una singola parola. Avrebbe più senso confrontarlo condoc2vec that does the same job and is introduced by Tomas Mikolov here (the author uses the term paragraph vectors). Or with LSI for that matter.

Quindi per rispondere direttamente alle tue due domande:

  1. Nessuna di queste è una generalizzazione o una variazione dell'altra
  2. Usa LDA per mappare a documento to a fixed length vector. You can then use this vector in a traditional ML algorithm like a classifier that accepts a document and predicts a sentimental label for example.
  3. Utilizzare word2vecper mappare una parola su un vettore a lunghezza fissa. Allo stesso modo è possibile utilizzare questi vettori per alimentare i modelli ML in cui l'input sono parole, ad esempio quando si sviluppa un completamento automatico che si nutre di parole precedenti e tenta di prevedere il successivo.

1

Da un punto di vista pratico ...

LDA inizia con un input bag-of-word che considera quali parole si verificano nei documenti, ma non presta attenzione al contesto immediato delle parole. Ciò significa che le parole possono apparire in qualsiasi parte del documento e in qualsiasi ordine, eliminando un determinato livello di informazioni. Al contrario, word2vec riguarda tutto il contesto in cui viene usata una parola, anche se forse non è un ordine esatto.

Gli "argomenti" di LDA sono un costrutto matematico e non dovresti confonderli con argomenti umani reali. Puoi finire con argomenti che non hanno interpretazione umana - sono più simili a manufatti del processo che argomenti reali - e puoi finire con argomenti a diversi livelli di astrazione, inclusi argomenti che sostanzialmente coprono lo stesso argomento umano. È un po 'come leggere le foglie di tè.

Ho trovato LDA utile per esplorare i dati, ma non così utile per fornire una soluzione, ma il tuo chilometraggio può variare.

Word2vec non crea argomenti direttamente. Proietta le parole in uno spazio ad alta dimensione basato su un uso simile, quindi può avere le sue sorprese in termini di parole che tu pensi distinte - o addirittura opposte - potrebbero essere vicine l'una all'altra nello spazio.

Puoi usare entrambi per determinare se le parole sono "simili". Con LDA: le parole hanno pesi simili negli stessi argomenti. Con word2vec: sono vicini (per qualche misura) nello spazio di incorporamento.

Puoi usare entrambi per determinare se i documenti sono simili. Con LDA, dovresti cercare una combinazione simile di argomenti e con word2vec faresti qualcosa come sommare i vettori delle parole del documento. ("Documento" può essere una frase, un paragrafo, una pagina o un intero documento.) Doc2vec è una versione modificata di word2vec che consente il confronto diretto dei documenti.

Mentre LDA getta via alcune informazioni contestuali con il suo approccio bag-of-words, ha argomenti (o "argomenti"), che word2vec non ha. Quindi è semplice usare doc2vec per dire "Mostrami documenti simili a questo", mentre con LDA è semplice dire "Mostrami documenti in cui l'argomento A è prominente". (Ancora una volta, sapendo che l '"argomento A" emerge da un processo matematico sui tuoi documenti e poi capisci a quali argomenti umani corrisponde principalmente.)

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.