FastText

作者: 数据智能谷 | 来源:发表于2019-10-20 07:36 被阅读0次

    与word2vec图模型结构很像,都是采用embedding向量的形式,得到word的隐向量表达。

    都采用很多相似的优化方法,比如使用Hierarchical softmax优化训练和预测中的打分速度。

    不同处:
    cbow用上下文去预测中心词,而此处用全部的n-gram去预测指定类别
    模型的输出层:word2vec的输出层,对应的是每一个term,计算某term的概率最大;而fasttext的输出层对应的是分类的label。不过不管输出层对应的是什么内容,起对应的vector都不会被保留和使用。
    模型的输入层:word2vec的输出层,是 context window 内的term;而fasttext 对应的整个sentence的内容,包括term,也包括 n-gram的内容。
    两者本质的不同,体现在 h-softmax的使用:
    Word2vec的目的是得到词向量,该词向量 最终是在输入层得到,输出层对应的 h-softmax
    也会生成一系列的向量,但最终都被抛弃,不会使用。
    fastText则充分利用了h-softmax的分类功能,遍历分类树的所有叶节点,找到概率最大的label(一个或者N个)

    image.png
    image.png
    image.png
    image.png

    与word2vec 区别
    · 输入层:CBOW的输入是目标单词的上下文并进行one-hot编码,fastText的输入是多个单词embedding向量,并将单词的字符级别的n-gram向量作为额外的特征;

    · 从输入层到隐藏层,CBOW会将上下文单词向量叠加起来并经过一次矩阵乘法(线性变化)并应用激活函数,而fastText省略了这一过程,直接将embedding过的向量特征求和取平均;

    · 输出层,一般的CBOW模型会采用Softmax作为输出,而fastText则采用了Hierarchical Softmax,大大降低了模型训练时间;

    · CBOW的输出是目标词汇,fastText的输出是文档对应的分类

    相关文章

      网友评论

          本文标题:FastText

          本文链接:https://www.haomeiwen.com/subject/szcwkctx.html