参考相关链接地址如下:
https://blog.csdn.net/kingzone_2008/article/details/81429501
https://blog.csdn.net/john_bh/article/details/79268850
https://blog.csdn.net/yunqishequ1/article/details/75307234
https://blog.csdn.net/mydear_11000/article/details/52298615
http://licstar.net/archives/328
count vector :https://radimrehurek.com/gensim/models/word2vec.html
http://www.cnblogs.com/demo-deng/p/9705108.html
https://blog.csdn.net/github_37412255/article/details/78939832
https://blog.csdn.net/qq_32284189/article/details/81661457
https://cloud.tencent.com/developer/news/218062
链表算法:http://www.cnblogs.com/titer1/archive/2012/04/13/2445445.html
https://blog.csdn.net/likika2012/article/details/17026935
区别
相似处:
图模型结构很像,都是采用embedding向量的形式,得到word的隐向量表达。
都采用很多相似的优化方法,比如使用Hierarchical softmax优化训练和预测中的打分速度。
不同处:
模型的输出层:word2vec的输出层,对应的是每一个term,计算某term的概率最大;而fasttext的输出层对应的是 分类的label。不过不管输出层对应的是什么内容,起对应的vector都不会被保留和使用;
模型的输入层:word2vec的输出层,是 context window 内的term;而fasttext 对应的整个sentence的内容,包括term,也包括 n-gram的内容;
两者本质的不同,体现在 h-softmax的使用:
Wordvec的目的是得到词向量,该词向量 最终是在输入层得到,输出层对应的 h-softmax
也会生成一系列的向量,但最终都被抛弃,不会使用。
fasttext则充分利用了h-softmax的分类功能,遍历分类树的所有叶节点,找到概率最大的label(一个或者N个)
小结
总的来说,fastText的学习速度比较快,效果还不错。fastText适用与分类类别非常大而且数据集足够多的情况,当分类类别比较小或者数据集比较少的话,很容易过拟合。
可以完成无监督的词向量的学习,可以学习出来词向量,来保持住词和词之间,相关词之间是一个距离比较近的情况;
也可以用于有监督学习的文本分类任务,(新闻文本分类,垃圾邮件分类、情感分析中文本情感分析,电商中用户评论的褒贬分析)
网友评论