• [转]fasttext 与 word2vec、doc2vec 的区别


    总结得清晰简明,转之~

    from https://blog.csdn.net/qfikh/article/details/105649650

    相似:

    图模型结构很像,都是采用embedding向量的形式,得到word的隐向量表达。
    都采用很多相似的优化方法,比如使用Hierarchical softmax优化训练和预测中的打分速度。
    不同点:

    1.word2vec是一个无监督算法,而fasttext是一个有监督算法。
    2.模型的输入层:word2vec的输入层是上下文单词;而fasttext 对应的整个句子/文本的单词及其n-gram特征。word2vec要求训练样本是基于上下文带有“序”的属性,而fasttext使用的是词袋模型的思想,使用的是n-gram的无序属性。
    3.隐层:对于cbow,隐层采用简单的求和;对于fastText,隐层是由输入层求和并平均
    4.模型的输出层:word2vec的输出层,对应的是每一个term,计算某term的概率最大;而fasttext的输出层对应的是分类的label。不过不管输出层对应的是什么内容,起对应的vector都不会被保留和使用。
    5.word2vec的学习目标是得到词向量,而fasttext的学习目标是得到文本的分类结果。Word2vec的目的是得到词向量,该词向量 最终是在输入层得到,输出层对应的 h-softmax也会生成一系列的向量,但最终都被抛弃,不会使用。fastText则充分利用了h-softmax的分类功能,遍历分类树的所有叶节点,找到概率最大的label(一个或者N个)
     

    Fasttext模型有个致命的问题,就是丢失了词顺序的信息,因为隐层是通过简单的求和取平均得到的。为了弥补这个不足,Fasttext增加了N-gram的特征。

    n-gram的怎么处理:

    Fasttext采用了Hash桶的方式,把所有的n-gram都哈希到buckets个桶中,哈希到同一个桶的所有n-gram共享一个embedding vector。Ref:https://blog.csdn.net/kingzone_2008/article/details/81429501

    3. 字符级n-gram带来两点好处: Ref:https://zhuanlan.zhihu.com/p/129756562

    对于低频词生成的词向量效果会更好。因为它们的n-gram可以和其它词共享。
    对于训练词库之外的单词,仍然可以构建它们的词向量。可以叠加它们的字符级n-gram向量。
    4、为什么fastText甚至可以为语料库中未出现的单词产生词向量
    fastText一个重要的特性便是有能力为任何单词产生词向量,即使是未出现的,组装的单词。主要是因为fastText是通过包含在单词中的子字符substring of character来构建单词的词向量,正文中也有论述,因此这种训练模型的方式使得fastText可以为拼写错误的单词或者连接组装的单词产生词向量

    doc2vec相比于word2vec的c-bow模型,区别点有:

    训练过程中新增了paragraph id,即训练语料中每个句子都有一个唯一的id。paragraph id和普通的word一样,也是先映射成一个向量,即paragraph vector。paragraph vector与word vector的维数虽一样,但是来自于两个不同的向量空间。在之后的计算里,paragraph vector和word vector累加或者连接起来,作为输出层softmax的输入。在一个句子或者文档的训练过程中,paragraph id保持不变,共享着同一个paragraph vector,相当于每次在预测单词的概率时,都利用了整个句子的语义。
    在预测阶段,给待预测的句子新分配一个paragraph id,词向量和输出层softmax的参数保持训练阶段得到的参数不变,重新利用梯度下降训练待预测的句子。待收敛后,即得到待预测句子的paragraph vector。


      doc2vec相比于word2vec的skip-gram模型,区别点为:在sentence2vec里,输入都是paragraph vector,输出是该paragraph中随机抽样的词。


    ————————————————
    版权声明:本文为CSDN博主「人鱼线」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qfikh/article/details/105649650

    /* 人应该感到渺小,在宇宙面前,在美面前,在智慧面前; 而在人群中,应该意识到自己的尊严。*/
  • 相关阅读:
    docker参数--restart=always的作用
    docker参数expose使用
    Linux主机添加路由和端口转发
    docker自动开启端口转发功能
    【Tips】【UE】总结自己常用的UltraEdit使用技巧
    浅谈I2C总线
    I2C总线简介(很经典)
    ECN
    视频编码未来简史
    爬虫与反爬虫
  • 原文地址:https://www.cnblogs.com/Arborday/p/14859318.html
Copyright © 2020-2023  润新知