文章目录
FastText
fastText的核心思想:将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。这中间涉及到两个技巧:字符级n-gram特征的引入以及分层Softmax分类。
模型结构
模型结构跟word2vec里的CBOW结构一样, 只不过输出结果由预测词变为了预测类别.
![](https://i-blog.csdnimg.cn/blog_migrate/d51f80f8517fd2e7c45fdae489c63fcb.png)
模型的优化函数
![](https://i-blog.csdnimg.cn/blog_migrate/a1e26c84b662b8dc16e0750a4dd6c9ac.png)
Hierarchical softmax
在具体实现上, 和word2vec类似, 为了加快速度在分类时使用hierarchical softmax.
N-gram features
这是与word2vec不同的地方, word2vec直接采用bag-of-word的思想, 而fasttext在训练时还利用字符级别的n-gram信息, 使得训练效果更好.
这带来两点好处:
- 对于低频词生成的词向量效果会更好。因为它们的n-gram可以和其它词共享。
- 对于训练词库之外的单词,仍然可以构建它们的词向量。我们可以叠加它们的字符级n-gram向量。
作者在论文中提到, 为了提高效率, 他们使用hashing trick.