fasttext是facebook开源的一个词向量与文本分类工具 ,其最大的优点就是快,同时不失精度。 此算法有两个主要应用场景:
- 文本分类
- 词向量训练
工业界碰到一些简单分类问题时,经常采用这种简单,快速的模型解决问题。
FastText原理简介
FastText原理部分有3个突出的特点:
- 模型简单,其结构有点类似word2vector中的CBOW架构,如下图所示。FastText将句子特征通过一层全连接层映射到向量空间后,直接将词向量平均处理一下,就去做预测。
模型架构
- 使用了n-gram的特征,使得句子的表达更充分。笔者会在实战中详细介绍这部分的操作。
- 使用 Huffman算法建立用于表征类别的树形结构。这部分可以加速运算,同时减缓一些样本不均衡的问题。
其中比较有意思的是,做完分类任务后,模型全连接层的权重可以用来做词向量。而且由于使用了n-gram的特征,