LDA vs word2vec

39

Estou tentando entender qual é a semelhança entre Alocação de Dirichlet Latente e word2vec para calcular a similaridade de palavras.

Pelo que entendi, o LDA mapeia palavras para um vetor de probabilidades de tópicos latentes , enquanto o word2vec as mapeia para um vetor de números reais (relacionado à decomposição de valores singulares de informações mútuas pontuais, consulte O. Levy, Y. Goldberg, "Neural Word Embedding como fatoração implícita da matriz " ; consulte também Como funciona o word2vec? ).

Estou interessado tanto em relações teóricas (pode uma ser considerada uma generalização ou variação da outra) quanto prática (quando usar uma, mas não a outra).

Palavras-chave:

Piotr Migdal
fonte
Achei esta apresentação no local: slideshare.net/ChristopherMoody3/…
Piotr Migdal
Você deve consultar o Doc2vec (também conhecido como paragraph2vec). Os vetores de documento resumem o documento em vez de palavras.
sachinruk

Respostas:

19

Uma resposta aos modelos de tópicos e aos métodos de co-ocorrência de palavras abrange a diferença (ignorar grama word2vec é compactação de informações mútuas pointwise (PMI) ).

Tão:

  • nenhum método é uma generalização de outro,
  • O word2vec nos permite usar a geometria vetorial (como analogia de palavras, por exemplo, , escrevi uma visão geral do word2vec )vkingvman+vwomanvqueen
  • O LDA vê correlações mais altas do que dois elementos,
  • LDA fornece tópicos interpretáveis.

Alguma diferença é discutida nos slides word2vec, LDA e introdução de um novo algoritmo híbrido: lda2vec - Christopher Moody .

Piotr Migdal
fonte
1
Gostaria de ressaltar a afirmação "LDA fornece tópicos interpretáveis" para dizer que os tópicos da LDA são potencialmente interpretáveis. A idéia de "tópico" da LDA é uma construção puramente matemática que nem sempre é mapeada para o que um ser humano pensa como um tópico.
Wayne
Um conceito-chave que você deixou de fora é que o LDA usa uma abordagem de conjunto de palavras, para que ele saiba apenas sobre co-ocorrências em um documento, enquanto o word2vec (ou, mais comparativamente, o doc2vec) considera o contexto de uma palavra.
Wayne
13

Os dois algoritmos diferem bastante em sua finalidade.

O LDA visa principalmente descrever documentos e coleções de documentos, atribuindo-lhes distribuições de tópicos, que por sua vez têm distribuições de palavras designadas, como você mencionou.

O word2vec procura incorporar palavras em um espaço vetorial de fatores latentes, uma idéia originada nas representações distribuídas de Bengio et al. Também pode ser usado para descrever documentos, mas não foi realmente projetado para a tarefa.

Barra
fonte
1
Teoricamente, você poderia obter algo análogo aos incorporados vetoriais do word2vec computando P (topic | word) da LDA, mas como a @Bar disse que esses modelos foram projetados para tarefas diferentes. Se você comparasse as distribuições P (tópico | word) da LDA com os incorporamentos vetoriais do word2vec, duvido que fossem muito semelhantes. O LDA está capturando associações em nível de documento, enquanto o word2vec está capturando associações muito locais.
Zubin
4

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))

COSINE SIMILARITY

Além disso, você encontrará em seu interior algumas frases como:

"probabilidade não é a melhor escolha para representação de características"

e

"A LDA prefere descrever a relação estatística das ocorrências em vez de informações semânticas reais incorporadas em palavras, tópicos e documentos"

o que ajudará você a entender melhor os diferentes modelos.

Ricardo S.
fonte
2

Outras respostas aqui cobrem as diferenças técnicas entre esses dois algoritmos, no entanto, acho que a principal diferença é o seu objetivo: esses dois algoritmos foram projetados para fazer coisas diferentes:

word2vecem última análise, gera um mapeamento entre palavras e um vetor de comprimento fixo. Se comparássemos com outra abordagem bem conhecida, faria mais sentido fazê-lo usando outra ferramenta projetada para a mesma intenção, como o Bag of Words (modelo BOW). Este faz o mesmo, mas faltam algumas características desejadas, word2veccomo usar a ordem das palavras e atribuir significado semântico às distâncias entre representações de palavras.

LDApor outro lado, cria um mapeamento de um documento de comprimento variado para um vetor. Este documento pode ser uma frase, parágrafo ou arquivo de texto completo, mas não é uma única palavra. Faria mais sentido compará-lo com o doc2vecque faz o mesmo trabalho e é apresentado por Tomas Mikolov aqui (o autor usa o termo paragraph vectors). Ou com LSIesse assunto.

Então, para responder diretamente às suas duas perguntas:

  1. Nenhum deles é uma generalização ou variação do outro
  2. Use o LDA para mapear um documento para um vetor de comprimento fixo. Você pode usar esse vetor em um algoritmo tradicional de ML, como um classificador que aceita um documento e prevê um rótulo sentimental, por exemplo.
  3. Use word2vecpara mapear uma palavra para um vetor de comprimento fixo. Da mesma forma, você pode usar esses vetores para alimentar os modelos ML, onde as entradas são palavras, por exemplo, ao desenvolver um autocompletor que se alimenta de palavras anteriores e tenta prever o próximo.
pilu
fonte
1

Do ponto de vista prático ...

O LDA começa com uma entrada de palavras que considera quais palavras co-ocorrem nos documentos, mas não presta atenção ao contexto imediato das palavras. Isso significa que as palavras podem aparecer em qualquer lugar do documento e em qualquer ordem, o que retira um certo nível de informação. Em contrapartida, o word2vec trata do contexto em que uma palavra é usada - embora talvez não seja uma ordem exata.

Os "tópicos" da LDA são uma construção matemática e você não deve confundi-los com tópicos humanos reais. Você pode terminar com tópicos que não têm interpretação humana - eles são mais artefatos do processo do que tópicos reais - e pode terminar com tópicos em diferentes níveis de abstração, incluindo tópicos que cobrem basicamente o mesmo tópico humano. É como ler folhas de chá.

Eu achei o LDA útil para explorar dados, mas não tão útil para fornecer uma solução, mas sua milhagem pode variar.

O Word2vec não cria tópicos diretamente. Ele projeta palavras em um espaço de alta dimensão com base em usos semelhantes, para que possa ter suas próprias surpresas em termos de palavras que você considera distintas - ou até opostas - que podem estar próximas no espaço.

Você pode usar para determinar se as palavras são "semelhantes". Com o LDA: as palavras têm pesos semelhantes nos mesmos tópicos. Com o word2vec: eles estão próximos (de alguma forma) no espaço de incorporação.

Você pode usar para determinar se os documentos são semelhantes. Com o LDA, você procuraria uma mistura semelhante de tópicos e, com o word2vec, faria algo como adicionar os vetores das palavras do documento. ("Documento" pode ser uma frase, parágrafo, página ou um documento inteiro.) Doc2vec é uma versão modificada do word2vec que permite a comparação direta de documentos.

Embora a LDA jogue fora algumas informações contextuais com sua abordagem de saco de palavras, ela possui tópicos (ou "tópicos"), os quais o word2vec não possui. Portanto, é fácil usar o doc2vec para dizer "Mostre-me documentos semelhantes a este", enquanto que com o LDA é fácil dizer: "Mostre-me documentos onde o tópico A é proeminente". (Novamente, sabendo que o "tópico A" emerge de um processo matemático em seus documentos e você descobre a quais tópicos humanos ele mais corresponde.)

Wayne
fonte