zoukankan      html  css  js  c++  java
  • Word2Vec和LDA的区别与联系

      Word2vec是目前最常用的词嵌入模型之一。是一种浅层的神经网络模型,他有2种网络结构,分别是CBOW(continues bag of words)和 skip-gram。Word2vec 其实是对”上下文-单词“矩阵进行学习,其中上下文由周围的几个单词组成,由此得到的词向量表示 更多的融入了上下文共现的特征。 也就是说,如果2个词所对应的Word2vec向量相似度较高,那么他们很可能经常在相同的上下文中出现。

      LDA(Latent Dirichlet Allocation 隐狄利克雷模型)是主题模型(Topic Models)的一种计算方法。LDA是利用文档中单词的共现关系来对单词按主题聚类,也可以理解为‘文档-单词“矩阵进行分解,得到”文档-主题“和”主题-单词“两个概率分布。

    Word2Vec和LDA的区别:

      1、Word2vec是词聚类,属于词嵌入模型,LDA是主题词聚类,属于主题模型。主题模型和词嵌入模型最大的不同在于其模型本身,主题模型是一种基于概率图模型的生成式模型,其似然函数可以写成若干个条件概率连乘的形式,其中包含需要推测隐含变量(即主题);词嵌入模型一般表达为神经网络的形式,似然函数定义在网络输出之上。需要通过学习网络的权重以得到单词的稠密向量表示。

      2、词向量所体现的是语义(semantic)和语法(syntactic)这些 low-level的信息。而LDA的主题词表现的是更 high-level的文章主题(topic)这一层的信息。比如:

       1)计算词的相似度。同样在电子产品这个主题下,“苹果”是更接近于“三星”还是“小米”?

       2)词的类比关系:vector(小米)- vector(苹果)+ vector(乔布斯)近似于 vector(雷军)。

       3)计算文章的相似度。这个LDA也能做但是效果不好。而用词向量,即使在文章topic接近的情况下,计算出的相似度也能体现相同、相似、相关的区别。   反过来说,想用词向量的聚类去得到topic这一级别的信息也是很难的。很有可能,“苹果”和“小米”被聚到了一类,而“乔布斯”和“雷军”则聚到另一类。

    Word2Vec和LDA的联系:

      1、在方法模型上,他们两者是不同的,但是产生的结果从语义上来说,都是相当于近义词的聚类,只不过LDA是基于隐含主题的,WORD2VEC是基于词的上下文的,或者说LDA关注doc和word的共现,而word2vec真正关注的是word和context的共现。

      2、主题模型通过一定的结构调整可以基于”上下文-单词“矩阵进行主题推理。同样的,词嵌入方法也可以根据”文档-单词“矩阵学习出词的隐含向量表示。

      3、加入LDA的结果作为word embeddings的输入,可以增强文章分类效果。

    参考:

    https://blog.csdn.net/qq_29678299/article/details/88727380

    http://www.voidcn.com/article/p-sczvqzls-tq.html

    https://www.zhihu.com/question/40309730

  • 相关阅读:
    POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)
    LCA 最近公共祖先 (模板)
    线段树,最大值查询位置
    带权并查集
    转负二进制
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
  • 原文地址:https://www.cnblogs.com/liuxiaochong/p/14193237.html
Copyright © 2011-2022 走看看