学习笔记四:word2vec和fasttext_神洛华的博客-CSDN博客_fasttext word2vec
对于word2vec,要懂word2vec两个方式的区别,效果对比,具体怎么获得embbeding,层级二分类,负采样
fasttext与word2vec结构类似,但获取输入的粒度不同,基于ngram,而且训练目的不同
fastText和word2vec的区别
相似处:
1.图模型结构很像,都是采用embedding向量的形式,得到word的隐向量表达。
2.都采用很多相似的优化方法,比如使用Hierarchical softmax优化训练和预测中的打分速度。
不同处:
word2vec用词预测词,而且是词袋模型,没有n-gram。fasttext用文章/句子词向量预测类别,加入了n-gram信息。所以有:
模型的输入层:word2vec的输入层,是 context window 内的词;而fasttext 对应的整个sentence的内容,包括word、n-gram、subword。
模型的输出层:word2vec的输出层,计算某个词的softmax概率最大;而fasttext的输出层对应的是 分类的label;
两者本质的不同,体现在 h-softmax的使用:
word2vec用的负采样或者霍夫曼树解法(计算所有词概率,类别过大)。
fasttext用的softmsx全连接分类(类别少)
word2vec主要目的的得到词向量,该词向量 最终是在输入层得到(不关注预测的结果准不准,因为霍夫曼树和负采样解法虽然优化了训练速度,但是分类结果没那么准了)。fasttext主要是做分类 ,虽然也会生成一系列的向量,但最终都被抛弃,不会使用。
word2vec有两种模型cbow和 skipgram,fasttext只有cbow模型。
word2vec属于监督模型,但是不需要标注样本。fasttext也属于监督模型,但是需要标注样本。