LDA与Word2Vec


39

我试图了解潜在Dirichlet分配word2vec之间的相似度,用于计算单词相似度。

据我了解,LDA将单词映射到潜在主题的概率向量,而word2vec 将单词映射到实数的向量(与逐点互信息的奇异值分解有关,请参阅O. Levy,Y。Goldberg,“神经词嵌入作为隐式矩阵分解”;另请参见word2vec如何工作?)。

我对理论关系(可以被认为是一种概括或另一种变化)和实践(当使用一种而不是另一种)都感兴趣。

有关:


我发现这个演示是在现场:slideshare.net/ChristopherMoody3/...
彼得·米格代尔

您应该看一下Doc2vec(又名段落2vec)。文档向量概述了文档,而不是单词。
sachinruk '16

Answers:


19

Topic模型和单词共现方法的答案涵盖了这一差异(跳过gram word2vec是逐点互信息(PMI)的压缩)。

所以:

  • 两种方法都不是另一种方法的概括,
  • vkingvman+vwomanvqueen
  • LDA的相关性高于两元素,
  • LDA提供了可解释的主题。

幻灯片word2vec,LDA中讨论了一些区别,并介绍了一种新的混合算法:lda2vec-Christopher Moody


1
我要声明“ LDA提供可解释的主题”的说法是说LDA的主题是潜在可解释的。LDA的“主题”概念是纯数学结构,并不总是映射到人们认为的主题。
韦恩

您遗漏的一个关键概念是LDA使用词袋方法,因此它仅了解文档中的共现,而word2vec(或更确切地说是doc2vec)则考虑单词的上下文。
韦恩

13

两种算法的用途相差很大。

LDA主要旨在通过为文档和文档集合分配主题分布来描述文档和文档集合,正如您提到的,这些主题又分配了单词分布。

word2vec希望将单词嵌入到潜在因子向量空间中,这一思想源自Bengio等人的分布式表示形式。它也可以用来描述文档,但并不是真正为任务而设计的。


1
从理论上讲,您可以通过计算LDA中的P(topic | word)得到类似于word2vec矢量嵌入的内容,但是正如@Bar所说,这些模型是为不同任务设计的。如果将LDA的P(topic | word)分布与word2vec的矢量嵌入进行比较,我怀疑它们会非常相似。LDA正在捕获文档级关联,而word2vec正在捕获非常本地的关联。
Zubin 2015年

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

而且,您会在其中找到一些短语,例如:

“概率不是特征表示的最佳选择”

“ LDA倾向于描述事件的统计关系,而不是嵌入单词,主题和文档中的真实语义信息”

这将帮助您更好地了解不同的模型。


2

这里的其他答案涵盖了这两种算法之间的技术差异,但是我认为核心差异是它们的目的:这两种算法旨在完成不同的任务:

word2vec最终产生单词和固定长度向量之间的映射。如果我们将其与另一种众所周知的方法进行比较,那么使用另一种针对相同目的而设计的工具(例如“言语之袋”(BOW模型))进行比较会更有意义。这一功能相同,但缺少某些所需的功能,word2vec例如使用单词顺序并将语义含义分配给单词表示之间的距离。

LDA另一方面,创建从变长文档到向量的映射。该文档可以是句子,段落或全文文件,但不是单个单词。与doc2vec做相同工作的Tomas Mikolov 在这里介绍(作者使用术语paragraph vectors)进行比较会更有意义。或与LSI此有关。

因此,直接回答您的两个问题:

  1. 它们都不是另一个的概括或变化
  2. 使用LDA将文档映射到固定长度的向量。然后,您可以在传统的ML算法(例如分类器)中使用此矢量,例如,该分类器接受文档并预测情感标签。
  3. 用于word2vec单词映射到固定长度的向量。您也可以类似地使用这些向量输入单词,例如,当开发一个自动完成器时,它以前一个单词为基础,并尝试预测下一个单词。

1

从实际的角度来看...

LDA从单词袋输入开始,该单词袋考虑文档中同时出现的单词,但不关注单词的直接上下文。这意味着这些单词可以以任何顺序出现在文档中的任何位置,从而剥夺了一定程度的信息。相比之下,word2vec只是关于使用单词的上下文的信息-尽管可能不是确切的顺序。

LDA的“主题”是一种数学结构,您不应将其与实际的人类主题混淆。您可以得到没有人工解释的主题-与实际主题相比,它们更像是过程的工件-您可以得到具有不同抽象级别的主题,包括基本上涵盖同一人类主题的主题。有点像阅读茶叶。

我发现LDA对探索数据很有用,但对提供解决方案却没什么用,但是您的里程可能会有所不同。

Word2vec根本不直接创建主题。它基于相似的用法将单词投射到高维空间中,因此对于您认为在空间中彼此接近甚至彼此相反的单词而言,它可能会有自己的惊喜。

您可以使用其中一个来确定单词是否“相似”。使用LDA:单词在相同主题中的权重是否相似?使用word2vec:它们是否在某种程度上封闭了嵌入空间。

您可以使用其中一种来确定文档是否相似。使用LDA,您将寻找类似的主题混合,而使用word2vec,您将进行诸如将文档单词的向量相加之类的操作。(“文档”可以是句子,段落,页面或整个文档。)Doc2vec是word2vec的修改版本,可以直接比较文档。

尽管LDA使用“词袋”方法丢弃了一些上下文信息,但它确实具有主题(或“主题”),而word2vec却没有。因此,使用doc2vec可以直接说“向我显示与此文档相似的文档”,而使用LDA则可以直接说“向我显示主题A突出的文档”。(同样,知道“主题A”是从文档上的数学过程中出现的,然后您找出它最对应的人类主题是什么。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.