fastText解读

背景

上一章的Word2Vec解读我们了解到了一种快速对词语进行embedding的方式,对于文本分类任务,fasttex被facebook提出,具体论文见
《Bag of Tricks for Efficient Text Classification》

模型架构在这里插入图片描述

如图所示,模型采用类似word2vec的cbow模型,只不过这里最终输出的是各个分类label的概率,而不是中心词的概率 。
和CBOW模型同理,输入通过一个weight matrix C进行look up得到词向量,和词袋模型一样对多个词取平均向量作为线性分类器的输入,最终输出通过softmax表示输出类别的label的概率 。这里当类别较多的时候,同样采用Hierarchical Softmax(Hierarchical Softmax的介绍可以见上一章)。最终通过SGD优化得到embedding。

fasttext和word2vec的比较

1.引入ngram特征:word2vec采用词作为粒度,而fasttext的输入是ngram的粒度(可以是字粒度可以是词粒度),能隐式反应其前后顺序,而且能对低频词得到更好的embeding(因为训练数据能共享更细粒度的ngram)和未出现的进行embedding(ngram叠加得到)
2. 输出不一样:word2vec输入是上下文单词的词向量,输出是中心词的概率,fasttext输入是句子或文档的ngram的特征向量,输出是是文本类别标签
3. fasttext是做文本分类(hierarchy softmax在测试时可用DFS查询最大概率),词向量是副产物,word2vec基于语言模型概率出发,输入层embedding作为词向量
4. 因为采用线性分类器,ngram 哈希等tricks,速度很快,"fasttext"因此得名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章