Facebook推出的fasttext为何可以比其他方法快这么多?

在facebook的paper中,[1607.01759] Bag of Tricks for Efficient Text Classificati…
关注者
24
被浏览
4,190

1 个回答

1.hierarchical softmax 和negative sampling是对普通softmax的极大提速,我之前试了一下fasttext,一开始没注意到默认的是普通的softmax,一个4万类的分类训练要26个小时,改成loss=hs(层次softmax)后只用两分钟了(2000万行语料)

2.hs里使用huffman树,做分类一般类别没那么多,叶子节点相对word2vec(每个目标词一个叶子节点)少很多。

并且语料每一行只训练一次,word2vec要每个中心词训练一次,训练次数又少了很多。当然fasttext可以设置epoch训练多轮

3.各种提速的trick,比如提前算好exp的取值之类的,这点和word2vec是一样的了

为什么?